数字频率计设计.docx
《数字频率计设计.docx》由会员分享,可在线阅读,更多相关《数字频率计设计.docx(21页珍藏版)》请在冰豆网上搜索。
数字频率计设计
2012~2013学年第二学期
《单片机原理及应用》
课程设计报告
题目:
简易数字频率计设计
专业:
自动化
班级:
指导教师:
电气工程系
2011年5月12日
摘要
由于当今社会的需要,对信息传输和处理的要求不断提高,对频率测量的精度也需要更高、更准确的时频基准和更精密的测量技术。
而频率测量所能达到的精度,主要取决于作为标准频率源的精度以及所使用的测量设备和测量方法。
在电子系统广泛的应用领域中,到处看见处理离散信息的数字电路。
数字频率计是现代通信测量设备系统中必不可少的测量仪器。
本设计主要以单片机为核心,利用单片机计数器和定时器的功能对被测信号进行计数。
编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到LED数码管显示。
系统简单可靠、操作简易,能基本满足一般情况下的需要。
既保证了系统的测频精度,又使系统具有较好的实时性,最后通过Protues仿真软件验证设计的有效性。
关键词:
频率计;信号;周期;单片机
简易数字频率计设计
目录
摘要3
第一章引言2
1.1数字频率计概述2
1.2问题提出2
1.3设计思想3
第二章测量原理4
2.1测频原理4
第三章数字频率计设计6
3.1、数字频率计原理6
3.1.1数字频率计的基本组成6
3.1.2、数字频率计的主要技术指标6
3.2数字频率计的设计7
3.2.1、硬件电路设计7
3.3.2、软件的设计9
第四章基本元器件的阐述12
4.1、AT89S52简介12
4.1.1、主要功能特性13
4.1.2、引脚功能13
4.2、555定时器14
4.2.1、555定时器及其应用14
4.2.2、施密特触发器15
第五章心得体会16
参考文献17
第一章引言
1.1数字频率计概述
数字频率计是计算机,通讯设备,音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号,方波信号以及其他各种单位时间变化的物理量。
由于其使用十进制显示,测量迅速,精确度高,显示直观,所以经常要用到频率计。
1.2问题提出
中国电子测量仪器,随着世界高科技发展的潮流,走进了高科技发展的道路,在若干重大领域取得了突破性进展,为我国电子测量仪器走向世界水平奠定了良好的基础。
在数字化时代,研究员和其他工作人员对基础测量仪器的要求越来越高,作为基础测量仪器之一的频率计必将有新的发展。
于是测量仪技术指标上不断提高,如测频精度高、抗干扰能力强等。
以满足不同层次用户的测试要求。
近几年,数字化仪器在迅速发展,我国也在不断研究推出各种新型数字化仪器,以适应当今科技发展。
在电子领域中,单片机的应用正在不断的走向深入,这必将导致传统控制与检测技术的日益革新。
单片机构成的仪器具有高可靠性、高性能价格比,在智能仪表系统和办公自动化等诸多领域得以极为广泛的应用,并走入家庭,从洗衣机到音响汽车等等,处处可见。
因此,可以说单片机技术的开发和应用水平已逐步成为一个国家工业发展水平的标志之一。
数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。
如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。
因此,数字频率计是一种应用很广泛的仪器。
数字频率计作为一种常见的应用电子仪器设备,传统的一般可以完全由硬件电路搭接而成,如采用基于555定时器电路的多功能数字频率计的设计便是可取的路径之一,不用依靠单片机。
但是这种电路存在一些缺点,且测频精度也不如单片机的高。
在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到频率计。
利用单片机采用程序设计方法来设计频率计,其测频精度高。
且线路相对简单,结构紧凑,价格低廉,系统稳定度高,抗干扰能力强,用途广泛等优点。
只要对电路稍加修改,调整程序,即可完成功能升级。
1.3设计思想
利用施密特触发器将边缘缓慢变化的周期性信号如正弦波、三角波或任意形状的模拟信号变换成同频率的矩形脉冲。
通过MCS-51系列单片机内部的两个十六位定时/计数器测量某段时间内的外加脉冲数,经过处理并通过数码管直接显示出所加信号的频率。
单片机内部的T0用来定时,T1用来计数(下降沿触发)。
当来一个计数脉冲则计数一次。
在T0开始定时的同时,T1开始计数;T0定时1s时间到时,T1停止计数。
方框图如图1.1所示。
图1-1
第二章测量原理
2.1测频原理
为了提高测频的精度,采用等精度测频方法。
等精度测频的实现方法可以用图2.1来简化说明。
门控信号
标准信号
被测信号
清零信号
图2-1等精度测频原理框图
图2-1中的门控信号是可预置的宽度为Tpr的一个脉冲。
COUNT1和COUNT2是两个可控计数器。
标准频率信号从COUNT1的时钟输入端CLK输入,其频率为Fs;经整形后的被测信号从COUNT2的时钟输入端CLK输入,设实际频率为Fxe,被测量频率为Fx。
当门控信号为高电平时,被测信号的上沿通过D触发器的Q端同时启动计数器COUNT1和COUNT2,对被测信号Fx和标准信号Fs同时计数。
当门控信号为低电平,随后而至的被测信号的上沿将使这两个计数器同时关闭。
设在一次门控时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns。
则:
(2-1)
就可以得到被测信号的频率值为:
(2-2)
误差分析如下:
在一次测量中,由于Fx计数的起停时间都是由该信号的上升沿触发的,在Tpr时间内对Fx的计数Nx无误差;在此时间内Fs的计数Ns最多相差一个脉冲,即有
,则下式成立:
(2-3)
(2-4)
由式(2-3),(2-4)得:
(2-5)
(2-6)
根据相对误差公式有:
(2-7)
将(2-5),(2-6)代入(2-7)整理得:
(2-8)
又因为:
(2-9)
所以:
(2-10)
即有:
(2-11)
其中:
(2-12)
由以上推导结果可得出下面结论:
1、相对测量误差与频率无关。
2、增大Tpr或提高Fs,可以增大Ns,减少测量误差,提高测量精度。
3、标准频率误差为
,由于晶体的稳定度很高,标准频率误差可以进行校准。
4、等精度测频方法测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。
在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度在整个测量范围内保持恒定不变,而常规的直接测频法(在低频时用测周法,高频时用测频法),其精度会随着被测信号频率的下降而下降。
第三章数字频率计设计
3.1、数字频率计原理
3.1.1数字频率计的基本组成
(1)测量控制电路,由一块CD4017和一块74LS04构成,其CP端输入1s脉冲信号,输出Q2用于计数器清零,Q1经过一个非门用于锁存,Q0经过一个非门用于计数测频。
(2)计数器,计数器以待测信号作为时钟,清零信号clear到来时,异步清零:
test-en为高电平时开始计数。
计数是以十进制数显示,如果需要测试较高的频率信号,则将dout的输出位数增加,当然锁存器位数也要增加。
(3)锁存器,当test-en下降沿到来时,将计数器的计数值锁存,这样可由外部的七段译码器译码并在数码管显示。
设置锁丰器的好处是暗淡无光的数据稳定,不会由于周期性的清零信号而不断闪烁。
锁存器的位数应跟计数器完全一增。
(4)电源电路,5V稳压输出供数字电路使用。
工作原理:
数字频率计是直接用十进制数字来暗淡显示被测信号频率的一种测量装置。
它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。
数字频率计由一个1秒钟脉冲产生电路、一个测量控制电路、一个计数器、一个锁存器和电源电路组成。
数字频率计是测1秒钟脉冲产生电路。
设计数字频率计的关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。
控制时钟信号取为1Hz,2分频后即可产生一个脉宽为1秒的时钟test-en,以此作为计数闸门信号。
当test-en为高电平时,允许计数;当test-en由高电平变为低电平时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次test-en上升沿到来之前产生零信号clear,将计数器清零,为下次计数作准备。
3.1.2、数字频率计的主要技术指标
(1)频率准确度
一般用相对误差来表示,即
=±(
+
)式中,
=
=
为量化误差(即±1个字误差),是数字仪器所特有的误差,当闸门时间T选定后,
越低,量化误差越大;
=
为闸门时间相对误差,主要由时基电路标准频率的准确度决定,
《
。
(2)频率测量范围
在输入电压符合规定要求值时,能够正常进行测量的频率区间称为频率测量范围。
频率测量范围主要由放大整形电路的频率响应起决定。
(3)数字显示位数
频率计的数字显示位数决定了频率计的分辨率。
位数越多,分辨率越高。
(4)测量时间
频率计完成一次测量所需要的时间,包括准备、计数、锁存和复位时间。
3.2数字频率计的设计
3.2.1、硬件电路设计
(1)计数脉冲形成电路:
用555定时器接成施密特触发器对外加的周期波进行变换,使之输出为矩形脉冲。
如图3.1所示
图3-1计数脉冲形成电路
(2)计数显示电路主要包括:
a、由ATMEL公司生产、晶振频率为12MHZ的8051单片机。
通过软件编程使它内部的定时器T0定时,T1对外部的所加脉冲计数。
然后把测量结果值通过P0口输出。
b、用4位七段共阴极数码管动态扫描方式显示。
多周期同步测量法的基本思路是使被测信号与闸门之间实现同步化,从而从根本上消除了在闸门时间内对被测信号进行计数时的±1量化误差,使测量精度大大提高。
倒数计数器就是基于该方法而设计出来的一种具有创新思想的测频、测周期的仪器。
它采用多周期同步测量法,即测量输入多个(整数个)周期值,再进行倒数运算而求得频率。
其优点是:
可在整个测频范围内获得同样高的测试精度和分辨率。
(3)系统级方案设计 在选择多周期同步等精度测量法的情况下,按照自顶向下的设计方法,可以画出该频率计的系统级框图,如图3.2所示。
根据测周期、频率的原理,可以将总体框图分为三个子系统:
输入通道(即前置整形电路)该部分主要由模拟电路组成的;多周期同步等精度频率、周期的测量、控制及功能切换(中间部分),该部分基本上由数字硬件电路组成;单片机及外围电路,包括单片机、数码显示。
图3-2频率计的系统方框
(4)子系统设计
a.输入通道的设计。
输入通道是由前置放大器和整形器组成的,所以要对前置放大器的增益和带宽指标进行估计。
为了能准确测量信号,将输入信号经过一个放大整形电路。
其具体实施方案为:
将输入信号经过LM358运放放大,再通过74LS132整形,此时的信号还不能直接送入单片机,这是因为在硬件上CPU对INT0和INT1引脚的信号不能控制,解决这个问题要通过硬件,再配合软件来解决。
b.预置闸门时间发生电路设计。
闸门时间的确定,可以先由一个555定时器产生一个脉冲信号,将555产生的脉冲信号送入到74LS90十进制计数器当中,由于74LS90具有二-五进制混合计数的功能,所以可以用它来实现五进制计数,将74LS90的输出接到3—8线译码器74LS138的输入端,再将译码器的输出端接上五个发光二极管,这样就可以实现硬件上的闸门时间控制。
但是考虑到硬件实现上的复杂性,可以通过软件上来实现,就是将五个发光二极管直接接到单片机的P1口由软件上来实现,通过按键来改变它的闸门时间。
c.数码显示电路的设计。
该部分电路是由单向八位移位寄存器74LS164和数码管组成的。
考虑到精度的问题,取五位计数值,采用五片74LS164级联,同时还要显示频率和周期的单位,所以还需再级联一块74LS164,在74LS164的输出端接六个单位指示灯,分别表示周期频率的三个不同的单位数量级,即周期单位s,ms,μs和频率单位Hz,KHz及MHz。
移位寄存器的时钟信号是由单片机的串行输出口TXD脚控制。
3.3.2、软件的设计
(1)软件主程序流程图(见图3-3)
图3-3软件主程序流程
(2)子程序的设计
a.键盘中断服务子程序。
因该频率计的测量项目较多,所以在系统初始化时,将默认测量项目设置为测频,且预置闸门时间设置为1ms。
具体做法就是在主程序的系统初始化部分,将测频选择键的键值以及预置闸门时间设置代码写入单片机RAM单元中去。
这样开机后即使用户没有选择任何测量项目键,也能进行频率测量。
b.软件计数器子程序。
该频率计所需要的不同闸门预置时间信号是由单片机产生的。
由于预置闸门时间的范围很宽,最大值为10s,最小值为1ms,仅用单片机中的定时器硬件是不能实现的,需采用软硬件相结合的方法来实现。
其具体实现方案为将C/T0定时器/计数器设置为由引脚高电平启动的方式1定时器T0,初始化将其初值设为0.该计数器的启动过程如下:
主程序首先将单片机P1.6脚置为高电平(逻辑1)发出预置闸门信号,该信号经同步电路而产生高电平的同步门信号,从而使单片机引脚变为高电平,C/T0定时器中的计数器就被启动开始计数。
c.数据处理子程序。
当事件计数器和时间计数器的计数值NA,NB被读到单片机中后,通过调用数据处理子程序,根据过去读入并保存在单片机RAM单元中的测量项目的键值,预置闸门值代码,判断出所要测量的参数项目,对计数值NA,NB进行相应的处理,求出所测参数的值和单位,最后应将参数值转换为十进制数,再转换为驱动LED数码显示器的段码(每位包含5个数字段码和1个小数点)以及驱动三个单位符号指示灯之一的位码,作为显示子程序的输入数据,存放在9个RAM单元组成的显示缓冲区中。
对计数值NA,NB的处理运算要用到除法和乘法,为了提高运算精度,应当采用浮点运算。
显然,采用C语言来编写这些运算程序可大大提高编程效率。
(3)设计总原理图
图3-4原理图
3.3.3、软件仿真
图3.5仿真图
第四章基本元器件的阐述
4.1、AT89S52简介
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提高性价比的解决方案。
AT89S51具有如下特点:
40个引脚(引脚图中图4.1所示),4kBytesFlsh片内程序储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
图4-1管脚图
4.1.1、主要功能特性
·兼容MCS-51指令系统 ·32个双向I/O口
·2个16位可编程定时/计数器 ·全双工UART串行中断口线
·2个外部中断源 ·中断唤醒省电模式
·看门狗(WDT)电路 ·灵活的ISP字节和分页编程
·4k可反复擦写ISPFlashROM ·4.5-5.5V工作电压
·时钟频率0-33MHz ·128x8bit内部RAM
·低功耗空闲和省电模式 ·3级加密位
·软件设置空闲和省电功能 ·双数据寄存器指针
4.1.2、引脚功能
VCC(40):
+5V;
GND(20):
接地;
P0口(39-32):
P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流;
P1口(1-8):
P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流;
P2口(21-28):
P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流;
P3口(10-17):
P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口;
RST(9):
复位输入。
当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;
ALE/PROG(30):
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲;
PSEN(29):
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现;
EA/VPP(31):
当EA保持低电平时,外部程序存储器地址为(0000H-FFFFH)不管是否有内部程序存储器。
FLASH编程期间,此引脚也用于施加12V编程电源(VPP);
XTAL1(19):
反向振荡器放大器的输入及内部时钟工作电路的输入;
XTAL2(18):
来自反向振荡器的输出。
4.2、555定时器
4.2.1、555定时器及其应用
555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积很小,使用起来方便。
只要在外部配上几个适当的阻容元件,就可以构成史密特触发器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。
它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。
参数名称
符号
单位
参数
电源电压
VCC
V
5~16
电源电流
ICC
mA
10
阈值电压
VTH
V
VCC
触发电压
VTR
V
VCC
输出低电平
VOL
V
1
输出高电平
VOH
V
13.3
最大输出电流
IOMAX
mA
≤200
最高振荡频率
fMAX
KHz
≤300
时间误差
△t
nS
≤5
表4-1双极性型5G555的主要性能参数
集成555定时器有双极性型和CMOS型两种产品。
一般双极性型产品型号的最后三位数都是555,CMOS型产品型号的最后四位数都是7555.它们的逻辑功能和外部引线排列完全相同。
器件电源电压推荐为4.5~12V,最大输出电流200mA以内,并能与TTL、CMOS逻辑电平相兼容。
其主要参数见表4.1。
555定时器的内部电路框图及逻辑符号和管脚排列如图4.2所示。
(a)555的逻辑符号
(b)555的引脚排列
图4-2
4.2.2、施密特触发器
电路如图4-3所示,只要将脚2和6连在一起作为信号输入端,即得到施密特触发器。
图4.4画出了Vs、Vi和Vo的波形图。
设被整形变换的电压为正弦波Vs,其正半波通过二极管D同时加到555定时器的2脚和6脚,得到的Vi为半波整流波型。
当Vi上升到2/3Vcc时,Vo从高电平转换为低电平;当Vi下降到1/3Vcc时,Vo又从低电平转换为高电平。
回差电压:
V=
Vcc-
Vcc=
Vcc
图4-3555施密特触发器图4-4555施密特触发器的波形图
第五章心得体会
这次为期一周的课程设计让我受益匪浅。
以前只是对单片机更多的只是一些感性的,理论上的认识,自己真正动手的时候,才真正理解到其中的精华所在。
频率计的设计让我更好的了解如何应用单片机的定时器计数器模块,灵活应用IO口和应用89C51的部分功能。
其中最重要的是分析问题解决问题的能力,在我看来,写程序并不难,重要的是把程序优化,无论是在节省硬件资源,还是提高数据的准确度来看,都需要下一些功夫把它做到最好。
参考文献
[1]张毅刚.MCS-51单片机应用设计[M].哈尔滨:
哈尔滨工业大学出版社,2003
[2]王毓银.数字电路逻辑设计[M].北京:
高等教育出版社,2004
[3]蒋廷彪.单片机原理及应用[M].重庆:
重庆大学出版社,2003
[4]贾金铃.单片机原理及应用[M].成都:
电子科技大学出版,2004
[5]候玉宝.51系列单片机设计与仿真,北京:
电子工业出版社,2008年;
[6]张卫钢.通信原理与通信技术(第二版),西安:
西安电子科技大学出版社,2008年;
附录:
#include
unsignedcharcode
dispcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsignedchara=0,b=0,c=0,d=0;
unsignedintpinlv=0;
unsignedlongintcount=0;
voiddelay()
{
intj;
for(j=0;j<2000;j++);
}
voiddisplay()
{
a=pinlv/1000;//千位
b=pinlv/100%10;//百位
c=pinlv%100/10;//十位
d=pinlv%10;//个位
P2=0xfe;
P0=dispcode[a];
delay();
P2=0xfd;
P0=dispcode[b];
delay();
P2=0xfb;
P0=dispcode[c];
delay();
P2=0xf7;
P0=dispcode[d];
delay();
}
/*voiddelay1(n)
{inti,j;
for(i=0;i{for(j=0;j<255;j++){}
display();}
}*/
voidmain(void)
{
EA=0;
TMOD=0x51;//T0定时T1计数
TH0=15602/256;//0x3c,T0定时50ms
TL0=15602%256;//0x00
T1=1;
ET0=1;
EA=1;
TR1=1;
TR0=1;
while
(1)
{
display();
}
}
voidtime0(voi