第05章单片机定时计数器习题集解答

第05章单片机定时计数器习题集解答
第05章单片机定时计数器习题集解答

第05章单片机定时计数器习题解答

一、填空题

1.MCS-51单片机中有 2 个16 位的定时器/计数

器。

2.定时器/计数器T0可以工作于方式0、1、2、3 。

3.方式0为 13 位定时器/计数器。

4.若系统晶振频率为12MHz,则T0工作于定时方式1时最多可以定

时65536 μs。

5.欲对300个外部事件计数,可以选用定时器/计数器T1的模式0 或模

式 1 。

6.TMOD中的M1M0= 11时,定时器工作于方式 3 。

7.若系统晶振频率为6MHz,则定时器可以实现的最小定时时间为 2 μs。

8.MCS-51单片机工作于定时状态时,计数脉冲来自单片机部的机器周期。

9.MCS-51单片机工作于计数状态时,计数脉冲来自单片机外部事件。

10.当GATE=0时,则当软件控制位TR0=1时启动T0开始工作。

二、简答题

1.定时器/计数器T0和T1各有几种工作方式?简述每种工作方式的特点。如何控制定时器/计数器的工作方式?

答:T0可以工作于方式0,1,2,3;T1可以工作于方式0,1,2

方式0:是13位定时/计数器,由TLX的低5位(TLX的高3位未用)和THX高8位组成。

方式1:TLX和THX组成16位定时/计数器。

方式2:方式2为自动重装初值的8位定时/计数器。

方式3只适用于定时/计数器T0,当T0工作在方式3时,TH0和TL0被分为两个独立的8位计数器。

TMOD用来控制定时计数器的工作方式,位结构如下:

D7 D6 D5 D4 D3 D2 D1 D0

GAT

M1 M0 GATE M1 M0

A

C/T:定时或计数功能选择位。1为计数方式, 0为定时方式。

GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。

GATE=0,软件控制位TR0(TR1)=1启动定时/计数器开始计数。

GATE=1,软件控制位TR0(TR1)=1,INT0(INT1)引脚为高电平时启动定时/计数器开始计数。

2.设MCS-51单片机的晶振频率f

=6MHz,分别讨论定时器/计数器0在各种工作方式下的最

OSC

长定时时间。

答:由fosc =6MHz可知,一个机器周期T=2us,由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。

方式0:(213–0)×2us= 214us=16384us=16.384ms

方式1:(216–0)×2us= 217us=131.072ms

方式2、3:(28–0)×2us= 29us=0.512ms当 fosc =6MHz,即T=2us时各种方式下的定时时间,若fosc =12MHz,则最长定时时间将缩短一半。

3.编写程序从P1.0 引脚输出频率为1KHz的方波。设晶振频率为6MHz。

答:利用T1定时中断。fosc= 6MHz。1机器周期 =2 uS。1KHz方波周期 =1mS,半个方波周期=500uS。 500uS÷2uS =250

若选择方式2 工作,计算初值:256-250=6

ORG 0000H

AJMP MAIN

ORG 001BH ;T1的中断矢量

LJMP T1INT

MAIN: MOV TMOD,#20H

MOV TH0, #6

MOV TL0, #6

SETB ET1

SETB EA

SETB TR1

HERE: AJMP HERE ;原地等待中断

T1INT:CPL P1.0 ;中断服务:P1.0取非

RETI ;中断返回

END

4.利用定时器/计数器1定时中断控制P1.7驱动LED发光二极管亮1秒灭1秒地闪烁,设时

钟频率为12MHz。

答:时钟频率为12MHz,1个机器周期1 us,1秒闪烁一次,0.5秒P1.7求反1次。

0.5S=500ms=500000 us,方式1最大计数65536,让T1工作于方式1,计数50000次中断一次,初值=65536-50000=15536=3CB0H

用R7记录中断次数,计满10个中断为500ms秒。

ORG 0000H

AJMP MAIN

ORG 001BH

AJMP PT1INT

ORG 0030H

START:MOV R7,#00H

MOV TMOD,#10H

MOV TL1,#0B0H

MOV TH1,#3CH

SETB EA

SETB ET1

SETB TR1

HERE: SJMP HERE

PT1INT: MOV TL1,#0B0H

MOV TH1,#03CH

INC R7

CJNE R7,#10, PEND

MOV R7, #00H

CPL P1.7

PEND: RETI

END

5.利用MCS-51单片机定时器/计数器设计一个数字秒表。定时围:00-99秒;两位LED数码管显示。设时钟频率为6MHz。基本原理:利用定时器方式2产生0.5毫秒时间基准,循环2000次,定时 1秒。

答:电路如图所示

把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。

把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。

把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;

开始时,显示“00”,第1次按下SP1后就开始计时。

第2次按SP1后,计时停止。

第3次按SP1后,计时归零

选择定时工作方式2;工作方式2就具有自动重装载功能,即自动加载计数初值,在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初

始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,由预置寄存器TH0以硬件方法自动给计数器TL0重新加载。

汇编源程序

TCNTA EQU 30H ;时间计数

TCNTB EQU 31H

SEC EQU 32H

KEYCNT EQU 33H ;按键计数

SP1 BIT P3.5

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0

START: MOV KEYCNT,#00H

MOV SEC,#00H

MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,A+DPTR

MOV P2,A

MOV TMOD,#02H ;

SETB ET0

SETB EA

WT: JB SP1,WT ;直接寻址位为1转移(按键按下时SP1为0)

LCALL DELY10MS

JB SP1,WT ;接着SP1变为1

INC KEYCNT

MOV A,KEYCNT

CJNE A,#01H,KN1

SETB TR0 ;TR0置1,启动定时器T0 ,允许定时/计数器计数 MOV TH0,#06H ;用于自动恢复定时初值

MOV TL0,#06H ;置T0定时初值250us

MOV TCNTA,#00H

MOV TCNTB,#00H

LJMP DKN

KN1: CJNE A,#02H,KN2

CLR TR0

LJMP DKN

KN2: CJNE A,#03H,DKN ;可以不要

MOV SEC,#00H

MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE ;可以不要

MOVC A,A+DPTR

MOV P2,A

MOV KEYCNT,#00H

DKN: JNB SP1,$ ;直接寻址为0转移

LJMP WT

DELY10MS:

相关主题
相关文档
最新文档