admin 管理员组

文章数量: 887021


2024年1月26日发(作者:基于jsp的网上购物系统源码)

“微机原理与接口技术”期中复习题答案

一、

填空

1. 若外接晶振为6MHz,则8031单片机的振荡周期为 1/6us ,时钟周期为

1/3us ,机器周期为 2us ,指令周期最短为 2us ,最长为 8us 。

2. SP是 堆栈指针 ,PC是 程序计数器 ,DPTR是 数据指针 。

3. 外接程序存储器的读信号为

PSEN ,外接数据存储器的读信号为

RD 。

4. 程序中“LOOP:SJMP rel”的相对转移以转移指令所在地址为基点向前(大地址方向)最大可偏移129 个单元地址,向后(小地址方向)最大可偏移 126 个单元地址。

5. “MOVC A, @A+DPTR”指令为 变址 寻址方式。

6. 单片机寻址方式是指寻找 操作数 或 操作数地址 的方式,常用的寻址方式有 直接寻址 、 立即寻址 、 寄存寄寻址 、 寄存寄间接寻址 、 变址寻址 等。

7. 8031单片机内存20H的第7位,它的位地址为 07H。

8. 循环结构程序中循环控制的实现方法有 计数循环法 和 条件控制循环法 。

9. 循环结构程序中,当循环次数已知时,应采用 计数循环 控制法,循环次数未知时,应采用 条件控制 控制法。

10. 80C51单片机的位寻址区包括 20H~2FH 和 SFR中地址值能被8整除的特殊功能寄存器 。

11. 由8031组成的单片机系统在工作时,EA引脚应该接 低电平 。

12. LJMP的跳转范围是 64K ,AJMP的跳转范围是 2K ,SJMP的跳转范围是

-128~+127 。

13. 若A中的内容为68H,那么P标志位为 1 。

14. 单片机上电复位时PC= 0000H ,SP= 07H;而工作寄存器则缺省采用第 0 组,这组寄存器的地址范围是 00H~07H 。

15. JZ rel 的操作码地址为1000H,rel=20H,它转移的目标地址为 1022H 。

16. 8051内部有 4个 并行口,P0口直接作输出口时,必须外接 上拉电阻。并行口作输入口时,必须先 向端口写入1 ,才能读入外设的状态。

17. MCS-51的堆栈只可设置在 内部RAM区 ,其最大长度为 128Byte ,存取数据的原则是 先入后出 。堆栈寄存器SP是 8 位寄存器,用来存放 堆栈顶部的地址。

18. 假定(SP)=40H , (39H)=30H,(40H)=60H。执行下列指令:

POP DPH

POP DPL

后,DPTR的内容为 6030H ,SP的内容是 38H 。

19. CJNE <目的字节>,<源字节>,rel属于五大类指令中的_控制转移类__类指令,其操作码助记符含义是_如果目的和源中的内容不等,则跳转到偏移量为rel的指令去执行__。

20、微处理机的寻址能力(范围)由 地址线数目 决定。若某单片机有20根地址线,则它可寻址的存储器范围为 1024 K。

1

二、

选择题

1. 8031单片机的( d )口的引脚,还具有外部中断、串行通信等第二功能。

a)P0 b)P1 c)P2 d)P3

2. 下列指令中不影响标志位CY的指令有( d )。

a)ADD A,20H b)CLR C c)RRC A d)INC A

3. 当需要从MCS-51单片机程序存储器取数据时,采用的指令为( b )。

a)MOV A, @R1 b)MOVC A, @A + DPTR

c)MOVX A, @ R0 d)MOVX A, @ DPTR

4. 8031单片机中既可位寻址又可字节寻址的单元是( a )

a)20H b)30H c)00H d)70H

5. 下列哪条指令是正确的( d )

a) PUSH R2 b) ADD R0,A

c) MOV A, @DPTR d) MOV @R0,A

6. 执行中断返回指令时,从堆栈顶部弹出的内容送给( c ).

(A) A (B) CY (C)PC (D) DPTR

7. A7H和5BH两个立即数相加后,和为( c ),(CY)是( c )。

(A)1CH,0 (B) C1H,0

(C) 02H,1 (D) C1H,1

8. 若(A)=86H,(PSW)=80H,则执行RRC A指令后,A的内容是( A )。

(A)C3H (B) B3H (C) 0DH (D) 56H

9. 如果(P0)=65H ,则当

CPL P0.2

SETB C

MOV P0.4 ,C

执行后(P0)=( C )

(A)61H (B) 75H (C) 71H (D) 17H

10. 若片内(60H)=8H,(R0)=60H,A=7H,则执行指令 C 后,片内(60H)=7H.

(A)MOV R0,A; (B)MOVX R0,A;

(C)DEC @R0; (D)DEC R0;

11. MCS--51单片机在执行MOVX A,@DPTR指令时,将发出 A 信号。

(A)地址信号和RD信号;(B)数据信号和RD信号;

(C)地址信号和WR信号;(D)数据信号和WR信号;

12. 调用指令ACALL 的调用范围是 A 。

(A)2K (B)64K (C)256 (D)512

2

13. SJMP ﹩ 指令跳转的偏移量范围为: A 。

(A)-128~127; (B)0~256; (C)0~2047; (D)0~65535;

14. 执行MOV PSW,#08H指令后,被选中的当前工作寄存器R0~R7是: B 。

(A)第0组 (B)第1组 (C)第2组 (D)第3组

15. 复位后执行PUSH 00H,是把: A 。

(A)R0的内容压入08单元

(B)00H的内容压入07H单元

三、

判断题(对者打√,错者打×)

1、 MCS-51系列芯片复位后堆栈设置成从07H单元开始使用。 ×

2、 MCS-51中工作寄存器R7的实际物理地址与PSW中内容有关。√

3、 DA A指令只能用在减法指令之后起到十进制调整的作用。 ×

4、 使用8031的MCS-51系统其EA引脚必须接地。 √

5、 中断服务程序的最后一条指令是RET。 ×

6、 P2口既可以作为I/O使用,又可以作地址/数据复用口使用。 ×

7、 MOV A,30H的源操作数为立即寻址方式。 ×

8、 MOV A,@A+DPTR是一条查表指令。 ×

9、 MUL AB的执行结果是高8位在A中,低8 位在B中。 ×

10、AJMP跳转空间最大可达到64KB 。 ×

11、DPTR是由DPH和DPL两个8位特殊寄存器组成的。 √

12、汇编语言源程序中的伪指令汇编成目标程序时不产生机器码。√

13、MCS-51系列芯片特殊寄存器区按字节寻址时可以采用间接寻址。×

14、8051单片机的算术逻辑部件能完成带借位和不带借位的减法运算。 ×

15、在MCS-51中,为使准双向的I/O口工作在输入方式,必须先预置为1。 √

四、

改错

请判断下列各条指令的书写格式是否有错,如有错说明原因:

R0R1

A,@R7

A,#3000H

@A+DPTR, A

( × ) (MUL AB)

( × ) (MOV A, @Ri i=0,1)

( × ) (MOV A, #data8)

( × ) (MOVC A, @A+DPTR)

3

#1000H

6. MOVX @R0,B

7. MOV A,30H

( × ) (LJMP addr16)

( × ) MOVX @R0, A

( √ )

8. MOVX A,30H ( × ) MOVX A, @Ri 或 MOVX A, @DPTR

9. ADDC A,R7

10. SUB A,R2

11. ANL #99H ,36H

12. MOV C,ACC.0

13. ORL P1.0,P3.1

14. JBC P0,LL1

15. ACALL PROC

( √ )

( × ) SUBB A, R2

( × ) ANL A, direct 或 ANL direct, #data

( √ )

( × ) ORL C, bit

( × ) JBC bit, rel

( √ )

( √ )

( × ) ADDC A, #data8

(√ )

( × ) MOVX A, @DPTR

( √ )

(× ) MOVC A, @A+PC

16. MOV 20H , R1

17. ADDC A , 2030H

18. CLR A

19. MOVX 40H , #30H( )

20. ORG 3000H

21. MOVC @A+PC , A

22. MOVX A ,2000H ( × ) MOVX A, @DPTR

23. DJNZ #data , rel ( × ) DJNZ Rn, rel;DJNZ direct, rel;

24. INC @R5

25. DEC DPTR

26. MOV R1 ,@ R2

27. SWAP R1

28. SETB 2000H

29. JZ A , LOOP

30. DA R2

五、简答题

1、 简述8031单片机ALE引脚的功能,请举例说明其在应用系统中有哪些应用?

答:ALE被称为“地址锁存信号”。主要有两个用途:(1)在8051并行扩展时,P0口为地址/数据复用口,这时利用ALE和锁存器(74LS73、74HCT373等)来锁存地址A0~A7.(2)ALE引脚输出频率为1/6振荡器频率的脉冲信号。

2、 片外数据存储器与程序存储器地址允许重复,如何区分?

答:片外数据存储器与程序存储器地址都可以为0000H~FFFFH。尽管地址范围相同,但能够很好地加以区分,而不会发生冲突。原因为:

读取ROM中数据时使用变址寻址的MOVC指令、CPU中控制器自动读取ROM中指令时均为访问ROM,访问ROM时是选通信号PSEN有效;

4

(×)

(× ) DPTR没有自减一指令

(×) MOV A, @R2

(× ) SWAP A

(× ) SETB bit

(×) JZ LOOP

(× ) DA A

对片外RAM的读、写操作时使用间接寻址的MOVX指令,通过选通信号RD或WR有效来访问片外RAM。

3、 80C51单片机的MOV、MOVC、MOVX指令各适用哪些存储空间?请举例说明。

答:三类指令的差别是寻址空间不同。

答:MCS-51单片机指令寻址方式为间接寻址;

MOV指令的寻址空间为片内RAM和SFR寄存器,是片内数据存储器和寄存器之间的数据传送。如“MOV A, R0”

MOVC指令的寻址空间为片内外ROM的64K空间,即是访问程序存储器的指令,有MOVC A, @A+PC和MOVC A, @A+DPTR 两条查表指令。

MOVX指令的寻址空间为片外RAM的64K空间,是访问外部数据存储器的指令。如MOVX @DPTR, A。

4、 把下列数看作是无符号数,它们相应的十进制数为多少?若把下列数看成为带符号数的补码表示,它们相应的十进制数为多少?

(1)7FH;(127 127) (2)DBH (219 -37) (3)FEH (254 -2)

5、 80C51单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的最主要功能是什么?

答:80C51单片机内部主要包含微处理器CPU(算术逻辑单元ALU及控制器等)、只读存储器ROM、读/写存储器RAM、定时器/计数器、并行I/O口P0-P3、串行口、中断系统及定时控制逻辑电路等,各部分通过内部总线相连。

(1) CPU:主要完成运算和控制功能,

(2) 内部ROM:用于存放程序和表格数据等。

(3) 内部RAM:存储程序在运行期间的工作变量、数据以及堆栈区。

(4) I/O口:用于检测与控制。有些I/O引脚还具有多种功能,比如可以作为数据总线、地址总线或某些控制总线。

(5) 串行I/O口:用以实现与某些终端设备进行串行通信,有些可用多个单片机相连构成多机系统。

(6) 定时/计数器:80C51单片机内部有两个16位定时器/计数器,可以编程实现定时和计数功能。

(7) 中断系统:80C51单片机具有内、外共5个中断源

(8) 定时电路及元件:单片机整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种操作。

五、

按题意编写程序并加以注释,加上必要的伪指令。

1、 将40H中ASCII码转换为一位BCD码,存入42H的高4位中。

MOV A, 40H

5

CLR C

SUBB A, #30H ;ASCII码变为BCD数字

SWAP A

ANL 42H, #0FH

ORL 42H, A

2、 将片内RAM的20H-24H单元中5个压缩BCD码拆开,并转换为10个ASCII码,依次存入外部RAM2100H-2109H单元中。

ORG 0000H

AJMP 0100H

ORG 0100H

LOOP0: MOV R0, #20H

MOV R7, #05

MOV DPTR, #2100H

LOOP: MOV A, @R0

ANL A, #0FH

ADD A, #30H

MOVX @DPTR, A

INC DPTR

MOV A, @R0

ANL A, #0F0H

SWAP A

ADD A, #30H

MOVX @DPTR, A

INC DPTR

INC R0

DJNZ R7, LOOP

SJMP $

END

3、 请编写多字节加法子程序。入口条件有3个,即字节长度、加数首地址和被加数首地址,累加和存放地址与加数存放单元相同。对源程序加注释和伪指令。

注:加数首地址放在R0中,被加数首地址放在R1中,字节长度放在R7中。

ORG 0000H

AJMP 0100H

ORG 0100H

ADDSUB: CLR C

6

LOOP: MOV A, @R0

ADDC A, @R1

MOV @R0, A

INC R0

INC R1

DJNZ R7, LOOP

RET

END

4、 在片外数据存储器8000H和8001H单元内各有一个小于0CH的数,请编写源程序求出这两个数的平方之和,要求采用调用查表子程序的方法实现。平方和存放在片内RAM中。对源程序加注释和伪指令。

注:平方和放在内部RAM20H中, 用DPTR作为外部RAM地址指针。

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV DPTR, #8000H

MOVX A, @DPTR

LCALL GETSQUARE

MOV 20H, A

INC DPTR

MOVX A, @DPTR

LCALL GETSQUARE

ADD A, 20H

XCH A, 20H

SJMP $

GETSQUARE: ADD A, #01H

MOVC A, @A+PC

RET

TAB: DB 0H, 1H, 4H, 9H, 10H, 19H, 24H,31H, 40H, 51H, 64H, 79H

END

5、 编写一程序将片外数据存储器中7000H~70FFH单元全部清零。

ORG 0100H

MOV DPTR, #7000H

MOV R0, #00H

CLR A

LOOP: MOVX @DPTR, A

7

INC DPTR

DJNZ R0, LOOP

RET

END

六、

读程序题

1.执行下列程序段后,(P1)=_9BH___。

MOV P1,#5DH

CPL P1.1

CPL P1.2

CLR P1.6

SETB P1.7

2.执行下列程序段后,(A)=__8BH_____,(C)=_保持不变 ___。

MOV A,#C5H

RL A

3.下列程序段执行后,(R0)=__7FH__,(7EH)=_00H___,(7FH)=_41H___。

MOV R0,#7EH

MOV 7EH,#0FFH

MOV 7FH,#40H

INC @R0

INC R0

INC @R0

4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALL SUBTRN双字节指令后,(PC)=_0345H__,(61H)=__25H_____,(62H)= _01H___。

5.阅读下列程序,说明其功能。

MOV R0,#data

MOV A,@R0

RL A

MOV R1,A

RL A

RL A

ADD A,R1

MOV @R0,A

RET

把内存中地址为data单元中的值放大十倍

8

6.阅读程序并填空,形成完整的程序以实现如下功能。

有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H,每个字符串的内容为7位,要求在每个字符串的D7位加上偶校验位。(以调用子程序的方法来实现。)

源程序如下:

ORG 1000H

MOV R0,#40H

MOV R7,#10

NEXT: MOV A, ① @R0

ACALL SEPA

MOV @R0,A

INC R0

DJNZ ② R7 ,NEXT

SJMP $

SEPA: ③ JNC PSW.0,SRET

ORL A, ④ #80H

SRET: ⑤ RET

9


本文标签: 指令 地址 寻址 单片机 程序