|
在采集到数据时,需要把二进制数转换为十进制数用来显示在LCD上,或者显示到LED上,以往用%1000、/1000、%100、/100......的方法,编程行数较多。
若采用sprintf(在stdio.h中),那就简单多了。
举例:
#include
main()
{
float number = -5150.0266;
char string[12];
sprintf(string,"%f\n",number);
//string [12]可直接再送到字符型LCD显示,如LCD1602
while(1);
}
如果用LED显示,则要将51500266每个字符减去0x30再查表,负号和小数点需另外处理。
看到本论坛里有一个帖子里说到51单片机用printf(输出到串口)不可靠,那是因为缺少TI=1这个条件,如上例改为:
#include
#include
main()
{
//串口和波特率设置
float number = -5150.0266;
char string[12];
TI=1;
printf("%f\n",number);
while(1);
}
就非常可靠。
[ 本帖最后由 xu__changhua 于 2012-10-15 12:56 编辑 ]
|
|