刘航宇 发布的文章 - 我的学记|刘航宇的博客
首页
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🖼️相册
🎵音乐
🏞️壁纸
搜 索
1
【NPN/PNP三极管】放大电路饱和失真和截止失真的区别
10,929 阅读
2
论文写作中如何把word里面所有数字和字母替换为新罗马字体
6,239 阅读
3
【高数】形心计算公式讲解大全
5,659 阅读
4
【1】基于STM32CubeMX-STM32GPIO端口开发
4,351 阅读
5
如何判断运放是工作在线性区还是非线性区
4,126 阅读
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
电路&嵌入式
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
登录
搜 索
标签搜索
嵌入式
ASIC/FPGA
VLSI
SOC设计
机器学习
天线设计
C/C++
EDA&虚拟机
小实验
软件算法
信号处理
电子线路
通信&射频
随笔
笔试面试
硬件算法
Verilog
软件无线电
Python
DL/ML
刘航宇Hangyu Liu
嵌入式系统&数字IC爱好者博客
累计撰写
296
篇文章
累计收到
520
条评论
首页
栏目
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
电路&嵌入式
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
页面
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🖼️相册
🎵音乐
🏞️壁纸
用户登录
登录
刘航宇(共296篇)
找到
296
篇与
刘航宇
相关的结果
2021-02-14
定语从句-什么是定语及定语的成分
什么是定语:定语为修饰名词的成分只要是“...的”+“名词”。“...的”就是修饰名词的定语成分。可以充当定语的成分(修饰名词):1.形容词The innocent nightingale died.The nightingale (brave and innocent) died.2.名词The n's singing can make the rose room.The singing of (the nightingale) can make the rose bloom.3.介词短语The n.. (out of the window) heard the sighs of the youngster.4.非谓语动词The singing n.. lost his life.5.从句6.形容词性物主代词(my,your,his)
2021年02月14日
126 阅读
0 评论
0 点赞
2021-02-14
电容、电感、电阻参数测量系统设计
目录一、设计任务和要求1、设计并制作一个元器件参数测量仪。2、电阻阻值测量,范围:100Ω~1MΩ;3、电容容值测量,范围:100pF~10000pF;4、测量精度:±5% ;5、电感参数的测量;6、扩大量程;7、提高测量精度;二、单元电路设计和参数计算1、电阻的检测单元电路设计从而,可以计算得出电阻值的大小。2、电容的检测单元电路设计从而,可以计算得出电容值的大小。3、电感的检测单元电路设计从而,可以计算得出电感值的大小。三、总原理图及元器件清单(2)元器件清单表1 原理图中所使用的元器件清单元件序号 型号 数量 备注U1 STC89C52RC 1 单片机R3 A103J 1 排阻R2,R3,R17,R18 10KΩ 4 电位器X1 11.0592M 1 晶振C3 25V,10uF 1 电解电容C1,C2,C11 103(0.01uF) 3 瓷片电容R1,R13,R18 10KΩ 3 电阻J1,J2,J3,J4 4 按键U2 1602 1 液晶A1,A2 NE555 2 555定时器R4 300Ω 1 电阻R5,R6 510KΩ 2 电阻C4,C5,C6,C7,C8,C9 104(0.1uF) 6 瓷片电容R7,R9 100KΩ 2 电阻C10 50V,22uF 1 电解电容Q1,Q2,Q3 S9108(NPN型) 3 三极管R10 2KΩ 1 电阻R8,R11,R14 1KΩ 3 电阻C12,C13 50V,47uF 2 电解电容R12,R19 39KΩ 2 电阻R15,R16 51Ω 2 电阻C14 25V,470uF 1 电解电容U3 NE55532 1 运放四、附录软件程序//RCL测量仪程序 //初始化 #include <reg52.h> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define PI 3.1415926 uchar code table1[8]="Welcome! RCL detector"; uchar table2[16]="f(Hz)="; uchar table3[16]="R(Ohm)="; uchar table4[16]="C(pF)="; uchar table5[16]="L(uH)="; uchar num,a=0,th0,tl0; uint C,L; ulong f,R; sbit lcden=P2^4; //液晶使能端 sbit lcdrs=P2^5; //液晶数据命令选择端 sbit key_R=P1^5; //测量电阻按键 sbit key_C=P1^6; //测量电容按键 sbit key_L=P1^7; //测量电感按键 sbit R_out=P1^2; //测量电阻信号输入 sbit C_out=P1^3; //测量电容信号输入 sbit L_out=P1^4; //测量电感信号输入 //声明子函数 void delayms(uint xms); //延时函数 void write_com(uchar com); //液晶写命令函数 void write_data(uchar date); //液晶写数据函数 void led_init(); //液晶初始化函数 void t_init(); //定时器0初始化函数 void keyscan(); //键盘检测函数(确定被测元件为电阻、电容或电感) void display_f(ulong f); //频率显示函数 void display_R(ulong R); //电阻显示函数 void display_C(uint C); //电容显示函数 void display_L(uint L); //电感显示函数 //主函数 void main() { led_init(); t_init(); keyscan(); write_com(0x01); while(1) { display_f(f); switch(a) { case 1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break; case 2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break; case 3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break; } } } //中断函数 void T0_count() interrupt 1 { switch(a) { case 1:while(R_out); while(!R_out); TH0=0; TL0=0; while(R_out); while(!R_out); th0=TH0; tl0=TL0; TR0=0; break; case 2:while(C_out); while(!C_out); TH0=0; TL0=0; while(C_out); while(!C_out); th0=TH0; tl0=TL0; TR0=0; break; case 3:while(L_out); while(!L_out); TH0=0; TL0=0; while(L_out); while(!L_out); th0=TH0; tl0=TL0; TR0=0; break; } f=1000000.0/1.085069/(th0*256+tl0)+0.5; } //延时函数 void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } //液晶写命令函数 void write_com(uchar com) { lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; } //液晶写数据函数 void write_data(uchar date) { lcdrs=1; P0=date; delayms(5); lcden=1; delayms(5); lcden=0; } //液晶初始化函数 void led_init() { lcden=0; write_com(0x38); //设置16×2显示,5×7点阵,8位数据接口 write_com(0x0c); //设置开显示,不显示光标 write_com(0x06); //写一个字符后地址指针加1 write_com(0x01); //显示清0,数据指针清0 write_com(0x80); //显示欢迎界面 for(num=0;num<8;num++) { write_data(table1[num]); delayms(5); } } //定时器0初始化函数 void t_init() { TMOD=0x01; //设置定时器0工作方式1(M1M0=0x0001) TH0=0; //装初值 TL0=0; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 } //键盘检测函数(确定被测元件为电阻、电容或电感) void keyscan() { if(key_R==0) { delayms(10); if(key_R==0) a=1; } else if(key_C==0) { delayms(10); if(key_C==0) a=2; } else if(key_L==0) { delayms(10); if(key_L==0) a=3; } else while(key_R&&key_C&&key_L); //按键按下时退出死循环 } //频率显示函数 void display_f(ulong f) { uchar count=0; ulong f0; f0=f; while(f) { f=f/10; count++; } for(num=5+count;num>5;num--) { table2[num]=f0%10+48; f0=f0/10; } write_com(0x80); for(num=0;num<6+count;num++) { write_data(table2[num]); delayms(5); } } //电阻显示函数 void display_R(ulong R) { uchar count=0; ulong R0; R0=R; while(R) { R=R/10; count++; } for(num=6+count;num>6;num--) { table3[num]=R0%10+48; R0=R0/10; } write_com(0x80+0x40); for(num=0;num<7+count;num++) { write_data(table3[num]); delayms(5); } } //电容显示函数 void display_C(uint C) { uchar count=0; uint C0; C0=C; while(C) { C=C/10; count++; } for(num=5+count;num>5;num--) { table4[num]=C0%10+48; C0=C0/10; } write_com(0x80+0x40); for(num=0;num<6+count;num++) { write_data(table4[num]); delayms(5); } } //电感显示函数 void display_L(uint L) { uchar count=0; uint L0; L0=L; while(L) { L=L/10; count++; } for(num=5+count;num>5;num--) { table5[num]=L0%10+48; L0=L0/10; } write_com(0x80+0x40); for(num=0;num<6+count;num++) { write_data(table5[num]); delayms(5); } }
2021年02月14日
1,136 阅读
5 评论
3 点赞
2021-02-13
如何判断运放是工作在线性区还是非线性区
一般来说,1.有负反馈的都是在线性区。比如各种同相、反相、差分放大电路都属于这种;2.无反馈(亦称开环),或正反馈工作在非线性区。如比较器、振荡器电路都属于这类。另外多说一句,这二者的区别本质上是由运放的增益非常大(至少上百万)决定的。集成运放工作于线性区时,就是处于闭环状态下,这时候运放的输出电压与输入信号电压之间存在某种特定的线性(函数)关系。集成运放工作于非线性区时,就是处于开环状态下,这时候运放的输出电压会接近工作电源的正电压或负电压,与输入信号电压没有线性关系。(1)有负反馈才可能工作在线性范围.(2)输出不饱和就是在线性范围.积分电路工作在线性范围,而矩形波电路(正反馈)输出不是正饱和就是负饱和,一定是非线性的.通常认为理想的集成运放具有下列特性:开环电压增益 ;差模输入电阻 ;输出电阻 ;共模抑制比 ;上限截止频率 ;差模输入电阻 ,说明输入电压没有损耗。输出电阻 ,说明带负载能力强。共模抑制比 ,说明抑制零点漂移能力强。上限截止频率 ,说明对各段信号,不论是低频、中频、高频都能有效放大。根据理想化条件,理想运放在线性区的特点,当集成运算放大器线性工作时,应满足 ,由于输出电压 为有限值, ,所以输入差模电压 必为0,即 由此得到 ,所以同相输入与反相输入端电压相等。又根据理想条件集成运放的差模输入电阻趋于无穷大,所以流进运放的两输入端电流 ,后面的 和 都用 表示,且。通过以上分析,我们可以得到理想运放的两个重要的特点。一个是虚短,另一个虚断。虚短:由于两输入端之间的电压差为0,相当于两输入端短路,但又不是真正的短路,故称为“虚短”。虚短实际上指的是两输入端的电压相同,也就是 。虚断:由于 ,相当于两输入端开路,但又不是真正的断开,故称为“虚断”,虚断表明两输入端没有电流。显然,理想运放是不存在的,但只要实际运放的性能较好,其应用效果与理想运放很接近,就可以把它近似看成理想运放。下面,我们理想运放的基本应用。集成运放的两种基本电路,一种是反相输入放大电路,一种是同相输入放大电路。要使运放工作在线性放大状态,必须引入负反馈。因为运放的开环增益很大,开环时很小的输入电压,不引入负反馈,运放本身的失调就会使它超出线性范围。
2021年02月13日
4,126 阅读
0 评论
10 点赞
2021-02-13
信号与系统公式大全-傅里叶、拉普拉斯、z变化、卷积
暂无简介
2021年02月13日
348 阅读
0 评论
2 点赞
2021-02-13
VHDL语言38译码器
元件查看端口方法Tool>>Netlist Viewers>>RTL Viewerslibrary ieee; use ieee.std_logic_1164.all; entity decoder38 is port (a,b,c,g1,g2,g3:in std_logic; y:out std_logic_vector(7 downto 0)); end decoder38; architecture rtl of decoder38 is signal cba: std_logic_vector(2 downto 0); begin cba<=c&b&a; process(cba,g1,g2,g3) begin if (g1='1' and g2='0' and g3='0') then case cba is when "000"=>y<="11111110"; when "001"=>y<="11111101"; when "010"=>y<="11111011"; when "011"=>y<="11110111" ; when "100"=>y<="11101111" ; when "101"=>y<="11011111" ; when "110"=>y<="10111111" ; when "111"=>y<="01111111"; when others=>y<="XXXXXXXX"; end case; else y<="11111111"; end if; end process; end rtl;
2021年02月13日
212 阅读
0 评论
1 点赞
2021-02-13
时域频域对应关系
1、时域离散,频域周期离散信号相当于连续信号与一个冲激序列的乘积, 到频谱则是卷积, 而冲激序列的FT也是冲激序列, 因此原非周期频谱通过卷积形成了周期性的频谱2、时域连续,频域非周期3、时域周期,频域离散4、时域非周期,频域连续5、时域脉冲,频域直流6、时域直流,频域脉冲例如判断:在时域对连续信号进行抽样,在频域中,所得频谱是原信号频谱的周期延拓答:抽样,等于把连续信号采样为离散的序列了,所以频域就周期化
2021年02月13日
181 阅读
1 评论
1 点赞
2021-02-01
【励志视频】人为什么要活着?请不负此生!
请不负此生!
2021年02月01日
94 阅读
0 评论
2 点赞
2021-01-28
KMP遍历算法
KMP算法是一种改进的字符串匹配算法,关键是利用匹配后失败的信息,尽量减少模式串(W)与主串(T)的匹配次数以达到快速匹配的目的。具体实现就是实现一个next() 函数,函数本身包含了模式串的局部匹配信息。时间复杂度 O(m+n)。 如果考虑一般的方法,我们可以将T[0]和W[0]进行匹配,如果相同则匹配下一个字符,直到出现不相同的情况,此时我们会丢弃前面的匹配信息,然后把T[1]跟W[0]匹配,循环进行,直到主串结束,或者出现匹配成功的情况。这种丢弃前面的匹配信息的方法,时间复杂度为O(m*n)。 学习代码:#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; //get_next函数 vector<int> get_next(string b) //用vector来保存子串b的next数组 { vector<int> result; //添加元素并且默认赋值为0,建立一个空的容器就 int i, j; i = 0; j = -1; result.push_back(-1); //将容器首元素赋值,作为标识使用 while (i < b.size() - 1) { if (j == -1 || b[i] == b[j]) //b[i]表示后缀的单个字符,b[j]表示前缀的单个字符 { ++i; ++j; //这里的其实是优化重复的字符 //可以直接用result.push_back(j);代替下面的判断语句 if (b[i] != b[j]) result.push_back(j); else if (i == 1) result.push_back(j); else result.push_back(result[j]); } else j = result[j]; //若字符不同,前缀字符回溯 } return result; } //KMP函数 int KMP(string a, string b) { vector<int> next = get_next(b); //调用get_text函数 int i = 0; int j = 0; //注意size函数返回的类型是string::size_type是无符号数 //若i<主串的长度且j<子串的长度时,循环继续 while (i < (int)a.size() && j <(int)b.size()) { if (j == -1 || a[i] == b[j]) //两字母相等则继续,相对于朴素算法增加了 { ++i; ++j; } else { j = next[j]; //若不相等,j退回合适的位置 } } if (j == b.size()) { //这里返回的是匹配字符开始的下标位 return i - j; } else { return -1; } } int main() { string str; cout << "enter the string:"; cin >> str; string pattern; cout << "enter the pattern:"; cin >> pattern; int result = KMP(str, pattern); cout << result << endl; }
2021年01月28日
170 阅读
0 评论
0 点赞
1
...
24
25