吴传全
(江苏省无锡交通高等职业技术学校,江苏无锡214151)
测量正弦波的频率,一般先通过信号转换电路把正弦波转换为同频率的方波,然后进行测量。测量的方法有两种:一是计数法,其测量原理是单片机提供一定频率的基准脉冲信号,当被测方波信号为高电平时,通过计算高电平期间基准信号的个数,结合基准信号频率就可算出被测信号的频率,该方法适用于被测信号频率较低的场合,且频率越低精度越高。另一种是计时法,与第一种方法测量原理正好相反,在基准信号为高电平期间,通过计算被测信号个数来计算其频率,该方法适用于被测信号频率较高的场合,且频率越高精度越高。
本文所设计的等精度频率计主要由信号转换电路、分频与数据选择电路、单片机模块组成。
硬件电路主要分为信号转换电路、分频与数据选择电路、单片机模块。
信号转换电路由施密特触发器组成,电路如图1所示,施密特触发器是一种用途十分广泛的数字脉冲单元电路。通过它可以实现波形的转换,即把正弦波、三角波转换成同频率的方波。
系统选用CD4093来实现施密特触发器功能。CD4093由四个具有施密特触发功能的2输入与非门构成。与单输入的触发器相比,它增加了一个选通输入端,当选通控制端为低电平“0”时,输出保持高电平不变;选通输入端为高电平“1”时,输入与输出端可实现施密特触发器的功能。
图1 信号转换电路
分频电路由74 HC4017组成,74 HC4017是CMOS十进制计数器,芯片第12引脚CO端的信号频率为CLOCK端的十分之一,信号从CLOCK端输入,CO端输出,这样就实现了十分频的目的。如果信号频率很高,则进行多次分频,将多片74 HC4017级联即可实现。分频电路如图2所示。
数据选择电路由74 HC151来组成,74 HC151是8选1数据选择器。它有8个数据输入端D0~D7,一个使能端E,数据选择端A、B、C,2个输出端Y和/Y。
74 HC151在工作时,使能端E=0,数据选择端A、B、C按照000~111之间的不同组合,从8个输入端中选择一个作为输出,例如,A、B、C为110时,选择D6作为输出端。
单片机选用AT89S52,采用12 MHz的晶振频率。单片机的P3.2(INT0)口接被测信号。单片机外围接通电源,接入晶振电路和复位电路组成最小工作系统。
图2 分频、数据选择电路
该系统采用计数法来测量频率,被测信号由P3.2(INT0)端接入,在信号高电平期间,启动定时器T0,高电平结束时,T0寄存器TH0和TL0中的值就是基准信号的个数。
基准信号由单片机提供,当单片机工作时钟频率为fosc=12 MHz时,ALE端的输出频率为fosc/6=2 MHz,机器周期的频率为fosc/12=1 MHz,基准信号的频率就是机器周期的频率,基准信号周期为1μs,这样就可通过计算基准信号的个数算出被测信号的频率,如图3所示。
图3 计数工作示意图
根据分析采用外部启动方式,令TR0=1,这时定时器的启动只由INT0端控制。当INT0为高电平时定时器启动,为低电平时定时器关闭。启动定时器后,实时读取TH0和TL0的值,并判断是否需要分频。在高电平结束时,根据TH0和TL0中的数值和分频次数,计算被测信号的频率。主程序流程如图4所示。
为提高精度,设定当信号频率小于1 k Hz时无需分频,分频电路中A、B、C的状态为000;当信号频率为1 k Hz时,周期T=1 000μs,高电平和低电平持续的时间各为500μs,此时T0寄存器TH0和TL0的数值分别为0X01和0XF4,转换成十进制就是500;当频率大于1 k Hz时,周期变小,高电平持续的时间小于500μs,T0的计数值也小于500。根据分析,当TH0和TL0中的数值小于500时,进行十分频,数据选择电路中A、B、C的状态为001,同时记录分频一次;如果分频后TH0和TL0中计数值还小于500,再进行分频,直到寄存器中数值大于500。
AT89S52单片机定时器的启动方式有两种,内部启动和外部启动。启动方式由寄存器TMOD的GATE位(门空位)决定。当GATE=0时为内部启动,定时器由TR0(或TR1)来启动;当GATE=1时为外部启动,定时器的启动由TR0(或TR1)和INT0(或INT1)共同控制,只有两个都为“1”的情况下才会启动。
图4 主程序流程图
本频率计精度较高,频率范围较宽,有较强的实用价值。系统中的部分电路是笔者经过反复实验调试的,但有些细节仍需改进,如在信号转换电路中只是将正弦信号转换成方波信号,而没有对信号进行整形处理。如果加入相关的处理电路,该系统的精度将会得到进一步的提高。
[1] 李群芳 肖看.单片机原理、接口及应用-嵌入式系统技术基础[M].北京:清华大学出版社,2005.
[2] 康华光.电子技术基础-数字部分(第四版)[M].北京:高等教育出版社,2000.