单片机第3章作业参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题与思考题

3-5 指出下列指令中45H代表什么。

MOV A,#45H

MOV A,45H

MOV 45H,46H

MOV C,45H

答案:

MOV A,#45H中的45H代表立即数45H,该立即数为16进制。

MOV A,45H 中的45H代表直接地址45H单元。

MOV 45H,46H中的45H代表目的操作数所指定的单元为45H。

MOV C,45H中的45H代表45H位。

3-6 分析下列程序执行的结果。

(1)MOV A,#60H

MOV R0,#40H

MOV @R0, A

MOV 41H, R0

XCH A, R0

执行结果为:(A)=40H(R0)=60H(40H)=60H(41H)=40H (2)MOV DPTR,#2003H

MOV A,#18H

MOV 20H,#38H

MOV R0,#20H

XCH A,@R0

执行结果为:(DPH)=20H(DPL)=03H(A)=38H(20H)=18H

(R0)=20H

(3)MOV 20H,#01H

MOV A,20H

INC A

CPL A

MOV DPTR,#2000H

MOVX @DPTR, A

执行结果为:(20H)=01H(A)=FDH(DPTR)=2000H

(2000H)=FDH

3-8 按要求写出相应的指令。

(1)把寄存器R6的内容送到累加器A中。

(2)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。

(3)清除内部RAM 3FH 单元的高4位。

(4)使累加器A的最低位置1。

(5)清除进位位。

(6)使ACC.4和ACC.5置1。

(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。

(8)把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。

答案:

(1)MOV A,R6

(2)MOV DPTR,#1000H

MOVX A,@DPTR

MOV R0,#30H

MOV @R0,A

(3)ANL 3FH,#0FH

(4)ORL A,#01H

(5)CLR C

(6)ORL A,#30H

(7)CLR A

MOV DPTR,#2000H

MOVC A,@A+DPTR

MOV 20H,A

(8)CLR A

MOV DPTR,#2000H

MOVC A,@A+DPTR

MOV DPTR,#3000H

MOVX @DPTR,A

3-10 编写程序段完成如下要求。

(1)将寄存器R0中的内容乘以10(积小于256)。

(2)将片内RAM 30H单元开始的15个字节的数据传送到片外RAM 3000H开始的单元中。

(3)将片外RAM 2000H开始的5个字节的数据传送到片内RAM 20H开始的单元中。(4)有10个字节的二进制数存放在片内RAM以40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。

(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。(6)将外部RAM 2040H单元的内容与3040H单元的内容互换。

答案:

(1) MOV B,#0AH

MOV A,R0

MUL AB

MOV R0,A

(2) ORG 0000H

MOV R0,#30H

MOV DPTR,#3000H

MOV R7,#0FH

LOOP: MOV A,@R0

MOVX @DPRT,A

INC R0

INC DPTR

DJNZ R7,LOOP

SJMP $

END

(3) MOV DPTR,#2000H

MOV R0,#20H

MOV R7,#05H

LOOP: MOVX A,@DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R7,LOOP

SJMP $

END

(4) ORG 0000H

MOV 50H,40H ; 50H放最大值,且初始化最大值(默认第一个数)

MOV R3,#09H;比较次数

MOV R0,#41H

START: MOV A,@R0

CJNE A,50H,LOOP

LOOP: JC LOOP1;如果A比50H的值小,则跳转到LOOP1 MOV 50H,@R0;如果比50H的值大,则更新50H(最大值)的值LOOP1: INC R0

DJNZ R3,START

SJMP $

END

(5) MOV DPTR,#2000H

MOV R1,#0BH

LOOP: MOVX A,@DPTR

ANL A,#0FH

MOVX @DPTR,A

INC DPTR

DJNZ R1,LOOP

SJMP $

(6) MOV DPTR,#2040H

MOVX A,@DPTR

MOV R0,#20H

MOV @R0,A

MOV DPTR,#3040H

MOVX A,@DPTR

XCH A ,@R0

MOVX @DPTR A

MOV A,@R0

MOV DPTR,#2040H

MOVX @DPTR,A

3-15 设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。

ORG 0000H

START: MOV A,R3

JB ACC.7,NEXT;判读符号位,如果是正数则原码与补码一样,如果为

负,求原码的方法是符号位不变,其余位取反加1 MOV R3,A

HERE: SJMP $

NEXT: XRL A, #7FH;高八位,符号位不变,其余取反

MOV R3, A;放回R3

MOV A, R2;低八位

XRL A, #0FFH;取反

ADD A, #01H;加1

MOV R2, A;放回R2

MOV A,R3;看低八位是否有向高八位进位

ADDC A,#00H

MOV R3,A

SJMP $

END

3-16 设有一不带符号的十六进制数组,存放在8031单片机片内RAM以BUFFER为首址的连续单元中,其长度为30个字节,要求统计小于10,等于10及大于10的数的

相关文档
最新文档