如何将字符转换为 ASCII 形式?
How to change a char to ASCII form?
我需要更改我的程序,如何使用某些函数将字符更改为 ASCII?
我的手机从8051接收数据,总是显示'0',这不是真的。
字符转 ASCII 码。
void Data_TX(unsigned char Y)
{
unsigned char Buff_Y[3];
Buff_Y[2] = (Y / 100) + 0x30;
Buff_Y[1] = (Y / 10) % 10+0x30;
Buff_Y[0] = (Y % 10) + 0x30;
SBUF = *Buff_Y;
while (TI == 0);
TI = 0;
}
这是我的电路原代码,LCD与8051接口。
bit Sensor_read(unsigned char read[5]);
使用我的函数。
Data_TX(read[2]); //read data.
Data_TX((int)read[2]); //read data, this program can't to run.
Buff_Y[2] = (Y / 100) + 0x30;
Buff_Y[1] = (Y / 10) % 10+0x30;
Buff_Y[0] = (Y % 10) + 0x30;
这一切都很好。如果您打印这三个字节,您将看到它们包含正确的值。
SBUF = *Buff_Y;
然而,这表示混乱。 *Buff_Y
等同于 Buff_Y[0]
。那是单个 char
值...如果您只能将单个 char
值存储到 SBUF
中,那么您将无法存储您想要的三个 char
值存入其中。
如果我们使用逻辑,我们可以做出这样的推论:如果您提供的输入可以被 10 整除(即,当 Y % 10
是 0
)...
在考虑如何更改这行代码(以及我们看不到的代码部分)的同时,您可能还需要仔细考虑 while (TI == 0);
。对于试图解决的任何问题,都应该有更好的解决方案。
我正在更改此代码,可以是 运行,但刚收到个位数字。
void Data_TX(unsigned char Y)
{
无符号字符 Buff_Y[3];
Buff_Y[3] = (Y / 100) + 0x30;
Buff_Y[2] = (Y%100)/10+0x30;
Buff_Y[1] = (Y / 10) % 10+0x30;
Buff_Y[0] = (Y % 10) + 0x30;
SBUF = *Buff_Y;
while (TI == 0);
TI = 0;
}
Data_TX((int)read[2]);
我需要更改我的程序,如何使用某些函数将字符更改为 ASCII? 我的手机从8051接收数据,总是显示'0',这不是真的。
字符转 ASCII 码。
void Data_TX(unsigned char Y)
{
unsigned char Buff_Y[3];
Buff_Y[2] = (Y / 100) + 0x30;
Buff_Y[1] = (Y / 10) % 10+0x30;
Buff_Y[0] = (Y % 10) + 0x30;
SBUF = *Buff_Y;
while (TI == 0);
TI = 0;
}
这是我的电路原代码,LCD与8051接口。
bit Sensor_read(unsigned char read[5]);
使用我的函数。
Data_TX(read[2]); //read data.
Data_TX((int)read[2]); //read data, this program can't to run.
Buff_Y[2] = (Y / 100) + 0x30;
Buff_Y[1] = (Y / 10) % 10+0x30;
Buff_Y[0] = (Y % 10) + 0x30;
这一切都很好。如果您打印这三个字节,您将看到它们包含正确的值。
SBUF = *Buff_Y;
然而,这表示混乱。 *Buff_Y
等同于 Buff_Y[0]
。那是单个 char
值...如果您只能将单个 char
值存储到 SBUF
中,那么您将无法存储您想要的三个 char
值存入其中。
如果我们使用逻辑,我们可以做出这样的推论:如果您提供的输入可以被 10 整除(即,当 Y % 10
是 0
)...
在考虑如何更改这行代码(以及我们看不到的代码部分)的同时,您可能还需要仔细考虑 while (TI == 0);
。对于试图解决的任何问题,都应该有更好的解决方案。
我正在更改此代码,可以是 运行,但刚收到个位数字。
void Data_TX(unsigned char Y)
{ 无符号字符 Buff_Y[3];
Buff_Y[3] = (Y / 100) + 0x30;
Buff_Y[2] = (Y%100)/10+0x30;
Buff_Y[1] = (Y / 10) % 10+0x30;
Buff_Y[0] = (Y % 10) + 0x30;
SBUF = *Buff_Y;
while (TI == 0);
TI = 0;
}
Data_TX((int)read[2]);