第7章 单片机的定时 计数器1.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
源程序如下: MOV TMOD,#09H ; 设T0为方式1 MOV TL0,#00H ;设计初值取最大值 MOV TH0,#00H MOV R0,#70H JB P3.2, $ ;等P3.2(INT0 )变低 SETB TR0 ;启动T0准备工作 JNB P3.2, $ ;等待P3.2(INT0 )变高 JB P3.2,$ ; 等待P3.2(INT0 )再变低 CLR TR0 ; 停止计数 MOV @R0,TL0 ;存放结果 INC R0 MOV @R0,TH0 SJMP $ T0从0 开始计数 INT0 09H (TMOD) 1 TR0 0 TR0 T0停止计数 这种方案被测脉冲的宽度最大为65535个机器周期。由于靠软件启动和停止计数,有一定的测量误差。其可能的最大误差与指令的执行时间有关。 此例中,在读取定时器的计数之前,已把它停住。但在某些情况下,不希望在读计数值时打断定时的过程,由于我们不可能在同一时刻读取THX和TLX的内容。读取一个时恰好另一个产生溢出,在这种情况下,读取的计数值有可能是错的。可以解决错读的方法是: 先读THX后读TLX,若两次读得的THx没有发生变化,则可确定读到的内容是正确的。若前后两次读到的THx有变化,则再重复上述过程,重复读到的内容就应该是正确的了。下面是按此…思路编写的程序段,读到的TH0 和TL0放在R1和R0内: RP:MOV A,TH0; MOV R0,TL0; CJNE A,TH0,RP; MOV R1,A … … 7.5 小 结 定时计数器应用非常广泛,如定时采样、时间测量、产生音响、作脉冲源、制作日历时钟、测量波形的频率和占空比、检测电机转速等。因此应很好掌握。 ★ 51系列单片机既有两个16位的定时计数器,有四种不同的工作方式,归纳于下表: 28=256 =100H 28=256 =100H 216=65536 =10000H 213=8192 =2000H 模 值 (计数最大值) TL0定时,计数 占用TR0、TF0 ; TH0定时,使用 T1 的TR1、TF1 此时T1作波特率 发生器 定时、计数范围小,不用重装时间常数,多用于串行通信的波特率发生器 用于 定时时间 <65.5ms, 计数脉冲 < 65536 个 场合 用于 定时时间 <8.19ms , 计数脉冲 < 8192 个 场合 应用场合 (设fosc=12MHz) 同方式0、1 第一次装入,启动工作后,每次TL回零后,不用程序装入,由TH自动装入到TL 每启动一次工作,需装入一次计数初值 同左 TH TL 高八位 TH 低八位 TL 高八位 TH 低五位 TL 计数初值 C的装入 方式 3 T0两个8位 方式 方式 2 8位自动 重装方式 方式 1 16位定时 计数方式 方式 0 13位定时 计数方式 方 式 八位 ★ 定时和计数实质都是对脉冲的计数,只是被计脉冲的来源不同,定时方式的被计脉冲来源于时钟,计数方式的被计脉冲来源于外部,定时方式的计数初值和被计脉冲周期有关,计数方式的和被计脉冲的个数有关。 ★ 无论定时还是计数,当计满规定的 脉冲个数产生溢出(计数初值寄存器回零),置位TFx , 可以通过程序查询,如果允许中断,会产生中断。 ★ 本章应重点掌握定时计数器的应用设计 * 方式2为8位方式,初值既要装入TH0,也要装入TL0,用指令表示: MOV TH0,#9CH MOV TL0,#9CH 方式1(16位方式): C=(64H)补=10000H-64H=FF9CH 方式2(8位方式): 应注意定时器在不同工作方式时

文档评论(0)

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

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

1亿VIP精品文档

相关文档