技术文章

当前页面: 首页 >技术文章 >多功能智能频率仪的设计

多功能智能频率仪的设计

供稿:工控网 2006/9/7 8:31:00

0 人气:454

测量数字脉冲信号频率的方法很多,但绝大多数频率仪仅能测量脉冲的频率和周期。 为了更深一步研究和 处理监测的信号,我们往往还关心脉冲的正脉宽、负脉宽和占空比等参数。为了测量有关脉 冲的这些参数,现研制出既能测量频率、周期,又能测量正脉宽、负脉宽和占空比 的多功能频率仪。该频率仪可直接测量数字脉冲信号的各种参数,简单、实用。若串行口通 过现场总线将测量参数传递给上位机,还可将此仪器稍作改动,作为前端实时采集单元监测 信号之用。
图1 智能频率仪硬件系统图(略)
  1 频率仪的硬件系统
  图1为智能频率仪的硬件系统图。本系统的主要控制部件单片机采用ATMEL公司生产的 AT89C51,它内含4kB FLASH 内部程 序存储器和256B内部数据存储器,完全满足系统需要,不需再外扩程序存储器和数据存储器 。脉冲采集是通过NT0、NT1两个外中断口。定时器/计数器0工作在方式2,作为外部中 断的扩展,监视按键电路。用户可通过按键选择测试项目,5个按键(周期、正脉冲宽度、 负脉冲宽度、占空比、频率)通过一个与非门和一个非门加在定时器/计数器0的外部脉冲输 入端(T0引脚)。没有键按下时,T0引脚为高电平;当有键按下时,T0引脚变为低电平,则 定时器/计数器0溢出中断,同时通过PI口的P1.0~P1.4检测这5个按键的状态。键未按下状 态为1,键按下状态为0,以此判断哪个按键按下。输出通过74LS377和74LS373驱动八位七 段译码显示测试参数。其中,74LS377送出位控码,74LS373送出段码。另外通过P1.6、P1.7 分别驱动两个发光二极管显示测试参数的单位为ms或者Hz。
  系统的复位电路采用上电自动复位和按键手动复位两种方式,时钟电路的晶振选择6MHz 。
  2 软件设计
  系统软件采用模块化程序设计思想,用汇编语言编制。由主程序、T0中断服务程序、T1 中断服务程序、INT0中断服务程序、INT1中断服务程序、显示子程序等组成。
  2.1 主程序设计
  开机或复位后系统进行初始化,首先将外中断0和外中断1分别设置为沿触发方式,作为 测试脉冲的引入端,当有外部脉冲输入时引起中断。定时器/计数器0工作方式设置为方式2 ,初值为FFH,作为外部中断的扩展,一旦有键按下,便引起T0中断,在中断服务程序中查 询键值。定时器/计数器1工作方式设置为方式1,初值为FE0CH,以实现定时1ms的功能。接 着对标志寄存器FLAG和数据缓存FCON0、FCON1、TCON0、TCON1清0,最后系统不断调用显 示子程序等待中断。主程序流程见图2。
  2. 2 T0中断服务程序
  当有键按下时,通过与非门74LS30向T0送入一个脉冲,定时器/计数器0计数溢出产生中断。 进入中断服务程序后,首先关闭T0中断,软件闭锁其他按键,然后读P1口值。若P1口值不是 FFH,说明有键按下,延时一段时间,再读P1口,若仍不是FFH,说明真有键按下,等按键释 放后,则将P1口的值送到KEYVALUE中保存。在上述操作中,若P1口值为FFH,说明为干扰, 则不予理睬。最后,重新置定时器/计数器0计数初值为FFH,并启动计数器工作,等待下一 次按键。
图2 主程序流程图(略)
  2.3 INT0中断服务程序
  当被测脉冲加在AT89C51的/INT0引脚上时,在脉冲的下降沿产生外中断0的中断申请。进入 中断后,首先启动定时器/计数器1工作,将键值送给A累加器,接着根据A累加器的值散转。 主要分支有测周期分支、测正脉宽分支、测负脉宽分支、测占空比分支、测频率分支等。下 面以测周期、测正脉宽、测频率等分支为例,简要说明测量过程。
  (1)测周期分支流程。 在测周期分支里,先判断周期标志的状态是否为1。若不为1,表 明是第一次进入外中断0, 则置位周期标志;若为1,表明是第二次进入外中断0,说明已测完了脉冲的一个周期,则清 周期标志位,关闭定时器/计数器1停止计数,并将测量到的周期值(包括整数和小数部分) 送入显示缓冲区。
  (2)测频率分支流程。进入测频率分支后,首先置位频率标志位为1,然后每中断一次,脉 冲计数器FCON0、FCON1 加1.记录在1s内外中断0的中断次数,即被测脉冲在1s内的脉冲个数,此值即为所测频率 值。其中定时1s的功能在定时器/计数器1中断处理程序中完成,由定时器/计数器1中断100 0次来实现(1000×1ms=1s)。
  (3)测正脉宽分支流程。进入测正脉宽分支后,根据正脉宽标志位和占空比标志1位的状态 决定程序的走向。若为测 正脉宽,则定时器/计数器1停止定时,清正脉宽标志,并将所测的正脉宽值送入显示缓冲区 ;测占空比,则关闭定时器/计数器1定时,将所测的正脉宽值保存在WIDTH0、WIDTH1里以便 算占空比,并将键值改为08H,为了标记已进入过外中断0,置位占空比标志2,最后再启动 定时器/计数器1工作。
  2.4 INT1中断服务程序
  在外中断1中断处理程序中,主要根据标志位和键值进入不同的分支。若为测正脉宽分支 ,则启动定时器/计数器1;若为测负脉宽分支,则将停止定时器/计数器1工作,将所测负脉 宽的值送入显示缓冲区里;若为测占空比分支且占空比标志2为1,则将停止定时器/计数器1 工作,将所测的值送入缓冲区里,计算占空比,并将结果送到显示缓冲区。
  参考文献
1 陈奥初等编等,单片机应用系统设计与实践.北京航空大学出版社,1995,10
2 李广第编著单片机基础.北京航空航天大学出版社,2000,8
信息来源于:中国煤炭

更多内容请访问 工控网(http://c.gongkong.com/?cid=41670)

手机扫描二维码分享本页

工控网APP下载安装

 

我来评价

评价:
一般