多功能测频仪设计与实现论文修改Word格式文档下载.docx
- 文档编号:21540433
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:19
- 大小:499.59KB
多功能测频仪设计与实现论文修改Word格式文档下载.docx
《多功能测频仪设计与实现论文修改Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《多功能测频仪设计与实现论文修改Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
本课题就是用单片机做为电路的控制系统,设计一个能测量高精度的数字频率计,通过单片机MCU定时器定时测量单位时间内待测信号的脉冲数从而达到测量信号频率的目的,这个单位时间是根据单片机IC内部自带的定时器编程决定的,通常情况下统计每秒内待测信号的脉冲个数,此时称闸门时间为1秒。
由于51单片机为8位机且内部含有两个16位定时/计数器,当闸门时间定为1S定时/计数器最大只能计数到65535,即频率测量只能测量到0~65535Hz。
闸门时间可根据需求设置大小,闸门时间设置越长,得到的频率值就越准确,但测量范围也就会越小。
闸门时间设置越短,测量频率值越大,但测量的频率精度就受影响。
2.总体方案设计
2.1方案比较
方案1:
该方案主要以STC89C52单片机最小系统为核心,利用单片机的定时计数功能来实现对信号脉冲计数,并且利用单片机控制显示设备LCD将测出的数据显示在液晶屏,其原理框图如2.1所示
图2.1单片机测频原理框图
方案2:
该方案主要以数字逻辑器件为核心,主要分为555振荡电路,逻辑控制电路,波形整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分,其原理框图如图2.2所示
图2.2数字逻辑器件测频原理框图
方案3:
该方案主要以现场可编程逻辑器件FPGA结合数字逻辑电路设计,以等精度测频法为基本原理进行测频。
前提是需要学习数字逻辑编程语言VHDL语言。
图2.3等精度测频原理
2.2方案论证
本方案主要以单片机为核心,将待测信号先进入波形整形电路中进行整形,待测信号主要为正弦波、三角波、方波等。
利用STC89C52单片机的定时器/计数器功能对待测信号进行脉冲计数,然后根据公式转换得到真实的测量信号值。
利用单片机的定时器门控信号GATE进行时间控制可以实现脉冲宽度的测量。
对定时器/计数器T1来讲,如果GATE=0,必须使软件控制位TR1=1,且INT0(外部中断0)I/O电平为高电平时方可启动定时器T1,即定时器/计数器T1的启动要受外部中断信号INT0的影响。
利用此特点,被测脉冲信号从外部中断INT0端引入,其上升沿启动定时器/计数器T1计数,遇到下一个上升沿停止T1计数。
定时器/计数器的计数值乘以机器周期即为脉冲信号宽度,下图为脉冲宽度测量的原理。
图2.3脉冲宽度测量过程
本方案使用大量的数字逻辑器件,将待测量信号经过信号整形电路变成计数器所能识别的脉冲信号,要保持其频率不变,否则会影响其测量精度。
同时555振荡电路提供标准时间基准信号,其输出高电平持续时间1s,当1s信号到来时打开闸门,让待测脉冲信号通过闸门计数器开始计数,直到1s闸门信号结束时,关闭闸门停止计数。
若在闸门时间1s内计数器统计的脉冲个数为N,则待测信号的频率Fx=NHz。
逻辑控制电路的作用有两个:
一产生清零脉冲信号,使计数器每次计数时从零开始计数;
二是产生锁存脉冲信号,锁定显示器上的数字值稳定是。
以现场可编程逻辑器件FPGA为核心的等精度数字测频仪涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模的FPGA芯片难以实现,而且用数字时序信号难以控制显示电路显示正常的信号测量值。
使用FPGA做测频仪需要采用数字逻辑电路编程语言VHDL,这种语言编程难度高而且使用较少。
2.3方案选择
比较上述三种方案,方案1使用单片机测量信号频率,使用的元器件少,原理简单,但需要编写程序进行测量。
方案2则使用了大量的数字逻辑元器件,电路原理复杂,而且555振荡电路不能保证输出精准的时基信号而且硬件调试麻烦,如要测量高频的信号还需要增加分频电路。
方案3需要性能较好的FPGA开发板,需要学习数字逻辑编程语言VHDL,实现起来难度很大。
基于上述比较,方案1测量原理简单易操作,而且成本低廉可方便推广使用。
3.系统硬件电路设计
3.151单片机介绍
51单片机是目前大学生电子类试验应用最多的微型计算机系统,属于嵌入式微控制器,英文缩写为MCU。
它将计小型算机系统集成到了一个芯片,其中集成功能块含有:
中央处理器(CPU)、I/O口、定时器/计数器、随机存储器(RAM)、只读存储器(ROM)等等。
一些包含外围电路系统的单片机学习板还包括显示器,A/D转换器等。
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位机,片内含8KBYTE系统可编程Flash只读程序存储器。
STC89C52采用了经典的MCS-51内核使得芯片具有传统51单片机不具备的功能。
在单芯片上采用高密度、非易失性存储技术生产,同时兼容标准8051指令系统及引脚,因而使得STC89C52单片机成为众多嵌入式控制应用系统提供灵活有效的解决方案
3.1.1复位电路
复位是单片机最小系统工作必不可少的操作,是引导单片机从程序初始化开始运行,只要在RESETI/O加上2个机器周期以上的高电平信号,就可使51单片机复位。
复位的主要功能是把MCU程序计数器PC初始化为0000H,使51单片机从0000H单元开始运行程序。
除了进入系统的正常初始化之外,当系统程序跑飞或操作错误使系统处于死锁状态,为摆脱这种状态就需按复位键重新启动。
单片机的复位电路通常采用上电复位和按钮复位的两种方式。
复位电路有高电平复位和低电平复位两种,由于51单片机只支持高电平复位,所以本设计采用图3.1所示的按钮复位电路。
按钮复位是通过外部复位电路的电容充电来实现的,只要VCC的上升时间不超过1ms,就可以实现复位。
51单片机系统复位后寄存器状态值如表3-1所示。
图3.151单片机复位电路
表3-1复位时片内各寄存器的状态
寄存器
复位状态
PC
0000H
TMOD
00H
Acc
TCON
PSW
TH0
B
TL0
SP
07H
TH1
DPTR
TL1
P0-P3
FFH
SCON
IP
XXX00000B
SBUF
XXXXXXXXB
IE
0XX00000B
PCON
0XXX0000B
3.1.2时钟电路
时钟信号对单片机来说犹如心跳对人们生命一样重要,单片机各功能部件工作都是以时钟信号频率为基准,有条不紊地地工作。
因此,时钟信号频率直接影响单片机的运行速度,时钟电路的稳定性也将直接影响单片机系统的稳定性。
STC89C52单片机内部有一个用于构成振荡器的高增益反相放大器,该反相放大器的输入端为芯片引脚XTAL1(pin_18),输出端为引脚XTAL2(pin_18)。
这两个引脚跨接在石英振荡器和微调电容两端,就构成一个稳定的自激振荡器。
单片机振荡器电路如图3.4所示:
图3.2晶振电路
3.1.2单片机最小系统
单片机最小系统是是单片机工作的核心部分,只要最小系统电路正常时单片机才能驱动一些外围设备电路,才能完成想要完成的事项。
图3.351单片机最小系统
3.2波形整形电路
电压比较器是一种用来比较输入电压信号Vi和参考电压VREF的电路,当参考电压VREF加到反向输入端、Vi从同相端输入,当Vi-VREF>
0时,由于运放的开环增益很高,使得输出信号进入正饱和;
当Vi-VREF<
0时,输出信号进入负饱和。
整形电路采用专用的电压比较器LM311。
LM311是德州仪器公司生产的一款高精度电压比较器,其电源电压可支持单电源+5V到+30V,也可支持正负15V电源,其输入偏移电压为7.5mV,失调电流为50nA,偏置电流为250nA,其输出端是集电极开漏,所以在使用时输出端需接一个上拉电阻。
其管脚图如图3.4所示,由于其输出端是集电极开漏,因此输出端需接上拉电阻。
图3.4LM311管脚图
整形电路是用电子仿真软件Multism设计完成的,其电路图如下图3.5所示:
从信号源出来的正弦波信号从2管脚(同相输入端)输入,通过调节3管脚(反相输入端)的滑动变阻器的阻值,调节参考基准电压,从7管脚输出比较出的信号,由于其输出端是集电极开漏,所以需接一个上拉电阻,才有信号输出。
图3.5信号整形电路
显示电路是为了方便将测量的结果真实的反映出来,通常显示电路有3中,第一种是LED指示灯显示,通过亮灭表示状态,在这里显然不能用LED指示灯作为显示电路;
第二种是数码管显示,对于本次设计信号测频仪要显示测量的频率值、周期值、脉冲宽度等数据,为了保证显示测量信号的精确度至少需要5个数码管,直接采用51单片机I/O驱动数码管显示,显然单片机的I/O不够,必须通过串行转并行电路来驱动这些数码管,显然这种显示电路较为复杂;
第三种是采用液晶显示屏显示数据,只需要8位并行I/O个3个控制端口就可使液晶显示屏工作,而且可以显示很多数据。
在本课题设计中我选择简单易操作的LCD1602液晶屏作为显示电路。
液晶分子是一种高分子材料,因其特殊的物理、化学、光学特性,20世纪中期广泛开始应用在轻薄型显示设备上。
液晶显示器原理是以电流刺激液晶分子产生点、线、面并配合灯管构成画面,通常把各种液晶显示器都直接简称液晶。
液晶体积小、功耗低、现实操作简单,但有一个致命缺点是其使用温度范围很小,常用型液晶正常工作温度范围为0℃~+55℃,存储温度范围为-20℃~+60℃。
图3.6LCD1602实物
LCD1602液晶显示屏是一种用来显示数字、字母、符号等信息的点阵液晶模块。
LCD1602能够显示的内容大小为两行,每行16个字符。
每个字符液晶模块是5X7和5X11点阵,每个点阵字符位都用来显示一个字符,每个字符之间都有一个点距的间隔,每行之间也有间隔,用来行列之间的分隔,因为有分隔所以无法显示图片等大面积连续信息。
图3.7LCD1602显示屏内容地址分布
图3.8单片机与LCD1602接口
由于LCD1602液晶独有的特点,只支持8位并口数据显示方式,因此只能采用并行接口方式与单片机连接。
在本设计中使用单片机的P0口作为数据端口与LCD1602连接。
3.4量程指示电路
在本课题设计中采用的51单片机包含两个16位定时/计数器,最大只能计数到65535,若采用脉冲定时计数法测量信号闸门设为1s时最大只能测量到65.535KHz,按要求要测量信号频率为1Hz-500KHz,显然设置闸门为1s不合适;
若设置时间闸门为100ms,则测量信号频率范围为10Hz-655.35KHz,可达到测量要求。
因此,在本课题设计中,采用两个闸门时间来测量频率为1Hz-55KHz的信号,1s闸门时间和100ms闸门时间。
当被测信号频率小于65KHz时,系统会自动采用1s闸门时间测量信号的频率,指示灯绿灯亮;
若被测信号频率大于65KHz时,系统会自动采用100ms闸门时间测量信号频率,指示灯红灯亮。
图3.9量程指示灯电路
测频仪是测量频率最常用的测量仪器之一,其设计原理是先将待测信号通过信号整形电路变成一个脉冲信号,然后通过闸门电路控制计数器计数,最后将计数结果送到译码显示电路里进行显示,其构成框图如图3.1所示:
图3.10测频仪测量原理框图
用单片机测量信号的频率时,门控电路和计数电路都可由单片机微控制器完成,因而大大减少了测量电路的复杂性和操作性。
单片机测频原理如下图所示:
图3.11单片机测频仪系统框图
从上图看出单片机测频仪系统由波形整形电路、单片机最小系统电路和显示电路组成。
当C/T=1时为计数方式,将待测信号经过整形电路输出与定时器T0的外部引脚连接,外部计数脉冲由T0I/O输入。
计数器的计数频率为单片机时钟的12分频构成,由于51单片机的指令周期为机器周期的12倍,又因为51单片机的外部晶振为12MHz,因而计数器的计数频率为1MHZ。
在本课题设计中通过控制闸门时间数待测信号的脉冲个数,然后根据公式进行真实测量值转换。
待测信号经信号整形电路输出后接在定时/计数器T0的外部引脚上,使用定时器/计数器T1做1s闸门控制。
4.系统软件设计流程
4.1KEILuvision4编程软件简介
KeiluVision是KeilSoftware公司发行的兼容51系列单片机C语言软件开发系统,这个系统使用标准c语言的语法来开发。
C语言和汇编语言相比,语法简单,可读性强,结构功能和后期可维护的性都要强于汇编语言。
所以简单易学易用,并且很大的加快了开发的周期和效率。
不仅如此,开发过程中还能嵌入汇编,也可以在必要的位置加入汇编,这样可以使程序达到接近于汇编的工作效率。
C51已被完全集成到uVision的集成开发环境中,这个集成的开发环境包含:
汇编,编译,实时操作系统,项目管理器,调试器等。
因此,Keiluvision为开发者们提供了灵活的开发环境。
图4.1启动Keil4编译软件
图4.2Keil4运行主界面
在Keil运行主界面里就可以完成程序的编写、编译、连接、调试等功能。
4.2PROTEUS仿真软件介绍
Proteus是英国电子实验中心公司出版的世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,真正实现了从概念到产品的完整设计。
其处理器模型支持51单片机、PIC单片机、AVR单片机、ARM和MSP430等在编译方面,它同时也支持IAR、Keil和MATLAB等多种编译器。
使用Proteus软件进行单片机系统仿真设计有利于培养学生的电路设计能力及仿真软件的操作能力,由于PROTEUS提供了实验室无法提供的大量的元器件,增加了修改电路设计的灵活性,提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因此广泛受电子爱好者喜欢,同时也普遍反映用这个软件学习单片机比单纯学习课本知识更容易接受,更容易提高。
实践证明,在用Proteus软件进行设计系统仿真成功之后再进行实际制作,能极大的提高工作效率。
图4.3Proteus软件启动界面
图4.4Proteus软件工作界面
在本课题设计中利用Keiluvision4编译软件编写单片机的运行程序并且检验程序是否成功编译。
通过Keiluvision4单步调试功能可以检测出程序的错漏从而进行改正。
程序编译成功后产生HEX文件,然后利用ProteusISIS软件把程序加载到原理图51单片机中进行仿真,通过液晶显示器LCD1602显示出待测信号频率大小,并与所参考信号频率相比较观察所编写的程序是否满足要求,是否符合设计要求的精度。
测出各频率范围的误差,如果不符合设计要求,可以通过改变单片机定时器的初始值或者优化程序的结构来减小误差增加精度!
4.3脉冲宽度测量的程序设计
图4.5脉冲宽度测量流程图
脉冲宽度测量原理:
通过待测信号的边沿触发来统计MCU的脉冲个数,通过前面的分析可以知道51单片机的指令周期为机器周期的12倍,即指令周期为1us。
脉冲宽度测量就是根据待测信号的电平状态计数单片机的指令数,因而得到待测信号的脉宽T:
软件分析:
先开始对I/O端口初始化,配置寄存器初始值;
然后判断待测信号电平状态,若待测信号为高电平继续等待,若待测信号为低电平,打开定时/计数器T1统计单片机时钟脉冲数,继续判断待测信号电平状态,若为高电平等待,直到下一次出现低电平时定时/计数器T1停止计数;
最后读取T1寄存器的值,通过相应转换得出待测信号的脉冲宽度值并显示到液晶显示器上。
图4.6脉冲频率测量流程图
脉冲频率测量原理:
脉冲频率测量就是根据单片机片内的定时/计数器设定闸门时间,统计站们时间内待测信号的脉冲个数,然后根据相应公式转换得到待测信号的频率值。
然后启动定时器、计数器,定时器主要是设定闸门时间,计数器是为统计待测信号的脉冲数,判断设定闸门时间是否结束,若闸门时间结束停止计数器计数;
最后将计数器寄存器里的值读取出来进行相应转换得到待测信号的频率值并显示出来。
5.系统仿真及调试
5.1硬件电路的仿真
在本课题硬件电路包含两部分,一部分是信号整形电路,即将正弦波、三角波、脉冲信号等变为方波信号,便于单片机计数器识别;
另一种是单片机控制电路和显示电路,主要是测量来自于信号整形电路输出信号的频率等参量,同时将这些参量值显示出来。
5.1.1信号整形电路仿真
图5.1正弦波变方波
输入1kHz的正弦波,输出1KHz的方波。
图5.2三角波变方波
输入1KHz的三角波,输出1KHz方波。
图5.3脉冲信号经过整形电路
输入1KHz的脉冲信号,输出1KHz方波。
5.1.2单片机测频仪仿真
图5.4测频仪仿真图一
当输入为10KHz的方波信号是,显示电路将单片机测量的信号频率值显示出来,同时量程指示电路绿灯亮,说明测量信号频率小于65.535KHz。
图5.5测频仪仿真图二
输入信号为200KHz的方波信号时,测频仪测量显示测量频率值为199.997KHz,量程指示电路红灯亮说明测量信号大于65.535KHz。
5.2实际测试
表5-1单片机测频仪数据测试
编号
输入信号频率
测量频率
频率差
误差
1
1Hz
0Hz
0%
2
10Hz
3
100Hz
4
1KHz
1000Hz
5
10KHz
10002Hz
2Hz
0.02%
6
50KHz
50008Hz
8Hz
0.016%
7
100KHz
100000Hz
8
250KHz
250001Hz
0.0004%
9
496KHz
498998Hz
-2Hz
10
500KHz
496353Hz
3647Hz
达到测量上限
测试数据分析:
本课题设计通过1S闸门时间统计待测信号的脉冲个数,当计数脉冲溢出时,溢出标号自加一次,当闸门时间结束时计算计数器的值因而得到待测信号的频率。
理论上可以测量大于1MHz的信号频率,仿真也可以实现测量大于1MHz的信号频率,实际上只能测量到490KHz。
5.3误差分析
在本课题测频仪设计中存在这三方面的误差,分析如下:
1、待测信号经过信号整形电路之后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 测频仪 设计 实现 论文 修改