数字频率计的设计与制作.docx
- 文档编号:10216295
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:27
- 大小:255.13KB
数字频率计的设计与制作.docx
《数字频率计的设计与制作.docx》由会员分享,可在线阅读,更多相关《数字频率计的设计与制作.docx(27页珍藏版)》请在冰豆网上搜索。
数字频率计的设计与制作
1.绪论
1.1课题背景
数字频率计是一种基础测量仪器,到目前为止已有30多年的发展史。
早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量数字频率计的技术水平,决定数字频率计价格高低的主要依据。
目前这些基本技术日臻完善,成熟。
应用现代技术可以轻松地将数字频率计的测频上限扩展到微波频段。
频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。
闸门时间也可以大于或小于一秒。
闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。
闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。
数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。
如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。
1.2课题研究的目的和意义
本课题的研究内容为数字频率计的单片机实现,单片机数字频率计以其可靠性高、体积小、价格低、功能全等优点,广泛地应用于各种智能仪器中,主要涉及信号的预处理、数据采集、计算、译码及量程的自动转换等功能模块的软硬件实现。
通过该项设计,可以将模拟电路及数字电路的理论知识运用于实际设计中,并熟练编程控制单片机的能力,同时提高分析问题和解决问题的能力。
2.总体方案设计
2.1方案比较
方案一:
本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描法把测出的数据送到数字显示电路显示。
其原理框图如图2.1所示:
图2.1方案一原理框图
方案二:
本方案主要以数字器件为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。
其原理框图如图2.2所示:
图2.2方案二原理框图
方案三:
本方案系统采用可编程逻辑器件(CPLD/FPGA)作为信号处理及系统控制核心,完成包括计数、门控、显示等一系列工作。
其原理框图如图2.3所示:
图2.3方案三原理框图
方案四:
本方案采用频率计模块(如ICM7216)构成,外部振荡部分选用一块高精度晶振体和两个低温系数电容构成10MHz并联振荡电路。
用转换开关选择10ms,0.1s,1s,10s四种闸门时间,同时量程自动切换。
缓冲电路是为了让频率计采用记忆方式,即计数过程中不显示数据,待计数过程结束后,显示测频结束,并将此显示结果保持到下一次计数结果,显示时间不小于1s,小数点位置随量程自动移动。
芯片驱动电路输出15mA—35mA的峰值电流,所以在5V电源下可直接点亮LED。
2.2方案论证
方案一:
本方案主要以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。
利用单片机的计数器和定时器的功能对被测信号进行计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
方案二:
本方案使用大量的数字器件,被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被侧信号的频率相同。
同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。
若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率Fx=NHz。
逻辑控制电路的作用有两个:
一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。
方案三:
本方案利用了CPLD的可编程和大规模集成的特点,使电路大为简化,但此题使用CPLD则不能充分发挥其特点及优势,并且测量精度不够高,导致系统性能价格比降低、系统功能扩展受到限制。
方案四:
本方案特点是结构简单,量程可以自动切换,ICM7216内部带有放大整形电路,可以直接输入模拟信号,但设计不够简洁和新颖。
2.3方案选择
比较以上四种方案可以知道,方案一的核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值则可以实现不同频率范围的测试能自动选择测试的量程。
与方案一相比较方案二则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。
如要测量高频的信号还需要加上分频电路,价格相对高了点。
方案三所做频率计的精度不够高,不符合实际需求。
方案四的核心是ICM7216,不符合设计中用软件完成的要求。
基于上述比较,所以选择了方案一。
3.硬件系统设计
3.1硬件系统框架
数字频率计是一个将被测频率显示出来的计数装置,它主要由单片机89C51控制、7407、LED显示器、电源等组成。
该系统的功能是将信号输入P3.4口,通过单片机程序控制,对LED显示器进行段控和位控,实现动态显示。
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
在进行有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。
图3.1为数字频率计方案框图。
图3.1数字频率计方框图
3.2主体电路设计
AT89C51是低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中。
ATC89C51可以完成ISP在线编程功能,ATC89C51内部有EEPROM,可以在程序中修改,断电不丢失。
还增加了两级中断优先级,STC推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。
3.2.1.89C51芯片介绍
许多由关硬件设计中都使用到单片机89C51,其功能[7]比以往的单片机强大的多。
单片机AT89C51的管脚图如图3.2所示
图3.289C51引脚图
3.2.2引脚功能说明
1.芯片引脚功能:
主电源引脚Vcc和GND
•Vcc(40脚):
接+5V电压;
•GND(20脚):
接地。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对F1ash存储器程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。
XTALl:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
P0口:
P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,Pl接收低8位地址。
其引脚功能表如表3-1所示:
表3-1P1口引脚功能表
端口引脚
第二功能
P1.5
MOSI(用于ISP编程)
P1.6
MISO(用于ISP编程)
P1.7
SCK(用于ISP编程)
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/0口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
其引脚功能表如表3-2所示:
表3-2P3口引脚功能表
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
2.AT89C51晶振接法如图3.3。
图3.389C51晶振接法图
选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。
电容的大小范围为20pF~40pF,本设计选用30pF电容。
3.单片机复位状态
单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。
为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。
只要保持高电平,则MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开始执行程序。
在复位有效期间,ALE、引脚输出高电平。
89C51上电复位电路图如图3.4。
图3.489C51上电复位电路图
单片机复位状态表如表3-3所示。
表3-3单片机复位状态表
专用寄存器
复位状态
专用寄存器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TH0
00H
PSW
00H
TL0
00H
SP
07H
TH1
00H
DPTR
0000H
TL1
00H
P0~P3
FFH
SCON
00H
IP
XXX00000B
SBUF
XXXXXXXXB
IE
0XX00000B
PCON
0XXXXXXXB
注:
XXX不定
复位后,P0口~P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊功能寄存器清为0(不定的位除外)。
但复位不影响单片机内部的RAM状态
3.3信号输入电路设计
7414是六反相施密特触发器集成电路,其基本作用就是反相器,一般用于信号输入电路,用施密特触发器对输入信号进行波形整形。
本设计为满足设计要求,被测信号是要进行波形的变换。
由第一级的零偏置放大器把正弦波样的正负交替波形变换成单向脉冲,再经过7414将放大器产生的单向脉冲变换成与TTL/CMOS电平相兼容的方波。
这样处理以后信号变成方波信号,以便后续的电路进行计数。
3.4计数电路的设计
74LS290是异步十进制计数器。
它由一个二进制计数器和一个异步五进制计数器组成。
74LS290引脚图如图3.6所示。
图3.674LS290引脚图
当复位输入R0
(1)=R0
(2)=1,且置位输入S9
(1)•S9
(2)=0时,74LS290的输出被直接置零;只要置位输入S9
(1)•S9
(2)=1,则74LS290的输出将被直接置9,即=1001;只有当S9
(1)和S9
(2)不全为1,并且R0
(1)和R0
(2)不全为1时,输入计数脉冲CP,计数器开始计数。
计数脉冲由CP0输入,从Q0输出时,则构成二进制计数器;计数脉冲由CP1输入,输出为Q2Q1Q0时,则构成五进制计数器;若将Q0和CP1相连,计数脉冲由CP0输入,输出为Q3Q2Q1Q0时,则构成十进制(8421码)计数器;若将Q3和CP0相连,计数脉冲由CP1输入,输出为Q3Q2Q1Q0时,则构成十进制(5421码)计数器。
因此,74LS290又称为“二—五—十进制型集成计数器”。
异步清零端MR1,MR2为高电平时,只要置9端MS1,MS2有一个为低电平,就可以完成清零功能。
当MS1,MS2均为高电平时,不管其他输入端状态如何,就可以完成置9的功能。
当MR1,MR2中有一个以及MS1,MS2中有一个同时为低电平时,在时钟端/CP0,/CP1脉冲下降沿作用下进行计数操作。
a)十进制计数。
应将/CP1与Q0连接,计数脉冲由/CP0输入。
b)二、五混合进制计数。
应将/CP0与Q1连接,计数脉冲由/CP1输入。
c)二分频、五分频计数。
Q0为二分频输出,Q1~Q3为五分频输出。
引出端符号功能如下。
CP0二分频时钟输入端(下降沿有效)
CP1五分频时钟输入端(下降沿有效)
QA~QD输出端
MR1,MR2异步复位端
MS1,MS2异步置9端
74LS290的级联扩展如表3-5所示
表3-574LS290级联扩展说明
CP输入端
输出端
进制
输出状态
分频端
CP0
Q0
二
0、1
Q0为二分频端
CP1
Q3Q2Q1
五
000~100
Q3为五分频端
CP0且Q0与CP1相连
Q3Q2Q1Q0
十
0000~1001
Q3为十分频端
74LS290十进制的电路连接如图3.7所示。
图3.774LS290十进制计数器
两片接成十进制的74LS290级联组成2×10=20进制异步加法计数器如图3.8所示。
图3.8二十进制异步加法计数器
本设计中因为要对信号进行20分频,所以要使用两块74LS290进行级联。
一块74LS290用作2分频,一块74LS290用作10分频。
信号由第一块74LS290的CP0输入从Q0输出,这样信号就经过了2分频,再把信号输入第二块74LS290的CP0并且第二块74LS290的CP1与Q0相连,这时从第二块74LS290的Q3输出的信号就已经完成了20分频。
3.5显示电路的设计
在单片机系统中,常用的显示器有:
发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器。
而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。
LED段显示器结构与原理
LED显示器是由发光二极管显示字段组成的显示块,有7段和“米”字段之分。
这种显示块有共阳极和共阴极两种。
此外,显示块中还有一个圆点型发光二极管(在图中以dP表示)用于显示小数点。
通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号。
LED显示块中的发光二极管共有两种连接方法:
(1)共阳极接法
发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。
(2)共阴极接法
发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。
数码管引脚如图3.5。
图3.5数码管引脚图
共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。
当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。
8个笔划段dP、g、f、e、d、c、b、a对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。
例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。
如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。
用LED显示器显示十进制转换成十六进制数的字形代码在表3-4中列出。
表3-4LED十六进制的数字代码表
字形
共阳极代码
共阴极代码
字形
共阳极代码
共阴极代码
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
BOH
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
8EH
71H
7
F8H
07H
灭
FFH
00H
8
80H
7FH
4.软件系统设计
4.1软件设计介绍
本设计过程使用到的软件有:
WAVE软件模拟器,keiluVision2,protuse。
软件设计过程:
在keiluVision2中输入所编程序,保存为以.c为后缀的文件,新建项目,加入刚保存的文件,编译,调试到程序编译不显示错误。
在optionfortarget项中output中选中creathexfiles,重新编译程序,软件生成以.hex为后缀的文件。
在protuse软件中画出所设计的电路模拟图,加载入前面生成的以.Hex为后缀的文件,运行,观察,调试数码管显示的数值,并与设置的输入信号频率作比较,调试,分析误差产生原因,改进程序与电路图。
使用伟福软件编译所设计的c程序,调试到正确无误。
并最终通过硬件来验证所设计的频率计是否达到先前设定的设计指标。
如图4.1所示:
图4.1Keil软件程序设计
Protuse仿真图如图4.2所示
图4.2Protuse软件模拟工作窗口
4.2各单元仿真
4.2.1信号处理
在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。
测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。
定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数。
计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。
计数闸门结束时TR清0,停止计数。
计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。
对10进制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。
待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的P3.4引脚,为单片机测信号频率提供有效的输入信号。
单片机通过检测P3.4引脚来判断是否启动测周期程序。
当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。
首先将零赋给TH0、TL0两个寄存器,将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0终端,然后再判断P3.4引脚是否还为低电平,当不是低电平时则等待。
一旦出现低电平则使TR0复位以终止定时器,测周期程序结束。
在测周期过程中,会发生定时器T0的中断,每发生一次中断则将R0寄存器加一,因此R0实际上是周期值的高字节。
测出的周期值存储在R0、TH0、TL0三个寄存器中,然后将其转换成频率。
由于所测周期的单位是µs,再相除转换时要将被除数扩大10
倍,这样才能保证得出正确的频率。
得出的频率放到R1、R2、R3三个寄存器后调用转换BCD代码模块。
调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。
4.2.2中断控制
由于在程序设计中用到中断[9]方式,所以我们在此对单片机中断系统中的中断控制作一下介绍。
中断是工业过程控制及智能化仪器用微型机或单片机应用最多的一种数据传送方式。
在通常情况下,单片机执行主程序,只有当正常状态出现故障,或发出中断请求时,单片机才暂停执行主程序,转去执行或处理中断服务程序,执行完中断服务程序后,再返回到主程序继续运行。
单片机的这一种工作过程称为中断方式。
基于资源共享原理上的中断技术,在计算机中得到了广泛的应用。
中断技术能实现CPU与外部设备的并行工作,提高CPU的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障及时发现并进行自动处理如:
硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘发出请求,随时对运行中的计算机进行干预,而不用先停机处理,然后再重新开机等。
在单片机中,中断技术主要用于实时控制。
所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。
由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。
4.2.3定时器/计数器
(1)定时器控制寄存器(TCON)[10]
TCON寄存器既参与中断控制又参与定时控制。
现对其定时功能加以介绍。
其中有关定时的控制位共有4位:
F0和TF1——计数溢出标志位
当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。
R0和TR1——定时器运行控制位
TRO(TR1)=0 停止定时器/计数器工作
TRO(TR1)=1 启动定时器/计数器工作
(2)工作方式控制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字频率计 设计 制作