单片机课后习题答案 下载本文

SUBB A,#30H DJNZ R2,TT SWAP A MOV DPTR,#3000H MOV 41H,A MOV R1,#30H INC DPTR MOV R2,#0AH MOVX A,@DPTR TT1: MOV A,@R1 CLR C MOVX @DPTR,A SUBB A,#30H INC R1 MOV @R1,A INC DPTR MOV A,41H DJNZ R2,TT1 XCHD A,@R1 SJMP $

END MOV @R1,A

INC R1 INC DPTR

27.编程实现将片外RAM中2400H~2450H单元中的数传送到2500H~2550H单元中。

MOV R2,#51H 解: ORG 0000H

LOOP: LJMP MAIN

MOV DPH,30H ORG 0030H

MOV DPL,31H MAIN:

MOVX A,@DPTR MOV DPTR,#2400H

MOV DPH,32H MOV A,#07H

MOV DPL,33H MOVX @DPTR,A

MOVX @DPTR,A MOV DPTR,@2450H

INC 31H MOV A,#06H

INC 33H MOVX @DPTR,A

DJNZ R2,LOOP MOV 30H,#24H

AJMP $ MOV 31H,#00H

END MOV 32H,#25H

MOV 33H,#00H

28.在片外RAM的2030H和2031H单元中各有一个小于16的数,编程求这两个数的平方和,结果存放在2040H单元。要求用调用子程序方法实现。 解:

ORG 0000H MOVX A,@DPTR LJMP MAIN LCALL SQR ORG 0030H ADD A,R1

MOV DPTR,#2040H MAIN: MOV DPTR,#2030H

MOVX @DPTR,A MOV A,#03H

AJMP $ MOVX @DPTR,A

SQR: INC A MOV DPTR,#2031H

MOVC A,@A+PC MOV A,#05H

RET MOVX @DPTR,A

TAB: DB 0,1,4,9,16,25 MOV DPTR,#2030H

DB 36,49,64,81,100 MOVX A,@DPTR

DB LCALL SQR

121,144,169,196,225 MOV R1,A

END MOV DPTR,#2031H

习题3

1. MCS-51的P0口作为输出端口时,每位能驱动( 8 )个SL型TTL负载。

2. MCS-51有( 4 )个并行I/O口,在作为通用I/O口使用时P0~P3是准双向口,所以由输出转输入时必须先写入 ( 1 )。

13

3. MCS-51有( 5 )个中断源,有( 2 )个中断优先级,优先级由软件填写特殊功能寄存器 ( IP )加以选择。

4. 外部中断1所对应的中断入口地址为( 0013H )H。

5. 当定时器T0工作在方式( 3 )时,要占定时器T1的TR1和TF1两个控制位。 6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2 定时)。

7. 定时器T0溢出标志位是( TF0 ),定时器T1溢出标志位是( TF1 )。 8. 在数据通信中,有数据传送方式有( 单工 )、( 半双工 )、( 全双工 )、( 多工 )四种方式。

9. 设置串行口为10位UART,则其工作方式应选用为(工作方式1 )。

10. 单片机串行通信时,若要发送数据,就必须将要发送的数据送至( SBUF )寄存器,若要接收数据也要到该寄存器取数。 11. 异步串行数据通信的桢格式由( 起始位 )位,( 数据位 )位,( 奇偶较验 )位和 ( 停止位 )位组成。

12. 在中断服务程序中,至少应有一条( D )。

A:传送指令 B:转移指令 C:加法指法 D:中断返回指令

13. 8031单片机中断查询确认后,在下列各种运行情况中,能立即进行响应的是( D )。

A:当前正在执行高优先级中断处理 B:当前正在执行RETI指令

C:当前指令是DIV指令,且正处于取指令的机器周期 D:当前指令是MOV A, R3

14. 要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是( A )

A:98H B:84H C:42 D:22H

15. 使用定时器T1时,有几种工作模式( D )

A:1种 B:2种 C:3种 D:4种

16. 当定时器工作在方式 1,系统采用 6MHz 晶振时,若要定时器定时0.5ms ,则定时器的初始值为( A )。

A:FF06H B:F006H C:0006H D:06FFH

17. 定时器 T1的溢出标志为TF1,采用中断方式,当定时器溢出时,若CPU响应中断后,该标志( B )。

A:由软件清零 B:由硬件清零 C:随机状态 D:AB都可以

18. 在异步通信中每个字符由9位组成,串行口每分钟传25000个字符,则对应的波特率为( D )b/s。

A:2500 B:2750 C:3000 D:3750

19. 控制串行接口工作方式的寄存器是( C )。

A:TCON B:PCON C:SCON D:TMOD

20.什么是中断和中断系统?其主要功能是什么? 解:

所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程

采用中断技术可以提高CPU效率、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(CPU)。

中断系统:能够实现中断功能的硬件电路和软件程序。

中断系统的功能:能够实现中断优先权排队、中断嵌套、自动响应中断和中断返回等功能。

21.什么是中断优先级?中断优先处理的原则是什么? 解:

中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:

14

(1)先响应优先级高的中断请求,再响应优先级低的中断请求。

(2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。

(3)如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应

各中断请求。

单片机内部自然优先级顺序(由高到低)为:

外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断。 22.8051有哪些中断源?如何对各中断请求进行控制? 解:

(1)80C51有以下中断源:

外部中断0(INT0)请求,低电平有效。

② 外部中断1(INT1)请求,低电平有效。 ③ T0:定时器/计数器0溢出中断请求。 ④ T1:定时器/计数器1溢出中断请求。 ⑤ TI/RI:串行接口中断请求。

(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现对各种中断的控制功能。 23.简述中断系统的初始化步骤。 解:

中断系统的初始化步骤如下: (1)开相应中断源的中断允许;

(2)设定所用中断源的中断优先级;

(3)若为外部中断,则应规定中断触发方式(低电平或负边沿触发)。 24.简述MCS-51单片机的中断响应过程。 解:

单片机一旦响应中断请求, 就由硬件完成以下功能:

 (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1;

(2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源; 

(3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); 

(4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。

(5)中断返回,程序返回断点处继续执行。

25.8051单片机怎样管理中断?怎样开放和禁止中断?怎样设置优先级? 解:

(1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断)响应中断。

CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。

(2)由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O即可。

(3)由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。

26.8051在什么条件下可响应中断? 解:

(1)有中断源发出中断请求。

(2)中断总允许控制位EA=l, CPU开放总中断。

15

(3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。 (4)无同级或更高级中断正在服务。 (5)当前指令周期已经结束。

(6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。

满足以上条件,则CPU响应响应中断元的中断请求。 27.请写出INT1为低电平触发的中断系统初始化程序。 解:

INT1为低电平触发的中断系统初始化程序如下:

ORG 0000H LJMP MAIN ORG 0013H LJMP INTN1 ORG 0100H MAIN: MOV SP,#60H

SETB EA

SETB EX1 ; 开INT1中断 CLR PX1 ; 令INT1为低优先级 CLR IT1 ; 令INT1为电平触发 SJMP $ END

28.说明MCS-51单片机响应中断后,中断服务的入口地址。 解:

中断服务程序的入口地址如下表: 中断源 中断矢量 0003H 外部中断0(INT0) 000BH 0013H 外部中断1(INT1) 001BH 定时器T1中断 0023H 串行口中断 29.在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求? 解:

(1)符合以下6个条件可响应新的中断请求:

① 有中断源发出中断请求。 ② 中断总允许控制位EA=l, CPU开放总中断。 ③ 申请中断的中断源的中断允许位为1,即中断没有被屏蔽。 ④ 无同级或更高级中断正在被服务。 ⑤ 当前的指令周期已结束。 ⑥ 若现行指令为RETI或访问IE或lP指令时,该指令以及紧接着的另一条指令已执

行完。

(2)如果新的中断请求\优先级\低于正在执行的中断请求或与其同级,则不能被响应。 30.8051单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?

定时器T0中断 解:

有两种方式:电平触发和边沿触发。

(1)电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输人电平。若为低电平,便置IEl(IEO)为“1” ,申请中断;若外部中断引脚为高电平,则IEl(IEO)清零。

(2)边沿触发方式:CPU在每个机器周期的S5P2期间采样外部中断请求引脚的输人电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IEl(IEO)置1,申请中断;否则,IEl(1E0)置0。

16