c语言40h高四位送41h低四位,单片机原理与应用4.ppt

单片机原理与应用4

ASCII:MOV A, @R0 ;待转的ASCII码送入A CLR C SUBB A, #30H ;减去30H CJNE A, #0AH,NEXT NEXT:JC NEQ;小于0AH为00~09数字转NEQ SUBB A,#07H ;大于0AH为字符A~F需再减去07H NEQ: MOV @R1, A ;存转换后的结果 INC R0 INC R1 DJNZ R7,ASCII ;判是否所有转换都结束 RET ;转换都结束返回 例4.36 二进制数转换为ASCII码的子程序 对0~9的二进制数加上30H为其ASCII码,A~F的二进制数则加上37H。 入口:R0←二进制数的单元首地址 R1←转换后的结果存放首地址 R7←需要转换的字节数 EXBCD:MOV A, @R0 ;取待转换的数 CLR C CJNE A, #0AH,NEXT NEXT: JC EQU1;小于0AH为0~9的数字转至EQU执行 ADD A,#37H ;大于0AH为A~F的字符,则加上37H SJMP EXIT EQU1:ADD A, #30H ;是0~9的数字则加上30H EXIT: MOV @R1, A ;存转换后的结果 INC R0 INC R1 DJNZ R7, EXBCD ;为转换完,转至EXBCD执行 RET ;全部转换完,返回 三、查表程序 例4.37:用DPTR查表(查0~9平方表) TA: PUSH DPH PUSH DPL MOV DPTR, #TAB MOVC A, @A+DPTR POP DPL POP DPH RET ORG 2000H TAB: DB 00H, 01H, 04H, 09H DB 10H, 19H, 24H, 31H DB 40H, 51H ORG 1000H 1000 C083 TA: ADD A, #01H ;# 01H 为偏移量 1002 83 MOVC A, @A+PC 1003 22 RET 1004 00 DB 00H, 01H, 04H, 09H 1005 01 DB 10H, 19H, 24H, 31H 1006 04 DB 40H, 51H 1007 09 END 1008 10 1009 19 100A 24 例4.38:用PC查表(查0~9平方表) 例4.39:将片内RAM 30H单元中的两位压缩BCD码转换成二进制数送到片内RAM 40H单元中。 两位压缩BCD码转换成二进制数的算法为: (a1a0)BCD=10×a1+a0 程序流程图如右图所示。 程序如下: ORG 1000H START: MOV A, 30H ; 取两位BCD压缩码a1a0送A ANL A, #0F0H ; 取高4位BCD码a1 SWAP A ; 高4位与低4位换位 MOV B, #0AH ; 将二进制数10送入B MUL AB ; 将10×a1送入A中 MOV R0, A ; 结果送入R0中保存 MOV A, 30H ; 再取两位BC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值