📄 ds18b20.c
字号:
#include<reg52.h>
#include<intrins.h>
#include<DS18B20.h>
#include<LCD12864.h> //12864液晶串行头文件
#define uint unsigned int
#define uchar unsigned char
uchar shi,ge,x1,x2;
uchar code wen[]={"0123456789"};
temp_l=1500; /* 下限温度为15℃ */
temp_h=3000; /* 上限温度为30℃ */
sbit led=P1^1; /* 指示灯控制端 */
sbit beep=P1^2; /* 蜂鸣器控制端 */
/** 显示界面初始化函数 **/
void SEE_init()
{
write_com(0x80);
write_zi("上限温度:30.00℃");
write_com(0x90);
write_zi("下限温度:15.00℃");
write_com(0x88);
write_zi("当前温度:");
}
void dis_temp(uint t)
{
shi=t/1000; //除以100得到温度的十位
ge=t%1000/100; //得到个位
x1=t%100/10; //得到小数点后第一位
x2=t%10; //得到小数点后第二位
write_com(0x9a);
write_date(wen[shi]);
write_date(wen[ge]);
write_zi(".");
write_date(wen[x1]);
write_date(wen[x2]);
write_zi(" ℃");
}
/*** 温度处理与警告发出 ***/
void deal_temp(uint t)
{
t=get_temp();
if(t<temp_l)
{
led=~led;
delay_ms(50);
}
if(t>temp_h)
{
beep=~beep;
led=~led;
delay(50);
}
}
/**** 主函数 ****/
void main()
{
uchar i;
LCD_init(); //液晶初始化
SEE_init(); //显示界面初始化
while(1)
{
tempchange(); //温度转换函数
deal_temp(temp);
for(i=10;i>0;i--)
{
dis_temp(get_temp()); //获取暂存器内温度数据并显示
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -