单片微机原理与接口技术答案(宋跃版) 联系客服

发布时间 : 星期六 文章单片微机原理与接口技术答案(宋跃版)更新完毕开始阅读28889d5aa417866fb84a8ed0

3.10、内部 RAM低 128单元划分为哪 3个主要部分?说明各部分的使用特点。

答:80C51内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。各区域的特性如下:

(1) 00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元

作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。

(2) 20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。

当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。

(3)30H~7FH为堆栈、数据缓冲区。 3.11、简述MCS-51单片机存储区的划分。

答:MCS-51单片机的存储器从物理结构上分为:片内和片外数据存储器,片内和片外程序存储器。

2)从逻辑上分别可划分为:片内统一寻址的64K程序存储器空间(0000H---FFFFH);64KB的片外数据存储器空间(0000H---FFFFH);256B的片内数据存储器空间(00H---FFH)。 12、MCS-51基本型单片机的中断入口地址各为多少。 答:外部中断0 中断入口地址 0003H 定时/计数器0 中断入口地址 000BH 外部中断1 中断入口地址 0013H 定时/计数器1 中断入口地址 001BH 串行接口 中断入口地址 0023H

3.13、什么是指令周期、机器周期和时钟周期?

答:指令周期:指令的执行时间;机器周期:CPU完成一个最简单的指令所需要的时间;时钟周期:晶振信号周期就是时钟周期。

3.14、已知一MCS51单片机系统使用6MHZ的外部晶体振荡器,计算:该单片机系统的状态周期与机器周期各为多少?

解:由于晶振为6MHz,所以机器周期为2us,因为一个机器周期由6个状态周期组成,所以状态周期1/3us

3.15、8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?

答:8031系统必须外接程序促成器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。

第4章 思考题及习题参考答案

4.1. 寻址方式是什么?

答:寻址方式是寻找操作数或操作数地址的方式。

第 页 共 46 页

9

2. 89C51指令系统有哪几种寻址方式?

答:89C51的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。

3、访问特殊功能寄存器SFR可以采用哪些寻址方式?

答:直接寻址和位寻址方式。

4、访问RAM单元可以采用哪些寻址方式?访问外部RAM单元有哪些指令?

答:直接寻址、寄存器间接寻址和位寻址方式。

访问外部RAM单元的指令有4条: MOVX A,@DPTR MOVX A,@Ri MOVX @DPTR,A

MOVX @Ri,A

5、访问外部程序存储器可以采用哪些寻址方式?访问外部程序存储器有哪些指令?答:立即寻址、变址寻址和相对寻址方式。

访问外部程序存储器的指令有2条 MOVC A,@A+DPTR MOVC A,@A+PC

6、试写出完成以下每种操作的指令序列。 (1)将R0的内容传送到片内RAM 20H; (2)将R1的内容传送到R0;

(3)内部RAM单元10H的内容传送到外部RAM单元1000H; (4)外部RAM单元1000H的内容传送到R5; (5)外部ROM单元1000H的内容传送到R5;

(6)外部RAM单元2000H的内容传送到外部RAM单元2001H。 答:(1)MOV 20H,R0

(2) MOV A,R1 MOV R0,A (3)MOV A,10H MOV DPTR,#1000H MOVX @DPTR,A

(4)MOV DPTR,#1000H MOVX A,@A+DPTR MOV R5,A

(5) MOV DPTR,#1000H MOV A,#00H MOVC A,@A+DPTR MOV R5,A

(6) MOV DPTR,#2000H MOVX A,@DPTR INC DPTR

第 页 共 46 页

10

MOVX @DPTR,A

7. 设内部RAM (30H)=60H, (60H)=10H, (10H)=20H, (R1)=22H,(P1)=0AH, 分析以下程序执行后(30H)=?, (60H)= ?, (10H)= ?,(A)= ?,(B)= ?,(P2)= ?每条指令的机器码为多少?

MOV R0, #30H MOV A, @R0 MOV R1, A MOV B, @R1 MOV @R1, P1 MOV P2, P1 MOV 10H, #90H

答: MOV R0, #30H ; (R0)= 30H , 78 30 MOV A, @R0 ; (A) =60H , E6 MOV R1, A ; (R1) =60H , F9 MOV B, @R1 ; (B) = 10H , 87 F0 MOV @R1, P1 ; (60H) =0AH , A7 90

MOV P2, P1 ; (P2) =0AH , 85 90 A0 MOV 10H, #90H ; (10H) =90H , 75 10 90

(30H)= 60H, (60H)= 0A H, (10H)= 90H,(A)= 60H,(B)= 10H,(P2)= 0AH

8. 设外部RAM (2030H)=0FH, 分析以下指令执行后(DPTR)=?, (30H)=?, (2030H)=?(A)=?每条指令的机器码为多少?

MOV DPTR, #2030H MOVX A, @DPTR MOV 30H, A MOV A, #3FH MOVX@DPTR, A  答:

MOV DPTR, #2030H ; (DPTR) = 2030H , 90 20 30

MOVX A, @DPTR ; (A) =0FH , E0

MOV 30H, A ; (30H) =0FH , F5 30 MOV A, #3FH ; (A) =3FH , 74 3F MOVX@DPTR, A ; (2030H)=3FH , F0

执行结果为: (DPTR)=2030H, (30H)=0FH, (2030H)=3FH ,(A)=3FH。

9、编写指令实现下列位操作。 (1)使累加器的最高2位清零; (2)屏蔽(清零)20H的高4位;

(3)将E0H的低4位取反,高4位不变; (4)将P0的低2位置1。

第 页 共 46 页

11

(5)将10H的内容取补后存放到20H 答:(1)CLR ACC.7 CLR ACC.6

(2) ANL 20H,#0FH (3) XRL E0H,#0FH (4)ORL P0,#03H (5) XRL 10H,#0FFH INC 10H MOV 20H,10H

10. 在外部程序存储器中, 从1020H单元开始依次存放0~9的平方值: 0、 1、 4、 9、 ?、81, 要求依据累加器A中的值(0~9)来查找所对应的平方值, 试设计程序实现。 答:MOV DPTR, #1020H MOVC A, @A+DPTR

11. 设(R0)=20H, (20H)=40H, (A)=58H, 则: 执行 XCH A, @R0 后 (A)=?, (20H)=? 若执行 XCHD A, @R0 后 (A) =?, (20H) =? 答:执行 XCH A, @R0 后 (A)=40H, (20H)=58H 若执行 XCHD A, @R0 后 (A) =50H, (20H) =48H 12、试编写程序序列,完成两个16位数的减法:(30H)(31H)-(10H)(11H) →(30H)(31H)。 答:CLR C

MOV A,31H SUBB A,11H MOV 31H,A MOV A,30H SUBB A,10H MOV 30H,A

13、试编写程序,将R0中的低4位数与R1中的高4位数合并成一个8位数,并将其存放在R0中。

答:MOV A,R0

ANL A,#0FH MOV B,A MOV A,R1 ANL A,#0F0H ORL A,B MOV R0,A

14. 设计双字节无符号数加法程序实现(R0 R1)+(R2 R3) → (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节,假设其和不超过16位。

答:MOV A, R1

第 页 共 46 页

12