資源簡(jiǎn)介
溫度傳感器將溫度顯示在LCD1602上,高溫和低溫預(yù)警,并帶動(dòng)相應(yīng)的繼電器
【文件目錄】
51黑論壇_基于單片機(jī)的溫控系統(tǒng)
├── 1-程序
│ ├── sw.LST
│ ├── sw.OBJ
│ ├── sw.c
│ ├── 水溫
│ ├── 水溫.M51
│ ├── 水溫.Uv2.bak
│ ├── 水溫.hex
│ ├── 水溫.lnp
│ ├── 水溫.opt.bak
│ ├── 水溫.plg
│ ├── 水溫.uvopt
│ ├── 水溫.uvproj
│ ├── 水溫_Opt.Bak
│ ├── 水溫_Uv2.Bak
│ └── 水溫_uvopt.bak
└── 5-protus仿真
├── ISIS.dmp
├── LCDShow.DSN
├── LCDShow.PWI
└── Last Loaded LCDShow.DBK
2 directories, 19 files
代碼片段和文件信息
#include??
#define?uint?unsigned?int
#define?uchar?unsigned?char??? //宏定義
#define?LCD1602?P0
sbit?SET=P3^1;???? //定義調(diào)整鍵
sbit?DEC=P3^2;???? //定義減少鍵
sbit?ADD=P3^3;???? //定義增加鍵
sbit?BUZZ=P3^6;???? //定義蜂鳴器
sbit?ALAM=P1^2; //定義燈光報(bào)警
sbit?ALAM1=P1^4;
sbit?DQ=P3^7;????? //定義DS18B20總線I/O
sbit?RS?=?P2^7;
sbit?EN?=?P2^6;
bit?shanshuo_st;???? //閃爍間隔標(biāo)志
bit?beep_st;????? //蜂鳴器間隔標(biāo)志
uchar?x=0;?????? //計(jì)數(shù)器
uchar?code?tab1[]={“Now?Tem:???.??C?“};
uchar?code?tab2[]={“TH:???C??TL:???C“};
uint?c;
uchar?Mode=0;????? //狀態(tài)標(biāo)志
signed?char?TH=40;?? //上限報(bào)警溫度,默認(rèn)值為40
signed?char?TL=10;??? //下限報(bào)警溫度,默認(rèn)值為10
//============================================================================================
//====================================DS18B20=================================================
//============================================================================================
/*****延時(shí)子程序*****/
void?Delay_DS18B20(int?num)
{
??while(num--)?;
}
void?delay(uint?xms)//延時(shí)函數(shù),有參函數(shù)
{
uint?xy;
for(x=xms;x>0;x--)
?for(y=110;y>0;y--);
}
/*****初始化DS18B20*****/
void?Init_DS18B20(void)
{
??unsigned?char?x=0;
??DQ?=?1;?????????//DQ復(fù)位
??Delay_DS18B20(8);????//稍做延時(shí)
??DQ?=?0;?????????//單片機(jī)將DQ拉低
??Delay_DS18B20(80);???//精確延時(shí),大于480us
??DQ?=?1;?????????//拉高總線
??Delay_DS18B20(14);
??x?=?DQ;???????????//稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗
??Delay_DS18B20(20);
}
/*****讀一個(gè)字節(jié)*****/
unsigned?char?ReadOneChar(void)
{
??unsigned?char?i=0;
??unsigned?char?dat?=?0;
??for?(i=8;i>0;i--)
??{
????DQ?=?0;?????//?給脈沖信號(hào)
????dat>>=1;
????DQ?=?1;?????//?給脈沖信號(hào)
????if(DQ)
????dat|=0x80;
????Delay_DS18B20(4);
??}
??return(dat);
}
/*****寫一個(gè)字節(jié)*****/
void?WriteOneChar(unsigned?char?dat)
{
??unsigned?char?i=0;
??for?(i=8;?i>0;?i--)
??{
????DQ?=?0;
????DQ?=?dat&0x01;
????Delay_DS18B20(5);
????DQ?=?1;
????dat>>=1;
??}
}
/*****讀取溫度*****/
unsigned?int?ReadTemperature(void)
{
??unsigned?char?a=0;
??unsigned?char?b=0;
??unsigned?int?t=0;
??float?tt=0;
??Init_DS18B20();
??WriteOneChar(0xCC);??//跳過(guò)讀序號(hào)列號(hào)的操作
??WriteOneChar(0x44);??//啟動(dòng)溫度轉(zhuǎn)換
??Init_DS18B20();
??WriteOneChar(0xCC);??//跳過(guò)讀序號(hào)列號(hào)的操作
??WriteOneChar(0xBE);??//讀取溫度寄存器
??a=ReadOneChar();?????//讀低8位
??b=ReadOneChar();????//讀高8位
??t=b;
??t<<=8;
??t=t|a;
??tt=t*0.0625;
?//?t=?tt*10+0.5;?????//放大10倍輸出并四舍五入
??t=?tt*10+0.5;?
??return(t);
}
/*****讀取溫度*****/
void?check_wendu(void)
{
c=ReadTemperature()-5;?? //獲取溫度值并減去DS18B20的溫漂誤差
if(c>1200)
c=1200;
}
/********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調(diào)用**************/
void?write_1602com(uchar?com)//****液晶寫入指令函數(shù)****
{
RS=0;//數(shù)據(jù)/指令選擇置為指令
// rw=0;?//讀寫選擇置為寫
LCD1602=com;//送入數(shù)據(jù)
delay(1);
EN=1;//拉高使能端,為制造有效的下降沿做準(zhǔn)備
delay(1);
EN=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}
void?write_1602dat(uchar?dat)//***液晶寫入數(shù)據(jù)函數(shù)****
{
RS=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
// rw=0;?//讀寫選擇置為寫
LCD1602=dat;//送入數(shù)據(jù)
delay(1);
EN=1;?//en置高電平,為制造下降沿做準(zhǔn)備
delay(1);
EN=0;?//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}
void?lcd_init()//***液晶初始化函數(shù)****
{
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-11-13?19:19??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\
?????目錄???????????0??2020-11-13?19:19??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\
?????文件???????17382??2016-05-19?21:48??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\sw.LST
?????文件????????7703??2016-05-19?21:48??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\sw.OBJ
?????文件????????7158??2014-10-07?13:47??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\sw.c
?????文件????????6134??2017-11-10?13:35??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫
?????文件???????22473??2017-11-10?13:35??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.M51
?????文件????????2079??2013-07-17?13:49??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.Uv2.bak
?????文件????????6140??2017-11-10?13:35??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.hex
?????文件??????????38??2017-11-10?13:35??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.lnp
?????文件?????????989??2013-07-17?13:49??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.opt.bak
?????文件?????????179??2019-01-14?11:32??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.plg
?????文件???????56624??2019-01-14?11:32??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.uvopt
?????文件???????13180??2013-07-17?13:50??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫.uvproj
?????文件?????????953??2013-04-18?15:46??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫_Opt.Bak
?????文件????????1641??2013-04-18?15:46??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫_Uv2.Bak
?????文件???????55814??2019-01-09?18:32??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\1-程序\水溫_uvopt.bak
?????目錄???????????0??2020-11-13?20:05??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\5-protus仿真\
?????文件???????28511??2012-07-22?18:03??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\5-protus仿真\ISIS.dmp
?????文件??????188369??2020-11-13?20:05??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\5-protus仿真\LCDShow.DSN
?????文件????????1483??2020-11-13?20:05??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\5-protus仿真\LCDShow.PWI
?????文件??????188369??2020-11-13?19:37??51黑論壇_基于單片機(jī)的溫控系統(tǒng)\5-protus仿真\Last?Loaded?LCDShow.DBK
評(píng)論
共有 條評(píng)論
相關(guān)資源
- 基于STM32F407ZG的監(jiān)控?cái)z像頭及FATFS文件
- 51單片機(jī)protues文件(KST-51.DSN)
- 圖形學(xué)簡(jiǎn)單繪圖系統(tǒng)
- 寵物管理系統(tǒng)課程設(shè)計(jì)(源碼+數(shù)據(jù)庫(kù)
- C語(yǔ)言 學(xué)生興趣管理系統(tǒng)
- c語(yǔ)言實(shí)現(xiàn)火車訂票系統(tǒng)(控制臺(tái))源
- c語(yǔ)言實(shí)現(xiàn)競(jìng)技比賽打分系統(tǒng)
- 微型文件系統(tǒng)源碼(FatFs)
- Linux c語(yǔ)言 學(xué)生成績(jī)管理系統(tǒng)
- 成績(jī)管理系統(tǒng).doc
- 基于c語(yǔ)言的通訊錄系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng).c
- 51單片機(jī)交通燈設(shè)計(jì)
- 基于51單片機(jī)的簡(jiǎn)易計(jì)算器
- 深入理解計(jì)算機(jī)系統(tǒng)-復(fù)習(xí)-清華課件
- 簡(jiǎn)單員工管理系統(tǒng)(適合初學(xué)MFC)
- C語(yǔ)言實(shí)現(xiàn) 設(shè)備信息管理系統(tǒng)
- c++ 賬務(wù)系統(tǒng)源碼
- 校園閑置物品管理系統(tǒng).c(控制臺(tái))
- c語(yǔ)言課程設(shè)計(jì):客房登記系統(tǒng)源碼
- 學(xué)生成績(jī)管理系統(tǒng)(c源碼)
- 職工信息管理系統(tǒng)源碼(控制臺(tái))
- 家譜管理系統(tǒng)(C++)源碼以及文檔
- 51驅(qū)動(dòng)步進(jìn)電機(jī)
- 51基本框架
- 基于51單片機(jī)多路超聲波報(bào)警設(shè)計(jì)
- 51單片機(jī)紅外智能小車
- 鏈表實(shí)現(xiàn)學(xué)生管理系統(tǒng)(main.c)
- C++餐飲管理系統(tǒng)源碼(控制臺(tái))
- C++通訊錄管理系統(tǒng)源碼(控制臺(tái))