用51单片机和两只18B20制作个温度计,且当温度〉=50度时P1^1口输出低电平,否则为高电平程序怎样写。

现在只有1只18B20温度〉=50度时P1^1口输出低电平,否则为高电.另一只控制不了电平切换。

首先是你的两个18B20是在两个管脚上,还是一个管脚上。如果是在两个管脚上的话你先检查一遍另一个18b20的程序有没有忘改的引脚;如果在一个引脚上你要先确认18b20的序列码有没有错,能付正常读取两个18b20的程序。
然后是两个18b20控制的都是以个P1^1,还是一个控制P1^1,一个控制其余管脚。如果两个都是控制P1^1的话,你要确定是任意一个18b20 >=50度是输出低,还是两个都>=50度时输出低,否则如:
if(wd1>=50)P11=0;else P11=1;
if(wd2>=50)P11=0;else P11=1;
这样编写的话第一只18b20显然是无法起到控制作用,因为P11的状态马上就会被第二只18b20改变。

关于楼上的PID算法,那是用来进行恒温控制的,跟楼主出现的问题没关系。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-28
PID,否则在临界的地方输出端会一直转换电平。
第2个回答  2017-02-27
读取温度,比较,送电平
第3个回答  2020-01-26
ds18b20属于数字温度计。如果要代替的话,可以试试lm75,当然lm75是i2c接口的。然后就是模拟信号输出的温度计了,什么npt、铂电阻、热电偶、ad590、lm35之类的,就要用adc了。如果你的单片机自带了adc,还差不多。
相似回答