6.4-定时器计数器综合应用举例.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*例1:设时钟频率为6MHz。编写利用T0产生1s定时的程序。(1)定时器T0工作模式的确定∵模式0最长可定时16.384ms;模式1最长可定时131.072ms;模式2最长可定时512μs;∴定时1s,可选用模式1,每隔100ms中断一次,中断10次为1s。(2)求计数器初值X∵(216-X)×12/(6×106)=100×10-3s∴X=15536=3CB0H因此:(TL0)=0B0H(TH0)=3CHORG0000HAJMPMAINORG000BHAJMPSERVEORG0040HMAIN:MOVSP,#60HMOVB,#0AHMOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBTR0SETBET0SETBEASJMP$SERVE:MOVTL0,#0B0HMOVTH0,#3CHDJNZB,LOOPCLRTR0LOOP:RETIEND例2:测量在(P3.2)端出现的正脉冲宽度。分析:利用门控制位GATE实现对定时器/计数器的启/停控制,来测量脉冲宽度。当GATE为1,TR1(TR0)为1时,只有INT1(INT0)引脚输入高电平时,T1(T0)才允许计数。当GATE为0,只要TR1(TR0)为1时,T1(T0)就允许计数。利用GATE=1时的这个功能,可测试INT1(P3.3)和INT0(P3.2)上正脉冲的宽度。P3.2T取出TH0和TL0的值送入30H和31HT0初始化(TMOD,TL0,TH0赋值)P3.2=0?启动T0工作停止T0工作NY开始P3.2=1?NY结束P3.2=0?NYORG4000HMOVTMOD,#09H ;定时器T0模式1定时MOVTH0,#00H ;设定初值 MOVTL0,#00H ; JBP3.2,$ ;等待INT1变低 SETBTR0 ;启动T1 JNBP3.2,$ ;等待INT1变高JBP3.2,$ ;开始计数,等待变低CLRTR0 ;停止计数MOV30H,TH1;取出T1中的高八位MOV31H,TL1;取出T1中的低八位SJMP$END例3:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。(1)实现时钟计时的基本方法①计算计数初值。时钟计时的最小单位是秒,但使用单片机定时器/计数器进行定时,即使按方式1工作,其最大定时时间也只能达131ms。因此,可把定时器的定时时间定为100ms,计数溢出10次即得到时钟计时的最小单位—秒;而10次计数可用软件方法实现。假定使用定时器T0,以工作模式1进行100ms的定时。如fosc=6MHz,则计数初值X为:∵(216-X)×12/(6×106)=100×10-3s∴X=3CB0H因此:(TL0)=0B0H(TH0)=3CH②采用定时方式进行溢出次数的累计,计满10次即得到秒计时。③从秒到分和从分到时的计时是通过累计和数值比较实现的。④时钟显示即及显示缓冲区部分在这里略,可自行设计。(2)程序流程及程序清单①主程序(MAIN)的主要功能是进行

文档评论(0)

金华 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档