资源描述:
《数字显示频率计.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用51单片机测量周期,频率的方法及实现-用51单片机测量周期,频率的方法及实现对于周期波频率的测量方法很多,但大多是通过测量间接计算频率。本文介绍了用目前应用比较广泛的MCS-51系列单片机对周期波频率进行测量,并通过LED以数字形式直观地示出频率,实现测量的智能化,省去间接对频率计算的麻烦与错误。文章对其测量原理,设计和实现作了说明,介绍了主要程序,并进行了误差分析。引言 目前单片机广泛应用到国民经济建设和日常生话的许多领域,成为测控技术现代化不可缺少的重要工具。而本文适应这一发展趋势,把MCS-51系列单片机应用于对周期波频率的测量。并通过LED显示器
2、自动显示出来,这对于频率的测量带来了极大的方便。设计思想 利用施密特触发器将边缘缓慢变化的周期性信号如正弦波、三角波或任意形状的模拟信号变换成同频率的矩形脉冲。通过MCS-51系列单片机内部的两个十六位定时,计数器测量某段时间内的外加脉冲数,经过处理并通过LED直接显示出所加信号的频率。单片机内部的T0用来定时,T1用来计数(下降沿触发)。当来一个计数脉冲则计数一次。在T0开始定时的同时,T1开始计数;T0定时1s时间到时,T1停止计数。方框图如图1所示。 硬件设计 测量频率的硬件电路主要由计数脉冲形成电路和计数显示电路两大部分组成。计数脉冲形成电路用"555
3、"定时器接成施密特触发器对外加的周期波进行变换,使之输出为矩形脉冲。电路如图2所示,计数显示电路如图3所示,主要包括: (1)由INTEL公司生产、晶振频率为12MHz的89S02单片机。通过软件编程使它内部的定时器T0定时,T1对外部的所加脉冲计数。然后把测量结果值通过P0口输出。89S02自带8K闪存,可以有90—100个现场测量数据,供回放调检。 (2)4位七段共阴极的LED显示器。 (3)由于采用的是4位共阴极的动态扫描方式显示,段代码由89S02的P0口提供,位选线则由89S02P2口的P2.0~P2.3提供。由于89S02的输入,输出口
4、不能提供足够的灌电流,因此用G1~G4提供给LED足够的显示电流。 软件设计用MCS-51单片机测量频率的程序主要包括:初始化程序,定时计数程序、LED显示程序。初始化程序略。定时计数主要程序:MOVR2,#14H;定时20个0.05秒ANLTMOD,#0FH;设置T0定时T1计数ORLTMOD,#51HMOVTH0,#3AH;置定时器初值MOVTL0,#B1HMOVTH1,#00H;置计数器初值MOVTL1,#00HSETBTR0 ;启动定时SETBTR1 ;启动计数XX:JBCTF0,LOOP;定时溢出则转移SJMPXX ;否则继续查询LOOP:MOVT
5、H0,#3AH;置定时初值MOVTL0,#B1HDJNZR2,XX ;R2不等于0则转移CLRTR1 ;停止计数LED显示程序MOVA,0HMOVA,TL1 ;TL1值送累加器AMOVB,#100 ;处理计数结果DIVABMOVR0,B ;余数放77H单元MOV77H,R0MOV7AH,A ;商放7AH单元MOVA,0HMOVA,77H ;77H送累加器AMOVB,#10 ;处理计数结果DIVABMOVR0,B ;余数放78H单元MOV78H,R0MOV79H,A ;商放79H单元(测量数据存储程序略)DPLOP1:MOVA,78H ;取出时间的个位数送AMO
6、VCA,@A+DPTR ;查表MOVP0,A ;送P0口CLRP2.3 ;开个位显示ACALLD1MS ;延时0.1秒SETBP2.3 ;关个位显示MOVA,79H ;取出时间的十位数送AMOVCA,@A+DPTR ;查表MOVP0,A ;送P0口CLRP2.2 ;开十位显示ACALLD1MS ;延时0.1秒SETBP2.2 ;关十位显示MOVA,7AH ;取出时间的百位数送AMOVCA,@A+DPTR ;查表MOVP0,A ;送P0口CLRP2.1 ;开百位显示ACALLD1MS ;延时0.1秒SETBP2.1 ;关百位显示D1MS:MOVR5,#60DJN
7、ZR5,$LJMPDPLOP1RET;段数码管各划的数字排列表NUMTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;显示内容的对应代码0123456789;显示内容测量范围 在上述程序下的最大测量频率为255Hz。适当调整程序后的最大测量频率可为89S02主频的1/12,但在保证测量精度的前提下最大测量频率宜安排在主频的1/100以下。误差分析 上述程序的最大测量频率为255Hz,由于单片机在响应中断的时候有2—6个机器周期,按最大误差计算,6-2=4个机器周期,在1s钟中断响应一共发生20次,最不利的累计
8、误差时间为4×20=80微秒,因此在此