
作者:***
来源:《硅谷》2008年第04期
[摘要]对于周期波频率的测量方法很多,但大多是通过测量间接计算频率。介绍用目前应用比较广泛的MCS-51系列单片机对周期波频率进行测量,并通过LED以数字形式直观地示出频率,实现测量的智能化,省去间接对频率计算的麻烦与错误。对其测量原理、设计和实现做说明,介绍主要程序,并进行误差分析。
[关键词]MCS-51单片机 矩形脉冲 频率测量 LED显示
中图分类号:TM92文献标识码:B文章编号:1671-7597(2008)0220049-01
目前单片机广泛应用到国民经济建设和日常生活的许多领域,成为测控技术现代化不可缺少的重要工具。而本文适应这一发展趋势,把MCS-51系列单片机应用于对周期波频率的测量,并通过LED显示器自动显示出来,这对于频率的测量带来了极大的方便。
一、设计思想
利用施密特触发器将边缘缓慢变化的周期性信号如正弦波、三角波或任意形状的模拟信号变换成同频率的矩形脉冲。通过MCS-51系列单片机内部的两个十六位定时/计数器测量某段时间内的外加脉冲数,经过处理并通过LED直接显示出所加信号的频率。单片机内部的T0用来定时,T1用来计数(下降沿触发)。当来一个计数脉冲则计数一次。在T0开始定时的同时,T1开始计数;T0定时1s时间到时,T1停止计数。方框图如图(1)所示。
二、硬件设计
测量频率的硬件电路主要由以下两大部分组成。
(一)计数脉冲形成电路
用“555”定时器接成施密特触发器对外加的周期波进行变换,使之输出为矩形脉冲。如图(2)所示
(二)计数显示电路
如图(3)所示,主要包括:
(1)由INTEL公司生产、晶振频率为12MHZ的S02单片机。通过软件编程使它内部的定时器T0定时,T1对外部的所加脉冲计数。然后把测量结果值通过P0口输出。S02自带8K闪存,至可以90100个现场测量数据,供回放调检。
(2)4位七段共阴极的LED显示器。
(3)由于采用的是4位共阴极的动态扫描方式显示,段代码由S02的P0口提供,位选线则由S02P2口的P2.0P2.3提供。由于S02的输入/输出口不能提供足够的灌电流,因此用G1G4提供给LED足够的显示电流。
三、软件设计
用MCS-51单片机测量频率的程序主要包括:初始化程序,定时计数程序、LED显示程序。初始化程序:略
定时计数主要程序:
MOV R2 ,# 14H ;定时20个0.05秒
ANL TMOD ,# 0FH ;设置T0定时T1计数
ORL TMOD ,# 51H
MOV TH0 ,# 3AH;置定时器初值
MOV TL0 , # B1H
MOV TH1 ,# 00H;置计数器初值
MOV TL1 ,# 00H
SETB TR0;启动定时
SETB TR1;启动计数
XX;JBC TF0 ,LOOP;定时溢出则转移
SJMP XX ;否则继续查询
LOOP;MOV TH0, # 3AH ;置定时初值
MOV TL0 ,# B1H
DJNZ R2 ,XX;R2不等于0则转移
CLR TR1 ;停止计数
LED显示程序:
MOVA,0H
MOV A ,TL1;TL1值送累加器A
MOVB ,# 100 ;处理计数结果
DIV AB
MOV R0 ,B ;余数放77H单元
MOV 77H ,R0
MOV 7AH ,A ;商放7AH单元
MOV A,0H
MOV A ,77H ;77H送累加器A
MOV B ,# 10 ;处理计数结果
DIV AB
MOV R0 ,B ;余数放78H单元
MOV 78H ,R0
MOV 79H ,A;商放79H单元
(测量数据存储程序略)
DPLOP1;MOV A,78H ;取出试件的十位数送A,
MOVC A,@A+DPTR ;查表
MOV P0,A ;送P0口
CLR P2.3 ;开个位显示
ACALL D1MS ;延时0.1秒
SETB P2.3 ;关个位显示
MOV A,79H ;取出试件的个位数送A,
MOVC A,@A+DPTR ;查表
MOV P0,A ;送P0口
CLR P2.2 ;开十位显示
ACALL D1MS ;延时0.1秒
SETB P2.2 ;关十位显示
MOV A,7AH ;取出试件的百位数送A,
MOVC A,@A+DPTR ;查表
MOV P0,A ;送P0口
CLR P2.1 ;开百位显示
ACALL D1MS ;延时0.1秒
SETB P2.1 ;关百位显示
D1MS; MOV R5,#60
DJNZ R5,$
LJMPDPLOP1
RET ;段数码管各划的数字排列表
NUMTAB; DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;显示内容的对应代码;0 1 2 3 4 56 7 8 9 ;显示内容。
四、测量范围
在上述程序下的最大测量频率为255Hz。适当调整程序后的最大测量频率可为S02主频的1/12。但在保证测量精度的前提下最大测量频率宜安排在主频的1/100以下。
五、误差分析
上述程序的最大测量频率为255HZ,由于单片机在响应中断的时候有26个机器周期,按最大误差计算,6-2=4个机器周期,在1秒中顶中断响应一共发生20次,最不利的累计误差时间为4*20=80微秒,因此在此程序下的最大误差为:80/1000000=0.08/1000,这样的精度完全能满足现场检测的需要。
作者简介:
王雅乐,女,工程师,主要从事电气自动化方面的研究设计工作。
