编写ASCII字符显示程序

编写ASCII字符显示程序,第1张

不知道你采用什么语言

假定使用c语言,ascii的控制字符有一些可以采用转义字符处理:

回车键

\n

tab键

\t

等,其 *** 作方式等同字符 *** 作;

在c语言中,所有字符都可以用

int

表示

,该数值为字符的ascii码,这样我们处理控制字符的时候,就可以处理了。

如铃声bell,ascii码为7;则我们输出可采用以下代码:

int

cc=7

printf("%c",cc)

其他 *** 作大同小异。

不知你要的是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=0i<NUMBERi++)

{

BufferOut[i*2] = GetASCII(BufferIn[i]/0x10)

BufferOut[i*2+1] = GetASCII(BufferIn[i]%0x10)

}

while(1)

}

汇编的:

说明: LOOP1循环为预设10个16进制数内容的初始化程序,作为示例

ORG 0000H

LJMPSTART

ORG 0100H

START: MOV R2, #10 预置10个16进制数

MOV R0, #20H16进制数存放起始地址

MOV A, #12H

LOOP1: MOV @R0,A

ADD A, #13H

INC R0

DJNZR2,LOOP1循环10次送10个数

以上至START为初始化内存,预送10个字节的数据

MOV R0, #20H16进制数存放起始地址

MOV R1, #30HASCII数存放起始地址

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

SWAPA

ANL A, #0FH处理高4位

ADD A, #90H

DA A

ADDCA, #40H

DA A

MOV @R1,A 保存高4位

INC R1

MOV A, @R0

ANL A, #0FH处理低4位

ADD A, #90H

DA A

ADDCA, #40H

DA A

MOV @R1,A 保存低4位

INC R1 下一个16进制数

INC R0

DJNZR2, HEXTOASC

RET

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7958252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存