06第六章-定时器计数器.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第6章定时器/计数器及应用MCS-51单片机内部共有两个定时器/计数器,分别为T0和T1,均为由两个8位寄存器拼装而成的16位计数器。作用:产生各种时标间隔记录外部事件的数量定时器:每经过1个机器周期,定时寄存器内容自动加1,可看做是对机器周期信号的计数,故定时器的分辨率是12/fosc(1个机器周期等于多少个时钟周期?多少个状态和节拍?)计数器:对应外部时间脉冲输入到引脚T0和T1,发生1到0的跳变的时候,计数器自动加1,一次计数至少需要2个周期,所以最高计数频率为fosc/24。由于MCS-51采用的是加法计数器,且加到最大值时产生溢出,并导致中断,所以在使用定时器/计数器的时候需要设置初值,定时/计数值为:(模-初值)*机器周期。赋值时应注意定时器/计数器不能作为16位寄存器直接赋值,而需要分别对两个8位寄存器分别赋值。6.1定时器/计数器的结构6.2定时器/计数器的工作方式6.1定时器/计数器的结构6.1.1定时器/计数器的结构定时器/计数器的结构如图6-1所示。6.1.2定时器/计数器的工作方式寄存器TMOD 定时器/计数器是一种可编程部件,在工作之前必须通过软件设定它的工作方式,即对工作方式寄存器TMOD中每位进行设定。下面介绍每位的含义: TMOD(89H)其中,低4位用于决定T0的工作方式,高4位用于决定T1的工作方式。1、M1和M0工作方式控制位M0和M1为工作方式控制位,确定4种工作方式,如表7-1所示。2、C/T定时器/计数器方式选择位 C/T=0,设置为定时方式,对机器周期进行计数; C/T=1,设定为计数方式,对外部信号进行计数,外部信号接至T0(P3.4)或T1(P3.5)引脚。3、GATE门控位 GATE=0时,只要用软件使TR0(或TR1)置1就能启动定时器T0(或T1); GATE=1时,只有在INT0(或INT1)引脚为高电平的情况下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或T1)工作。6.1.3定时器/计数器的控制寄存器TCON 设定好了定时器/计数器的工作方式后,它还不能进入工作状态,必须通过设置控制寄存器TCON中的某些位来启动它工。要使定时器/计数器停止运行,也必须通过设置TCON中的某些位来实现。当定时器/计数器计满溢出,或有外部中断请求时,TCON能标明溢出和中断情况。下面介绍控制寄存器TCON每位的含义: TF1:定时器T1溢出标志位。当定时器T1溢出时,由硬件自动使TF1置1,并向CPU申请中断。CPU响应中断后,自动对TF1清零。TF1也可以用软件清零。 TR1:定时器T1运行控制位。可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1开始计数。用指令SETBTR1(或CLRTR1)使TR1置1(或清零)。TF0:定时器T0溢出标志位。其功能与TF1相同。TR0:定时器T0运行控制位。其功能与TR1相同。IE1:外部中断1请求标志位。IT1:外部中断1触发方式控制位。IE0:外部中断0请求标志位。IT0:外部中断0触发方式控制位。IE1、IT1、IE0、IT0这4位曾在第四章讲述。控制寄存器TCON的位地址是88H,可以对它进行位寻址。使用定时器/计数器时首先对TMOD初始化,然后赋初值,就可以使用了。6.2定时器/计数器的工作方式6.2.1工作方式0 定时器/计数器T0工作在方式0时,16位计数器只用了13位,即TH0的高8位和TL0的低5位,组成一个13位定时器/计数器。1、工作在定时方式2、工作在计数方式 【例6-1】利用定时器T0产生定时脉冲。每隔2ms产生宽度为2μs的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。解:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,机器周期为2μs。因为:t=(213-T0初值)?机器周期所以,当t=2ms时,则:(213-T0初值)?2?10-6=2?10-3 解得:T0初值=709611000B,其中将高8B=DDH赋给TH0,低5位11000B=18H赋给TL0。方法一:采用查询工作方式,编程如下: ORG0000H AJMPMAIN ORG0100HMAIN: CLRP1.0 MOVTMOD,#00H;设定T0的工作方式 MOVTH0,#0DDH;给

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档