赵翠玉
摘要:本文基于AT89C52的脉冲宽度测量仪的设计。该仪器测量结果采用了软件数字滤波,消除了测量中抖动问题,测量精度高、稳定性好,具有一定的实用性。
关键词:AT89C52;测量仪;脉冲宽度
中图分类号:TM935.4 文献标识码:A 文章编号:1007-9416(2019)02-0129-01
0 引言
脉冲宽度的测量,实质是时间的测量,以往测量仪采用的是门电路来进行脉冲宽度测量,而 AT89C52单片机系统资源丰富:内置256KB的RAM模块、32个外部双向可编程I/O口线、3个16位定时器/计数器、0-24MHz时钟频率、2个外中断口[1]。该单片机不仅提供丰富的硬件资源,也提供良好的上位机控制软件,只要通过软件的功能操作就能实现:源代码的调试编译,查找与修改错误之处,在线代码下载等功能。基于以上优点,本文设计了采用AT89C52单片机实现脉冲宽度测量仪。
1 测量机理
基于AT89C52的脉冲宽度测量仪以AT89C52为系统控制核心,通过AT89C52内部的定时器对脉冲宽度进行测量。设定AT89C52工作于定时器方式,计数的输入为内部时钟信号,频率为固定的12MHz。只要令GATE=1,TR0=1,TR1=1,将输入脉冲接到INT1口,即可测量输入脉冲宽度,测量机理如图1所示。
2 系统硬件设计
该测量仪主要由AT89C52单片机最小系统、555定时电路、LED显示驱动电路、LED显示电路和电源电路等组成[2]。
测量时通过单片机外中断INT1和定时器T1配合来完成外部待测脉冲高电平持续时间的测量。首先将U1(AT89C52)的T1设为定时器方式,且门控GATE=1;然后将U2(NE555)的3脚输出的方波信号送至U1的P3.3脚(INT1口),当P3.3脚的信号出现下降沿时,进入INT1中断服务程序并判断脉冲位置,如果是第一个方波脉冲,则打开计数器T1的开关(将TR1设为1),否则关闭T1的开关(将TR1设为0),等到第二个方波脉冲上升沿抵达U1的P3.3脚时,TH1、TL1自动开始计数,当第二个方波脉冲下降沿到来时计数器自动关闭停止计数,此时为待测信号高电平期间,且再次进入外部中断INT1的中斷服务程序中,读取TH1、TL1的计数值,并计算出所测量的结果,该结果就是待测方波脉冲的宽度。随后,清零TH1和TL1,以便下一个脉宽的测量。同时,测得的信号宽度数值从U1的P1.0~P1.7口分别输出a~g及dp八位段选字符编码信号至数码管的相应段选线,从U1的P3.4~P3.7口输出四只数码管的位选信号,分别经Q5~Q8处理送至四只数码管相应的位选线,控制相应数码管的点亮,实现被测结果的实时显示。系统工作电压由电源电路把220交流电经变压器降压、D1~D4整流、C9~C10滤波、U3(7805)稳压得到+5V稳定电压来提供。
可以得出测量脉冲宽度分两个阶段:一个是准备阶段,完成状态的设置;另一个是测量阶段,从脉冲上升沿开始测量计数,到脉冲下降沿结束计数,以两个脉冲为一个测量周期。
3 系统软件设计
该系统软件使用C语言进行了编写,采用了模块化的设计思想[3],将设计划分为T0溢出中断、T1溢出中断和INT1溢出中断等相应的程序模块,分别进行设计、调试,增强了程序的条理性。AT89C52的脉冲宽度测量仪主程序设计流程如图2所示。
4 数据及结果的分析
通过实验观察,对T0、T2两种方式都可以达到计数脉宽的长度的要求,实验数据均可以达到所要求的:6位 LED显示计数值,时间精确到0.1秒。
实验中也遇到一些问题,如数码管显示不出数值(P口位置插错),小数点显示错位(没有在程序中编对位置),显示只显示第一次多出数值(调用程序返回时出错)等问题。
5 结语
本文的创新在于遵循硬件电路可靠、操作简便,充分借助AT89C52单片机系统的丰富资源,通过硬件的完整设计和软件强大的编程等过程,实现了脉冲宽度的测量功能,具有实际的应用价值。
参考文献
[1] 罗印升.单片微机原理与应用[M].北京:机械工业出版社,2012.
[2] 路而红.专用集成电路设计与电子设计自动化[M].北京:清华大学出版社,2004.
[3] 张培仁.基于C语言编程MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.
Design and Implementation of Pulse Width Measuring Instrument Based on AT89C52
ZHAO Cui-yu
(Jiangsu Urban and Rural Construction College,Changzhou Jiangsu 213000)
Abstract:The design of pulse width measuring instrument based on AT89C52 is presented in this paper. The measurement results of the instrument are filtered by software digital filter, which eliminates the problem of jitter in the measurement. The measurement accuracy is high and the stability is good. It has certain practicability.
Key words:AT89C52; measuring instrument; pulse width