单片微机原理与接口技术作业参考答案(5)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片微机原理与接口技术第5章作业与参考答案
1、子程序调用时,参数的传递方法有哪几种?
答:子程序调用时,参数的传递方法有:
(1)利用累加器A或寄存器;
(2)利用存储器;
(3)利用堆栈。
2、编写程序把外部RAM的2000-20FFH RAM空间置零。
答:ORG000H
MOV R0,#00H
MOV DPTR,#2000H;空间首地址送DPTR
LOOP:MOV A,#00H
MOVX@DPTR,A;清零
INC DPTR;DPTR加1
INC R0;字节数加1
CJNE R0,#00H,LOOP;连续清256个字节
LOOP1:SJMP LOOP1
END
3、编写一段程序,把外部RAM中1000H~1030H单元的内容传送到内部RAM的30H~60 H单元中。
答:ORG0030H
MOV R1,#49
MOV R0,#30H
MOV DPTR,#1000H
LOOP:MOVX A,@DPTR
MOV@R0,A
INC DPTR
INC R0
DJNZ R1,LOOP
SJMP$
END
4、在内部RAM的21H单元开始存有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。
答:
START:MOV R7,#30H;30是立即数
DEC R7
MOV R0,#21H
MOV A,@R0
LOOP:INC R0
CLR C
SUBB A,@R0;(A)-(R0)-C给A
JNC LOOP1;C=0,够减跳转LOOP1,A还原
MOV A,@R0;C=1,不够减,把R0给A
NEXT:
DJNZ R7,LOOP
MOV r5,A
SJMP$
LOOP1:ADDC A,@R0
SJMP NEXT
END
5、编程统计累加器A中“1”的个数。
答:
MOV R1,#0
PUSH ACC;存放A
LOOP1:JZ DONE;A=0转到DONE
CLR C;C清0
RLC A;A带进位C右移
JNC LOOP1;C=0跳转LOOP1
INC R1;C不=0,R1+1,结果放在R1,计算出A有一位1
SJMP LOOP1;跳转回LOOP1
DONE:POP ACC
SJMP$
END