?? 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 + -