int main() { u32 wd; // 这里要改为 u32,因为u16最多表示2^16=65536 double temp; LCD1602_GPIO_Init(); LCD1602_Init(); ds18b20_init(); //DS18B20初始化 while(1) { temp=readtemp(); //读取温度 wd=temp*10000; //显示四位小数 LCD1602_MoveToPosition(0,0); LCD1602_DisplayString("Temperature:"); LCD1602_MoveToPosition(1,0); LCD1602_DisplayOneCharOnAddr(1,7,wd/100000+0x30);//显示十位 LCD1602_DisplayOneCharOnAddr(1,8,wd%100000/10000+0x30);//显示个位 LCD1602_DisplayOneCharOnAddr(1,9,'.');//显示. 用ox2e效果一样 LCD1602_DisplayOneCharOnAddr(1,10,wd%100000%10000/1000+0x30);//显示小数1位 LCD1602_DisplayOneCharOnAddr(1,11,wd%100000%10000%1000/100+0x30);//显示小数2位 LCD1602_DisplayOneCharOnAddr(1,12,wd%100000%10000%1000%100/10+0x30);//显示小数3位 LCD1602_DisplayOneCharOnAddr(1,13,wd%100000%10000%1000%100%10+0x30);//显示小数4位 LCD1602_DisplayOneCharOnAddr(1,14,0xdf); //显示°,对照LCD1602的字符表查询 LCD1602_DisplayOneCharOnAddr(1,15,'C');//显示C } }