试用单片机编写一段程序将若干十六进制数转换为ASCII码

 我来答
lylxy1965
2011-06-01 · TA获得超过2413个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:223万
展开全部
不知你要的是C语言的还是汇编的,都给你吧

C语言的:
#include <REG51.H>

typedef unsigned char uchar;

#define NUMBER 10

uchar BufferIn[NUMBER]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,0x1a,0x1b};//16进制数存放区
uchar BufferOut[2*NUMBER]; //ASCII码存放区

////////////////////////////////////////////////////////////////
//功能: 将多字节16进制数转换为ASCII字符
//入口: x:待转换16进制数,x>=0且x<=F
//出口: 返回转换完成后的ASCII码字符数据,返回0为失败
////////////////////////////////////////////////////////////////
uchar GetASCII(uchar x)
{
if(x>0x0f)
{
return 0;
}

if(x>9)
{
return ('A'+x-10);
}
return ('0'+x);
}

////////////////////////////////////////////////////////////////
//主程序
////////////////////////////////////////////////////////////////
void main()
{
uchar i;

for(i=0;i<NUMBER;i++)
{
BufferOut[i*2] = GetASCII(BufferIn[i]/0x10);
BufferOut[i*2+1] = GetASCII(BufferIn[i]%0x10);
}
while(1);
}

汇编的:
;说明: LOOP1循环为预设10个16进制数内容的初始化程序,作为示例
ORG 0000H
LJMP START
ORG 0100H
START: MOV R2, #10 ;预置10个16进制数
MOV R0, #20H ;16进制数存放起始地址
MOV A, #12H
LOOP1: MOV @R0, A
ADD A, #13H
INC R0
DJNZ R2,LOOP1 ;循环10次送10个数
;以上至START为初始化内存,预送10个字节的数据

MOV R0, #20H ;16进制数存放起始地址
MOV R1, #30H ;ASCII数存放起始地址
MOV R2, #10 ;转换10个字节
LCALL HEXTOASC ;调用转换子程序
JMP $

;=======================================================
;HEXTOASC:将多字节16进制数转换为ASCII字符子程序
;入口: (R0)=16进制数存放起始地址指针
; (R2)=字节数
;出口: (R1)=转换完成后的ASC字符存放起始地址指针
;算法说明:0~9:(ASCII码为30H~39H)+90H后调整后无变化,结果
; 为9xH,再加40H为0DxH,调整操作+60H后正好为3xH;
; A~F:(ASCII为41H~46H),+90H后为9xH,调整操作+06H后
; 为01H~06H,再加40H调整后不变,正好为41H~46H;
;=======================================================
HEXTOASC:
MOV A, @R0
SWAP A
ANL A, #0FH ;处理高4位
ADD A, #90H
DA A
ADDC A, #40H
DA A
MOV @R1, A ;保存高4位
INC R1
MOV A, @R0
ANL A, #0FH ;处理低4位
ADD A, #90H
DA A
ADDC A, #40H
DA A
MOV @R1, A ;保存低4位
INC R1 ;下一个16进制数
INC R0
DJNZ R2, HEXTOASC
RET

END
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式