基于单片机的弱信号过零检测测频系统仿真Word格式.docx
《基于单片机的弱信号过零检测测频系统仿真Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的弱信号过零检测测频系统仿真Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
4.3.2AT89C51单片机复位电路3
5低频弱信号测频系统源程序3
5.1程序流程图设计3
5.2源程序设计3
5.2.1程序总体分析3
5.2.2TCON寄存器初值设定3
5.2.3TMOD寄存器初值设定3
5.2.4IE寄存器初值设定3
5.2.5程序源代码3
6低频弱信号测频系统调试及测试结果与分析3
6.1实验调试3
6.2实验结果3
总结3
致谢3
参考文献3
1绪论
微弱信号(无噪声)的单片机测频系统分为三部分。
第一为信号放大部分,第二为信号转换部分,第三为信号处理部分。
信号放大部分对输入信号进行放大,使得信号能被后续电路所识别和处理,此部分由两个三极管作为放大电路,一个三极管的放大倍数β=5,经过两级放大继而推动后续处理电路。
信号转换部分对前级放大的信号进行转换为后级单片机能处理的信号。
此部分由一个桥式整流电路连接一个三极管组成。
桥式整流电路对信号进行整流使信号没有负向电流(电压),全为正向电流(电压),当信号出现不出现零点时,使得三极管导通,三极管输出低电平,当信号产生零点时,三极管输出高电平。
此高低电平即为单片机能处理的信号。
信号处理部分即为单片机最小系统加数码显示屏组成。
单片机对前级输出的高低电频进行处理,频率即为1S内信号周期变化的次数,据此可在1S内测定信号的过零点即为信号的频率。
之后由单片机计算并查表输出所得数据的百十个位和小数点给数码显示屏,数码显示屏利用动态扫描的方式显示频率。
动态显示方法输出数码,利用人眼的停留效果和数码管的“余辉”作用实现功能。
轮流点亮数码管(一个时刻内只有一个数码管是亮的),利用人眼的视觉暂留现象(也叫余辉效应),就可以做到看起来是所有数码管都同时亮了,这就是动态显示,也叫做动态扫描。
只要刷新率大100Hz,即刷新时间小于
10ms,就可以做到无闪烁,这也就是我们的动态扫描的硬性指标。
2设计任务
2.1课程设计的目的及意义
(1)了解过零检测方法及原理;
(2)熟练掌握单片机的基础工程应用;
(3)培养自我学习和设计的能力。
2.2课程设计任务与要求
(1)认真分析和领会课程设计题目含意,查阅和运用相关技术资料,提倡独立思考,锻炼动手能力;
(2)仔细观察实验现象,认真做好实验记录,要准确、规范、独立地完成实验内容,自觉培养严谨求实的科学作风;
(3)认真完成课程设计论文(应包含电路图、元器件清单、仿真调试及验证结论、设计总结等内容)。
2.3实验器材
1.PC;
2.Proteus仿真软件。
2.4课程设计技术指标
输入信号幅度:
27mV,测频范围:
0~27×
10Hz,显示精度为小数点1位。
3低频弱信号测频系统工作原理
3.1低频弱信号测频系统概述
对于低频弱信号的测频首先对弱信号进行放大,使信号能推动后级电路并且能被单片机系统处理。
进而利用三极管作为一个电子开关(三极管导通时集电极为低电平,当三极管截止时,可把三极管看做一个大电阻,集电极输出高电平),输出单片机能识别的高低电平,此高低电平的输出跟信号的过零点成正比关系,即信号非过零时就输出低电平,当信号过零时输出高电平。
单片机对高电平的次数进行统计得到信号的变化频率从而得到信号的频率。
3.2低频弱信号测频系统原理
3.2.1原理基本构造图
由放大电路和反馈网络形成自激振荡。
输出
输入
图3.1弱信号测频系统框图
弱信号低频测频系统的原理框图如图3.1所示,弱信号进过放大足以被系统检测和处理,经过信号转换把信号的过零变化转化为单片机能识别的高低电平的转换,之后由单片机对高低电平进行处理,测量出系统的频率并输出给显示设备。
3.2.2电路仿真原理图
系统由V3作为信号源产生一个27mV,0~270HZ的低频弱信号,并经过Q2、Q3两级三极管放大到峰峰值为1mV的信号,并经过桥式整流电路BR1整流输出给Q1和Q5两个三极管构成的电子开关,因为三极管由截止区过度到饱和区需要经过线型区,开关效果不会有明确的界线。
为使三极管开关效果明确,故串接两个三极管。
所以后一个三极管的状态只存在于饱和和截止两种状态,输出给单片机即为高低电平。
单片机使用外部中断(INT0边沿触发方式),记录信号1S内的过零次数,由此得出信号的频率,输出给7SEG-MPX4-CC数码管利用动态显示的方法显示频率。
动态显示即利用数码管的“余辉”作用,利用人眼的短暂视觉停留,通过选通数码管的片选端逐位显示百位个位和十位。
图3.2电路仿真原理图
3.3三极管放大原理
晶体三极管(以下简称三极管)按材料分有两种:
锗管和硅管。
而每一种又有NPN和PNP两种结构形式,但使用最多的是硅NPN和锗PNP两种三极管,(其中,N表示在高纯度硅中加入磷,是指取代一些硅原子,在电压刺激下产生自由电子导电,而p是加入硼取代硅,产生大量空穴利于导电)。
两者除了电源极性不同外,其工作原理都是相同的,下面仅介绍NPN硅管的电流放大原理。
对于NPN管,它是由2块N型半导体中间夹着一块P型半导体所组成,发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结,三条引线分别称为发射极e、基极b和集电极c。
当b点电位高于e点电位零点几伏时,发射结处于正偏状态,而C点电位高于b点电位几伏时,集电结处于反偏状态,集电极电源Ec要高于基极电源Ebo。
在制造三极管时,有意识地使发射区的多数载流子浓度大于基区的,同时基区做得很薄,而且,要严格控制杂质含量,这样,一旦接通电源后,由于发射结正偏,发射区的多数载流子(电子)及基区的多数载流子(空穴)很容易地越过发射结互相向对方扩散,但因前者的浓度基大于后者,所以通过发射结的电流基本上是电子流,这股电子流称为发射极电流了。
由于基区很薄,加上集电结的反偏,注入基区的电子大部分越过集电结进入集电区而形成集电集电流Ic,只剩下很少(1-10%)的电子在基区的空穴进行复合,被复合掉的基区空穴由基极电源Eb重新补给,从而形成了基极电流Ibo。
根据电流连续性原理得:
Ie=Ib+Ic这就是说,在基极补充一个很小的Ib,就可以在集电极上得到一个较大的Ic,这就是所谓电流放大作用,Ic与Ib是维持一定的比例关系,即:
β1=Ic/Ib式中:
β1--称为直流放大倍数,集电极电流的变化量△Ic与基极电流的变化量△Ib之比为:
β=△Ic/△Ib式中β称为交流电流放大倍数,由于低频时β1和β的数值相差不大,所以有时为了方便起见,对两者不作严格区分,β值约为几十至一百多。
三极管是一种电流放大器件,但在实际使用中常常利用三极管的电流放大作用,通过电阻转变为电压放大作用。
三极管放大时管子内部的工作原理1、发射区向基区发射电子电源Ub经过电阻Rb加在发射结上,发射结正偏,发射区的多数载流子(自由电子)不断地越过发射结进入基区,形成发射极电流Ie。
同时基区多数载流子也向发射区扩散,但由于多数载流子浓度远低于发射区载流子浓度,可以不考虑这个电流,因此可以认为发射结主要是电子流。
2、基区中电子的扩散与复合电子进入基区后,先在靠近发射结的附近密集,渐渐形成电子浓度差,在浓度差的作用下,促使电子流在基区中向集电结扩散,被集电结电场拉入集电区形成集电极电流Ic。
也有很小一部分电子(因为基区很薄)与基区的空穴复合,扩散的电子流与复合电子流之比例决定了三极管的放大能力。
3、集电区收集电子由于集电结外加反向电压很大,这个反向电压产生的电场力将阻止集电区电子向基区扩散,同时将扩散到集电结附近的电子拉入集电区从而形成集电极主电流Icn。
另外集电区的少数载流子(空穴)也会产生漂移运动,流向基区形成反向饱和电流,用Icbo来表示,其数值很小,但对温度却异常敏感。
3.4三极管电子电子开关
三极管不仅可以作为放大元器件,还可利用三级管的特性作为一个电子开关使用。
三极管是以B极电流IB作为输入,操控整个三极管的工作状态。
若三极管是在截止区,IB趋近于0(VBE亦趋近于0),C极与E极间约呈断路状态,IC=0,VCE=VCC。
若三极管是在线性区,B-E接面为顺向偏压,B-C接面为逆向偏压,IB的值适中(VBE=0.7V),
IC=βIB
呈比例放大,Vce
=Vcc-RcI
c=V
cc-Rc
hFEIB可被IB操控。
若三极管在饱和区,IB很大,VBE=0.8V,VCE=0.2V,VBC=0.6V,B-C与B-E两接面均为正向偏压,C-E间等同于一个带有0.2V电位落差的通路,可得Ic=(Vcc-0.2)/Rc
,Ic与IB无关了,因此时的IB大过线性放大区的IB值,
Ic<
hFE
IB
是必然的。
三极管在截止态时C-E间如同断路,在饱和态时C-E间如同通路(带有0.2V电位降),因此可以作为开关。
控制此开关的是IB,也可以用VBB作为控制的输入讯号。
图3.3和图3.4分别显示三极管开关的断路、通状态,及其对应的等效电路。
图3.3三极管断路等效电路图3.4三极管通路等效电路
3.5改良型电子开关
改良三极管开关:
因为三极管由截止区过度到饱和区需经过线性区,开关的效果不会有明确的界线。
所以会导致电路开关效果不明显,使单片机记录产生误差不能精确算出中断次数。
为使三极管开关的效果明确,可串接两三极管,电路如图3.5所示。
图3.5改良型电子开关
若单独一个管子做开关电路,其截止工作状态是基极电压在0-0.7V(PN结正向电压)这个范围内都是截止的,但是电压增大,可能有漏电流增大,开关效果不好。
而当用两个管子做开关的话,后面(带LED灯那个管子)的管子其基极电压只有最大电压12V(前面管子截止)和0.2V(前面一个管子导通)两种电压,这样就是完全的开或者关状态了,而不是有个0-0.7的中间电压。
以上可以看出几乎任何一种型号三极管都可一做为电子开关来使用,如果条件允许也可用来控制加热设备。
可见开关三极管只是一个笼统的概念,不过市面上也有少数的专用开关三极管出售。
故用两个三极管构成了一个改良的电子开关,提高了精确度。
4低频弱信号测频系统参数计算和器件选择
4.1参数计算
根据三极管的工作特性,设定基极电阻为280K,集电极电阻为3K,可用电流和电压表测出输入输出电压并根据公式4.1计算出三极管的放大倍数Ȧ。
(4.1)
根据输入电压Ui=0.027V和输出电压Uo=0.23V,带入公式可知电压放大倍数约为10。
通过以上数据通过公式4.2计算三极管的Q值
IBQ=(4.2)
4.2元器件清单
表4.2系统元器件清单
类型参数数量
电阻280K2
电阻3K3
电阻1002
三级管NPN4
整流器BRIGE1
单片机AT89C511
晶振CRYSTAL1
电容35μf4
排电阻RESPACK-81
按钮BUTTON1
数码显示屏7SEG-MPX4-CC1
4.3单片机最小系统
4.3.1晶振电路
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,如图4.1所示。
晶振结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
AT89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
图4.1单片机外部晶振电路
4.3.2AT89C51单片机复位电路
在电路图中,电容的的大小是10uf,电阻的大小是10k。
所以根据公式,可以出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。
也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。
这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。
所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。
在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。
所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。
随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。
单片机系统自动复位。
图4.2复位电路图
5低频弱信号测频系统源程序
5.1程序流程图设计
否
是
5.2源程序设计
5.2.1程序总体分析
频率即为1S内信号周期变化的次数,据此可在1S内测定信号的过零点次数即为信号的频率。
首先确定单片机的初值。
使用T0作为计时器,和使用方式1作为计时方式,并以查询的方式并使用INT0作为外部中断。
故需对TCON寄存器和TMOD寄存器以及IE寄存器进行初值计算。
5.2.2TCON寄存器初值设定
TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。
图5.1TCON寄存器结构图
各位定义如下:
TF1:
定时器1溢出标志位。
当定时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。
进入中断服务程序后,由硬件自动清”0”,在查询方式下用软件清“0”。
TR1:
定时器1运行控制位。
由软件清“0”关闭定时器1。
当GATE=1,且/INT1为高电平时,TR1置“1”启动定时器1;
当GATE=0,TR1置“1”启动定时器1。
TF0:
定时器0溢出标志。
其功能及操作情况同TF1。
TR0:
定时器0运行控制位。
其功能及操作情况同TR1。
IE1:
外部中断1请求标志位。
IT1:
外部中断1触发方式选择位。
当IT1=0,为低电平触发方式;
当IT1=1,为下降沿触发方式。
IE0:
外部中断0请求标志位。
IT0:
外部中断0触发方式选择位。
当IT0=0,为低电平触发方式;
当IT0=1,为下降沿触发方式。
所以设定TCON初值为:
00000001。
5.2.3TMOD寄存器初值设定
TMOD:
定时器/计数器模式控制寄存器(TIMER/COUNTERMODECONTROLREGISTER)
定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。
其格式为:
图5.2TMOD结构图
其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:
GATE——门控制。
GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
当INT0引脚为高电平时TR0置位,启动定时器T0;
当INT1引脚为高电平时TR1置位,启动定时器T1。
GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
C/T——功能选择位
C/T=0时为定时功能,C/T=1时为计数功能。
置位时选择计数功能,清零时选择定时功能。
M0、M1——方式选择功能由于有2位,因此有4种工作方式M1M0工作方式计数器模式TMOD(设置定时器模式),00方式013位计数器TMOD=0x00,01方式116位计数器TMOD=0x01,10方式2自动重装8位计数器TMOD=0x02,11方式3T0分为2个8位独立计数器,T1为无中断重装8位计数器。
因为选用T0并用方式1计时,故TMOD初值设定为00000001。
单片机晶振频率为12MHZ,则经过12分频后,每个机器周期Tcy应为1μs。
因为方式1计时最大值为
=65.536ms,因此采用循环计数的方式实现。
为了便于循环,可选定计时50ms,循环20次即为1s。
定时50ms,计数次数应为50ms/1μs=50×
1000=50000。
T0初值即为65536-50000=15536,15536转换为16进制即为3C0BH。
故TH0初值为3CH,TL0初值为B0H。
5.2.4IE寄存器初值设定
CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的,IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址。
AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,允许或禁止某个中断,当对IE的EA位清0时,屏蔽全部中断源。
IE结构如图5.3所示:
图5.3IE寄存器结构图
EA为中断总开关,ES为串口中断允许,ET1和ET0为T1、T0中断允许位,EX1和EX0为外部中断INT0和INT1中断允许位,故IE寄存器初值为10000001,转换为16进制即为81H。
在C语言中:
外部中断0(INT0),对应中断号是0,中断入口地址0003H。
定时/计数器0(T1),对应中断号1,中断入口地址000BH。
外部中断1(INT1),中断号2入口地址0013H。
定时/计数器1(T1)中断号3入口地址001BH。
串行口中(RI/TI)中断号4入口地址0023H。
所以序中断标号选用0。
在C语言中无符号字符型(unsignedchar)值域为0到255,而我们要记录的数据大于255,故变量选用无符号整型(unsignedint),其值域为0到65535。
5.2.5程序源代码
#include"
reg51.h"
unsignedcharc=0;
sbitP20=P2^0;
sbitP21=P2^1;
sbitP22=P2^2;
sbitP23=P2^3;
unsignedchara,i;
unsignedintt=0;
unsignedcharbw,sw,gw;
unsignedchartab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsignedchartab2[]={0xbF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};
voidinto()interrupt0
{
c=c+1;
}
voidmain(){
TMOD=0x01;
TH0=0X3C;
TL0=0XB0;
TCON=0x01;
IE=0X81;
TR0=1;
while
(1){
while(t!
=20){if(TF0==1){t++;
TF0=0;
TH0=0X3C;
TL0=0XB0;
}}
IE=0x00;
TR0=0;
a=c;
bw=a/100;
sw=(a-bw*100)/10;
gw=a-bw*100-sw*10;
P23=0;
P0=tab[bw];
for(i=0;
i<
25;
i++);
P23=1;
P22=0;
P0=tab[sw];
for(i=0;
P22=1;
P21=0;
P0=tab2[gw];
P21=1;
P20=0;
P0=0x3F;
P20=1;
}
6低频弱信号测频系统调试及测试结果与分析
6.1实验调试
连接好个各部分电路,在两级三极管放大部分调整静态工作点,使信号不失真。
在整流电路部分保证信号不失真。
6.2实验结果
如图6.1所示为最终结果显示
图6.1数码管显示
总结
本次课程设计让我受益匪浅,我更加深刻的理解了课本上的知识,很多平时模棱两可的知识点都认真复习并实践了。
我对电子电路设计提升了认识,我意识到我们现在,所学的知识将来都是要付诸实践的,所以一切都要从实际出发、理论联系实际,这样才能正确发挥我们所具备的能力。
在这次课程设计中,我明白了课程设计的任务一般是设计,组装并调试一个简单的电子电路装置。
需要我们综合运用《模拟电子技术基础》课程的知识,通过调查研究、查阅资料、方案论证与选定;
设计和选取电路和元器件;
组装和调试电路;
测试指标和分析讨论,完成设计任务。
在这次课程设计中,我学会了怎样根据课题的要求去设计电路和调试电路,动手能力得到很大提高。
从中我发现自己并不能很好的熟练使用我所学的模电知识。
在以后学习中我要加强对使用电路的设计和选用能力,但由于电路比较简单、定型,不是真实的生产和科研任务,所以我们基本上能有章可循,完成起来并不困难。
把过去熟悉的定型分析和定量计算逐步和工程估算、实验调整等手段结合起来,掌握工程