- 17
- 0
- 约6.24千字
- 约 32页
- 2017-11-28 发布于湖北
- 举报
单片机 第五章 MCS-51的定时器
5.4.7 运行中读定时器/计数器 在读取运行中的定时器计数器时,需要特别加以注意,否则读取的计数值有可能出错。原因是不可能在同一时刻同时读取TL和TH的内容。比如,先读TL,后读TH,由于定时器在不断运行,读TH前,若恰好产生TL溢出向TH进位的情形,则读得的TL值就完全不对了。同样,先读TH,再读TL也可能出错。 一种解决读错问题的方法是:先读TH,后读TL,再读TH,若两次读得TH相同,则可确定读得的内容是正确的。若前后两次读得的TH有变化,则再重复上述过程,这次重复读得的内容就应该是正确的。 READTIME:MOV A,TH0 MOV R0,TL0 CJNE A,TH0,READTIME MOV R1,A RET 第五章 MCS-51的定时器/计数器 在工业检测、控制中,许多场合都要用到计数或定时功能。例如,对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发生器。MCS-51单片机内有两个可编程的定时器/计数器,以满足这方面的需要。它们具有两种工作模式(计数器模式和定时器模式)及4种工作方式(方式0、方式1、方式2和方式3),其控制字均在相应的特殊功能寄存器中,通过对它的特殊功能寄存器的编程,用户可方便地选择适当的工作模式和工作方式。本章介绍定时器/计数器的结构,功能,状态字、控制字的含义以及工作模式和工作方式的选择与编程方法。 5.1 定时器/计数器的结构 特殊功能寄存器TMOD用于控制和确定定时器/计数器T0、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。TMOD、TCON这两个寄存器的内容由软件设置。系统复位时,两个寄存器的所有位都被清0。 5.1.1 工作方式控制寄存器TMOD TMOD用于控制定时器/计数器的工作模式及工作方式,它的字节地址为89H,其格式如下所示: GATE位:门控位。 GATE=1时,T0、T1是否计数受外部引脚输入电平的控制、INT0引脚控制T0运行,INT1引脚控制T1运行。可用于测量在INT0或INT1引脚出现的正脉冲的宽度; GATE=0,定时器/计数器的运行不受外部输入引脚l的控制。 C/T位:计数器模式和定时器模式的选择位。C/T=0,为定时器模式。内部计数器对晶振脉冲12分频后的脉冲计数。该脉冲的周期等于机器周期。即对机器周期进行计数。若选择12M晶振,则计数频率为1MHz,从计数值便可求得计数的时间,所以称为定时器模式;C/T=1,设置为计数器模式,计数器对外部输入引脚T0(P3.4脚)或T1(P3.5脚)的外部脉冲(负跳变)计数,允许最高计数频率为晶振频率的1/24。 M1、M0位:工作方式选择位。 共有4种编码,对应于4种工作方式。 0 0 :方式0,13位定时器/计数器 0 1 :方式1,16位定时器/计数器 1 0 :方式2,8位自动重装载定时器/计数器 1 1 :方式3,仅适用于T0,分成两个8位定时 器/计数器 5 .1.2 定时器/计数器控制寄存器TCON TCON的字节地址为88H,位地址为88H-8FH,TCON的格式如下: 5.2 定时器/计数器的四种工作方式 5.2.1 方式0 5.2.2 方式1 5.2.3 方式2 5.2.4 方式3 5.3 定时器/计数器对输入信号的要求 当MCS-51内部的定时器/计数器被选定为定时器工作模式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲,计数器增1,因此,定时器/计数器的输入脉冲为时钟振荡频率的l/12。当采用12MHz的晶体时,计数速率为1MHz,输入脉冲的周期为1微秒。由于定时的精度决定于输入脉冲的周期,因此,当需要高分辨率的定时时,应尽量选用频率较高的晶体(MCS-51最高为12MHz)。当定时器/计数器用作计数器时,计数脉冲来自外部输入引脚T0或T1 。当输入信号产生由1至0的跳变时,计数器的值增1。 如在第一个周期中采得的值为1,而在下一个周期中采得的值为0、则在紧跟着的下一个周期期间,计数器加1。由于确认一次下跳变要花两个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为振荡器频率的1/24,例如选用6MHz频率的晶体,允许输入的脉冲频率为250KHz,如果选
原创力文档

文档评论(0)