52单片机和DS18B20温度传感器,用数码管显示,共阳(4位),小数要求一位,还有个位和十位。十位老是0。

2024-12-28 11:59:24
推荐回答(2个)
回答1:

程序错在这句话上:
unsigned char ReadTemperature(void)
返回值是uchar型,也就是8位数,返回的高位数据都被丢弃了。所以改成
unsigned int ReadTemperature(void)就可以了。

回答2:

shi=tab[temp/10]; //十位温度
ge=tab[temp%10]; //个位温度