//不要用浮点数:
//把实际值扩大100倍,手动在相应位置加上点
//发送的0123456789的ASCII码
const unsigned char TX_num[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,}; //0、1、2、3、4、5、6、7、8、9的ASCII码
//小数点. 的ASCII码
#define dian 0x2E //“.”ASCII码
//比如你要转换a1为ASCII码
void BCD_1234(unsigned int a1) //转换编码
{
unsigned char n1= 0, n2= 0, n3= 0;
while(a1 >= 10000)
a1 -= 10000;
while(a1 >= 1000)
{
a1 -= 1000;
++n1;
}
while(a1 >= 100)
{
a1 -= 100;
++n2;
}
while(a1 >= 10)
{
a1 -= 10;
++n3;
}
//TX0 到TX3 是你要发送的数值的字节数
TX0 = TX_num[ m1 ]; //十位
TX1 = TX_num[ m2 ]; //个位
TX3 = dian; //小数点
TX2 = TX_num[ m3 ]; //十分位
TX3 = TX_num[ a2 ]; //百分位
}
|