好文档 - 专业文书写作范文服务资料分享网站

完整版单片机原理与应用技术江力版第三四六章答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第三章 作业参考答案

3-10. 己知(A)=7AH,(R0)=34H,(34H)=A5H,请写出分别执行下面各条指令后累加器A的内容。

(1) MOV A,R0 ;(A)=34H (2) MOV A,@R0 ;(A)=A5H (3) MOV A,34H ;(A)=A5H (4) MOV A,#34H ;(A)=34H

3-12. 1设(R0)=32H,(A)=48H,片内RAM中(32H)=60H,(40H)=61H。请指出在执行下列程序段后上述各单元内容的变化。

MOV A,@R0 ; (A)=(32H)=60H MOV @R0,40H ; (32H)=61H MOV 40H,A ; (40H)=(A)=60H MOV R0,#40H ; (R0)=40H

即:执行完程序段后,(R0)=40H, (A)=60H, 片内RAM中,(32H)=61H, (40H)=60H 3-13 已知(A)=83H,(R0)=47H,(47H)=34H。请写出执行完下列程序段后A的内容。 ANL A,47H ;(A)=83H∧34H=00H ORL 47H,A ;(47H)=34H∨00H=34H

00H?34H=34H ;(A)= XRL A,@R0

SWAP A ;(A)=43H 答:执行完程序段后,(A)=43H

3-14 14. 说明下段程序执行过程中,SP的内容及堆栈中内容的改变过程。 MOV SP,#30H ;(SP)=30H MOV 30H,#55H MOV 40H,#66H

PUSH 30H ;(SP)=31H, 堆栈区中(31H)=55H PUSH 40H ;(SP)=32H, 堆栈区中(32H)=66H

POP 30H ;先将堆栈区中32H单元的内容送入30H单元,使(30H)=66H, 再使 ;SP值减1,即: (SP)=31H

POP 40H ;先将堆栈区中31H单元的内容送入40H单元,使(40H)=55H, 再使 ;SP值减1,即: (SP)=30H

最终,(SP)=30H, 内部RAM中,(30H)=66H, (40H)=55H.

3-15 编程实现两个16位二进制数的减法。设被减数放在40H、41H单元中,减数放在50H、51H

单元,差仍存于被减数地址单元中,减数、被减数都是低地址单元存放低8位。 解: CLC C MOV A, 40H SUBB A, 50H MOV 40H, A MOV A, 41H SUBB A, 51H MOV 41H,A

3-16. 编写一BCD码拼字程序,将存放在40H、41H单元的两个一位十进制数的BCD码合并构成一个字节的压缩BCD码,并将结果保存在42H单元中(高地址单元的BCD码放在高4位)。 分析:设(40H)=XYH, (41H)=WZH, 则,合并结果为(42H)=ZYH, X,Y,W,Z取值0~9. 解: MOV A, 40H ANL A,#0FH MOV B, A MOV A,41H ANL A, #0FH A

SWAP

ORL A, B MOV 42H, A

3-17. 把片外数据存储器4020H单元中的数据读到累加器中,应用哪几条指令? 解:方法1: MOV DPTR, #4020H 方法2: MOV P2, #40H MOVX A, @DPTR MOV R0, #20H MOVX A, @R0

3-18. 试编写程序将外部RAM 5000H单元内容传送至外部RAM 6030H单元。 解: MOV DPTR, #5000H MOVX A, @DPTR MOV DPTR, #6030H MOVX @DPTR, A

3-20. 试编写一段程序,将累加器A的高4位由P1口的高4位输出,P1口低4位保持不变。 分析: 设(A)=XYH, (P1)=WZH, 则执行结果为: (P1)=XZH, 解: ANL A, #0F0H ;(A)=X0H ANL P1,#0FH ;(P1)=0ZH ORL P1, A ;(P1)=XZH

21. 试编写一段程序,将P1口的高5位置位,低3位不变。 ORL P1, #11111000B 或 ORL P1, #0F8H

25. 使用位操作指令实现下列逻辑关系。 (1) P1.0=(10H∨Pl.1)∧(ACC.0∨CY) (2) P1.3=(ACC.2∧P1.0)⊕(ACC.1∨P1.1) 解:(1) ORL C, ACC.0

MOV F0, C ;令 F0=ACC.0∨CY

MOV C, 10H ;注意 此处的10H是一个位地址而非字节地址 ORL C, P1.1 ;令 CY=(10H) ∨Pl.1

ANL C, F0 ;令CY=(10H) ∨Pl.1)∧(ACC.0∨CY)

MOV P1.0, C (2) MOV C, ACC.2 ANL C, P1.0

MOV 20H, C ;令20H=(ACC.2∧P1.0) MOV C, ACC.1

ORL C, P1.1 ;令 CY=(ACC.1∨P1.1)

但可利用“X?Y?XY?XY”来形成异或运算, 指令,只能用 ;位指令中没有XRL

MOV 21H, C ;令21H= (ACC.1∨P1.1) ANL C, /20H MOV F0,C MOV C,20H ANL C, /21H

ORL C, F0 ; 令C=(ACC.2∧P1.0)⊕(ACC.1∨P1.1) MOV P1.3, C

26. 试编程将内部RAM 30H~3FH单元中的内容全部清0(利用循环转移指令)。 解: MOV R0,#30H

MOV R7,#10H ; 30H~3FH共10H个数据 LOOP: MOV @R0, #00H INC R0 DJNZ R7, LOOP

27. 在程序存储器中有一个常数表,从2040H单元开始分别存放表格的第0项、第1项……第n项, 项的内容。m试编程查出表格第

DPTR,#2040H

解: MOV

MOV A, #m

A, @A+DPTR

MOVC

作业参考答案第4章 31H单元内,请编程求它们21H单元和30H、5. 有两个4位十六进

制数分别存放在片内RAM 20H、 41H单元。 的和,并将和存放到片内RAM 40H、单元内,请编程求它的补码,并将它存放、61H16位二进制负数的原码存放在片内RAM 60H6. 有一个 71H单元。到片内RAM 70H、A,61H 6. MOV 存放高字节设 20H、30H解:5.A CPL A,#1 ADD MOV A,21H 1 低字节取反加71H,A ; MOV A,31H ADD

A,60H MOV 41H,A MOV

完整版单片机原理与应用技术江力版第三四六章答案

第三章作业参考答案3-10.己知(A)=7AH,(R0)=34H,(34H)=A5H,请写出分别执行下面各条指令后累加器A的内容。(1)MOVA,R0;(A)=34H(2)MOVA,@R0;(A)=A5H(3)MOVA,34H
推荐度:
点击下载文档文档为doc格式
0227o6udik0mq5e7eayt5nd0e7n2yj017dj
领取福利

微信扫码领取福利

微信扫码分享