MCS定时器计数器研讨.ppt

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

第6章 MCS-51 单片机定时器/计数器 主要内容 定时/计数器的工作模式 定时/计数器的工作方式 定时/计数器的编程应用举例 TMOD各位的定义(以定时器/计数器T0为例) 当GATE=0时,只要TR0为1,TL0及TH0组成的13位计数器就开始计数; 当GATE=1时,仅当TR0为1,且INT0引脚输入信号状态为1时,13位计数器开始计数。 计数器开始工作时,13位计数器从初始值开始加1计数,当13位计数器各位全1以后,再计数1次,计数器就产生溢出,则TF0位由硬件自动置1,同时把计数器清0。 在方式0下,计数器计数范围是1~8192( )。定时时间范围为1~8192个机器周期。 在工程设计时,我们经常碰到的是这样的问题:要求在计数N次或者定时(延时)t秒后,再进行下一步的动作。如果采用定时/计数器实现,最直接的方法是让定时/计数器计数N次或者定时t秒后溢出,溢出标志TF0(或TF1)为我们提供了测试判断条件。然而,计数器只有在计满后才会溢出,上述问题转换为在某个初始值的基础上再计N次或再定时t秒使定时/计数器溢出。因此,求初始值是解决上述问题的关键。 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为 ,则: , 那么, 预先给计数器装入初始值 ,当计数器计数 次后,溢出标志TF0为1。 例子 例 利用定时器T0的工作方式0,在P1.0引脚上输出周期为2ms的方波。设单片机的晶振频率为f=12MHz。 解析:一个机器周期TM=1μs,则产生1ms的定时需要对N=1000个机器周期进行计数,所以设置T0的初值为X=8192-1000=7192=1C18H00011000B,那么TH0、TL0中的初值到底是多少呢? 通过分析可得 TH0的初值为E0H,TL0的初值为18H,若采用定时器T0溢出中断方式完成上述功能,则 ORG 0000H AJMP MAIN ORG 000BH AJMP PT0 MAIN: MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#18H SETB EA SETB ET0 SETB TR0 SJMP $ PT0: MOV TH0,#0E0H MOV TL0,#18H CPL P1.0 RETI 若采用程序查询方式来实现上述功能,则应怎么编写这段程序? ORG 0000H AJMP MAIN MAIN: MOV TMOD,#00H SETB TR0 LOOP: MOV TH0,#0E0H MOV TL0,#18H JNB TF0,$ CLR TF0 CPL P1.0 SJMP LOOP 当GATE=0时,只要TR0为1,TL0及TH0组成的16位计数器就开始计数; 当GATE=1时,仅当TR0为1,且INT0引脚输入信号状态为1时,16位计数器开始计数。 计数器开始工作时,当16位计数器从初始值开始加1计数,当16位计数器各位全1以后,再计1次,计数器就产生溢出,则硬件自动把TF0位置1,同时把计数器清0。 (1)计数模式 计数N次,要求计数器溢出,设初始值为X,则: , 那么, 预先给计数器装入初始值 ,当计数器计数N次后,溢出标志TF0置1。 例子 例 用定时器T1产生一个50Hz的方波,由P1.1输出,程序用查询方式,f=12MHz。 解析: TM=1μs ,T=1/50Hz=0.02s,则需要定时器产生一个0.01s的定时,即需要T1对N=0.01s/1μs=10000个机器周期计数,则T1中的初值应为X=65536-10000=55536=D8F0H,所以TH1中的初值为D8H,TL1中的初值为F0H。 ORG 0000H AJMP MAIN MAIN:MOV TMOD,#10H SETB TR1 LOOP:MOV TH1,#0D8H MOV TL1,#0F0H JNB TF1,$ CLR TF1 CPL P1.1 AJMP LOOP 当GATE=0时,只要TR0为1,计数器TL0开始计数; 当GATE=1时,仅当TR0为1,且INT0引

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档