当前位置:首页 > 单片机原理及应用课后习题答案 - - 张兰红
http://www.wkfxw.com 文库分享网
7 AH、
33
7BH 单元的高 4 位均清零。 解: ORG 0050H START:MOV 7CH,A ANL 7AH,#0FH MOV 7AH,A MOV A,7CH ANL A,#0F0H SWAP A
MOV 7BH ,A SJMP $ END START
4.9 试编程: 将片内 RAM 50H、51H 单元二个无符号数中较小的数存与 60H 单元。 解: ORG 2000HH START:CLR C MOV A,50H SUBB A,51H JC LESS
MOV 60H ,51H SJMP ELSE
LESS: MOV 60H,50H ELSE:
4.10 试编程: 将片内 RAM 60H~69H 单元中的十个数相加,和的低 8 位存入 7EH,高 8 位存入 7FH。
解: ORG 2000H
START:MOV 7FH,#00H MOV R1,#09H MOV R0,#60H MOV A,@R0 INC R0
LOOP: ADD A,@R0 JNC LP1 INC 7FH
34
LP1: INC R0 DJNZ R1,LOOP MOV 7EH,A DONE:
4.11 试编程: 统计从片内 RAM 60H 单元起所存 60 个数中“0”的个数,并存入工作寄存器 R7。
解: 按照题意看,本题所用单片机是 52 子系列机型,符合题意要求的程序为: ORG 2000HH
http://www.wkfxw.com 文库分享网
START:MOV R7,#00H MOV R1,#60 MOV R0,#60H
LOOP: MOV A,@R0 JNZ NPLS INC R7
NPLS: INC R0 DJNZ R1,LOOP DONE:
4.12 试编程:将 ROM 中自 2000H 单元起的 100 个数,按序移至片外 RAM 自 2080H 单元起的内 存区间去。 解: ORG 2000H
START:MOV DPTR,#2000H MOV R1,#64H MOV R2,#0
LOOP: MOV A,R2 MOVC A,@A+DPTR MOV R3,A MOV A,#80H ADD A,R2 MOV DPL,A MOV A,R3 MOVX @DPTR,A INC R2
MOV DPL,#0
35
DJNZ R1,LOOP DONE:
4.13 试编程:将 ROM中以 TAB 为初址的 32个单元的内容依次传送到片外 RAM以 00H为初址的
区域去(规定用查表指令)。 解: ORG 2000HH
START:MOV DPTR,#TAB MOV R0,#00H MOV R2,#20H LOOP: CLR A MOVC A,@A+DPTR MOVX @R0,A INC DPTR INC R0
DJNZ R2,LOOP DONE: SJMP DONE 4.14 阅读下列程序,
http://www.wkfxw.com 文库分享网
(1)说明该程序的功能。 (2)填出所缺的机器码。
(3)试修改程序,使片内 RAM 的内容达到右下图所示的结果。 7A MOV R2,#0AH MOV R0,#50H E4 CLR A
E6 LOOP: MOV @R0,A 08 INC R0
DA DJNZ R2,LOOP DONE:
解:(1)将片内 RAM 自 50H 单元起的 10 个单元清零。 (2) 7A 0A 78 50 E4 F6
36
08 DA FC
(3)在 MOV @R0,A 指令后添一条 INC A 指令。 4.15 阅读下列程序,并要求: (1) 说明程序的功能。
(2) 写出涉及的寄存器及片内 RAM 单元的最后结果。 MOV R0,#40H MOV A,@R0 INC R0 ADD A,@R0 INC R0 MOV @R0,A CLR A
ADDC A,#0 INC R0 MOV @R0,A
已知(40H)=98H,(41H)=AFH。
解:(1)(43H)、(42H)←(40H)+(41H)
(2) A 的内容为 01H,R0 的内容为 43H;C=1。
片内 RAM42H 单元的内容为 47H,43H 单元的内容为 01H。 4.16 阅读下列程序,并要求: (1) 说明程序的功能。
(2) 写出涉及的寄存器及片内 RAM 单元的最后结果。 MOV A,61H MOV B,#02H MUL AB ADD A,62H MOV 63H,A
http://www.wkfxw.com 文库分享网
CLR A ADDC A,B MOV 64H,A
已知(61H)=F2H,(62H)=CCH
37
解:(1) 将片内 RAM61H 单元的内容左移一位与 62H 的内容相加,将结果的高 8 位存入 64H、低 8 位存入 63H。
(2) A 的内容为 02H,63H 的内容为 B0H;64H 的内容为 02H。 4.17 已知(R3)=FBH,(R4)=64H,阅读下列程序,并要求: (1) 说明程序的功能。
(2) 写出涉及的寄存器及片内 RAM 单元的最后结果。 CLR C MOV A,R3 RRC A MOV R3,A MOV A,R4 RRC A MOV R4,A
解:(1) 程序功能:实现16 位数带进位位循环右移一位。 (2) (R3)=7DH,(R4)=B2H,C=0。 4.18 阅读下列程序,并要求: (1) 说明程序的功能。
(2) 写出涉及的寄存器及片内 RAM 单元的最后结果。 ORG 1000H
ABS: MOV R0,#38H MOV R1,#48H MOV R2,#06H
LOOP: MOV A,@R0 JNB A.7,NEXT CPL A SETB A.7 INC A
NEXT: MOV @R1,A INC R0 INC R1
DJNZ R2,LOOP DONE:
38
解:(1) 片内 RAM 自 38H 单元起 6 个单元的内容分别取补后,依次存放到片外 RAM 自 48H 单元起
的 6 个单元的内容不变;
(2)片内 RAM 自 38H 单元起 6 个单元的内容不变;
片外 RAM 自 48H 单元起 6 个单元的内容依次为:(48H)=48H,(49H)=8EH,(4AH)=FFH,
共分享92篇相关文档