最近在使用的一颗8位单片机,不支持sprint的相关库,负数的打印需要自己实现,在此记录一下相关代码
void tem_print(uchar *str,int value)
{
if(value >= 0)
{
*(str+4) = '0';
*(str+5) = value/10000+'0';
*(str+6) = value%10000/1000+'0';
*(str+7) = value%1000/100+'0';
*(str+8) = value%100/10+'0';
*(str+9) = value%10 +'0';
}else{
value = value&0x7fff;
value = 0x8000-value;//重点是这两句 将正整数转换为负整数
*(str+4) = '-';
*(str+5) = value/10000+'0';
*(str+6) = value%10000/1000+'0';
*(str+7) = value%1000/100+'0';
*(str+8) = value%100/10+'0';
*(str+9) = value%10 +'0';
}
while(*str)
{
while(!TRMT0);
TX0B = *str++;
}} //往串口发送寄存器塞东西