余雪兵 杨志浩 常晓明
摘 要:在电子相关领域频率是一个较为重要的测量参数,它可以反映出信号的一些特征,因此频率的测量已成为电子领域较为主要的的测量之一。频率计作为常用的测量仪器,广泛应用在高校、军事、科研机构等方面。近些年随着电子信息领域的蓬勃发展,人们对频率测量的精度要求越来越高,所以数字化的电子产品越来越受到大家的青睐。数字频率计具有可操作性强、精度高、功能齐全等优点,因此在今后,数字频率计必将是测量频率的主流仪器。
关键词:频率计;单片机;计数器;定时器
1.引言
数字频率计的使用十分广泛,在许多电子设备中都需要测量频率。尽管一些数字频率计设计过程复杂,但是功能齐全操作简单对使用者的要求很低。目前的数字频率计正在向微型化和智能方向发展。本文基于以上考虑,利用AT89C51单片机的两个定时计数器功能,来完成对采集到的信号进行频率计数,计数的频率结果通过液晶显示屏LCD1602显示出来。预期设计结果能够对0-480KHZ的信号频率进行准确计数,计数误差不超过±10HZ。
2.系统方案设计
2.1三种方案比较
2.1.1 方案一
频率计需要的定时1S的时间由多谐振荡器产生,其中多谐振荡器由NE555定时器和电位器组成,在进行分频操作就可以得到1S的脉冲;整形放大电路通过逻辑门电路和二极管组成;闸门电路用一个逻辑门,只在定时脉冲高电平时通过;计数电路可以通过5个十进制的计数器组成,计数器再将脉冲个数通过LED数码管显示出来。
2.1.2方案二
固定闸门信号1s,由555定时器和电容电阻构成的多谐振荡器产生脉宽1s的脉冲或晶振为32.768KHZ的晶振电路经CD4060的14级2分频得到2HZ的方波,再经4分频得到1s脉宽的脉冲。闸门信号和放大整形后的待测信号与非,多次十分频后接74LS151,再送到计数端。用74LS90计最高位的QD脚的负跳变沿个数,用来控制74LS151的信号通路,锁存和清零都由74LS123产生。
原理:每次计数都是以HZ为单位,超量程时,最高位由0到9,再9到置数为1,74LS90输出控制74LS151选择,将后面的脉冲10分频,有就是将最低位乘上10。74LS90同时控制小数点和量程的转换,当然小数点和量程指示显示要加锁存。计数器记录1s内所有的脉冲个数,但只保留了最高的3位。欠量程时有就是100HZ以下时,将高位的0消隐。(此方法只是个人想法,具体地电路设计还未尝试)。
2.1.3方案三
用4MHZ的晶振电路产生4MHZ的基准信号,经4分频,经过多次分频,分别得到1MHZ,100kHZ,10kHZ,1kHZ,100HZ,10HZ,1HZ,0.1HZ的频率接74LS151八选一数据选择器,再经D触发器2分频得到1us,10us,100us,1ms,10ms,100ms,1s,10s的闸门信号。用74LS123产生锁存和清零信号。74LS192作为扩展电路控制74LS151和74LS138完成自动换挡功能,欠量程和超量程信号分别有中间位和最高位的进位产生。
2.2 方案选择
方案一用的是555定时器,精度和稳度都不高。是4位数码管显示,可扩展电路过于简单,而且网上多采用这种方案。方案二是固定闸门信号的脉宽,灵活性太差,每次计数显示等待时间为2s。小数点显示和量程指示都要加锁存,过于繁琐。方案三对基准信号分频得到不同的闸门信号,灵活性高,计数和显示的时间可变。扩展电路采用74LS192可加可减计数器,量程可扩展。 它们的计算频率的原理一样: 闸门信号待测信号计数单位时间内的脉冲个数。
通过比较三种方案,最终我们选择显示电路用:LCD1602液晶显示电路;用51单片机T0计数、T1定时;波形整形电路较为简单,就是通过一个NPN型三极管,利用三极管的开关特性来保护电路;电路还附带一个由555构成的方波发生电路作为整个系统的内部信号,也可以通过选择接入外部正弦波、三角波、锯齿波等信号来测量频率。以下所有电路及软件都是按照此决定方案设计。
3.硬件简介
3.1 单片机简介
STC89C52单片机有40个引脚。包括时钟信号引脚、控制信号引脚等。有4个8位并行I/O端口,1个全双工异步串行端口,5个中断源,2个优先级,2个16位定时/计数器。其中在STC89C52单片机中的中断系统可以实现二级中断服务。当同一优先级的中断提出中断请求时,则由单片机内部的查询逻辑来确定响应 的次序。此外,有两个可编程定时/计数器的STC89C52单片机:它们可以作为定时器,也可以作为计数器。
3.2 LCD液晶顯示屏
1602液晶显示屏是一种专门显示字符、数字、字母、汉字等的点阵型显示模块。它的工作电压为5V,控制简单、成本较低、适用于普通的数据显示。但是同时也具有功耗高、不能显示曲线、图像等缺点。通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,LCD1602模块使用HD44780控制器,可以通过编程实现字符信息的传送和现实。HD44780控制器通过指令(IR)和数据注册(DR),RAM(DDRAM),字符发生器(CGRAM)字符发生器存储器(CGRAM),地址计数器,RAM(AC)的显示数量进行注册。IR的功能是注册指令代码,只能写入不能读取,DR的功能用于注册数据。
STC89C52单片机的P0口的8位作为数据传输口,P1口的0、1、2位分别连接LCD1602的EN、R/W、RS功能端。其中R/W端是信号的读写端、EN是信号的使能端、RS是寄存器的选择端。这个模块设计的关键步骤是显示模块的初始化。首先对屏幕进行清除并将端口数据设置为8位,接下来显示行号和列号,最后设定一个无方向增量,将字符发送到LCD的BUFF区。经过设计决定使用两个字符数组,其中一个用于显示具体字符,另外一个显示电压数值。要显示的内容被发送到相应的数组,通过串口传送给LCD1602完成显示。
3.3 NE555电路
使用555定时器可以简便的组成多种振荡器和整形电路。这类电路在定时、控制、自动化方面有极为广泛的应用。多谐振荡器是555应用的电路之一,所谓多谐振荡器是指电路没有稳定状态,只有两个暂时的稳态,功能就是产生一定频率和幅度的矩形信号,输出状态不断在高低电平之间切换。
3.4 电源电路
本设计的电源是一款自己设计的数控直流稳压电源。此电源电路由直流带能源、显示电路、单片机控制电路组成。具体是采用单片机作为控制器,通过改变输入数字量来改变输出电压值,经过集成运算放大器输出,间接的改变输出电压的大小。与常用的稳压电源相比较,具有操作简单,可调节电压值、功能丰富、可显示等优点。
4.软件设计
4.1程序流程
4.2程序设计
程序设计内容 :首先需要定时/计数器的工作方式设置, 需要明确T0是工作在计数状态下,对采集到的信号进行频率计数,由基本原理可以知道对工作在计数状态下的T0,最大计数值为FOSC=1/24,由于我们采用的晶振电路FOSC=12MHz,因此:T0的最大计数频率为250KHz。频率的概念是在一秒内脉冲的个数就是频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理,就能够得到频率值。送到1602液晶屏显示出来。
4.3 程序內容
程序设计应用C语言编写,主要分为四个模块。模块一用于设置定时器工作方式,开中断。模块二是T0计数的子程序;模块三是T1定时的子程序;模块四是液晶屏读写程序。
5.测试结果
经过我们的测试可以得出结论:本频率计在误差允许的范围内可以接受信号的峰峰值为1.2v以上,可测频率范围为1hz~480khz左右。可接受的信号类型为方波、正弦波、三角波等。相对来说频率范围还是太小,主要问题出在我们的信号处理模块,后期我们会基础提升这一块。
参考文献:
[1]孙安青编著.AT89S51单片机实验及基础教程. 桂林电子科技大学,2003年
[2]江晓安编著.数字电路. 西安电子科技大学出版社, 2002年
[3]杨振江编著.单片机原理与实践指导.中国电力出版社,2008年