单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第7章 定时计数器.pptVIP

单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第7章 定时计数器.ppt

  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文档。上传文档
查看更多
尚辅网 尚辅网 第7章 定时/计数器 7.1 定时/计数概述 80C51单片机内部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加1。这两个计数器都是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,从0-65535。 1. 定时功能 对片内机周脉冲计数,是定时器。 2.计数器功能 对外部事件脉冲(下降沿)计数,是计数器。定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入。且外部脉冲的最高频率不能超过时钟频率的1/24。 7.2 定时/计数器的方式控制寄存器 7.2.1.定时/计数器控制寄存器TCON(88H) 7.2.2 定时/计数器工作方式控制寄存器TMOD 7.3 定时/计数器的四种工作方式 7.3.1 工作方式0 定时/计数器的工作方式0称之为13位定时/计数器方式它由TL0/1的低5位和TH0/1的8位构成13位的计数器此时TL0/1的高3位未用。 7.3.2 工作方式1 工作方式1是16位的定时/计数器方式,将TMOD的M1M0设为01即可。 7.3.3 工作方式2 工作方式2--自动再装入预置数的工作方式 。预置数放T0或T1的高8位中,在工作方式2中只有低8位参与计数而高8位是不参与计数的,用作预置数的存放,这样计数范围就小了。 通常工作方式2用于波特率发生器。工作方式2特别适合于用作较精确的脉冲信号发生器 7.3.4 工作方式3 在这种工作方式下T0被拆成2个独立的定时/计数器来用。其中TL0可以构成8位的定时器或计数器工作方式,而TH0则只能作为定时器用。 7.3.5 定时/计数方法 51系列单片机的计数器是16位的,也就是最大的计数值范围是0-65535,因此计数器计到65536个脉冲就会产生溢出。定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。80C51定时/计数初值计算公式: 7.4 定时/计数器的应用 使用定时器实时或计数时,需要先对定时器进行设置,即进行初始化等步骤,应用步骤如下: 1.合理选择定时/计数器工作方式 2.计算定时/计数器定时初值(按上述公式1计算) 3.编制应用程序 1)定时/计数器的初始化。 包括定义TMOD、写入定时初值、设置中断系统、启动定时/计数器运行等。 2)正确编制定时/计数器中断服务程序。 注意是否需要重装定时初值,若需要连续反复使用原定时时间,且未工作在方式2,则应在中断服务程序中重装定时初值。 3)若讲定时/计数器用于计数方式,则外部事件脉冲必须从P3.4(T0)或P3.5(T1)引脚输入。且外部脉冲的最高频率不能超过时钟频率的1/24。 【例7.1】利用定时/计数器T0,产生200us的定时,并使P1.0引脚上输出周期为400us的方波,设系统时钟频率为12 MHz。 解:由于晶振为12 MHz,所以机器周期T为1 us。 定时时间为200us,定时时间比较短,可以用工作方式0、1、2、3来定时。现举例分别用工作方式1、2两种方式编程。 1.用工作方式2实现定时 1)计算计数初值X T0初值=28-200us/1us=256-200=56=38H 即TH0=38H,TL0=38H 2)求T0的方式控制字TMOD: M1M0=10,GATE=0,C/T=0,可取方式控制字为02H; 3)编写源程序: (1)查询方式 ORG 0000H LJMP MAIN ;跳转至主程序 ORG 0100H MAIN: MOV TMOD,#02H ;置T0工作于方式2 MOV TH0,#38H ;装入T0初值 MOV TL0,#38H SETB TR0 ;启动T0 LOOP: JBC TF0,LOOP1 ;查询定时时间到否? AJMP LOOP ; LOOP1: CLR P1.0 ;P1.0取反输出 AJMP LOOP ;继续生成波形 END (2)中断方式 ORG 0000H LJMP MAIN ;跳转到主程序 ORG 000BH ;T0的中断入口地址 LJMP DVT0 ;转向中断服务程序 ORG 0100H MAIN:MOV TMOD,#02H ;置T0工作于方式2 MOV TH0,#38H ;装入T0初值 MOV TL0,#38H SETB ET0 ;T0开中断 SETB EA

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档