电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

十六进制数转BCD码的几种方法

十六进制数转BCD码的几种方法_第1页
1/6
十六进制数转BCD码的几种方法_第2页
2/6
十六进制数转BCD码的几种方法_第3页
3/6
DA 指令和十六进制数转BCD 码的几种方法2008 年07 月04 日 星期五 11:28DA 指令和十六进制数转BCD 码的几种方法2008-06-20 14:32 例2、设(A) = 56H 为 56 的压缩的BCD码数,(R3)= 67H,(CY)=1 执行 ADDC A,R3 DA A 结果为:124 注意:1)DA 指令只能跟在加法指令后面使用; 2)调整前参与运算的两数是 BCD 码数; 3)DA 指令不能与减法指令配对使用,但可以实现对 A 中压缩 BCD 减一操作。 例3、设(A)=30H(压缩 BCD 码数),执行: ADD A,#99H DA A 后,便实现了 30 - 1 = 29 的操作。 例4、两个 4 位 BCD 码相加,一个存放在(31H)(30H);另一个存放在 (33H)(32H);和数拟回存在(31H)(30H)中,试编程实现之。 解:MOV R0,#30H MOV R1,#32H MOV A,@R0 ADD A,@R1 DA A MOV @R0,A INC R0 INC R1 MOV A,@R0 ADDC A,@R1 DA A MOV @R0,A 在进行单片机系统开发时,有很多地方需要用到十六进制数和BCD 码的转换。比如说在需要将数据在显示器上显示时,因为参与系统内部计算的数据多为二进制数,而为了显示的时候直观方便,我们通常会将数据显示为常见的十进制形式。这时在系统内部就必须进行十六进制到BCD 码的转换。 关于十六进制到BCD 码的转换,算法很多,我这里介绍三种方法。三种方法在使用的时候各有优劣,后面会进行简单的比较。 一、方法一: ;功能;单字节十六进制数转三位单字节 BCD 码 ;入口:单字节十六进制数存 R5 ;出口:单字节 BCD 码存:百位 R2,十位 R3,个位 R4 ;影响单元:中间寄存 R5 的高四位:R0,低四位:R1 HEX2BCD: MOV A,R5 ANL A,#0FH MOV R1,A MOV A,R5 ANL A,#0F0H SWAP A MOV R0,A MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV A,R1 LCALL SUB MOV A,R0 MOV R5,A START_1: CJNE R5,#00H,DEC_1 AJMP NRET_1 DEC_1: DEC R5 MOV A,#10H LCALL SUB AJMP START_1 NRET_1: MOV 7FH,R4 MOV 7EH,R3 MOV 7DH,R2 RET SUB: ;子函数开始 ADD A,R4 ;开始处理个位进十位 CJNE A,#14H,JIN1;若 A>=20 则跳 JIN2,否则跳 NRET 结束 AJMP JIN2 ; JIN1: ; JNC JIN2 ; AJMP JIN3 ; JIN2: INC R3 INC R3 CLR C SUBB A,#14H AJMP JIN5 JIN3: CJNE A,#0AH,JIN_3;若 A>=10 则跳 JIN4,否则跳 NEXT 结束 AJMP JIN4 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

十六进制数转BCD码的几种方法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部