单片机复习题.docx
《单片机复习题.docx》由会员分享,可在线阅读,更多相关《单片机复习题.docx(18页珍藏版)》请在冰豆网上搜索。
![单片机复习题.docx](https://file1.bdocx.com/fileroot1/2022-11/25/01697ce6-8950-4431-95c9-3555990d3106/01697ce6-8950-4431-95c9-3555990d31061.gif)
单片机复习题
第一章
一、填空题:
1、机器数的表示规定, 表示符号,正号用 表示,负号用 表示。
2、单片机是将 、 、 等几部分集成在一块芯片上的微型计算机。
3、十进制数29的二进制表示为。
4、十进制数-29的8位补码表示为。
5、微处理器由控制器和二部分组成。
6、十进制数-47用8位二进制补码表示为。
7、-19的二进制补码表示为。
8、计算机中最常用的字符信息编码是。
9、89C51含KB的ROM。
1、单片机机器内的数是以( )的形式表示的
A、原码 B、反码 C、补码 D、ASCII码
2、二进制数110110110对应的十六进制数可表示为。
A.1D3HB.1B6HC.DB0HD.666H
!
3、ALU表示.
A.累加器B.程序状态字寄存器C.计数器D.算术逻辑部件
第二章
一、填空题:
1、89C51单片机的并行I/O口共有4个,分别是 、 、 和 。
2、若不使用89C51片内存储器引脚/EA必须接。
3、89C51系统中,当/PSEN信号有效时,表示CPU要从存储器读取信息。
1、当ALE信号有效时,表示()。
(A)从ROM中读取数据(B)从P0口可靠地送出地址低8位
(C)从P0口送出数据(D)从RAM中读取数据
!
2、在89C51单片机应用系统中,可以作为时钟输出的是()引脚。
(A)RXD(B)RST(C)ALE(D)XTAL2
3、在89C51的4个并行口中,能作为通用I/O口和高8位地址总线的是()。
(A)P0(B)P1(C)P2(D)P3
!
4、单片机89C51的ALE引脚是()。
A、输出高电平B、输出低电平C、输出矩形脉冲,频率为fosc的1/6
D、输出矩形脉冲,频率为fosc的1/2
5、在单片机中,通常将一些中间计算结果放在()中。
A、累加器B、控制器C、程序存储器D、数据存储器
1、程序计数器PC由PCH和PCL组成。
( )
2、程序计数器PC总是指向正在执行的指令地址。
( )
1、89C51的堆栈是软件填写堆栈指针临时在数据存储器内开辟的区域。
2、89C51中凡字节地址能被整除的特殊功能寄存器均能位寻址。
3、当使用89C51且EA=1,程序存储器地址小于时,访问的是片内ROM。
4、89C51有4组工作寄存器,它们的地址范围是。
5、89C51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以寻址。
6、若用传送指令访问89C51的程序存储器,它的操作码助记符应为。
7、访问89C51片内RAM应该使用的传送指令的助记符是。
8、MOVPSW,#10H是将89C51的工作寄存器置为第组。
9、PSW中RS1RS0=10H时,R2的地址为。
10、PSW单片机片内RAM的寄存器区共有个单元,分为组寄存器,每组个单元,以作为寄存器名称。
11、89C51可扩展片外RAM64KB,但当外扩I/O口后,其外部RAM寻址空间将。
12、89C51在物理上有个独立的存储器空间。
13、89C51单片机的堆栈区只可设置在_____________存储区,数据遵循_____________的原则。
!
PSW中的RS1和RS0用来()。
A.选择工作寄存器区号B。
指示复位C。
选择定时器D。
选择工作方式
!
09H位所在的单元地址是()。
A.02HB.21HC.08HD.20H
1、在CPU内部,反映程序运行状态或运算结果特征的寄存器是()。
A. PC B.PSW C.A D.SP
2、89C51的内部RAM中,可以进行位寻址的地址空间为()。
A.00H∽2FH B.20H∽2FH C.00H∽FFH D.20H∽FFH
!
单片机的堆栈指针SP始终是()。
A. 指示堆栈底B.指示堆栈顶 C.指示堆栈地址 D.指示堆栈长度
!
进位标志CY在()中。
A.累加器AB.算术逻辑运算部件ALUC.程序状态字寄存器PSWD.DPDR
3、要用传送指令访问89C51片外RAM,它的指令操作码助记符应是()。
A.MOVB.MOVXC.MOVCD.以上都行
4、下面哪条指令将89C51的工作寄存器置成3区()。
A.MOVPSW,#13HB.MOVPSW#18H
C.SETBPSW.4CLRPSW.3D.SETBPSW.3CLRPSW.4
5、89C51单片机有( )个特殊功能寄存器。
A、3 B、10 C、21 D、128
6、数据寄存器指针DPTR是一个( )位的寄存器。
A、8 B、16 C、24 D、32
7、89C51单片机的工作寄存器分成( )组,每组有( )单元。
A、2个 B、4个 C、6个 D、8个
12、89C51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来()。
A.存放指令B.存放上一条指令地址
C.存放下一条指令地址D.存放16位地址,作间址寄存器使用
13、单片机89C51的XTAL1和XTAL2引脚是()引脚。
A、外接定时器B、外接串行口C、外接中断D、外接晶振
1、堆栈操作是按“后进先出”的原则存取数据。
( )
2、数据寄存器指针DPTR由DPH和DPL组成。
( )
3、若累加器A中“1”的个数为偶数,则奇偶标志位P为1。
( )
MCS51的特殊功能寄存器分布在60H~80H地址范围内。
()
1、单片机复位方式有 和 复位。
2、单片机复位后,若执行SETBRS1指令,此时只能使用区的工作寄存器。
单片机复位后,SBUF的内容为,SP的内容为,单片机从开始执行程序。
3、P0,P1口作输入用途之前必须。
4、89C51的P0口作为输出端口时,每位能驱动个SL型TTL负载。
5、89C51有4个并行I/O口,其中是准双向口,所以由输出转输入时必须先写入“1”。
6、一个机器周期=节拍、一个机器周期=12个振荡周期,一个振荡周期=节拍。
1、89C51单片机上电复位后,堆栈区的最大允许范围是()个单元。
A.64B.120C.128D.256
!
89C51系列单片机的复位系统必须保持()才能复位。
A、1个机器周期以上的高电平B、1个机器周期以上的低电平
C、2个机器周期以上的高电平D、2个机器周期以上的低电平
!
一个机器周期是()。
A、一条指令所执行的时间B、一段程序需要的时间
C、振荡脉冲周期的12倍D、振荡脉冲周期的24倍
!
单片机复位后,()。
A、PC=0003H,SP=07HB、PC=0000H,SP=07H
C、PC=0000H,SP=00HD、PC=0003H,SP=00H
2、单片机上电后或复位后,工作寄存器R0是在()。
A、0区00H单元B、0区01H单元C、1区09H单元D、SFR
3、P1口的每一位能驱动()。
A、2个TTL低电平负载B、4个TTL低电平负载C、8个TTL低电平负载D、10个TTL低电平负载
MCS51上电复位时,SBUF=00H。
()
在MCS51系统中,一个机器周期等于1.5μs。
()
第三章
一、填空题:
1.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的。
2.在变址寻址方式中,以作变址寄存器,以或作基址寄存器。
3.MOVC,20H源寻址方式为寻址。
4.设DPTR=2000H,(A)=80H,则MOVCA,@A+DPTR的操作数的实际地址为。
5.MOVXA,@DPTR源操作数寻址方式为。
!
MOVC,#00H的寻址方式是()
(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址
1.在寄存器间接寻址方式中,指定寄存器中存放的是()
(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量
2.JNZrel指令的寻址方式是()
(A)立即寻址(B)寄存器寻址(C)相对寻址(D)位寻址
3.MOVXA,@DPTR指令中源操作数的寻址方式是()
(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址
1.特殊功能寄存器只能采用寻址方式。
2.89C51单片机指令ANLA,20H中源操作数的寻址方式是_____________。
3.89C51单片机指令系统按操作功能可分为 、 、 、 、 五大类。
4.89C51单片机堆栈中数据的压入和弹出是按 的规律。
5.堆栈指令包括 指令和 指令两类。
6.累加器(A)=80H,执行完指令ADDA,#83H后,进位位C=。
7.执行ANLA,#0FH指令后,累加器A的高4位=。
8.ORLA,#0FH的意思是将A里面的内容的高4位,低4位。
9.JZrel的操作码地址为1000H,rel=20H,它的转移目的地址为。
JBC00H,rel操作码的地址为2000H,rel=70H,它的转移目的地址为。
累加器(A)=7EH,(20H)=#04H,89C51执行完ADDA,20H指令后,PSW.0=。
10.指令DJNZR7,rel操作码所在地址为3000H,rel=EFH,则它的转移目的地址为。
11.ORLA,#0F0H是将A的高4位置1,而低4位。
12.SJMPrel的指令操作码地址为0050H,rel=65H,那么它的转移目的地址为。
13.指令LCALL37B0H,首地址在2000H,所完成的操作是入栈,37B0H→PC。
ORG1000H
LCALL4000H
ORG4000H
ADDA,R2
执行完LCALL后(PC)=。
假定累加器A的内容为30H,执行指令:
1000H:
MOVC A,@A+PC
后,把程序存储器单元的内容送累加器A中。
假定DPTR的内容为8100H,累加器A的内容为40H,执行下列指令:
MOVC A,@A+DPTR
后,送入A的是程序存储器单元的内容。
假定(SP)=60H,(ACC)=30H,(B)=70H,执行下列指令:
PUSH ACC
PUSH B
后,SP的内容为,61H单元的内容为,62H单元的内容为。
假定(SP)=62H,(61H)=30H,(62H)=70H。
执行下列指令:
POP DPH
POP DPL
后,DPTR的内容为,SP的内容为。
假定(A)=85H,(R0)=20H,(20H)=0AFH。
执行指令:
ADD A,@R0
后,累加器A的内容为,CY的内容为,AC的内容为,OV的内容为。
假定(A)=85H,(20H)=0FFH,(CY)=1,执行指令:
ADDC A,20H
后,累加器A的内容为,CY的内容为,AC的内容为,OV的内容为。
假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。
执行指令:
INC A
INC R3
INC 30H
INC @R0
后,累加器A的内容为,R3的内容为,30H的内容为,40H的内容为。
假定(A)=56,(R5)=67。
执行指令:
ADD A,R5
DA
后,累加器A的内容为,CY的内容为。
假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH。
执行指令:
DEC A
DEC R7
DEC 30H
DEC @R1
后,累加器A的内容为,R7的内容为,30H的内容为,40H的内容为。
假定(A)=50H,(B)=0A0H。
执行指令:
MUL AB
后,寄存器B的内容为,累加器A的内容为,CY的内容为,OV的内容为。
假定(A)=0FBH,(B)=12H。
执行指令:
DIV AB
后,累加器A的内容为,寄存器B的内容为,CY的内容为,OV的内容为。
假定(A)=0C5H。
执行指令:
SWAP A
后,累加器A的内容为。
假定addr11=00100000000B,标号qaz的地址为1030H。
执行指令:
qaz:
AJMP addr11
后,程序转移到地址去执行。
假定标号qaz的地址为0100H,标号qwe值为0123H(即跳转的目标地0123H)。
应执行指令:
qaz:
SJMP qwe
该指令的相对偏移量(即指令的第二字节)为。
DPTR是MCS51中惟一一个16位寄存器,在程序中常用来作为MOVC指访问程序存储器的使用。
请填好下段程序内有关每条指令执行结果的注释中之空白。
MOV A,PSW;(A)=10H
MOV B,A;(B)=H
MOV PSW,A;(PSW)=H
执行下列程序段后CY=,OV=,A=。
MOV A,#56H
ADDA,#74H
ADDA,A
设SP=60H,片内RAM的(30H)=24H,(31H)=10H,在下列程序段注释中
行结果。
PUSH30H;SP=,(SP)=
PUSH31H;SP=,(SP)=
POPDPL;SP=,DPL=
POPDPH;SP=,DPH=
MOVA,#00H
MOVX@DPTR,A
最后执行结果是。
1.指令AJMP的跳转范围是()。
(A)256B(B)1KB(C)2KB(D)64KB
2.SJMP rel指令中rel的取值范围为( )。
A、+127~-127 B、0~+127 C、0~-128 D、+127~-128
!
执行返回指令时,返回的断点是()。
(A)调用指令的首地址(B)调用指令的末地址
(C)调用指令下一条指令的首地址(D)返回指令的末地址
3.ORG2000H
LCALL3000H
ORG3000H
RET左边程序执行完RET指令后,PC=()。
(A)2000H(B)3000H(C)2003H(D)3003H
4.执行PUSH ACC指令,89C51完成的操作是()。
(A)SP+1→SP (ACC)→(SP)(B)(ACC)→(SP)SP-1→SP
(C)SP-1→SP (ACC)→(SP)(D)(ACC)→(SP)SP+1→SP
5.关于89C51的堆栈操作,正确的说法是()。
(A)先入栈,再修改栈指针(B)先修改栈指针,再出栈(C)先修改栈指针,再入栈(D)以上都不对
6.执行LCALL4000H指令时,89C51所完成的操作是()。
(A)保护PC(B)4000H→PC(C)保护现场(D)PC+3入栈,4000H→PC
7.若A=78H,执行指令SWAP A后,A的值为( )。
A、78H B、78D C、87H D、87D
8.带进位加法指令助记符为( )。
A、ADD B、ADDC C、SBC D、SUBB
9.相当于累加器A内容乘以2的指令是( )。
A、RL B、RR C、RLC D、RRC
10.指令和程序是以()形式存放在程序存储器中。
A. 源程序 B.汇编程序 C.二进制编码 D.BCD码
!
设(A)=0C3H,(R0)=0AAH,执行指令ANLA,R0后,结果().
A.(A)=82H B.(A)=6CH
C.(R0)=82 D.(R0)=6CH
1.指令中操作码助记符项可有可无。
( )
2.累加器A与外部ROM的数据传送采用MOVXA,@A+DPTR。
()
3.作算术运算时,若有进位则一定有溢出。
( )
4.指令MOVA,#2000H执行完,A中的内容为00H。
()
5.MOVA,65H源操作数是寄存器寻址,MOVA,#65H源操作数是立即寻址。
()
6.89C51用汇编语言表示的指令格式中标号可以与寄存器及指令助记符重名。
()
第四章
一、填空题:
汇编语言中可以使用伪指令,它们不是真正的指令,只是用来。
1.程序存储器空间表格如下:
地址
2000H
2001H
2002H
2003H
内容
3FH
06H
5BH
4FH
已知:
片内RAM的20H中为01H,执行下列程序后(30H)为多少?
MOVA,20H
INCA
MOVDPTR,#2000H
MOVCA,@A+DPTR
CPLA
MOV30H,A
END:
SJMPEND
2.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40H)=20H
MOVA,@R0
MOV@R0,40H
MOV40H,A
MOVR0,#35H
问执行程序后,R0、A和4BH、40H单元内容的变化如何?
!
5.设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)=76H,下列程序执行后,结果如何?
CLRC
MOVR2,#3
LOOP:
MOVA,@R0
ADDCA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR2,LOOP
JNCNEXT
MOV@R0,#01H
SJMP$
NEXT:
DECR0
SJMP$
(20H)=,(21H)=,(22H)=,(23H)=,CY=,A=,R0=,R1=。
!
10.设片内RAM中(59H)=50H,执行下列程序段。
MOVA,59H
MOVR0,A
MOVA,#0
MOV@R0,A
MOVA,#25H
MOV51H,A
MOV52H,#70H
问A=,(50H)=,(51H)=,(52H)=。
1.在单片机语句格式中,( )为不可缺省的。
A、标号 B、操作码助记符 C、操作数 D、注释
2.在编程中使用伪指令的目的是。
A.指示和引导如何进行手工汇编B.指示和引导编译程序如何汇编
C.指示和引导汇编程序进行汇编D.指示和引导程序员进行汇编
3.一中断子程序的最后一句不是RETI而是RET,中断返回后。
A.返回到主程序中ACALL或LCALL的下一句
B.返回到主程序中响应中断时一句的下一句
C.返回到主程序开始处
D.返回到0000H处
4.有如下程序段:
MOV R0,#30H
SETB C
CLR A
ADDC A,#00H
MOV ﹫R0,A执行结果是()。
A. (30H)=00H B.(30H)=01H
C.(00H)=00H D.(00H)=01H
1. MOV SP,#35H
MOV DPTR,#2345H
PUSH DPL
PUSH DPH
……
POP DPH
POP DPL
2.下列程序段执行后,(R0)=_____________,(7EH)=_____________,(7FH)=_____________.
MOVR0,#7FH
MOV7EH,#0
MOV7FH,#40H
DEC@R0
DECR0
DEC@R0
3.已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。
下述程序执行后:
POPDPH
POPDPL
MOVDPTR,#4000H
RLA
MOVB,A
MOVCA,@A+DPTR
PUSHA
MOVA,B
INCA
MOVCA,@A+DPTR
PUSHA
RET
ORG4000H
DB10H,80H,30H,50H,30H,50H
请问:
A=(),SP=(),(51H)=(),(52H)=(),PC=()。
4.设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?
MOVR0,#30H;
MOVA,@R0;
MOVR1,A;
MOVB,R1;
MOV@R1,P1;
MOVA,P1;
MOV40H,#20H;
MOV30H,40H;
5.如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
POPDPH
POPDPL
POPSP
则:
DPH=(),DPL=(),SP=()
6.已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=_________,内部RAM(0AH)=_________,(0BH)=_________
PUSHDPL
PUSHDPH
7.阅读下面多重循环延时程序,说明每条指令的执行次数,最后计算出延时时间,要求有计算过程。
(fOSC=12MHz)
源程序机器周期(M)指令执行次数
DELAY:
MOVR6,#64H
I1:
MOVR7,#0FFH
I2:
DJNZR7,I2
DJNZR6,I1
RET
1.试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。
并将查找到的结果存入41H单元。
2.三字节无符号数相加,其中被加数在内部RAM的50H,51H和52H单元中;加数在内部RAM的53H,54H和55H单元中;要求把相加之和存放在50H,51H,和52H单元中,进位存放在位寻址区的00H位中.
3.设双字节数X存在片内RAM41H、40H单元,Y存在42H、43H单元,编程求Z=X+Y,并存入片内RAM单元44H、45H、46H。
第五章
一、填空题:
1.89C51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器加以选择。
2.外部中断INT1入口地址为。
3.89C51中,T0中断服务程序入口地址为。
89C51中断有个优先级。
4.微机与外设间传送数