本文主要是介绍基于51单片机的ds18b20数字华氏温度计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
资料编号:114 下面是相关功能视频演示:
114-基于51单片机的数字华氏温度计报警(源码+仿真+全套资料)
功能讲解:
采用51单片机采集DS18B20的温度,LCD1602显示,并且可以设置上下限值,超过对应的值LED会有提醒,并且可以通过按键进行华氏温度转换显示,全套资料齐全:
下面是部分程序展示:
void main()
{
init(); //LCD初始化
Init_DS18B20(); //DS18B20初始化
while(1) //大循环
{ if(s1==0||s1num>=1)
{ keyscan(); //按键扫描
}
else{ ReadTemp(); //读取温度值
write_temp_value(0,temp_value); //LCD显示温度值
}
comp();
}
}
void delay(uint z) //延时程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init() //LCD初始化程序
{ lcden=0;
lcdrw=0;
write_com(0x38); //设置16x2 显示5x7 点阵,8 位数据接口
write_com(0x0c); //设置开始显示不显示光标
write_com(0x06); //写一个字符后地址指针加1
write_com(0x01); //显示清零数据指针清零
write_com(0x80); //将数据指针第一行第一个字处,
write_com(0x80+9); //定义当前指针位置
write_data('H'); //写入
write_data(':'); //写入
write_data('+'); //写入
write_data('5'); //写入
write_data('0'); //写入
write_data(0xdf); //写入°
write_data('C'); //写入C
write_com(0x80+9+0x40); //定义当前指针位置
write_data('L'); //写入
write_data(':'); //写入
write_data('-'); //写入
write_data('1'); //写入
write_data('0'); //写入
write_data(0xdf); //写入°
write_data('C'); //写入C
h=0x32;
l=0-0x0a; //h=45
D1=1;
D2=1;
figh=0; //给正确初始值,便于上电比较
figl=1; //给正确初始值,便于上电比较
}
下面是该资料的分享下载链接:
https://pan.baidu.com/s/1jMpfjrZYIpQ7JkwJfrkVhg?pwd=vtx7
这篇关于基于51单片机的ds18b20数字华氏温度计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!