第6章定时器剖析.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3、MCS-51单片机定时/计数器的功能 归根结底是计数器。(区别在于计数脉冲源) (1)定时功能 单片机的晶振经过12分频后获得的一个脉冲源,即对片内机器周期进行计数,每个机器周期产生一个计数脉冲,计数加1。 (2)计数功能 对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲的个数进行计数,下降沿计数加1。但外部计数脉冲的频率不能低于晶振频率12分频后的频率值,否则将无法完成准确的计数。 最大计数值为28=256,若fosc=12MHz,则方式2的最大定时时间为256us。当作为定时器用时,定时时间的计算公式: △T=(28 — 计数初值)× 机器周期(12/fosc) 例如:定时500us,fosc=6MHz时,初值=28—500/2=6= 06H 则:TH0=TL0=06H 需要说明的是:以上程序在定时器初始化之后,即进入虚拟的主程序,暂停等待定时器溢出中断。这种主程序处于暂停状态等待中断的方法一般只用于例题程序,而在实际系统中则很少采用,因为这涉及到CPU的效率。    还有一点要注意:当采用方式0、1、3时,只要不关闭定时/计数器,那么每当计数器回0溢出时,都需要重新装入计数初值,以保证计数值不变。 若不需要中断和中断服务程序。查询的对象是定时器T0的溢出标志TF0,在计数过程中,TF0为0;当定时时间到,计数器溢出使TF0置1。由于未采用中断,TF0置1后不会自动复位为0,故需用指令使TF0复位为0。 例 当T0(P3.4)引脚上发生负跳变时(扩展负跳沿触发的外部中断源),作为P1.0引脚产生方波的启动信号。开始从P1.0脚上输出一个周期为1ms的方波。(系统时钟6MHz) 分析(1)工作方式选择 T0为方式2计数,初值为0FFH T1为方式2定时,初值为(28-X)*2?s=500?s X=06H (2)中断服务程序 T0中断服务程序停止T0计数,置标志位 T1中断服务程序对P1.0求反,使P1.0产生周期1ms的方波 * * 例:要求用定时器T1定时,在P1.0引脚上输出如图方波。设晶振频率为12MHz。 P1.0 89C51 2ms 1ms 解:1)按题意分析:可用T1为16位定时器模式(方式1)定时1ms。判断P1.0为高电平时,溢出二次才对端口取反。 2)TMOD控制字为 0001 0000 B 3)初值计算:fosc=12MHz,机器周期为1μs。 初值=216 - 12× 106 × 10-3 / 12= 65536-1000=64536=FC18H, 即 TH1=FCH,TL1=18H。 若采用查询法,编程如下: ORG 0030H STAR:MOV TMOD,#10H ;写入工作方式字 MOV TH1,#0FCH ;写入计数初值 MOV TL1,#18H MOV R2 , #2 SETB TR1 ;启动T1 LOOP: JBC TF1,CPLP ; TF1为1转CPLP并清TF1 SJMP LOOP ; TF1为0转LOOP等待 CPLP:MOV TH1,#0FCH ;重装初值 MOV TL1,#18H JB P1.0,CPLP1 ;P1.0为1转CPLP1 CPL P1.0 ;P1.0为0则取反 MOV R2,#2 ;R2重赋初值 AJMP LOOP ;转LOOP等定时时间到 CPLP1:DJNZ R2,LOOP ;2ms未到转LOOP CPL P1.0 ;2ms到P1.0取反 AJMP LOOP ;转LOOP等定时时间到 END * 4、工作方式3 M1M0=11——2个8位计数器(仅限于T0) 是为增加一个8位定时

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档