单片机原理及应用课后习题参考答案1~6章

内容发布更新时间 : 2025/5/17 20:12:29星期一 下面是文章的全部内容请认真阅读。

CJNE A,#00H,LOOP1 SJMP LOOP INC R0 INC R3

;非负非零转正数处理 ;零不处理,取下一个数 ;正数保存 ;正数存放地址加1 ;正数个数加1 ;未结束就继续

;将负数送负数保存地址 ;负数地址加1 ;负数个数加1 ;未结束就继续 ;正数个数送40H单元 ;负数个数送60H单元

LOOP1:MOV @R0,A

SJMP LOOP2 INC R1 INC R4

NEG: MOV @R1,A

LOOP2: DJNZ R7,LOOP

MOV 40H,R3 MOV 60H,R4 SJMP $ END

4-6 设内部RAM的30H和31H单元中有二个带符号数求出其中的大数存放在32H单元中。

MOV A,30H XRL A,31H JB ,LOOP MOV A,30H SUBB A,31H JC LOOP1 MOV 32H,30H

SJMP $ SJMP $ JB ,LOOP1 MOV 32H,A SJMP $

LOOP1: MOV 32H,31H LOOP: MOV A,30H

4-7 试编制实现ASCII码转十进制数的程序。在8032单片机内RAM的40H单元中存放一个代码。若此代码为十进制数的ASCII码,则将其相应的十进制数送片内RAM的50H单元,否则将此单元置成0FFH。

MOV A,40H CLR C SUBB A,#30H JC LOOP MOV R0,A MOV A,#09H SUBB A,R0 JC LOOP

;减30H后差大于0,是否不 ; 大于9? ;差大于9,跳转

;数字比其ASCII码值小30H

;存的ASCII值小于0的ASCII码值跳转

MOV 50H,R0 SJMP $

;将数字存入50H单元 ;不是数字,存入0FFH

LOOP:MOV 50H,#0FFH

SJMP $ END

4-8 试编程将存放在8032单片机内部RAM中首址为20H、长度为50H的数据快传送到片外RAM以20H为首址的连续单元中。

MOV R0,#20H MOV R1,#20H MOV R7,#50H MOVX @R1,A

INC R0 INC R1 DJNZ R7,LOOP SJMP $

LOOP: MOV A,@R0

4-9 设一个字符串存放在8032单片机内部RAM以20H为首址的连续单元中,字符串以回车结束。要求统计该字符串中字符C(’C’=43H)的个数,并将其存入外部RAM的40H单元。试编写实现上述要求的程序。

MOV R0,#20H MOV R2,#00H XRL A,#0DH JZ EXIT MOV A,@R0 XRL A,#43H JNZ LOOP2

INC R2 SJMP LOOP MOV A,R2 MOVX @DPTR,A SJMP $ END

LOOP2: INC R0

EXIT: MOV DPTR,#0040H

LOOP: MOV A,@R0 ;判断是否是回车符

4-10 设有一长度为20H的字符串,它存放在片外RAM1000H为首地址的连续单元中。试编制将其中数字与字母分开并将它们送到片内RAM以30H和50H为首地址的连续单元中的程序。

MOV DPTR,#1

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi