如果再加上DS18B20送数码管 显示温度怎么做啊 谢谢了啊

2025-02-22 21:32:56
推荐回答(2个)
回答1:

把ds18b20的值读出来,处理后放到显示缓存中就可以了啊。

回答2:

没有你的硬件,用PROTEUS仿真了一个显示电路,见插图。
稍稍改了一下程序,显示效果不错,数值随着温度调整,可以发生变化。
……
temp = TMPH;
temp <<= 8;
temp = temp | TMPL;
tt = temp * 0.0625;
a = tt * 10000;
a = a + 1235; //加上了四位小数
//温度百位
P2 = 255; //先消隐
P0 = table1[a / 1000000];
P2 = 255 - 0x80; delayms(5); //延时5ms
//温度十位
P2 = 255; P0 = table1[a % 1000000 / 100000];
P2 = 255 - 0x40; delayms(5);
//温度个位,此位带小数点
P2 = 255; P0 = table2[a % 1000000 / 10000 % 10];
P2 = 255 - 0x20; delayms(5);
//温度十分位
P2 = 255; P0 = table1[a % 1000000 / 1000 % 10];
P2 = 255 - 0x10; delayms(5);
//温度百分位
P2 = 255; P0 = table1[ a % 1000000 / 100 % 10];
P2 = 255 - 8; delayms(5);
//温度千分位
P2 = 255; P0 = table1[a % 1000000 / 10 % 10];
P2 = 255 - 4; delayms(5);
//温度万分位
P2 = 255; P0 = table1[a % 1000000 % 10];
P2 = 255 - 2; delayms(5);
}
}