单片机原理及应用(姜志海第3版)习题参考答案

SWAP A MOV R1,A RET

5.试编程把以2000H为首地址的连续10个单元的内容按升序排列,存放到以3000H为首地址的存储区中。

MOV DPTR,#2000H ;读到片内30H开始的单元 MOV R0,#30H MOV R7,#10 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1

START: CLR 00H ;排序 CLR C

MOV R7,#9 MOV R0,#30H MOV A,@R0 L3: INC R0 MOV R2,A SUBB A,@R0 MOV A,R2 JC NEXT SETB 00H XCH A,@R0 DEC R0 MOV @R0,A INC R0 NEXT: MOV A,@R0 DJNZ R7,L3 JB 00H,START

MOV DPTR,#3000H ;送到片外3000H开始的单元 MOV R0,#20H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,L2 RET

6.设片内30H单元开始,连续存放2个字节二进制数,试分别将其转换为BCD码,并以压缩BCD码格式连续存放在以60H为首地址的存储区中,低位字节存放在低地址单元中。

DBCD:

MOV MOV MOV MOV MOV MOV MOV INC CLR

R0,30H A,R0 R6,A R1,60H A,R1 R7,A R2,#2 R2 A

第 13 页 共 29 页 m

BB0: MOV @R1,A INC R1

DJNZ R2,BB0 MOV R3,#16 BB3: MOV A,R6 MOV R0,A MOV R2,#2 CLR C BB1: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R2,BB1 MOV R2,#2 INC R2

MOV A,R7 MOV R1,A BB2: MOV A,@R1

ADDC A,@R1 DA A MOV @R1,A INC R1

DJNZ R2,BB2 DJNZ R3,BB3 RET

7.设片内RAM中从20H开始的单元,连续存放10个非压缩BCD码,试将其转换为ASCII码,存放到片内50H开始的单元中。

MOV R0,#20H MOV R1,#50H MOV R7,#10 L1: MOV A,@R0 ADD A,#30H MOV @R1,A INC R0 INC R1 DJNZ R7,L1 RET

8.从20H单元开始有一无符号数据块,其长度在20H单元。求出数据块中的最小值,并存入21H单元。

参看第3题。

9.片外RAM从2000H单元开始存有10个单字节无符号数,找出最大值存入片外RAM 3000H单元,试编写程序。

参看第3题。

10.从片外RAM 2000H单元开始存有20个有符号数,要求把它们传送到片外RAM 3000H开始的单元,但负数不传送,试编写程序。

<

>>灞曞紑鍏ㄦ枃<<
12@gma联系客服:779662525#qq.com(#替换为@)