单片机8051基础知识整理 下载本文

一、填空题:

1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了 低8位 地址。 2、MCS-51的堆栈是软件填写堆栈指针临时在 片内 数据存储器内开辟的区域。 3、当使用8751且EA=1,程序存储器地址小于 1000H 时,访问的是片内ROM。 4、MCS-51系统中,当PSEN信号有效时,表示CPU要从 外部程序 存储器读取信息。 5、MCS-51有4组工作寄存器,它们的地址范围是 00H~1FH 。 6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以 位 寻址。 7、PSW中RS1 RS0=10时,R2的地址为 12H 。 8、PSW中RS1 RS0=11时,R2的地址为 1AH 。

9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第 0 组,8个寄存器的单元地址为 00H ~ 07H 。 10、PC复位后为 0000H 。

11、一个机器周期= 12 个振荡周期= 6 个时钟周期。 12、PC的内容为 将要执行的的指令地址 。

13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为 2us 。 14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为 26H 。 15、若A中的内容为63H,那么,P标志位的值为 0 。

16、8051单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW= 00H 。这时当前的工作寄存器区是第 0 工作寄存器区。

17、使用8031芯片时,需将/EA引脚接 低 电平,因为其片内无 程 序 存储器。 18、片内RAM低128个单元划分为哪3个主要部分: 工作寄存器区 、 位 寻址区 和 用户RAM区 。

19、通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。 调用返回时,再进行出栈保护,把保护的断点送回到 PC 。

20、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS -51的PC是16位的,因此其寻址的范围为 64 KB。

21、MCS-51单片机片内RAM的寄存器共有 32 个单元,分为 4 组寄存器,每组 8 个单元,以R0~R7作为寄存器名称。

22、但单片机的型号为8031/8032时,其芯片引线EA一定要接 低 电平。

23.指令格式是由 操作码 和 操作数 所组成,也可能仅由 操作码 组成。 24.若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为 MOVC 。 25、若用传送指令访问MCS-51的片内数据存储器,它的操作码助记符应为 MOV 。 26、若访问MCS-51的片外数据存储器,它的操作码助记符应为 MOVX 。 27、累加器(A)=80H,执行完指令ADD A,#83H后,进位位C= 1 。 28、执行ANL A,#0FH指令后,累加器A的高4位= 0000 。

29、JZ rel的操作码地址为1000H,rel=20H,它的转移目的地址为 1022H 。 30、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为 2073H 。

31、累加器(A)=7EH,(20H)= #04H,MCS-51执行完ADD A,20H指令后PSW.0= 0 。 10、MOV PSW,#10H是将MCS-51的工作寄存器置为第 2 组。

11、指令LCALL 37B0H,首地址在2000H,所完成的操作是 2003H 入栈, 37B0H →PC。

12、MOVX A,@DPTR源操作数寻址方式为 寄存器间接寻址 。 13、ORL A,#0F0H是将A的高4位置1,而低4位保持 不变 。

14、SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目标地址为 00B7H 。 15、设DPTR=2000H,(A)=80H,则MOVC A,@A+DPTR的操作数的实际地址为 2080H 。 16、MOV C,20H源寻址方式为 位 寻址。

17、在直接寻址方式中,只能使用 8 位二进制数作为直接地址,因此其寻址对象只限于 片 内RAM 。

18、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的 地址 。

19、在变址寻址方式中,以 A 作变址寄存器,以 PC 或 DPTR 作 基址寄存器。 20、假定累加器A中的内容为30H,执行指令 1000H:MOVC A,@A+PC

后,把程序存储器 1031H 单元的内容送入累加器A中。 21、MOVX A,@DPTR源操作数寻址方式为 寄存器间接寻址 。 22、下列程序段的功能: 交换A、B的内容。 PUSH ACC PUSH B POP ACC POP B

23、假定(SP)=60H,(ACC)=30H,(B)=70H,执行下列指令: PUSH ACC PUSH B

后,SP的内容为 62H ,61H单元的内容为 30H ,62H单元的内容为 70H 。 24、假定(SP)=62H,(61H)=30H,(62H)=70H,执行下列指令: POP DPH POP DPL

后,DPTR的内容为 7030H ,SP的内容为 60H 。 25、假定(A)=85H,(R0)=20H,(20H)=0AFH。执行指令: ADD A,@R0

后,累加器A的内容为 34H ,CY的内容为 1 ,AC的内容为 1 ,OV的内容为 1 。 26、假定(A)=85H,(20H)=0FFH,(CY)=1,执行指令: ADDC A,20H

后,累加器A的内容为 85H ,CY的内容为 1 ,AC的内容为 1 ,OV的内容为 0 。 27、累加器A中存放着一个其值小于或等于127的8位无符号数,CY清“0”后执行 RLC A指令,则A中数变为原来的 2 倍。 28、ORG 2000H LCALL 4000H ORG 4000H

ADD A,R2 执行完LCALL指令后,PC= 4000H 。

29、假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。执行指令: INC A INC R3 INC 30H INC @R0

后,累加器A的内容为 00H ,R3的内容为 10H ,30H的内容为 0F1H ,40H 的内容为 01H 。 30、假定(A)=56,(R5)=67。执行指令:

ADD A,R5 DA A

后,累加器A的内容为 00100011B ,CY的内容为 1 。

31、假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH。执行指令: DEC A DEC R7 DEC 30H DEC @R1

后,累加器A的内容为 0EH ,R7的内容为 18H ,30H的内容为 0FFH ,40H 的内容为 0FEH 。 32、假定(A)=50H,(B)=0A0H。执行指令: MUL AB

后,寄存器B的内容为 32H ,累加器A的内容为 00H ,CY的内容为 0 ,OV的 内 容为 1 。

33、假定(A)=0FBH,(B)=12H。执行指令: DIV AB

后,累加器A的内容为 0DH ,寄存器B的内容为 11H ,CY的内容为 0 ,OV的 内容为 0 。 34、假定(A)=0C5H,执行指令: SWAP A 后,累加器A的内容为 5CH 。

35、假定addr11=00100000000B,标号qaz的地址为1030H。执行指令: qaz:AJMP addr11

后,程序转移到地址 1100H 去执行。

36、假定A=83H,(R0)=17H,(17H)=34H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 后,A的内容为 0C8H 。

37、若单片机使用频率为6MHz的晶振,那么时钟周期为 0.334us ,机器周期为 2us 。 38、设SP=60H,片内RAM的(30H)=24H,(31H)=10H,在下列程序段注释中填写执行结果。 PUSH 30H ;SP= 61H ,(SP)= 24H PUSH 31H ;SP= 62H ,(SP)= 10H POP DPL ;SP= 61H ,DPL= 10H POP DPH ;SP= 60H ,DPH= 24H MOV A,#00H MOVX @DPTR,A

最后执行结果是 将0传送到外部数据存储器的2410H单元 。 39、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行 256 次。

40、欲使P1口的低4位输出0而高4位不变,则执行一条 ANL P1,#0F0H 指令。 41、欲使P1口的高4位输出1而低4位不变,则执行一条 ORL P1,#0F0H 指令。 42、DIV AB指令执行后,OV标志为1,则此指令执行前(B)= 00H 。 43、MUL AB指令执行后,OV标志为1,则(B)不为 00H 。 44、用一条指令 LJMP 1234H 可以取代下列4条指令: MOV DPTR,#1234H PUSH DPL

PUSH DPH RET

45、要访问特殊功能寄存器,可以采用的寻址方式是 直接寻址 、 位寻 址 和 寄存器寻址 。

46、要访问片外RAM,应采用的寻址方式是 寄存器间接寻址 。

47、已知SP=25H,PC=2345H,(24H)=12H,(25H)=34H,(26H)=56H。问此时执行“RET” 指令后,SP= 23H ,PC= 3412H 。

1、MCS-51有5个中断源,2个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择。 2、外中断请求标志位是 IE0 和 IE1 。

3、 RETI 指令以及任何访问 IE 和 IP 寄存器的指令执行过 后,CPU不能马上响应中断。 4、8051单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把 PC 的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送 PC ,使程序执 行转向 程序存储器 中的中断地址区。

4、根据下列已知条件,试求中断开关状态。

①IE=93H; ②IE=84H; ③IE=92H; ④IE=17H 解:①IE=93H=10010011B:INT0、T0、串行口开中断,其余关中断; ②IE=84H=10000100B:INT1开中断,其余关中断; ③IE=92H=10010010B:T0、串行口开中断,其余关中断; ④IE=17H=00010111B:关中断。 5、按下列要求设置IP:

①INT1、串行口为高优先级,其余为低优先级; ②T1为高优先级,其余为低优先级; ③T0、T1为低优先级,其余为高优先级; ④串行口为低优先级,其余为高优先级。 解:

①INT1、串行口为高优先级,其余为低优先级:IP=00010100B; ②T1为高优先级,其余为低优先级:IP=00001000B; ③T0、T1为低优先级,其余为高优先级:IP=00010101B; ④串行口为低优先级,其余为高优先级:IP=00001111B。 6、根据下列已知条件,试求中断优先级状态。

①IP=16H; ②IP=ECH; ③IP=03H; ④IP=1FH 解:①IP=16H =00010110B:INT1、T0、串行口为高优先级,其余为低优先级; ②IP=ECH =11101100B:INT1、T1为高优先级,其余为低优先级; ③IP=03H =00000011B:INT0、T0为高优先级,其余为低优先级; ④IP=1FH =00011111B:全部为高优先级,相当于未设置优先级。

7、要求80C51五个中断源按下列优先顺序排列,判是否有可能实现?若能,应如何设置中断源的中断优先级别?若不能,试述理由。 ①T0、T1、INT0、INT1、串行口 ②串行口、INT0、T0、INT1、T1 ③INT0、T1、INT1、T0、串行口 ④INT0、INT1、串行口、T0、T1