基于51单片机及ds18b20温度传感器的数字温度计程序内容摘要:

若测量值是负值 { if((temp+temp_d*)=min)//当测量值大于最小值时报警 {w=1。 TR1=1。 } if((temp+temp_d*)min)//当测量值小于最小值时不报警 {w=0。 } } } } if(f_max==1) //若下限值是负值 { if(f_min==1) //若下限值是负值 { if(f==1) //若测量值是负值 { if((temp+temp_d*)=max||(temp+temp_d*)=min) {w=1。 TR1=1。 } //当测量值小于最大值或大于最小值时报警 if((temp+temp_d*)minamp。 amp。 (temp+temp_d*)max) {w=0。 } //当测量值小于最小值且 大于最大值时不报警 } if(f==0){w=1。 TR1=1。 } //若测量值是正值时报警 } } } endif /********************************************************************** * 程序名。 __keyscan_H__ * 功 能: ds18b20键盘头文件,通过键盘设定设定上下限报警温度 * 编程者: ZPZ * 编程时间: 2020/10/2 **********************************************************************/ ifndef __keyscan_H__ //定义头文件 define __keyscan_H__ sbit key1=P2^2。 //可位寻址变量定义,用 key1表示 sbit key2=P2^1。 //用 key2表示 sbit key3=P2^0。 //用 key3表示 sbit key4=P3^3。 //用 key4表示 uchar i=0。 //定义全局变量 i用于不同功能模式的选择,‘ 0’正常模式,‘ 1’上限调节模式,‘ 2’下限调节模式 uchar a=0。 //定义全局变量 a用于不同模式下数码管显示的选择 bit k4=0。 //K4按键双功能选择位, k4=0时 K4按键选择消按键音的功能, k4=1时 K4按键选择正负温度设定功能 bit v=0。 //K K3按键双功能选择位, v=0时选择上下限查看功能, v=1时选择上下限温度加 减功能 bit v1=0。 //v1=1时定时 1250ms 时间到自动关闭报警上下限查看功能 bit v2=0。 //消按键音功能调整位,为‘ 0’时开按键音,为‘ 1’时关按键音 /***************************读键盘延时子函数 **************************/ void keyscan_delay(uint z) //延时 1ms 左右 { uint i,j。 for(i=z。 i0。 i) for(j=120。 j0。 j)。 智笔记 7 } /****************************温度调节函数 ******************************/ int temp_change(int count,bit f) //上下限温度调整 { if(key2==0) //判断 K2是否按下 { if(v2==0)beer=0。 //v2=0开按键音,否则消按键音 keyscan_delay(10)。 //延时 10ms if(key2==0) //再次判断 K2是否按下(实现按按键时消抖 ) { beer=1。 //K2按下关按键音 if(f==0) //若温度为正 { count++。 //每按一下 K2温度上调 1 if(a==1){if(count125) count=125。 }//当温度值大于 125时不上调 if(a==2){if(count125) count=125。 } } if(f!=0) //若温度为负 { count++。 //每按一下 K2温度下调 1 if(a==1){if(count55) count=55。 }//当温度值小于 55时不再下调 if(a==2){if(count55) count=55。 } } } while(key2==0)。 keyscan_delay(10)。 //K2松开按键时消抖 } if(key3==0) { if(v2==0)beer=0。 keyscan_delay(10)。 if(key3==0) //K3按按键时消抖 { beer=1。 count。 //每按一下 K3温度为正时下调 1,为负时上调 1 if(a==1){if(count0) count=0。 }//当温度值达到 0时不再调 if(a==2){if(count0) count=0。 } } while(key3==0)。 keyscan_delay(10)。 //K3松开按键时消抖 } return count。 } /*****************************读键盘函数 ******************************/ void keyscan() { if(key1==0) { if(v2==0) beer=0。 keyscan_delay(10)。 if(key1==0) //K1按按键时消抖 { beer=1。 TR1=1。 //开定时器 1,通过 s 标志位的变化,实现在上下限温度调整时温度显示时闪烁的功能 k4=1。 //在上下温度调节功能模式下选 择 K4的调整上下限温度正负的功能 v=1。 //在上下温度调节功能模式下选择 K K3的温度加减功能 i++。 //K1按一下 i加 1, i=‘ 0’进入正常模式, i=‘ 1’进入调上限模式, i=‘ 2’进入调下限模式 if(i2) //K1按下三次后退出调节模式 { i=0。 //进入正常模式 TR1=0。 //关定时器 1 智笔记 8 k4=0。 //在正常模式下选择 K4的消按键音功能 v=0。 //在正 常模式下选择 K K3的查看上下限报警温度功能 store_t()。 //存储调整后的上下限报警温度 } switch(i) //显示选择 { case 0:a=0。 break。 //a=0选择显示测得的温度 case 1:a=1。 break。 //a=1 选择显示上限温度 case 2:a=2。 break。 //a=2 选择显示下限温度 default:break。 } } while(key1==0)。 //K1松按键时消抖 keyscan_delay(10)。 } if(a==1amp。 amp。 v==1) //a=1选择显示上限温度且 v=1时选择上下限温度加功能 {led=0。 max=temp_change(max,f_max)。 }//显示上限温度 else if(a==2amp。 amp。 v==1) //a=2选择显示下限温度且 v=1时选择上下限温度减功能 {led=1。 min。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。