二进制,十进制,十六进制,ASCII,BCD码的转换,单片机.doc

二进制,十进制,十六进制,ASCII,BCD码的转换,单片机.doc

ID:57711145

大小:53.00 KB

页数:2页

时间:2020-09-01

二进制,十进制,十六进制,ASCII,BCD码的转换,单片机.doc_第1页
二进制,十进制,十六进制,ASCII,BCD码的转换,单片机.doc_第2页
资源描述:

《二进制,十进制,十六进制,ASCII,BCD码的转换,单片机.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.在片内RAM30H单元有-个8位二进制数,将其转换成压缩BCD码,存于片内RAM41H(高位)40H(低位)中。方法:2^8=256,所以8位二进制A<=256,A/100商是百位数,存放到41h单元,余数再除以10,再得商是10位数,高低位互换,)ORG0100HSTART:MOVA,30H;取来8位二进制数MOVB,#100DIVAB;除以100MOV41H,A;商是百位数,存放到41h单元MOVA,B;取回余数MOVB,#10DIVAB;再除以10SWAPA;商是10位数,高低位互换ORLA,BMOV40H,A;将十位数与个位位

2、数存入40hSJMP$END2.一个字节(8位)BCD码转换为二进制数(方法:先将高半字节乘以10,再加上低半字节)设待转换的BCD码存放于R2中DTOB:MOVA,R2ANLA,#0F0HSWAPAMOVB,#0AHMULABMOVR3,AMOVA,R2ANLA,#0FHADDA,R3RET3.二进制数转换为ASCII码设(30H)=4BH,将高4位的ASCII码放在31H单元,低4位的ASCII码放在32H单元,程序具有通用性,向入口参数30H存入任何数,都能将其变成相应的ISCII码.ORG0000HLJMPMAINORG0030H

3、MAIN:MOVSP,#60HMOV30H,#4BHMOVR2,30HMOVA,R2ANLA,#0FHCJNEA,#0AH,NEQNEQ:JCLOOPADDA,#37HJMPLOOP3LOOP:ADDA,#30HLOOP3:MOV31H,AMOVA,R2SWAPAANLA,#0FHCJNEA,#0AH,NE1NE1:JCLOOP1ADDA,#37HJMPLOOP4LOOP1:ADDA,#30HLOOP4:MOV32H,AA1:SJMPA1END4.已知R0的低半个字节为一个四位的二进制数,要求将其转换为ASCAII码后送回R0中。二进制数

4、与ASCII码的对应关系:四位二进制ASCII0000(0)30H0001(1)31H1001(9)39H1010(A)41H1111(F)46HORG1000BTOASC:PUSHACCPUSHPSWOVA,R0ANLA,#0FH;取四位二进制数MOVR0,A暂存CLRCSUBBA,#0AH;与10比较MOVA,R0;恢复四位二进制数JCLOOP;小于10转LOOPADDA,#07H;大于10先加07HLOOP:ADDA,#30H;加30HMOVR0,A;存结果POPPSWPOPACCRET5.一位十六进制数转换成ASCII码(方法:将

5、十六进制数减10,余数为负数时进位C=1,判断数值在0—9之间,直接加30H;余数为正数时进位C=0,判断数值在A—F之间,先加上07H,再直接加30H)ORG0000HMOVR2,#0CHMOVA,R2CLRCSUBBA,#0AH;余数为负数时进位C=1,判断数值在0—9之间;余数为正数时进位C=0,判断数值在A—F之间MOVA,R2JCADD30ADDA,#07HADD30:ADDA,#30HMOVR2,ANOPEND6.将多位数十六进制数转换成ACAII码(方法:查表法)设地址指针R0指向十六进制数低字节,R2存放字节数n,转换后地

6、址指针R0指向十六进制数高字节,R1指向要存放的ASCII码的高位地址ORG0021HTAB2:DB01H,03H,04H,06H,09H,0AH,0CH,08H,0EH,02HMOVR0,#30HMOVR2,#10HTASC:MOVA,@R0ANLA,#0FHADDA,#15HMOVCA,@A+PCMOV@R1,AINCR1MOVA,@R0SWAPAANLA,#0FHADDA,#06HMOVCA,@A+PCMOV@R1,AINCR0INCR1DJNZR2,HTASCASCTAB:DB30H,31H,32H,33H,34H,35H,36H

7、,37H,38H,39HDB41H,42H,43H,44H,45H,46H7.BCD码换为ACAII码1.源程序RESULTEQU30H;等值伪指令ORG0LJMPSTARTASCIIT:DB‘ABCDEF';定义数字对应的ASCII表BINTOHEX:MOVDPTR,#ASCIITMOVB,A;暂存ASWAPAANLA,#0FH;取高四位MOVCA,@A+DPTR;查ASCII表MOVRESULT,AMOVA,B;恢复AANLA,#0FH;取低四位MOVCA,@A+DPTR;查ASCII表MOVRESULT+1,ARETSTART:MO

8、VSP,#40HMOVA,#12HCALLBINTOHEXLJMP$END一、选择题。1.十进制0.625转换成二进制数是(A)A0.101B0.111C0.110D0.1002.控制串行口工

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。