单片机的定时器计数器的用法教材.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文档。上传文档
查看更多
本章小结 1、定时/计数器的工作原理是,利用加1计数器对时钟脉冲或外来脉冲进行自动计数。当计满溢出时可引起中断标志(TFx)硬件置位。据此表示定时时间到或计数次数到。定时器本质上是计数器,前者是对时钟脉冲进行计数,后者则是对外来脉冲进行计数。 2、51单片机包括两个16位定时器T0 (TH0、TL0)和T1 (TH1、TL1),还包括两个控制寄存器TCON和TMOD。通过TMOD控制字可以设置定时与计数两种模式,设置方式0~方式3四种工作方式;通过TCON控制字可以管理计数器的启动与停止。 3、方式0 ~方式2分别使用13位、16位、8位工作计数器,方式3具有3种计数器状态。 * 应强调:每一模式下都有定时和计数两种工作状态,而且T0和T1都适合这一规则 (1)查询方式 #include reg51.h sbit P1_0 = P1^0; main(){ TMOD = 0x02; TH0= TL0 = 0x06; TR0=1; for(;;){ do{} while(!TF0); P1_0 =!P1_0; TF0 = 0; } } (2)中断方式 #include reg51.h sbit P1_0=P1^0; timer0 () interrupt 1 { P1_0 = !P1_0; } main(){ TMOD = 0x02; TH0 = TL0 = 0x06; EA= ET0 = 1; TR0=1; while(1); } 实例2 采用T0定时方式2在P1.0口输出周期为0.5ms的方波(设fosc=12MHz)。 分析:计数初值TL0= ((256-250)*12/12)%256 = 0x06,TMOD = 0x02 周期为0.5ms方波 实例3 将第4章实例5“计数显示器”中的软件查询法进行按键检测改用T0计数器方式2,并以中断方式编程。 【解】原图中按键是由I/O口P3.7引脚接入的,本实例需要将其改由T0(P3.4)引脚接入。 分析:将T0设置为计数器方式2,设法使其在1个外部脉冲到来时就能溢出(即计数溢出周次为1)产生中断请求。 计数初值为: a = 2 8 – 1 = 255 = 0xff 初始化TMOD = 0000 0110B = 0x06 实例3参考程序 运行效果 * * 方式0:13位方式 工作方式0 使用13位的定时/计数器(THi7-0+TLi4-0) 定时时间 t = (213 - a)×12/fosc (μs) 计数初值 a = 213 - t×fosc/12 12MHz时的最大定时量t=213μs = 8.192ms 解:计数初值a=213-5000×12/12=3192= 1100 0111 1000B TH0 TL0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 6 3 1 8 H 实例4 计算T0方式0定时5ms的计数初值a(设fosc=12MHz) 由于方式0的TL0高3位未用(一般填0) ,因此 a= 0110 0011 0001 1000 = 6318H 即,TH0 = 0x63; TL0 = 0x18; 除计数器位数不同外,方式0与方式1的逻辑结构并无差异。 方式0采用13位计数器是为了与早期产品MCS-48单片机兼容。 方式0的初值计算比较麻烦,一般采用方式1替代。 方式0 方式1 应用: 定时器——用于定时控制,或作为分频器发生各种不同频率的方波; 计数器——用于外部脉冲统计或外部中断源扩充; 复杂应用—需要将定时与计数结合起来。 6.4 定时/计数器的应用 实例5 由P3.4口输入一个外部低频窄脉冲信号。当该信号出现负跳变时,由P3.0口输出宽度为500μs的同步脉冲,如此往复。要求据此设计一个波形展宽程序(fosc= 6MHz)。 1)将T0设置为1次计数方式2,初值设为0xff。这样P3.4一旦发生负跳变T0就会产生溢出; 2)查询TF0标志位。当TF0=1时将T0设置为500?s定时方式2,初值a为0x06(=256-500×6/12),同时使P3.0输出低电平; 3)查询TF0标志位。待T0再次溢出后使P3.0输出高电平,然后将T0设置为1次计数方式2,如此往复进行。 分析:可以采取如下做法: T0 实例5参考程序 实例5仿真运行效果 P3.0 P3.4 实例6 采用10MHz晶

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档