习题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的内容压入堆栈,保护
[键入文字]
断点,寻找中断源; ?
(3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); ?
(4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。
(5)中断返回,程序返回断点处继续执行。
31.MCS-51的中断服务程序能否存放在64KB程序存储器的任意区域?如何实现? 解:
可以。在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMP Add16),转到相应64K程序存储器的任意地址(Add16)处,执行相应的中断程序。
习题4
9. 扩展外部存储器时要加锁存器74LS373,其作用是( A )。
A:锁存寻址单元的低八位地址 B:锁存寻址单元的数据
C:锁存寻址单元的高八位地址 D:锁存相关的控制和选择信号
16. MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突? 解:
程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,并且,访问二者的指令也不同。因此,两者虽然共处于同一地址空间,但由于控制信号和访问指令不同,所以不会发生总线冲突。
17.某一单片机应用系统,需扩展4KB的EPROM和2KB的RAM,还需外扩一片8255并行接口芯片,采用线选法,画出硬件连接图,并指出各芯片的地址范围。 解:
硬件连接图如下图所示。
图 4.17题硬件连接电路图
注:8255的复位线RESET应与MCS-51的RESET线连上。复位、晶振电路应画上。 各芯片的地址范围为:
2732:E000H~EFFFH 6116:D800H~DFFFH 8255:BFFCH~BFFFH 20.8255A有几种工作方式?如何选择工作方式?A口和B口的工作方式是否完全相同?解:
8255A有3种工作方式:方式0、方式1和方式2。 ① 方式0(基本输入/输出方式)。这种方式不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。
② 方式1(选通输入/输出方式)。这种工作方式下,A组包括A口和C口的高四位(PC7~