当前位置:文档之家› 定时器计数器答案

定时器计数器答案

定时器计数器答案
定时器计数器答案

定时器/计数器

6·1 80C51单片机内部有几个定时器/计数器它们是由哪些专用寄存器组成

答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(T0)和定时

器l(Tl)。在定时器/计数器中的两个16位的计数器是由两个8位专用寄存器TH0、TL0,THl、TLl组成。

6·2 80C51单片机的定时器/计数器有哪几种工作方式各有什么特点

答:80C51单片机的定时器/计数器有4种工作方式。下面介绍4种工作方式的特点。

方式0是一个13位的定时器/计数器。当TL0的低5位溢出时向TH0进位,而TH0溢,

出时向中断标志TF0进位(称硬件置位TF0),并申请中断。定时器0计数溢出与否,可通过查询TF0是否置位或产生定时器0中断。

在方式1中,定时器/计数器的结构与操作几乎与方式0完全相同,惟一的差别是:定时器是以全16位二进制数参与操作。

方式2是能重置初值的8位定时器/计数器。其具有自动恢复初值(初值自动再装人)功;能,非常适合用做较精确的定时脉冲信号发生器。

方式3 只适用于定时器T0。定时器T0在方式3T被拆成两个独立的8位计数器TL0: 和TH0。其中TL0用原T0的控制位、引脚和中断源,即:C/T、GATE、TR0、TF0和T0

引脚、INTO引脚。除了仅用8位寄存器TL0外,其功能和操作与方式0、方式1

完全相同,可定时亦可计数。此时TH0只可用做简单的内部定时功能。它占用原定时器Tl 的控制位TRl和TFl,同时占用Tl的中断源,其启动和关闭仅受TRl置1和清0控制。

|

6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关作计数时,对外界计数频率有何限制

答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。

6·4 当定时器T0用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭

答:定时器T0用做方式3时,由于TRl位己被T0占用,此时通过控制位C/T切换其定时器或计数器工作方式。当设置好工作方式时,定时器1自动开始运行;若要停止操作,只需送入一个设置定时器1为方式3的方式字。

6.5 己知80C51单片机系统时钟频率为6 MHz,请利用定时器T0和Pl。2输出矩形脉冲,其波形如下:

答:设置T0为方式2定时,定时50us,初值X 为:

X=28-(6×106×50×10-8 )÷12= 231D= E7H

TH0= TL0=E7H ,TMOD= 2H

源程序如下:

MOV TMOD,#02H ;设置T0为方式2定时

MOV TH0,#E7H ;赋初值

MOV TL0,#E7H

SETB TR0 ;启动T0工作

LI: SETB

MOV R0,#7 低电平延时计数器致初值

DEL:JBC TF0,REP

AJMP DEL

REP:CLR

DJNZ R0,DEL

AJMP L1

6.6 在80C51单片机中,己知时钟频率为12MHz,请偏程使Pl·0和Pl·1分别输出周期为2ms和500us的方波。

答:方法1:选用定时器0定时,工作方式设为3,用TL0作为8位定时器,产生250us的定时,定时初值X为:

X=28-(12×106×250×10-6)÷12=6

TH0=TL0=6H,TMOD=3H

·

源程序为:

MOV TMOD,#3H ;设置T0为方式3定时

MOV TL0,#6H ;赋初值

SETB TR0 ;启动T0工作

LP: MOV R0,#4 ;Pl·0延时计数器置初值

DEL:JBC TF0,REP ;查询计数溢出

AJMP DEL

REP: MOV TL0,#6H ;重新赋初值

CPL

LI: DJNZ R0,DEL

|

CPL

AJMP LP

方法2:选用定时器1定时250us,工作方式设为2,用TLl作为8位定时器,产生250us的定时,定时初值x为:

X=28-(12×106×250×10-6)-12=6

TH1=TL1=6H,TMOD=20H

MOV TMOD,#20H ;设定时器1为方式2

MOV THl,#06H ;赋250us初值

MOV TLl,#06H

SETB TR1

EX6_RPTA

MOV R2,#04H

EX6_RPTB,

JNB TFl,$

CLR TF1

CPL ;每反转一次

DJNZ R2,EX6_RPTB

CPL ;反转4次,反转一次

LJMP EX6_RPTA ;循环

#

6·7设系统时钟频率为6MHz,请试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环不止。

答:按题目要求编程如下:

MOV TMOD,#15H ;设定时器1为定时方式1

;定时器0为外部计数方式1

:

MOV TH0,#0FCH ;定时器0赋1000的计数初值

MOV TL0,#018H

SETB TR0 ;启动定时器。

JNB TF0,$ ;查询计数溢出

CLR TR0 ;关定时器。

[

CLR TF0 ;清溢出标志

MOV THl,#0FCH ;定时器1赋2mS初值

MOV TLl,#018H

SETB TRl ;启动定时器1

JNB TFl,$ ;查询计数溢出

CLR TR1 ;关定时器1

CLR TF1 ;清溢出标志

LJMP EX7_RPT ;循环

相关主题
文本预览
相关文档 最新文档