欢迎来到学术参考网

基于单片机的频率计设计

发布时间:2015-08-21 08:51

摘 要:本文所要介绍的是以单片机89C51为核心设计了一种频率计。在本文的设计当中,所应用到的是单片机的数学运算以及控制的功能,是对测量量程自动切换的一种实现,不单单能够满足测量精度的要求,而且还能够满足系统反应时间的一个要求。

关键词:单片机89C51;频率计设计
  引言:
  在工业生产、仪器仪表行业及实验教学中,经常会遇到频率的测量,我们经常使用的及目前市场上所售的频率测量装置,大多数是采用小规模集成电路及分离元件组成。在现代电子学的各个领域,要求频率计精度高且能够直接读出频率值。
  频率计由AT89C51、信号予处理电路、串行通信电路以及测量数据的显示电路还有系统软件所构成的,在当中信号的予处理电路包含了待信号放大、波形变换、波形整形以及分频电路。信号的予处理电路当中的放大器所实现的是对待测信号的一个放大的功能,能够降低对待测信号的幅度的一个要求,波形的变换和整形电路实现将正弦波样的一个正负交替的号波形转换成为能够被单片机所接受的一个信号,分频电路所用于扩展的单片机的频率测量范围并且通过实现单片机频率测量以及周期测量使用统一的一个输入的信号。系统的软件柏阔有测量初始化的模块、显示的模块以及信号频率测量的模块等等。
一、相关处理方法
  以AT89C51单片机作为我们频率计的核心,通过它内部的一个定时计数器来进行对待测信号周期的一个测量。在89C51当中有2个16位的定时器,它们都是通过编码来进行事先定时、计数以及产生计数溢出中断要求的这一功能。在构成定时器到时候,每一个机器的周期加上一,然后这样就能够使得机器周期作为一个基准从而来测量出一个时间的间隔。然而在构成计数器的时候,就应当在相应的外部引脚发生一个从一到零的一个跳变时计数器加一,这样计数的闸门就能够在门的控制之下用来测量待测信号的一个频率。在外部输入每个及其周期进行采样一次,这样子就能够检测出从一到零的跳变至少要两个及其的周期,所以说最大的计数速率是时钟频率的二十四分之一。定时器的工作通过相应的一个运行的控制位进行控制,当控制为为一时,那么定时器就要开始计数了,当控制位为零时,那么就停止计数。设计的时候还要综合考虑到频率测量的精度以及测量反应时间的一个要求。譬如说当要求的频率测量结果是3位的有效数字,那么这个时候如果说待测的信号是一赫兹的话,那么计数闸门的宽度就必须大于1000s。也是为了能够照顾到测量精度以及测量时间的需要,因此就将测量工作分成了两种方法进行。也就是说当待测信号的频率大于100Hz的时候,定时器也就成为了一个计数器,当以机器的周期为基准的时候,就通过软件产生一个技术闸门,这个时候当然要满足频率测量的结果是为三位的,如果技术闸门的宽度大于了一秒,那就表示为合格了。然而当待测信号的频率小于了100Hz的时候,也就构成了定时器,通过频率计的予处理电路将待测信号转换成了一个方波信号,当方波的宽度同待测信号的周期相等的时候,那么方波就作为了计数的一个闸门,也就是说当 待测信号的频率等于了100Hz的时候,那么使用12MHz时钟的时候,最小的计数值就是10000,这样以来就能够完全满足到测量精度的一个要求。在当使用技术方法来实现频率测量的时候,此时外部的待测信号就是计数源,通过软件延时的程序能够实现计数闸门。
二、设计系统硬件
  在系统硬件的设计方面,必要介绍的一个就是信号的予处理电路:该电路是由四级的电路所构成,第一级通常是为零偏置的放大器,在当输入信号时零或者是负电压的时候,三极管是一个截止的状态,输出的信号为高电平,在当输入的信号时正电压的时候,三极管才导通,输入的电压会随着电压的上升而下降着。零偏置放大器将正弦波样的正负交替波形转换成为了一个单向的脉冲,这样就能够使频率计不仅能够测量方波的信号,而且还能够测量正弦波信号的一个频率。放大器的一个放大能够也实现了对小信号的一个测量。并且三极管所采用的开关三极管能够保证放大器有着良好的高频的响应。在第二级上所采用的是一个带施密特触发器的反相器7414,它能够将放大器生成的单相的脉冲转换成为同电平相互兼容的一个方波。在第三级采用的是十进制的同步计数器74160,在第二级输出的方波加到74160的CLK,在当74160的TC输出能够实现10分频。第四级同样能够采用十进制的同步计数器74160,第三级输出的方波加到它的CLK,然后从它的它的Q0输出即可实现2分频,且其输出为对称方波,方波宽度等于待测信号的周期,以此为测量信号周期来提供基础。
  在显示电路上面所要采用的是静态的显示方式。频率测量结果通过译码,然后通过89C51的串行口送出。串行口工作于模式0,即同步移位寄存器方式。这时从89C51的RXD(P3.0)输出数据,送至串入并出移位寄存器74164的数据输入口A和B;从TXD(P3.1)输出时钟,送至74164的时钟输入口CP。74164将串行数据转换成并行数据,进行锁存。74164输出的8位并行数据送至8段LED,实现测量数据的显示。使用这种方法主程序可不必扫描显示器,从而单片可以进行下一次测量。这种方法也便于对显示位数进行扩展。
三、系统软件设计
  数据处理过程:在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。
  定时/计数器的工作首先被设置为计数器方式,即用来测量信号频率。在对定时/计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR清0,停止计数。计数寄存器中的值通过16进制数到10进制数转换程序转换为10进制数。对10进制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。
  完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。为提高运算精度,这里采用浮点浮点数用3个字节组成,第一字节最高位为数符,其余7位为阶码;第二字节为尾数的高字节;第三字节为尾数的低字节。待测信号周期的3个字节定点数首先通过截取高16位、设置数符 和计算阶码转换为上述格式的浮点数。然后浮点数算术运算对其进行处理,获得用浮点数格式表达的号频率值。
  浮点数到BCD码转换模块把用浮点数格式表达的信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。无论从哪一种方式进入显示模块,完成显示后,频率计都开始下一次信号的频率测量。
  8031系列单片机属于微控制器,由于其CPU字长和指令功能的限制,它适用于控制领域,在信号处理方面不很擅长。在本频率计中需要完成周期到频率的换算,为保证测量结果的准确,这里应用了点数数学运算。从周期到频率的换算过程包括:3字节定点数到浮点数的转换、浮点数数学运算和浮点数到BCD码的转换。由于通过多次的转换,整个换算过程精度还不是很高,通过实测,精度大约为千分之二左右。
结语
  本文所介绍的频率计的设计方法,所制作的频率计需要外围器件较少,适宜用于嵌入式系统。该频率计应用周期测量和相应的数学处理实现低频段的频率测量,因此很容易扩展实现信号的周期测量和占空比测量。相信在投入使用过程当中一定能够取得良好的应用效果。
参考文献:
[1] 周航慈著.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991.
[2] 李华等编著.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993.

上一篇:数字化语音存储与回放系统设计

下一篇:探讨面向设计模式的人脸信息系统