- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用51单片机测量周期,频率的方法及实现
用51单片机测量周期,频率的方法及实现
对于周期波频率的测量方法很多,但大多是通过测量间接计算频率。本文介绍了用目前应用比较广泛的MCS-51系列单片机对周期波频率进行测量,并通过LED以数字形式直观地示出频率,实现测量的智能化,省去间接对频率计算的麻烦与错误。文章对其测量原理,设计和实现作了说明,介绍了主要程序,并进行了误差分析。
引言??? 目前单片机广泛应用到国民经济建设和日常生话的许多领域,成为测控技术现代化不可缺少的重要工具。而本文适应这一发展趋势,把MCS-51系列单片机应用于对周期波频率的测量。并通过LED显示器自动显示出来,这对于频率的测量带来了极大的方便。
设计思想? 利用施密特触发器将边缘缓慢变化的周期性信号如正弦波、三角波或任意形状的模拟信号变换成同频率的矩形脉冲。通过MCS-51系列单片机内部的两个十六位定时,计数器测量某段时间内的外加脉冲数,经过处理并通过LED直接显示出所加信号的频率。单片机内部的T0用来定时,T1用来计数(下降沿触发)。当来一个计数脉冲则计数一次。在T0开始定时的同时,T1开始计数;T0定时1s时间到时,T1停止计数。方框图如图1所示。?
硬件设计? 测量频率的硬件电路主要由计数脉冲形成电路和计数显示电路两大部分组成。计数脉冲形成电路用555定时器接成施密特触发器对外加的周期波进行变换,使之输出为矩形脉冲。电路如图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的输入,输出口不能提供足够的灌电流,因此用G1~G4提供给LED足够的显示电流。??
软件设计用MCS-51单片机测量频率的程序主要包括:初始化程序,定时计数程序、LED显示程序。初始化程序略。定时计数主要程序:MOV R2,#14H ;定时20个0.05秒ANL TMOD,#0FH;设置T0定时T1计数ORL TMOD,#51HMOV TH0,#3AH;置定时器初值MOV TL0,#B1HMOV TH1,#00H;置计数器初值MOV TL1,#00HSETB TR0? ;启动定时SETB TR1? ;启动计数XX:JBC TF0,LOOP ;定时溢出则转移SJMP XX? ;否则继续查询LOOP:MOV TH0,#3AH ;置定时初值MOV TL0,#B1HDJNZ R2,XX? ;R2不等于0则转移CLR TR1? ;停止计数LED显示程序MOV A,0HMOV A,TL1? ;TL1值送累加器AMOV B,#100? ;处理计数结果DIV ABMOV R0,B? ;余数放77H单元MOV 77H,R0MOV 7AH,A? ;商放7AH单元MOV A,0HMOV A,77H? ;77H送累加器AMOV B,#10? ;处理计数结果DIV ABMOV R0,B? ;余数放78H单元MOV 78H,R0MOV 79H,A? ;商放79H单元(测量数据存储程序略)DPLOP1: MOV A,78H? ;取出时间的个位数送AMOVC A,@A+DPTR? ;查表MOV P0,A? ;送P0口CLR P2.3? ;开个位显示ACALL D1MS? ;延时0.1秒SETB P2.3? ;关个位显示MOV A,79H? ;取出时间的十位数送AMOVC A,@A+DPTR? ;查表MOV P0,A? ;送P0口CLR P2.2? ;开十位显示ACALL D1MS? ;延时0.1秒SETB P2.2? ;关十位显示MOV A,7AH? ;取出时间的百位数送AMOVC A,@A+DPTR? ;查表MOV P0,A? ;送P0口CLR P2.1? ;开百位显示ACALL D1MS? ;延时0.1秒SETB P2.1? ;关百位显示D1MS:MOV R5,#60DJNZ R5,$LJMP DPLOP1RET;段数码管各划的数字排列表NUMTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;显示内容的对应代码0 1 2 3 4 5 6 7 8 9;显示内容
测量范围? 在上述程序下的最大测量频率为
文档评论(0)