单片机习题参考答案 下载本文

二.简答题

(1) 以方式0为例,说明MCS-51的定时/计数器实现计数和定时功能的基本原理。 以THi、TLi 16位中的13位(TLi的高3位未用)构成一个加1计数器,定时方式工作时,以主频12分频后的频率信号作为加1脉冲信号;计数方式工作时,以从外部接口送入的频率信号作为加1脉冲信号。

(2) 单片机8051内部有几个定时/计数器?它们由哪些专用寄存器组成?

单片机8051内部有2个定时/计数器;它们由TH0、TL0、TH1、TL1、TMOD、TCON专用寄存器组成。

(3) 单片机8051的定时/计数器有哪几种工作方式?各有什么特点?

单片机8051的定时/计数器有4种工作方式;工作方式0:13位计数器;工作方式1:16位计数器;工作方式2:初值可以自动重新装入的8位计数器;工作方式3:T0拆分成两个独立的8位计数器,占用了T1的有关引脚、控制位、中断,T1仍可工作在不需中断控制的工作方式0、工作方式1、工作方式2。

(4) 定时/计数器作为定时用时,其定时时间与哪些因素有关?作为计数用时,对输入信号频率有何限制?

定时/计数器作为定时用时,其定时时间与工作方式、初值、主频等因素有关,作为计数用时,对输入信号频率的限制是不允许超出主频的1/24,且高低电平的保持时间大于1个机器周期。

(5) 说明对MCS-51定时器进行初始化编程的步骤和内容。

① 向TMOD写入工作方式控制字。 ② 向计数器TLi、THi装入初值。

③ 置TRi=1,启动计数。

④ 若需要时,置ETi=1,允许定时/计数器中断。 ⑤ 置EA=1,CPU开中断。

(6) 8051单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的?又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?

8051单片机提供了5个中断源;有2级中断优先级别;各中断源所对应的中断矢量地址是0003H、000BH、0013H、001BH、0023H

(7) 试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。

① 定时器T0溢出中断,定时器T1溢出中断,外部中断INT0,外部中断INT1,串行口中断;

② 串行口中断,外部中断INT0,定时器T0溢出中断,外部中断INT1,定时器T1溢出中断;

③ 外部中断INT0,定时器T1溢出中断,外部中断INT1,定时器T0溢出中断,串行口中断;

④ 外部中断INT0,外部中断INT1,串行口中断,定时器T0溢出中断,定时器T1溢出中断;

⑤ 串行口中断,定时器T0溢出中断,外部中断INT0,外部中断INT1,定时器T1溢出中断;

⑥ 外部中断INT0,外部中断INT1,定时器T0溢出中断,串行口中断,定时器T1溢出中断;

⑦ 外部中断INT0,定时器T1溢出中断,定时器T0溢出中断,外部中断INT1,串行口中断。

17

(8) 外部中断有几种触发方式?如何选择?在何种触发方式下,需要在外部设置中断请求触发器?为什么?

(9) 利用定时器来测量单次正脉冲宽度,采用何种工作方式可获得最大的量程?设fosc=6MHz,求允许测量的最大脉宽是多少?

(10) 串行通信与并行通信各有什么优缺点,它们分别适用于什么场合? (11) 串行通信与并行通信相比各有何特点? (12) 串行通信有几种通信方式?

(13) 串行口有几种工作方式?它们各有什么特点?

(14) 设串行异步通信的传送速率为2400波特,传送的是带奇偶校验的ASCII码字符,每个字符包含10位(1个起始位,7个数据位,1个奇偶校验位,1个停止符),试问每秒最多可传送多少个字符? 三.应用题

1. 利用MCS-51定时器分别实现以下要求,说明实现方法,并编制程序。 ① T1工作于方式1或方式2,使P1.0脚输出周期为400μs的连续方波。 利用定时器T1方式2 定时,200μs引起一次中断 MAIN: MOV TMOD,#20H

MOV

MOV MOV SETB SJMP

TL1,#9CH TH1,#9CH IE,#88H TR1 $

ORG 001BH CPL P1.0 RETI

② 测量不等宽方波的高低电平持续时间TH和TL。

测量不等宽方波的高电平持续时间TH同例5.6程序

测量不等宽方波的低电平持续时间TL将例5.6程序改动如下 WAIT1: JNB

SETB

WAIT2: JB

P3.2,WAIT1 TR0

P3.2,WAIT2

WAIT2: JNB P3.2,WAIT3

③ 检测一段程序的执行时间(估计不大于2ms)。

利用T1工作于方式2定时,使周期为1μs引起一次中断,记录中断次数*1μs即为程序的执行时间。

ORG AJMP ORG

0000H MAIN 001BH INT

TMOD,#20H TL1,#FFH TH1,#FFH

AJMP MAIN: MOV

MOV MOV

MOV IE,#88H SETB TR1

(需检测的程序段) 18

CLR

INT:

SJMP ORG INC RETI

TR1 $

001BH R0或INC

DPTR

END

④ 为MCS-51扩展一个外部中断源。 参见例5.5 MAIN: MOV TMOD,#60H

MOV MOV MOV SETB

SJMP

TL1,#FFH TH1,#FFH IE,#88H TR1 $

⑤ 对外部脉冲记数,当记到100时,从P1.1脚输出一个正跳变。 利用定时器T1方式2对外部信号计数 MAIN: MOV

MOV MOV

MOV SETB SJMP ORG SETB NOP NOP CPL RETI

2.设系统有两个中断源,分别为外部中断INT0和串口,要求串口中断为优先,试编制它的初始化程序。

ORG AJMP ORG AJMP ORG AJMP ORG

0000H MAIN 0003H INT0 0023H SIO 0100H EA ES EX0 PS TMOD,#60H TL1,#9CH TH1,#9CH IE,#88H TR1 $

001BH P1.1

P1.1

MAIN: SETB SETB

SETB

SETB

SJMP

19

$

3.当定时器T0作在方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?

当定时器T0作在方式3时,定时器T1仍可设置为方式0、方式、方式2。但由于TR1、TF1以及T1的中断源已被定时器T0占用,此时定时器T1仅由控制位C/T切换其定时或计数功能,当计数器计满溢出时,只能将输出送往串口。

4.已知单片机系统时钟频率fosc=6MHz,若要求定时值分别为0.1ms、1ms和10m,定时器T0工作在方式0、方式1、方式2时,定时器对应的初值各为多少?

定时值为0.1ms时:

定时器T0工作在方式0时,对应的初值为8142(FEH 0EH) 定时器T0工作在方式1 时,对应的初值为65486(FFH CEH ) 定时器T0工作在方式2时,对应的初值为206(CEH) 定时值为1ms时:

定时器T0工作在方式0时,对应的初值为7692(F0H 0CH) 定时器T0工作在方式1 时,对应的初值为65036(FEH 0CH) 定时器T0工作在方式2时,无对应的初值 定时值为10m时:

定时器T0工作在方式0时,对应的初值为3192(63H 18H) 定时器T0工作在方式1 时,对应的初值为60536(ECH 78H) 定时器T0工作在方式2时,无对应的初值

5.已知单片机系统时钟频率fosc=6MHz,试编写程序,使P1.0输出如下的矩形脉冲(建议用定时器工作方式2)

P1.0 → 40μs

--→

←-- 360μs

ORG AJMP ORG

0000H MAIN 000BH CTC0 0100H

TMOD,#02H TL0,#236 TH0,#236 R0,#0 EA ET0 TR0 P1.0 $ P1.0 R0 R0,#10,RT P1.0 R0,#0

AJMP ORG MAIN: MOV

MOV

MOV MOV SETB SETB SETB SETB SJMP

CTC0: CLR INC

CJNE CPL MOV

20