定时器计数器的应用.ppt.ppt

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

6.3 定时器/计数器的应用 6.3.1 初始化 初始化的内容如下: (1) 根据设计需要先确定定时器/计数器的工作模式及工作方式,然后将相应的控制字送入TMOD寄存器中。 (2) 计算出计数初始值并写入TH0、TL0、TH1、TL1中。 (3) 通过对中断优先级寄存器IP和中断允许寄存器IE的设置,确定计数器的中断优先级和是否开放中断。 (4) 给定时器控制寄存器TCON送命令字,控制定时器/计数器的启动和停止。 6.3.2 初值的计算 定时器/计数器T0、T1不论是工作在计数器模式还是定时器模式下,都是加1计数器,因而写入计数器的初始值和实际计数值并不相同,两者的换算关系如下:设实际计数值为C,计数最大值为M,计数初始值为X,则X=M-C。其中计数最大值在不同工作方式下的值不同,具体如下: (1) 工作方式0:M=213=8192。 (2) 工作方式1:M=216=65 536。 (3) 工作方式2:M=28=256。 (4) 工作方式3:M=28=256。 这样,在计数器模式和定时器模式下,计数初值都是X=M-C(十六进制数)。 定时器模式下对应的定时时间为 T=C·T机=(M-X)T机 式中,T机为单片机的机器周期(T机为晶振时钟周期的12倍)。 6.3.3 应用举例 [例6.1] 单片机晶振fosc=6 MHz,利用定时器T1定时中断方法产生周期为4 ms的方波,并由P1.0端输出。 时间常数2 ms对应的计数初值X为 T机=12/fosc=(12/6)×10-6 s=2 μs X=M-T/T机=213-2×10-3/(2×10-6)=7192 转化为十六进制为 X=1C18H=11100000011000B 主程序及中断服务程序如下: ORG 0000H AJMP INITZ ;转主程序 NOP ORG 001BH ;T1中断入口 MOV TL1, #18H ;中断服务程序送定时初值 MOV TH1,#0E0H CPL P1.0 ;R1.0取反 RETI ;中断返回? ORG 0052H INITZ: MOV SP,#15H ;建立堆栈指针 MOV TMOD,#00H ;设置T1工作方式 MOV TL1,#18H ;置T1初值 MOV TH1, #0E0H SETB EA ;CPU开中断 SETB ET1 ;允许T1中断 SETB TR1 ;启动T1 AD1:MOV A,#00H AJMP AD1 [例6.2] 单片机晶振fosc=12 MHZ,利用定时器T0、T1产生周期为200 ms的方波,并由P1.0端输出。 方法1:由要求可知,只要使P1.0每隔100 ms取反一次即得周期为200 ms的方波信号。这样就需要一个100 ms的定时器。 当fosc=12 MHZ时,T0(或T1)在工作方式1下的最大定时时间为65.536 ms,所以一个定时器不能满足需要,采用T0、T1各定时50 ms,顺序定时的方法可达到100 ms的要求,因而我们选T0、T1为定时器模式,工作在方式1下,启/停控制由TR0、TR1完成。GATE=0,这样TMOD的控制字为11H。对应50 ms计数初值X为 T0、T1顺序定时可采用中断方法实现,也可采用查询方式实现,这里假定CPU不做其它工作,采用查询法编写程序如下: ORG 0052H STI:MOV TMOD,#11H ;设置T0、T1为定时器,方式1工作 AD1:MOV TL0,#0B0H ;送T0初值 MOV TH0,#3CH SETB TR0

文档评论(0)

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

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

1亿VIP精品文档

相关文档