内容正文:
四川省(电子信息大类)对口招生《单片机原理与应用》
复习讲义
模块 6 定时/计数器及串行通信
考点二 定时器/计数器的工作方式
【考纲要求】
掌握定时器/计数器的4种工作方式、原理以及初始化程序识读和编写。
【知识网络】
【知识和技能要点】
1、 定时器/计数器工作方式
定时器/计数器T0有4种工作方式(方式0、1、2,3),定时器/计数器T1有3种工作方式(方式0、1、2)
1.方式0:
当TMOD中的M1M0为00时,定时器/计数器工作于方式0
方式0为13位的计数器,由TL1的低5位和TH1的8位所构成。TL1低5位溢出向TH1进位,TH1计数溢出置位TCON中的溢出标志位TF1。
(1)工作原理
当GATE=0时,或门输出1,引脚INTO的输人信号不起作用,同时将与门打开,并由TR0的状态决定与门的输出。若TR0=1,则与门输出为1,接通控制开关,并启动TO工作,T0在初值的基础上做加法计数,直至溢出。溢出时,TFO置1,并申请中断。若TRO=0,则切断控制开关,TO停止工作。
当GATE=1时,与门的输出是否为1要由INTO和TR0共同决定。当INTO和TRO同时为1时,与门输出为1,接通控制开关,T0开始工作;INTO和TRO中有一个为0时,与门输出为0,控制开关被切断,TO停止工作。该种方式可以用来测量外部INT0引脚上正脉冲宽度。
(2) 定时器/计数器初值计算
当用作定时器时,对机器周期进行计数,从而实现定时功能,其定时时间
T=(213-初值)×机器周期 机器周期=时钟周期×12
将其初始值转换为二进制,将其低5位二进制数送人TL0,高8位二进制数送人THO。当用作计数器时,外部计数脉冲由引脚T0输人,每输入1个下降沿,计数值加1。设计数初值为N,则计数值
M=213-N(计数初值)=8192-N 则计数初值为 N=213-M=8192-M
2.方式1
当M1MO为01时,定时器/计数器工作于方式1,原理和操作方法与方式0基本相同。
方式1的计数位数是16位,由THO作为高8位,TLO作为低8位。工作原理与方式0相似。定时器/计数器初值计算当用作定时器时,定时时间T=(216-初值)×机器周期
机器周期将初值转换为二进制数,低8位送TL0,高8位送THO。当用作计数器时,计数值M为M=216-N(计数初值)=65536-N 则计数初值为 N=216-M=65536-M
3.方式2
当MIMO为10时,定时器/计数器工作于方式2,方式2为自动重装初值的8位计数方式。
(1)工作原理
方式2是8位计数方式,因此,其初值只需要一个寄存器装人,此时TH0和TL0是两个不同任务的寄存器,TL0进行8位计数操作,TH0作为定时器/计数器初值的缓冲器。初始化时TH0和TL0被赋予相同的初值,TL0计数溢出,使TFO置1,同时将TH0中所保存的初值装入TL0中,计数重新开始,从而完成自动重装初值的过程。
(2)定时器/计数器初值计算
当用作定时器时,定时时间T为T=(28-初值)×机器周期
当用作计数器时,计数值M=28-N(计数初值)=256-N 则计数初值为N=28-M=256-M
4.方式3
方式3只适用于定时器/计数器TO,TH0和TL0被分为两个独立的8位定时器/计数器,而T0处于方式3时相当于TR0=0,停止计数。方式3原理如图所示。
(1) 工作原理
TL0作为定时器/计数器:方式3中,TL0可以作为定时器或计数器使用,占用TO的全部资源(使用TO的所有控制位:GATE,C/T,TRO,TFO和INTO),其控制过程与TO在方式0和方式1时的过程相同。
(2)TH0作为定时器
方式3中,TH0固定为定时方式(不能进行外部计数)。由于TO的所有资源已被TL0占用,TH0工作时借用T1的控制位TR1和TF1,THO的启动和停止受TR1控制,TH0的溢出将置位TF1。
二、定时器的最大定时值
MCS-51系列单片机定时器的长度有8位、13位、16位三种情况,设晶振频率为6MHz和12MHz,三种情况下定时器最大定时值见下表。
定时器的工作方式(总结)
方式0:13位定时计数器,注意:TLx的低5位和THx共同组成
方式1:16位定时计数器
方式2:自动重装入的8位定时计数器,溢出后TFx=1,同时由THx→TLx
方式3:T0成为两个独立的8位计数器,TL0作为定时计数器;
TH0仅作定时器用,TL0的控制用原T0的,TH0占用原T1的控制位TR1和TF1,同时占用定时器T1的中断源。此时,T1可工作于方式0~2,溢出时送串行口,经常作为串行口波特率发生器。
3、 定时/计数器的输入信号
1.工作于定时器方式:对内部时钟信号计数,内部时钟信号的频率为时钟振荡频率的1/12,即每个机器周期计数值加1。
2.定时/计数器的输入信号
①工作于计数器方式:当定时/计数器用作计数器时,计数脉冲来自外部输入引脚T0或T1。当输入信号产生由1至0的跳变(即下跳变)时,计数器的值增1
②理想的计数器输入信号:脉冲信号的高、低电平至少要各保持一个机器周期以上,确保电平在变化之前能被采样一次。
四、定时器/计数器的编程
1.初始化
①根据要求给方式寄存器TMOD送一个方式控制字,以设定定时器的工作方式;
②根据需要给TH和TL选送初值,以确定需要的定时时间或计数的初值;
③根据需要给中断允许寄存器IE送中断控制字,以开放相应的中断和设定中断优先级;
④给TCON送命令字以启动或禁止定时/计数器的运 行。
2.编程方式
①采用查询方式:程序一直检测TF0(TF1),若TF0=1(TF1=1),说明定时时间到或计满数,需要软件清除溢出标志位TFx。
②采用中断方式:程序初始化时,设置定时器溢出中断允许后,内部硬件自动检测到TF0=1(TF1=1)时,自动响应中断,进入中断服务程序。由硬件自动清除TFx。
【练习题】
1、 填空题
1.定时时间与定时器的 , 及 有关。
2.MCS-51的定时器/计数器作计数器时计数脉冲由外部信号通过引脚 和 提 供。
3.MCS-51的定时器/计数器T0的门控信号GATE设置为1时,只有 引脚为高电平且由软件使 置1时,才能启动定时器/计数器T0工作。
4.当T0为方式 ,T1为方式 的时候,8051单片机的定时器可提供3个8位定时器/ 计数器。
5.当定时器T0工作在方式3时,要占用定时器T1的 和 两个控制位。
6.在定时器T0工作方式3下,TH0溢出时, 标志将被硬件置1去请求中断。
7.在定时器T0工作方式3下,欲使TH0停止工作,应执行一条 的指令。
8.使用定时器/计数器1设置串行通信的波特率时,应把定时器/计数器1设定作方式 ,即 方式。
9.在定时器工作方式1下,计数器的宽度为16位,如果系统晶振频率为6MHz,则最大定时时间为 ,若系统晶振频率为12MHz,则最大定时时间为 。
二、选择题
1.下列指令判断若定时器T0计满数就转LP的是( )。
A.JB T0,LP B.JNB TF0,LP
C.JNB TR0, LP D.JB TF0,LP
2.下列指令判断若定时器T0未计满数就原地等待的是( )。
A.JB T0,$ B.JNB TF0,$ C.JNB TR0,$ D.JB TF0,$
3.当CPU响应定时器T1的中断请求后,程序计数器PC的内容是( )。
A.0003H B.000BH C.0013H D.001BH
4.用8031的定时器T0作计数方式,用模式1(16位),则工作方式控制字为( )。
A.01H B.02H C.04H D.05H
5.用8031的定时器T0作定时方式,用模式2,则工作方式控制字为( )。
A.01H B.02H C.04H D.05H
6.8031的定时器T0作定时方式,用模式1(16位计数器)则应用指令( )初始化编程。
A.MOV TMOD ,#01H B.MOV TMOD ,01H
C.MOV TMOD ,#05H D.MOV TCON ,#01H
7.用定时器T1方式1计数,要求每计满10次产生溢出标志,则TH1.TL1的初始值是( )。
A.FFH.F6H B.F6H.F6H C.F0H .F0H D.FFH.F0H
8.启动定时器0开始定时的指令是( )。
A.CLR TR0 B.CLR TR1 C.SETB TR0 D.SETB TR1
9.MCS—51单片机的两个定时器作定时器使用时TMOD的D6或D2应分别为( )。
A.D6=0,D2=0 B.D6=1,D2= 0 C.D6=0,D2=1 D.D6=1,D2=1
10.MCS—51单片机的TMOD模式控制寄存器是一个专用寄存器,用于控制T1和T0的操作模式及工作方式,其中C/T表示的是( )。
A.门控位 B.操作模式控制位 C.功能选择位 D.启动位
11.8031单片机晶振频率fosc=12MHz,则一个机器周期为( )μS。
A.12 B.1 C.2 D.3
12.MCS—51单片机定时器溢出标志是( )。
A.TR1和TR0 B.IE1和IE 0
C.IT1和IT0 D.TF1和TF0
13.用定时器T1方式2计数,要求每计满100次,向CPU发出中断请求,TH1.TL1的初始值是( )。
A.9CH B.20H C.64H D.A0H
14.MCS—51单片机定时器T1的溢出标志TF1,若计满数产生溢出时,如不用中断方式而用查询方式,则应( )。
A.由硬件清零 B.由软件清零
C.由软件置零 D.可不处理
15.MCS—51单片机定时器T0的溢出标志TF0,若计满数产生溢出时,其值为( )。
A.00H B.FFH C.1 D.计数值
16.MCS—51单片机定时器T0的溢出标志TF0,若计满数在CPU响应中断后( )。
A.由硬件清零 B.由软件清零
C.A和B都可以 D.随机状态
17.8051单片机计数初值的计算中,若设最大计数值为M,对于模式1下的M值为( )。
A.M=213=8192 B.M=28=256
C.M=24=16 D.M=216=65536
三、判断题
1.指令JNB TF0,LP的含义是:若定时器T0未计满数,就转LP。( )
2. 若置8031的定时器/计数器T1于定时模式,工作于方式2,则工作方式字为20H。( )
3. 若置8031的定时器/计数器T1于计数模式,工作于方式1,则工作方式字为50H。( )
4.当8031的定时器T0计满数变为0后,溢出标志位(TCON的TF0)也变为0。( )
5.对外部脉冲计数时,计数器对下降沿进行采样,要求高、低电平至少各保持一个机器周期。( )
6.初始化定时器时只需设置 TMOD 寄存器,不需要对 TCON 进行操作。( )
7.当 GATE=1 时,定时器启动还受外部引脚 INTx 控制,只有引脚为高电平时才能计数。( )
8.定时器溢出后,TFx 标志位会自动置 1,进入中断服务程序后必须由软件清零。( )
9.方式 0、1、2 既可以用于定时,也可以用于对外部事件计数。( )
10.若系统晶振为 12MHz,则定时器一个机器周期为 1μs,方式 1 最大定时时间为 65.536ms。( )
三、分析题
1.试归纳小结80C51定时/计数器4种工作方式的特点。
2.如何判断T0、T1定时/计数溢出?
3. 如果采用的晶振的频率为3MHz,定时器/计数器工作在方式0 、1 、2下,其最大的定时时间各为多少?
4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数工作方式,如此循环不止。假定AT89S51单片机的晶体振荡器的频率为5MHz,请使用方式1实现,要求编写程序。
【答案】
1、 填空题
1.工作方式 计数初值 振荡周期
2. P3.4 P3.5
3.INT0 TR0
4. 3 2
5.TR1 TF1
6.TF1
7.CLR TR1
8.2 自动重新加载
9.131.072ms 65.536ms
二、选择题
1.D 2.B 3.D 4.D 5.B
6.A 7.A 8.C 9.A 10.C
11.B 12.D 13.A 14.B 15.C
16.A 17.D
三、判断题
1.√ 2.√ 3.√ 4.× 5.√
6.× 7.√ 8.× 9.√ 10.√
四、分析题
1.答:①方式0是13位计数器,最大计数值213=8192,计数范围比方式1小,计算定时初值比较麻烦,容易出错,与方 式1比较无任何优点。
②方式1是16位计数器,最大计数值为216=65536,计数范围大,适用于定时范围较大的应用场合。
③方式2是8位计数器,最大计数值是28=256,缺点是计数范围小,优点是定时初值可自动恢复,适用于需要重复定时, 而定时范围还不大的应用场合。
④方式3是8位计数器,仅适用于T0,T1无方式3。T0方式3时,被拆成两个独立的8位计数器TH0、TL0:TL0使用T0原有的控制寄存 器组成一个8位的定时/计数器;TH0借用T1的TF1、TR1,只能对机内机周脉冲计数,组成另一个8位定时器。T0方式3时T1方式2作串行口波特率 发生器。
2.答:判断T0、T1定时/计数溢出的方法有两种:
①查询方式。不断查询T0、T1溢出标志TF0、TF1:TF0或TF1=0时,未溢出;TF0或TF1=1时,溢出。
②中断方式。T0、T1定时/计数溢出时,在CPU、T0、T1中断开放前提下能自动产生中断。
3.答:方式0下,其最大的定时时间为32.768ms;
方式1下,其最大的定时时间为262.144ms;
方式2下,其最大的定时时间为1.024ms;
4.答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。参考程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2
MOV TL0,#156 ;计数100个脉冲的初值赋值
MOV TH0,#156
SETB GATE ;打开计数门
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
CLR F0 ;设置下一轮为定时方式的标志位
WAIT: AJMP WAIT
IT0P: CLR EA ;CPU关中断
JB F0,COUNT ;F0=1,转计数方式设置
MOV TMOD,#00H ;定时器/计数器T0为定时方式0
MOV TH0,#0FEH ;定时1ms初值赋值
MOV TL0,#0CH
SETB EA
RETI
COUNT: MOV TMOD,#06H
MOV TL0,#156
SETB EA
RETI
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$