基于51单片机的数字频率计设计

  • 格式:pdf
  • 大小:150.90 KB
  • 文档页数:5

基于51单片机的数字频率计
一、设计说明
1.数字频率计概述
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。

本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。

测量范围从1Hz—10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。

用单片机实现自动测量功能。

基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。

它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。

2.频率测量仪的设计思路与频率的计算
频率测量仪的设计思路主要是:对信号分频,测量一个或几个
被测量信号周期中已知标准频率信号的周期个数,进而测量出该信
号频率的大小,其原理如右图所示。

若被测量信号的周期为,分频
数m1,分频后信号的周期为T,则:T=m1Tx。

由图可知:T=NTo
(注:To为标准信号的周期,所以T为分频后信号的周期,则可以
算出被测量信号的频率f。


由于单片机系统的标准频率比较稳定,而是系统标准信号频率
的误差,通常情况下很小;而系统的量化误差小于1,所以由式
T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,
误差越小,测量的精度越高。

3.设计原理及系统分析
基本设计原理:直接用十进制数字显示被测信号频率的一种测量装置。

它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。

若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。

其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。

时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。

闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。

秒信号结束时闸门关闭,计数器停止计数。

由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。

4.方案分析
本频率计的设计以AT89S51单片机为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。

单片机AT89S51内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。

在定时器工作方式下,在被测时间间隔内,每来一个机器周期计数器自动加1(使用12MHz时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。

在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。

外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的1/24(使用12MHz时钟时,最大计数速率为500kHz)。

在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。

测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。

定时/计数器的工作首先被设置为计数器方式,即用来测量信号频率。

在对定时/计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数。

计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。

5.频率计的量程自动切换
频率计测量量程自动转换的过程由频率计测量量程的高端开始。

由于只显示3位有效数字,测量量程的高端计数闸门不需要太宽,例如在进入计数器的信号频率范围在10.0~99.9kHz,计数闸门宽度为10ms即可。

频率计开始工作时使用计数方法实现频率测量,并使计数闸门宽度为最窄,完成测量后判断测量结果是否具有3位有效数字,如果成立,将结果送去显示,完成测量工作;否则将计数闸门宽度扩大10倍,继续进行测量判断,直到计数闸门宽度达到1s,这时对应的进入单片机的待测信号频率范围为100~999Hz。

如果测量结果仍不具有3位有效数字,频率计则使用定时方法实现频率测量。

定时方法测量的是待测信号的周期,这种方法只设一种量程,测量结果通过浮点数运算模块将信号周期转换成对应的频率值,再将结果送去显示。

无论采用何种方式,只要完成一次测量,频率计自动开始下一个测量循环,因此该频率计具有连续测量的功能,同时实现量程的自动转换。

三、系统软件分析设计
系统软件包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算术运算模块、浮点数到BCD码转换模块。

1.系统初始化
频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。

测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。

定时/计数器的工作首先被设置为计数器方式,即用来测量信号频率。

首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。

单片机当C/T=1时为计数方式,多路开关与定时器的外部引脚连通,外部计数脉冲由引脚输入。

当外部信号由1至0跳变时,计数器加1,此时T0成为外部事件的计数器。

由于确认一次由1至0的跳变要用24个振荡器周期,所以计数器的计数频率为单片机内部计数器频率的1/24。

当C/T=0时为定时方式,对单片机内部计数器进行m2分频后,计数器的实际计数频率为单片机内部频率凡的1/m2,当GATE=0时,反相器输出为1,或门输出为1,打开与门,使定时器的启动仅受TRO端信号电平的控制。

在此种情况下,INT0引脚的电平变化对或门不起作用。

TRO=1时接通控制开关,计数脉冲加到计数器上,每来一个计数脉冲,计数器加1,只有当TRO=0时,控制开关断开,计数器停止计数。

当GATA=0时,若TRO=1,或门、与门全部打开,外部信号电平通过INTO 引脚直接控制定时器的启动和关闭。

输人高电平时允许计数,否则停止计数。

根据定时器的结构原理,若我们将GATE位、TR0均设为‘1’,INT0端输人被测频率信号,当被测信号的高电平到来时,开始计数;当被测信号的低电平到来时,计数器停止计数,此时TL0、TH0的数据就是相应的N值。

2.计数门闸
计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始测量,计数闸门结束时TR清0,停止计数。

计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。

判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。

当上述测量判断过程直到计数闸门宽度达到1s(对应的频率测量范围为100~999Hz)时测量结果仍不具有3位有效数字,频率计则使用定时方法测量待测信号的周期。

定时/计数器的工作被设置为定时器方式,定时/计数器的计数寄存器清0,在判断待测信号的上跳沿到来后,运行控制位TR置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。

16位定时/计数器的最高计数值为65535,当待测信号的频率较低时,定时/计数器将发生溢出。

产生溢出时,程序进入定时器中断服务程序对溢出次数进行计数。

待测信号的周期由3个字节组成:定时/计数器溢出次数、定时/计数器的高8位和低8位。

信号的频率f与信号的周期T之间的关系为:f=1/T
3.测量结果处理
测量结果的显示格式采用科学计数法,即有效数字乘以10为底的幂。

这里设计的频率计用5位数码管显示测量结果:前3位为测量结果的有效数字;第4位为指数的符号;第5位为指数的值。

采用这种显示格式既保证了测量结果的显示精度,又保证了测量结果的显示范围(0.100Hz~9.99MHz)。

4.系统程序代码
见附录页
四、设计展望
通过本次课程的设计,完成了预期的设计基本任务和要求,但设计中还存在许多不足之处,还需要进一步完善功能模块和程序设计,在此,为更好的完善系统性能做以下展望:(1)提高测频范围
(2)提高测频精度
(3)完善系统功能模块
(4)优化系统性能
参考文献
[1]李光飞楼苗然主编.51系列单片机.北京:北京航空航天大学出版社,2003
[2]黄正瑾编著.CPLD系统设计技术入门与应用.北京:电子工业出版社,2002
[3]谢自美编著.电子线路设计·实验·测试.华中理工大学出版社,2002
[4]陈永甫编著.电子电路智能化设计.实例与应用.北京:电子工业出版,2002.8
[5]康华光主编.电子技术基础(第四版).北京:高等教育出版社,1999。