#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void main()
{
uint i;
uchar a,b,m;
a=0;
b=0;
m=0;
PB=1;
PR=1;
PY=1;
PX=1;
BELL=0;
D[2]=0;
while(1)
{
Begin_SBUF();
TI=0;
while(!R()); //读取D的全部信息
PB=1;
Delay(2000);
M[0]=D[2]; //c5 或者00、FF
M[1]=D[1]; //2c 或者01、FF
if(D[0]!=0)
{
for(i=0;i<2;i++)
{
a=M[i]>>4; //取高四位
b=M[i]&=0x0f; //取低四位
if(a>=0&&a<=9) //对高四位进行转换
a=a+0x30;
else if(a>=0x0a&&a<=0x0f)
a=a+0x37;
if(b>=0&&b<=9) //对低四位进行转换
m=b+0x30;
else if(b>=0x0a&&b<=0x0f)
m=b+0x37;
SBUF=a;
while(!TI);
TI=0;
a=0;
SBUF=m;
while(!TI);
TI=0;
m=0;
PY=1;
}
PB=0;
SBUF=0x0d;
while(!TI);
TI=0;
}
这段程序是模拟键盘,逐个输出十六进制的C52C、或者0001、或者FFFF等等4个字符的。我想
把它修改为输出十六进制对应的十进制数据的,并且长度固定5位的,不足5位的在前面补充“0”。比如
十六进制的C52C修改为输出50476,十六进制的0001修改为输出00001,十六进制的FFFF修改为输出65535
。那位能帮忙修改一下!不胜感激!
没看到有输出语句啊,输出前加一个转换函数就可以了啊
不知道你这个问题是否已经解决, 如果还没有解决的话: