单片机答案 下载本文

习题1

2. CPU由(运算器)和(控制器)组成。 12. 采用 8031单片机必须扩展( B )。

A:数据存储器 B:程序存储器 C:I/O接口 D:显示接口 16. 8051单片机的控制总线信号有哪些?各有何作用? 解:

控制线一共有6条:

(1)ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/PROG上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。

(2)EA/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。 (3)片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSENPSEN:上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下PSEN线均为高电平封锁状态。

(4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。

习题2

2. 在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。

5. 8051执行完MOV A,#08H后,PSW的( D )位被置位。

A:C B:F0 C:OV D:P

11.片内RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作? 解:

位寻址是直接寻址方式的一种。虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过以下的方法区分:

1. 通过指令操作码(指令的类型)区分:

位操作只有17条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

MOV C,bit CPL bit (C) JB bit,rel MOV bit,C ORL C,bit (/bit) JNB bit,rel CLR bit (C) ANL C,bit (/bit) JC rel SETB bit (C) JBC bit,rel JNC rel

位操作只有MOV、 CLR 、SETB、 CPL 、ORL、 ANL 、JB 、JNB、 JBC、 JC、 JNC几种操作码,其中:JB、JNB、JBC、JC、JNC是位寻址特有的。

2. 当指令操作码一样时,可通过操作数的表现形式来区分。直接位地址的表示方法有: (1)直接使用位地址形式。如:MOV 00H, C

(2)字节地址加位序号的形式。如:MOV 20H.0, C (3)位的符号地址(位名称)的形式。如:ANL C, P

(4)字节符号地址(字节名称)加位序号的形式。如:CPL PSW.6 3. 可通过指令中的累加器区分:

位操作中的累加器为C,单元操作中的累加器为A。 13.在“MOVC A, @A+DPTR”和“MOVC A, @A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址? 使用中有何不同? 解:

使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到

1

被访问字节地址的偏移量。

使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。

15.设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中的内容将有何变化?

PUSH 30H PUSH 31H POP DPL POP DPH MOV 30H, #00H MOV 31H, #0FFH

解:

结果为: 61H、62H单元为堆栈单元,其内容已被弹出栈。 (30H)=00H (31H)=0FFH (DPTR)=2410H (SP)=60H

19.编程将片内RAM的40H~60H单元中内容送到片外RAM以3000H开始的单元中。并将原片内RAM数据块区域全部清0。

2

[键入文字]

解: ORG 0000H

LJMP MAIN ORG 0030H MAIN: MOV SP, #60H

MOV R7,#21H

MOV R0,#40H MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A MOV @R0, #00H INC R0 INC DPTR DJNZ R7,LOOP SJMP $ END

20.编程计算片内RAM区30H~37H 的8个单元中数的算术平均值,结果存放在3AH单元中。

解: ORG 0000H

LJMP MAIN ORG 0030H MAIN: MOV R0,#30H MOV R1,#00H MOV R2,#00H MOV R3,#08H LP2: MOV A,@R0 ADD A,R2 MOV R2,A JNC LP1 INC R1 LP1: INC R0 DJNZ R3,LP2 MOV R3,#03H CLR C

LP3:MOV A,R1 RRC A MOV R1,A MOV A,R2 RRC A MOV R2,A DJNZ R3,LP3 MOV 3AH,R2 SJMP $

END

22.设有两个长度均为15的数组,分别存放在片外RAM以2000H和2100H开始的存储区中,试编程求其对应项之和,结果存放在以2200H为首地址的存储区中。 解: ORG 0000H LJMP MAIN ORG 0030h

MAIN: MOV DPTR,#2000H

MOV A,#OFFH MOVX @DPTR,A MOV DPTR,#2100H

[键入文字]

LOOP:

LOOP1:

MOV MOVX MOV MOV MOVX MOV MOV MOVX MOV MOV MOVX MOV MOV MOVX MOV MOV MOV MOVX MOV INC INC

DJNZ MOV MOV MOV MOV A,#34H @DPTR,A DPTR,#2008H A,#33H @DPTR,A DPTR,#2108H A,#44H @DPTR,A DPTR,#200EH A,#0EEH @DPTR,A DPTR,#210EH A,#32H @DPTR,A DPTR,#2000H R1,#30H R2,#15 A,@DPTR @R1,A DPTR R1

R2,LOOP R1,#30H

DPTR,#2100H R2,#15 R0,#40H

MOVX A,@DPTR CLR C

ADDC A,@R1 MOV @R0,A INC DPTR INC R1 INC R0

DJNZ R2,LOOP1 MOV DPTR,#2200H

MOV R2,#15 MOV R0,#40H LOOP2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,LOOP2 SJMP $ END

习题3 8. 在数据通信中,有数据传送方式有( 单工 )、( 半双工 )、( 全双工 )、( 多工 )四种方式。

9. 设置串行口为10位UART,则其工作方式应选用为(工作方式1 )。 19. 控制串行接口工作方式的寄存器是( C )。

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

24.简述MCS-51单片机的中断响应过程。 解:

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

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

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