8051单片机的定时计数器精选.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文档。上传文档
查看更多
8 16位 与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。 当为计数工作方式时,计数值的范围是:1~65536(216) 当为定时工作方式时,定时时间计算公式为:? (216-计数初值)×晶振周期×12? 或 (216-计数初值)×机器周期。 2. 方式1—16位方式 计数器由TH0全部8位和TL0全部8位构成。 3. 方式2—8位自动装入时间常数方式 定时器T0能否启动工作,还受到了TR0、GATE和引脚信号INT0的控制。 当GATE=0时,只要TR0=1就可打开控制门,使定时器工作; 当GATE=1时,只有TR0=1且INT0=1,才可打开控制门。 3. 方式2—8位自动装入时间常数方式 T0的结构: TL0:8位的定时器/计数器; TH0:8位预置寄存器,用于保存初值。 工作过程:当TL0计满溢出时,TF0置1,向CPU发出中断请求;同时引起重装操作(TH0的计数初值送到TL0),进行新一轮计数。 工作方式2是一种自动装入时间常数的8位计数器方式。 3. 方式2—8位自动装入时间常数方式 由于这种方式省去了用户程序中的重装指令 ,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时/计数范围要小于方式0和方式1,最大只能到255 。 这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。 4. 方式3—双8位方式 工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。 4. 方式3—双8位方式 TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。 TH0只能作8位定时器。使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位(TR1、TF1) 当T0为工作方式3时,TH0和TL0分成2个独立的8位计数器。 4. 方式3—双8位方式 这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。 通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。 1.计数器初值的计算 设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下: X=M-要求的计数值 四、定时/计数器常数的计算 2.定时器初值的计算 在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。因此,定时器定时初值计算公式: X=M-(要求的定时值)/(12/fosc) 式中,M为定时器模值(根据不同工作方式,M可以是213、216或28) 应用举例 可编程器件在使用前需要进行初始化: ①确定TMOD控制字:编程时将控制字送TMOD; ②计算计数器的计数初值: 编程时将计数初值送THi、TLi; ③ 开中断(如果使用中断方式): 编程实置位EA、ETi ④ TRi位置位控制定时器的启动和停止。 例:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500μs的方波脉冲,并由P1.0 输出。试以中断方式实现。 8051 P1.0 500μs ① TMOD确定 T1控制 T0控制 X X X X 1 0 0 0 M0 M1 C/T GATE M0 M1 C/T GATE 控制字10H 要产生500μs的方波脉冲,只需在P1.0端以250μs为间隔,交替输出高低电平即可实现。为此,定时间应为250μs。使用6MHz晶振,则一个机器周期为2μs,设待求定时器初值为X,则: ② 计算定时器的初值; 需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。 (216–X)×2×10 -6 =250×10 -6 即216–X=125 X=216-125=10000H-7DH =0FF83H 所以,初值为: TH1=0FFH,TL1=83H ③ 采用中断方式:编程时打开全局和局部中断。 ④ 由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。 TR1=1,启动; TR1=0,停止。 C语言程序: #i

文档评论(0)

贪玩蓝月 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档