《单片机嵌入式系统及应用》课件——第7章 8051单片机的定时器计数器.pptxVIP

《单片机嵌入式系统及应用》课件——第7章 8051单片机的定时器计数器.pptx

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

1;2;3;图7-3定时器/计数器T1模式0逻辑结构图;定时器的组成

在8051单片机中,内部定时器都是可编程控制的定时器/计数器,至少由两部分组成:脉冲计数电路和控制字寄存器及译码控制电路。在复杂一些的定时器中,还有预置数寄存器、多路开关等。

2.定时/计数器的工作原理

可编程控制的计数器都是在程序写入控制字后按照控制逻辑的控制进行计数,所以在计数器开始工作前,必须要对定时器进行初始化设置。一般定时器初始化设置的主要内容有定时器的工作方式、计数的初值、中断的设置等。

;6;3.定时器的溢出与重置;7.28051的定时器/计数器T0和T1的控制;9;定时器初值预置实例

MOV TH0,#0F0H

MOV TL0,#0CH

MOV TL1,#9CH

MOV TH1,#9CH

注意,不存在指令MOVT0,#9C9CH类似的指令!

;11;TMOD中的GATE位是门控制位,若GATE=0,定时器/计数器由TCON寄存器中的控制位TRx直接控制,TRx位为“1”时允许计数,TRx位为“0”时停止计数。

若GATE=1,定时器/计数器由TCON寄存器中的控制位TRx和外部中断输入引脚双重控制,当TRx位与输入电平都为“1”时才允许计数,其它情况时都停止计数。

TMOD中的位为定时/计数控制位,该位为“0”时,为定时器工作,对CPU时钟经12分频后形成的脉冲计数(对标准时钟计数就是计时);该位为“1”时,为计数器工作,对由外部引脚(T0、T1)输入的脉冲计数。

;TMOD寄存器中的M0、M1为工作模式设置位,可以设定定时器以四种工作模式中的一种模式工作,如表7-1所示。;14;TF1—T1计数溢出标志位。当计数器T1计数计满溢出时,由硬件置1,申请中断。进入中断服务程序后由硬件自动清零。

TR1—T1计数运行控制位。由软件置1或清0。为1时允许计数器T1计数,为0时禁止计数器T1计数。

TF0—T0计数溢出标志位。当计数器T0计数计满溢出时,由硬件置1,申请中断。进入中断服务程序后由硬件自动清零。

TR0—T0计数运行控制位。由软件置1或清0,为1时允许计数器T0计数,为0时禁止计数器T0计数。

;IE0—外部中断0()请求标志位。当CPU采样到INT0引脚出现中断请求后,此位由硬件置1。在中断响应完成后转向中断服务程序时,再由硬件自动清0。这样,就可以接收下一次外中断源的请求。

IE1—外部中断1()请求标志位,功能同上。

IT0—外中断0请求信号方式控制位。当IT0=1时下降沿信号有效;IT0=0时,低电平信号有效。

IT1—外中断1请求信号方式控制位。当IT1=1时下降沿信号有效;IT1=0时,低电平信号有效。

;17;18;19;20;21;22;23;24;图7-3定时器/计数器T1模式0逻辑结构图;图7-4定时器/计数器T1模式1逻辑结构图;图7-5定时器/计数器T1模式2逻辑结构图;a)TL0作8位定时器;图7-7T0工作在模式3时T1为模式0的工作示意图;图7-9T0工作在模式3时T1为模式2的工作示意图;31;32;33;;35;补偿方法的原理是:

①在中断服务子程序执行过程中关掉总中断,防止其它中断嵌套影响定时精度;

②用CLRTR0指令停止T0计数,此时T0的计数值恰好反映了从T0溢出申请中断直到CPU响应中断这一段时间长短。把这个误差值按高8位和低5位分别加到T0的预置初值上去,这就补偿了CPU响应中断申请之前的定时误差;

③在中断服务子程序的关T0指令到启动T0指令之间还有14个机器周期的时间,也应该每次加在T0的预置初值上去。

;例7.3程序中的中断服务子程序应该改成,实现精确定时

T0INT:CLREA ;关中断

CLRTR0 ;停止T0计数

MOVA,#0F0H ;取高8位计算的初值

ADDA,TH0 ;加修正值

ADDTH0,A ;修正后送TH0

MOVA,#0CH ;取低5位计算的初值

ADDA,#0EH ;加14个机器周期

ADDA,TL0 ;加修正值

JNBACC.5,LOW5_CARRY ;判断低5位有进位否?

INCTH0

ANLA,

LOW5_CARRY:MOVTL0,A ;修正后TL0。

CPLP1.0

SETBTR0 ;启

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档