“单片机原理及应用”半期复习资料第一章
1-3:单片机与普通计算机的不同之处在于其将( )( )和( )三部分集成于一块芯片上。
答:CPU、存储器、I/O口
1-8:8051与8751的区别是:
A、内部数据存储但也数目的不同 B、内部数据存储器的类型不同
C、内部程序存储器的类型不同 D、内部的寄存器的数目不同答:C
第二章
2-4:在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为( )。
答:2us。
析:机器周期为振荡周期的1/6。
2-6:内部RAM中,位地址为30H的位,该位所在字节的字节地址为( )。
答:26H
2-7:若A中的内容为63H,那么,P标志位的值为( )。
答:0
析:P为偶校验位,因为A中1的个数为偶数,所以P=0。
2-8:判断下列说法是否正确:
A、8031的CPU是由RAM和EPROM所组成。
B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。
C、在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。
D、PC可以看成使程序存储器的地址指针。
答:错、错、对、对
2-9:8031单片机复位后,R4所对应的存储单元的地址为( ),因上电时PSW=( )。这时当前的工作寄存器区是( )组工作寄存器区。
答:04H、00H、0
2-11:判断以下有关PC和DPTR的结论是否正确?
A、DPTR是可以访问的,而PC不能访问。
B、它们都是16位的存储器
C、它们都有加1的功能。
D、DPTR可以分为两个8位的寄存器使用,但PC不能。
答:对、对、对、对
2-13:使用8031芯片时,需将/EA引脚接( )电平,因为其片内无( )存储器。
答:低、程序
2-14:片内RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么?
答:工作寄存器区、位寻址区、数据缓冲区
2-15:判断下列说法是否正确程序计数器PC不能为用户编程时直接使用,因为它没有地址。
内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。
8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。
答:对、错、错
2-16:PC的值是
A、当前正在执行指令的前一条指令的地址 B、当前正在执行指令的地址
C、当前正在执行指令的下一条指令的地址 D、控制器中指令寄存器的地址答:C
2-17:通过堆栈操作实现子程序调用,首先就要把( )的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到( )。
答:PC、PC
2-19:MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为( )KB。
答:64
2-20:当MCS-51单片机运行出错或程序陷入死循环时,如何来摆脱困境?
答:软件陷阱、复位
2-21:判断下列说法是否正确?
PC是1个不可寻址的特殊功能寄存器。
单片机的主频越高,其运算速度越快。
在MCS-51单片机中,1个机器周期等于1us。
特殊功能寄存器SP内装的是栈顶首地址单元的内容。
答:错、对、错、错
2-22:如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-51单片机正在工作?
答:ALE
析:因为单片机正常工作时,ALE脚输出时钟频率为振荡周期的1/6。
第三章
3-1:判断下列指令的正误:
1)MOV 28H,@R2 2)DEC DPTR 3)INC DPTR 4)CLR R0
5)CPL R5 6)MOV R0,R1 7)PUSH DPTR 8)MOV F0,C
9)MOV F0,ACC.3 10)MOVX A,@R1 11)MOV C,30H 12)RLC R0
答:错、错、对、错
错、错、错、对
错、对、对、错
3-2:判断下列说法是否正确。
立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。
指令周期是执行一条指令的时间。
指令中直接给出的操作数称为直接寻址。
答:对、对、错
3-3:在基址加变址寻址方式中,以( )作变址寄存器,以( )或( )作基址寄存器。
答:累加器A,DPTR、PC
3-7:指令格式是由( )和( )所组成,也可能仅由( )组成。
答:操作码、操作数、操作码
3-8:假定累加器A中的内容为30H,执行指令
1000H:MOVC A,@A+PC
后,把程序存储器( )单元的内容送入累加器A中。
答:1031H
3-9:在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问( )存储器提供地址,而DPTR是为访问( )存储器提供地址。
答:程序、数据
3-10:在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的( )。
答:地址
3-11:下列程序段的功能是什么?
PUSH A
PUSH B
POP A
POP B
答:交换A、B的内容
3-12:已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:
POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( )。
答:A=50H,SP=50H,(51H)=30H,(52H)=50H,PC=5030H
3-14:假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
后,A的内容为( )。
答:0CBH
3-15:假定A=55H,R3=0AAH,在执行指令ANL A,R3后,A=( ),R3=( )。
答:0、0AAH
3-16:如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
POP DPH
POP DPL
POP SP
则:DPH=( ),DPL=( ),SP=( )
答:DPH=3CH,DPL=5FH,SP=4FH
3-17:假定,SP=60H,A=30H,B=70H,执行下列指令:
PUSH A
PUSH B
后,SP的内容为( ),61H单元的内容为( ),62H单元的内容为( )。
答:62H,30H,70H
第四章
4-6:试编写1个程序,将内部RAM中45H单元的高4位清0,低4位置1。
答:MOV A,45H
ANL A,#0FH
ORL A,#0FH
MOV 45H,A
4-7:已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后:
POP DPH
POP DPL
MOV DPTR,#3000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 3000H
DB 10H,80H,30H,80H,50H,80H
请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( )。
答:A=80H,SP=40H,(51H)=50H,(52H)=80H,PC=8050H
4-8:计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHz)。
MOV R3,#15H ;1个机器周期
DL1:MOV R4,#255 ;1个机器周期
DL2:MOV P1,R3 ;2个机器周期
DJNZ R4,DL2 ;2个机器周期
DJNZ R3,DL1 ;2个机器周期
RET ;2个机器周期答:15348us
析:((2+2)×255+1+2)×15+1+2=15348us
4-9:假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
后,A的内容为( )。
答:0CBH
4-10:试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。
答:START: MOV R0,#30H
MOV R2,#20H
LOOP: MOV A,@R0
CJNE A,#0AAH,NEXT
MOV 51H,#01H
LJMP EXIT
NEXT: INC R0
DJNZ R2,LOOP
MOV 51H,#00H
EXIT: RET
4-11:试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。并将查找到的结果存入41H单元。
答:START: MOV 41H,#0
MOV R0,#20H
MOV R2,#20H
LOOP: MOV A,@R0
JNZ NEXT
INC 41H
NEXT: INC R0
DJNZ R2,LOOP
RET
4-12:若SP=60H,标号LABEL所在的地址为3456H。LCALL指令的地址为2000H,执行指令如下:
2000H LCALL LABEL
后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL 直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?
答:1)SP=SP+1=61H (61H)=PC的低字节=03H
SP=SP+1=62H (62H)=PC的高字节=20H
2)PC=3456H
3)可以
4)2KB=2048 Byte
1-3:单片机与普通计算机的不同之处在于其将( )( )和( )三部分集成于一块芯片上。
答:CPU、存储器、I/O口
1-8:8051与8751的区别是:
A、内部数据存储但也数目的不同 B、内部数据存储器的类型不同
C、内部程序存储器的类型不同 D、内部的寄存器的数目不同答:C
第二章
2-4:在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为( )。
答:2us。
析:机器周期为振荡周期的1/6。
2-6:内部RAM中,位地址为30H的位,该位所在字节的字节地址为( )。
答:26H
2-7:若A中的内容为63H,那么,P标志位的值为( )。
答:0
析:P为偶校验位,因为A中1的个数为偶数,所以P=0。
2-8:判断下列说法是否正确:
A、8031的CPU是由RAM和EPROM所组成。
B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。
C、在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。
D、PC可以看成使程序存储器的地址指针。
答:错、错、对、对
2-9:8031单片机复位后,R4所对应的存储单元的地址为( ),因上电时PSW=( )。这时当前的工作寄存器区是( )组工作寄存器区。
答:04H、00H、0
2-11:判断以下有关PC和DPTR的结论是否正确?
A、DPTR是可以访问的,而PC不能访问。
B、它们都是16位的存储器
C、它们都有加1的功能。
D、DPTR可以分为两个8位的寄存器使用,但PC不能。
答:对、对、对、对
2-13:使用8031芯片时,需将/EA引脚接( )电平,因为其片内无( )存储器。
答:低、程序
2-14:片内RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么?
答:工作寄存器区、位寻址区、数据缓冲区
2-15:判断下列说法是否正确程序计数器PC不能为用户编程时直接使用,因为它没有地址。
内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。
8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。
答:对、错、错
2-16:PC的值是
A、当前正在执行指令的前一条指令的地址 B、当前正在执行指令的地址
C、当前正在执行指令的下一条指令的地址 D、控制器中指令寄存器的地址答:C
2-17:通过堆栈操作实现子程序调用,首先就要把( )的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到( )。
答:PC、PC
2-19:MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为( )KB。
答:64
2-20:当MCS-51单片机运行出错或程序陷入死循环时,如何来摆脱困境?
答:软件陷阱、复位
2-21:判断下列说法是否正确?
PC是1个不可寻址的特殊功能寄存器。
单片机的主频越高,其运算速度越快。
在MCS-51单片机中,1个机器周期等于1us。
特殊功能寄存器SP内装的是栈顶首地址单元的内容。
答:错、对、错、错
2-22:如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-51单片机正在工作?
答:ALE
析:因为单片机正常工作时,ALE脚输出时钟频率为振荡周期的1/6。
第三章
3-1:判断下列指令的正误:
1)MOV 28H,@R2 2)DEC DPTR 3)INC DPTR 4)CLR R0
5)CPL R5 6)MOV R0,R1 7)PUSH DPTR 8)MOV F0,C
9)MOV F0,ACC.3 10)MOVX A,@R1 11)MOV C,30H 12)RLC R0
答:错、错、对、错
错、错、错、对
错、对、对、错
3-2:判断下列说法是否正确。
立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。
指令周期是执行一条指令的时间。
指令中直接给出的操作数称为直接寻址。
答:对、对、错
3-3:在基址加变址寻址方式中,以( )作变址寄存器,以( )或( )作基址寄存器。
答:累加器A,DPTR、PC
3-7:指令格式是由( )和( )所组成,也可能仅由( )组成。
答:操作码、操作数、操作码
3-8:假定累加器A中的内容为30H,执行指令
1000H:MOVC A,@A+PC
后,把程序存储器( )单元的内容送入累加器A中。
答:1031H
3-9:在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问( )存储器提供地址,而DPTR是为访问( )存储器提供地址。
答:程序、数据
3-10:在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的( )。
答:地址
3-11:下列程序段的功能是什么?
PUSH A
PUSH B
POP A
POP B
答:交换A、B的内容
3-12:已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:
POP DPH
POP DPL
MOV DPTR,#4000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 4000H
DB 10H,80H,30H,50H,30H,50H
请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( )。
答:A=50H,SP=50H,(51H)=30H,(52H)=50H,PC=5030H
3-14:假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
后,A的内容为( )。
答:0CBH
3-15:假定A=55H,R3=0AAH,在执行指令ANL A,R3后,A=( ),R3=( )。
答:0、0AAH
3-16:如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
POP DPH
POP DPL
POP SP
则:DPH=( ),DPL=( ),SP=( )
答:DPH=3CH,DPL=5FH,SP=4FH
3-17:假定,SP=60H,A=30H,B=70H,执行下列指令:
PUSH A
PUSH B
后,SP的内容为( ),61H单元的内容为( ),62H单元的内容为( )。
答:62H,30H,70H
第四章
4-6:试编写1个程序,将内部RAM中45H单元的高4位清0,低4位置1。
答:MOV A,45H
ANL A,#0FH
ORL A,#0FH
MOV 45H,A
4-7:已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后:
POP DPH
POP DPL
MOV DPTR,#3000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH A
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH A
RET
ORG 3000H
DB 10H,80H,30H,80H,50H,80H
请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( )。
答:A=80H,SP=40H,(51H)=50H,(52H)=80H,PC=8050H
4-8:计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHz)。
MOV R3,#15H ;1个机器周期
DL1:MOV R4,#255 ;1个机器周期
DL2:MOV P1,R3 ;2个机器周期
DJNZ R4,DL2 ;2个机器周期
DJNZ R3,DL1 ;2个机器周期
RET ;2个机器周期答:15348us
析:((2+2)×255+1+2)×15+1+2=15348us
4-9:假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
后,A的内容为( )。
答:0CBH
4-10:试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。
答:START: MOV R0,#30H
MOV R2,#20H
LOOP: MOV A,@R0
CJNE A,#0AAH,NEXT
MOV 51H,#01H
LJMP EXIT
NEXT: INC R0
DJNZ R2,LOOP
MOV 51H,#00H
EXIT: RET
4-11:试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。并将查找到的结果存入41H单元。
答:START: MOV 41H,#0
MOV R0,#20H
MOV R2,#20H
LOOP: MOV A,@R0
JNZ NEXT
INC 41H
NEXT: INC R0
DJNZ R2,LOOP
RET
4-12:若SP=60H,标号LABEL所在的地址为3456H。LCALL指令的地址为2000H,执行指令如下:
2000H LCALL LABEL
后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL 直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?
答:1)SP=SP+1=61H (61H)=PC的低字节=03H
SP=SP+1=62H (62H)=PC的高字节=20H
2)PC=3456H
3)可以
4)2KB=2048 Byte