策略实现第6章 定时器计数器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
策略实现第6章 定时器计数器

12分频后的内部脉冲信号计数。由于时钟频率是定值,所以可根据计数值计算出定时时间。 计数器的起始计数都是从计数器初值开始的。单片机复位时计数器的初值为0,也可用指令给计数器装入一个新的初值。 6.1.1 工作方式控制寄存器TMOD 用于选择定时器/计数器的工作模式和工作方式,字节地址为89H,不能位寻址,格式如图6-2所示。 1、 TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式; 2、TH0分别借用了定时器T1的TR1和TF1为自己服务,使TH0能象TL0那样用TR1启动定时,并用TF1来作为TH0的溢出中断的标志; 3、此时,由于T1缺少了启动控制信号TR1和溢出中断标志TR1,那么在模式3时,T1是如何启动和工作? 没有溢出中断标志TF1,则T1就不用中断方式工作(实际上连查询也不行);没有启动控制信号TR1,可以让它在模式3之前就开始工作,并且让它事先设定为自动重装模式. 4、 模式3就是将单片机原有的T0,T1两个计数器变成三个独立的计数器,其中T1要事先设定为模式2(串行口的波特率发生器)并启动起来。 模式3时T0,T1的电路结构 定时/计数器4种模式比较 6.3 对外部输入的计数信号的要求 当定时器/计数器工作在计数器模式时,计数脉冲来自外部输入引脚T0或T1。 当输入信号产生负跳变时,计数器的值增1。 每个机器周期的S5P2期间,都对外部输入引脚T0或T1进行采样。如在第一个机器周期中采得的值为1,而在下一个机器周期中采得的值为0,则在紧跟着的再下一个机器周期S3P1 期间,计数器加1。由于确认一次负跳变要花2个机器周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。 例如,选用6MHz频率的晶体,允许输入的脉冲频率最高为250kHz。如果选用12MHz频率的晶体,则可输入最高频率为500kHz的外部脉冲。 对于外部输入信号的占空比并没有什么限制,但为了确保某一给定电平在变化之前能被采样一次,则这一电平至少要保持一个机器周期。 * 图6-17 时钟主程序流程 * 图6-18 中断服务程序流程 参考程序: ORG 0000H AJMP MAIN ;上电,跳向主程序 ORG 000BH ;T0的中断入口 AJMP IT0P ORG 1000H MAIN: MOV TMOD,#01H ;设T0为方式1 MOV 20H, #0AH ;装入中断次数 CLR A MOV 40H, A ;“时”单元清“0” MOV 41H, A ;“分”单元清“0” MOV 42H, A ;“秒”单元清“0” * SETB ET0 ;允许T0申请中断 SETB EA ;总中断允许 MOV TH0,#3CH ;给T0装入计数初值 MOV TL0,#0B0H SETB TR0 ;启动T0 HERE: SJMP HERE ;等中断(也可调用显示子程序) IT0P: PUSH PSW ;T0中断子程序入口, 保护现场 PUSH Acc MOV TH0,#3CH ;重新装入初值 MOV TL0,#0B0H DJNZ 20H,RETURN ;1秒时间未到, 返回 MOV 20H, #0AH ;重置中断次数 MOV A, #01H ;“秒”单元增1 * ADD A,42H DA A ;“秒”单元十进制调整 MOV 42H,A ;“秒”的BCD码存回“秒”单元 CJNE A,#60H,RETURN ;是否到60秒,未到则返回 MOV 42H, #00H ;计满60秒,“秒”单元清“0” MOV A, #01H ;“分”单元增1 ADD A,41H DA A ;“分”单元十进制调整 MOV 41H,A ;“分”的BCD码存回“分”单元 CJNE A,#60H,RETURN ;是否到60分,未到则返回 * MOV 41H, #00H ;计满60分,“分”单元清“0” MOV A, #01H ;“时”单元增1 ADD A,40H DA A ;“时”单元十进制调整 MOV 40H,A CJNE

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档