< 上一个 | 内容 | 下一个 >

第 5 章 思考题及习题 5 参考答案


一、填空


1.如果采用晶振的频率为 3MHz,定时器/计数器 Txx=0,1)工作在方式 0、1、2 下,其方式 0 的最大定时时间为            ,方式 1 的最大定时时间为            ,方式 2 的最

大定时时间为           


答:,,1024μs


2.定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率的           

答:1/24

3.定时器/计数器用作定时器模式时,其计数脉冲由            提供,定时时间与


有关。


答:系统时钟信号 12 分频后,定时器初值


4.定时器/计数器 T1 测量某正单脉冲的宽度,采用            方式可得到最大量程?若时


钟频率为 6MHz,求允许测量的最大脉冲宽度为               


答:方式 1 定时,。


5. 定时器 T2 有 3 种工作方式:                            ,可通过对寄存器

中的相关位进行软件设置来选择。


答:捕捉,重新装载(增计数或减计数),波特率发生器,T2CON


6. AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则(TH1)


=            ,(TL1)=           


答:FCH,18H。二、单选

1.定时器 T0 工作在方式 3 时,定时器 T1 有           种工作方式。


种 种 C.3 种 D.4 种


答:C


2. 定时器 T0、T1 工作于方式 1 时,其计数器为           位。

位 位 位 位答:B

3. 定时器 T0、T1 的 GATEx=1 时,其计数器是否计数的条件         


A. 仅取决于 TRx 状态 B. 仅取决于 GATE 位状态


image image

C. 是由 TRx INT x 两个条件来共同控制 D. 仅取决于INT x 的状态答:C

4. 定时器 T2 工作在自动重装载方式时,其计数器为           位。


位 B. 13 位 位 D. 16 位答:D

image

5. 要想测量INT 0 引脚上的正单脉冲的宽度,特殊功能寄存器 TMOD 的内容应为         

B. 09H D. 00H


答:B


三、判断对错


1.下列关于 T0、T1 的哪些说法是正确的。


A.特殊功能寄存器 SCON,与定时器/计数器的控制无关。


B.特殊功能寄存器 TCON,与定时器/计数器的控制无关。


C.特殊功能寄存器 IE,与定时器/计数器的控制无关。

D.特殊功能寄存器 TMOD,与定时器/计数器的控制无关。


2.定时器 T0、T1 对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于 1 个机器周期。特殊功能寄存器 SCON 与定时器/计数器的控制无关。

3.定时器 T0、T1 对外部引脚上的脉冲进行计数时,要求输入的计数脉冲的高电平和低电平的持续时间均不小于 2 个机器周期。

四、简答


1.定时器/计数器 T1、T0 的工作方式 2 有什么特点适用于哪些应用场合


答:方式 2 为初值自动装入的 8 位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。

2.THx 与 TLxx=0,1)是普通寄存器还是计数器其内容可以随时用指令更改吗更改后的新值是立即刷新还是等当前计数器计满后才能刷新

答:THx 与 TLx(x=0,1)是计数器,其内容可以随时用指令更改,但是更改后的新值要等当前计数器计满后才能刷新。

3.如果系统的晶振的频率为 24MHz,定时器/计数器工作在方式 0、1、2 下,其最大定时时间各为多少?

答:晶振的频率为 24MHz, 机器周期为μs。


方式 0 最大定时时间=μs×213=μs×8192=4096μs

方式 1 最大定时时间=μs×216=μs×65536=327686μs


方式 2 最大定时时间=μs×28=μs×256=128μs


4.定时器/计数器 Txx=0,1)的方式 2 有什么特点适用于哪些应用场合


答:定时器/计数器的工作方式 2 具有自动恢复初值的特点,适用于精确定时,例如波特率的产生。


5.一个定时器的定时时间有限,如何用两个定时器的串行定时来实现较长时间的定时?


答:方法 1,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为两个定时器定时时间的和。


image

方法 2,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由接INT0

生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。


6.当定时器 T0 用于方式 3 时,应该如何控制定时器 T1 的启动和关闭?


答:由 TMOD 寄存器的 D6 位“C/T*”来控制定时器 T1 的启动和关闭。


7.THx 与 TLxx=0,1)是普通寄存器还是计数器其内容可以随时用指令更改吗更改后的新值是立即刷新还是等当前计数器计满后才能刷新

答:THx 与 TLx (x=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更 改,更改后的新值是立即刷新。但在读 THx、TLx 的值时,应该先读 THx 值,后读 TLx,再读 THx。若两次读得 THx 相同,则可确定读得的内容正确。若前后两次读得的 THx 有变化,再重复上述过程。


五、编程


1.采用定时器/计数器 T0 对外部脉冲进行计数,每计数 100 个脉冲后,T0 转为定时工作方式。定时 1ms 后,又转为计数工作方式,如此循环不止。假定 AT89S51 单片机的晶体振荡器的频率为 6MHz,请使用方式 1 实现,要求编写程序。

答:定时器/计数器 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


2.编写程序,要求使用 T0,采用方式 2 定时,在输出周期为 400μs,占空比为 10:1 的矩形脉冲。

答:据题意,从输出的矩形脉冲的高低电平的时间为 10:1,则高低电平的时间分别为μs和μs。如果系统采用 6MHz 晶振的话,Tcy=2μs,因此高低电平输出取整,则约为 364μ s 和 36μs。参考程序如下:



ORG

0000H



LJMP

MAIN


ORG


000BH

LJMP

IT0P


MAIN:

MOV


TMOD,#02H

;定时器/计数器 T0 为定时方式 2


MOV


TL0,#4AH

;定时 364μs 初值赋值


SETB

TR0


;启动 T0,开始计数


SETB

ET0


;允许 T0 中断


SETB

EA


;CPU 开中断


SETB




WAIT:

AJMP

WAIT



IT0P:

CLR

EA



CLR


;关中断


MOV

R0,#9


DLY:

DJNZ

R0,DLY

;延时 36μs


MOV

TL0,#4AH

;定时 364μs 初值赋值


SETB




SETB

EA



RETI




3.编写程序要求:当引脚的电平正跳变时,对的输入脉冲进行计数;当引脚的电平负跳变时,停止计数,并将计数值写入 R0、R1(高位存 R1,低位存 R0)。

答:将的输入脉冲接入 INT0,即使用 T0 计数器完成对口的脉冲计数。参考程序如下:


ORG

0000H


LJMP

MAIN

ORG


000BH

LJMP

IT0P


MAIN: JNB


,MAIN

MOV


TMOD,#05H

;定时器/计数器 T0 为计数方式 1

SETB

TR0


;启动 T0,开始计数

SETB

ET0


;允许 T0 中断

SETB

EA


;CPU 开中断

WAIT: JB


,WAIT


CLR

EA



CLR

TR0





MOV


R1,TH0


MOV

R0,TL0


AJMP

$

IT0P:

INC

R2


RETI