单片机原理及其接口技术王敏课后作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章作业(P40)
2-4 MCS-51单片机中执行程序的地址放在哪由几个位组成最大寻址范围是多少
答:放在程序计数器PC中,16位,64KB。
2-5 在程序存储器中,0000H、0003H、000BH、0013H、001BH、0023H这6个单元有什么特定的含义
答: 0000H 复位后,PC=0000H,开始执行程序的地址
0003H 外部中断0 (INT0)入口地址
000BH 定时器0中断(TF0)入口地址
0013H 外部中断1(INT1)入口地址
001BH 定时器1中断( TF1)入口地址
0023H 串行口中断TI/RI入口地址
2-10 开机复位以后,CPU使用哪一组工作寄存器它们的地址是什么如何改变当前工作寄存器
答:使用第0组工作寄存器,00H-07H,通过修改PSW中的RS1和RS0两位来改变当前的工作寄存器。
第三章作业(P75)
3-7 指出指令中的50H或66H个代表什么
解:
① MOV A, #50H 立即数
MOV A, 50H 直接地址
MOV 50H, #20H 直接地址
MOV C, 50H 位地址
MOV 50H, 20H 直接地址
② MOV @R0, #66H 立即数
MOV R6, #66H 立即数
MOV 66H, #45H 直接地址
MOV 66H, C 位地址
MOV 66H, R1 直接地址
3-9 写出能完成下列数据传送的指令:
解:
① R1中内容传送到R0;
MOV A, R1
MOV R0,A
②内部RAM 20H单元中的内容送到30H单元;
MOV 30H, 20H
③外部RAM 20H单元中的内容送到内部RAM 20H单元;
MOV R0, #20H
MOVX A, @R0
MOV 20H, A
④外部RAM 2000H单元中的内容送到内部RAM 20H单元;
MOV DPTR, #2000H
MOVX A, @DPTR
MOV 20H, A
⑤外部ROM 2000H单元中的内容送到内部RAM 20H单元;
MOV DPTR, #2000H
MOV A, #00H
MOVC A, @A+DPTR
MOV 20H, A
⑥外部2000H单元中的内容送到外部RAM 3000H单元;
MOV DPTR, #2000H
MOVX A, @DPTR
MOV DPTR, #3000H
MOVX @DPTR, A
3-11 已知:(20H)=X;(21H)=Y;(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少
① MOV SP, #70H ② MOV SP, #60H
PUSH 20H PUSH 22H
PUSH 21H PUSH 21H
PUSH 22H PUSH 20H
解:(73H)=Z;
(72H)=Y;
(71H)=X;
(63H)=X;
(62H)=Y;
(61H)=Z;
3-20 试编出能完成如下操作的程序:
解:
①使20H单元中数的高两位变“0”,其余位不变;
ANL 20H, #3FH
②使20H单元中数的高两位变“1”,其余位不变;
0RL 20H, #0C0H
③使20H单元中数的高两位变反,其余位不变;
XRL 20H, #0C0H
④使20H单元中数的高四位变“1”,低四位变“0”;
MOV 20H, #0F0H
⑤使20H单元中数的所有位变反。
XRL 20H, #0FFH
3-27 已知:外部RAM 2000H为始址的存储区有20个带符号补码数,请编一程序把正数和正零取出来放到内部RAM 20H为始址的存储区(负数和负零不作处理)。
解:
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV R0, #14H
MOV R1, #20H
MOV DPTR, #2000H
ROT: MOVX A, @DPTR
JB , NEXT
MOV @R1, A
INC R1
NEXT: INC DPTR
DJNZ R0, ROT
SJMP $
END
第四章作业(P104)
4-7 已知RAM的BLOCK单元,请编写其中可以统计正负数个数分别存入NUM和NUM+1单元的程序。
解:
ORG 0100H
LEN DATA 20H
NUM DATA 21H
BLOCK DATA 23H
MAIN: MOV NUM, #00H
MOV NUM+1,#00H
MOV R0, #BLOCK
LOOP: MOV A, @R0
JNB ,POSI
INC NUM+1
SJMP NEXT
POSI: INC NUM
NEXT: INC R0
DJNZ LEN, LOOP
SJMP $
END
4-9 外部RAM从2000H-2100H单元有一数据块,请编出将它们传送到外部RAM 3000H-3100H区域的程序。
解:采用当型循环,判断程序结束条件
ORG 1000H
MOV DPTR,#2000H
NEXT: MOVX A, @DPTR
ORL DPH , #10H ; 将DPH中的20H变成30H
MOVX @DPTR, A
ANL DPH , #0EFH ; 将DPH中的30H变成20H
INC DPTR
MOV A, DPH
CJNE A, #21H, NEXT
MOVX A, @DPTR ;将2100H单元的数据送A
MOV DPH, #31H
MOVX @DPTR, A ;将A的数据送3100H单元