-
大小: 455KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-19
- 語言: 其他
- 標簽: 51單片機??風扇系統(tǒng)??
資源簡介
該系統(tǒng)以STC89C51RC單片機最小系統(tǒng)為核心,利用DS18B20溫度采集模塊,LCD 1602顯示屏、L298N電機驅動模塊、HC-SR501人體感應模塊、舵機控制模塊、ESP8266 WIFI控制模塊組成智能風扇控制系統(tǒng)。當有人進入室內,HC-SR501人體感應模塊會監(jiān)測到有人出現(xiàn),同時DS18B20溫度采集模塊將采集到的溫度與系統(tǒng)開始設置的閾值做比較,并將采集到的溫度數(shù)據(jù)顯示在LCD 16 -02顯示屏上。當室溫高于所設置的溫度且有人存在的情況下,風扇將會自動吹風;當溫度低于所設置的溫度時風扇仍保持關閉狀態(tài)。

代碼片段和文件信息
/*
?*?DS18B20測試程序
?*?
?*?用途:數(shù)碼管模塊測試程序
?*?
?*?作者 日期 備注
?*?Huafeng?Lin 2012/04/21 新增
?*?Huafeng?Lin 2012/04/21 修改
?*?
?*/
#include?
#include?
#define?uchar?unsigned?char
void?ds18b20_delay(unsigned?char?i)
{
for(i;i>0;i--);
}
void?ds18b20_delay1(uchar?i)
{
uchar?jk;?
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void?Init_DS18B20(void)?
{
unsigned?char?x=0;
DQ=1;? //DQ先置高?
ds18b20_delay(8);? //稍延時
DQ=0;? //發(fā)送復位脈沖?
ds18b20_delay(80);? //延時(>480us)?
DQ=1;? //拉高數(shù)據(jù)線?
ds18b20_delay(5);? //等待(15~60us)?
x=DQ;? //用X的值來判斷初始化有沒有成功,18B20存在的話X=0,否則X=1?
ds18b20_delay(20);?
}
//讀一個字節(jié)
ReadOneChar(void)?? //主機數(shù)據(jù)線先從高拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀信號
{
unsigned?char?i=0;? //每個讀周期最短的持續(xù)時間為60us,各個讀周期之間必須有1us以上的高電平恢復期
unsigned?char?dat=0;?
for?(i=8;i>0;i--)? //一個字節(jié)有8位?
{
DQ=1;?
ds18b20_delay(1);?
DQ=0;
dat>>=1;?
DQ=1;?
if(DQ)?
dat|=0x80;??//DQ=1沒信號,不讀
ds18b20_delay(4);
}?
return(dat);
}
//寫一個字節(jié)
void?WriteOneChar(unsigned?char?dat)?
{?
unsigned?char?i=0;? //數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號。15us之內將所需寫的位送到數(shù)據(jù)線上,
for(i=8;i>0;i--)? //在15~60us之間對數(shù)據(jù)線進行采樣,如果是高電平就寫1,低寫0發(fā)生。?
{
DQ=0;? //在開始另一個寫周期前必須有1us以上的高電平恢復期。?
DQ=dat&0x01;?
ds18b20_delay(5);?
DQ=1;?
dat>>=1;
}?
ds18b20_delay(4);
}
//讀溫度值(低位放tempL;高位放tempH;)
void?ReadTemperature(void)?
{?
Init_DS18B20();? //初始化
WriteOneChar(0xcc);? //跳過讀序列號的操作
WriteOneChar(0x44);? //啟動溫度轉換
ds18b20_delay(125);? //轉換需要一點時間,延時?
Init_DS18B20();? //初始化
WriteOneChar(0xcc);? //跳過讀序列號的操作?
WriteOneChar(0xbe);? //讀溫度寄存器(頭兩個值分別為溫度的低位和高位)?
tempL=ReadOneChar();? //讀出溫度的低位LSB
tempH=ReadOneChar();? //讀出溫度的高位MSB
if(tempH>0x7f)?????? //最高位為1時溫度是負
{
tempL=~tempL; //補碼轉換,取反加一
tempH=~tempH+1;???????
fg=0;?????? //讀取溫度為負時fg=0
}
sdata?=?tempL/16+tempH*16;?????? //整數(shù)部分
xiaoshu1?=?(tempL&0x0f)*10/16;? //小數(shù)第一位
xiaoshu2?=?(tempL&0x0f)*100/16%10; //小數(shù)第二位
xiaoshu=xiaoshu1*10+xiaoshu2;? //小數(shù)兩位
}
//顯示函數(shù)
void?Led(unsigned?int?date)
{?
if(fg==1)
{
P2=0xfe;????? //P1.0=0,選通第一位
P0=seg7code[date/10];?? //十位數(shù),查表,輸出
ds18b20_delay1(5);
P0=0xff;???????? //消隱
P2=0xfd;????? //P1.1=0選通第二位,個位數(shù)
P0=seg7codeB[date%10];
ds18b20_delay1(5);
P0=0xff;??????? //消隱
P2=0xfb;????? //P1.3=0選通第三位,小數(shù)點第一位
P0=seg7code[xiaoshu1];
ds18b20_delay1(5);
P0=0xff;????????? //消隱
P2=0xf7;????? //P1.3=0選通第四位,小數(shù)點第二位
P0=seg7code[xiaoshu2];
ds18b20_delay1(5);
P0=0xff;??????? //消隱
}
if(fg==0)?? //溫度為負時顯示的數(shù)據(jù)
{
P2=0xfe;????? //P1.0=0,選通第一位
P0=seg7code[11];?? //顯示負號
ds18b20_delay1(5);
P0=0xff;???????? //消隱
P2=0xfd;????? //P1.1=0選通第二位,十位數(shù)
P0=seg7code[date/10];
ds18b20_delay1(5);
P0=0xff;??????? //消隱
P2=0xfb;????? //P1.3=0選通第三位,個位數(shù)
P0=seg7codeB[date%10];
ds18b20_delay1(5);
P0=0xff;????????? //消隱
P2
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-10-27?22:14??自感應風扇\
?????文件???????14848??2017-10-27?22:13??自感應風扇\Thumbs.db
?????目錄???????????0??2017-10-27?22:14??自感應風扇\仿真\
?????文件??????123781??2017-06-29?17:39??自感應風扇\仿真\Last?Loaded?自感應風扇.DBK
?????文件??????123781??2017-06-29?22:24??自感應風扇\仿真\自感應風扇.DSN
?????文件????????1028??2017-07-01?10:02??自感應風扇\仿真\自感應風扇.PWI
?????文件??????314577??2017-07-01?09:59??自感應風扇\自感應溫控風扇.docx
?????文件???????41813??2017-06-30?13:25??自感應風扇\自感應風扇.DSN.pdf
?????目錄???????????0??2017-10-27?22:15??自感應風扇\自感應風扇程序\
?????文件????????3616??2017-06-28?21:44??自感應風扇\自感應風扇程序\DS18B20.c
?????文件????????3934??2017-06-29?22:17??自感應風扇\自感應風扇程序\DS18B20.h
?????文件????????1599??2017-06-28?22:00??自感應風扇\自感應風扇程序\lcd.c
?????文件????????2381??2017-06-29?22:21??自感應風扇\自感應風扇程序\lcd.h
?????目錄???????????0??2017-10-27?22:14??自感應風扇\自感應風扇程序\Listings\
?????文件????????7095??2017-06-28?21:44??自感應風扇\自感應風扇程序\Listings\DS18B20.lst
?????文件????????3958??2017-06-28?22:18??自感應風扇\自感應風扇程序\Listings\lcd.lst
?????文件????????4610??2017-06-29?22:23??自感應風扇\自感應風扇程序\Listings\main.lst
?????文件???????14545??2017-06-28?21:00??自感應風扇\自感應風扇程序\Listings\STARTUP.lst
?????文件???????19888??2017-06-29?23:07??自感應風扇\自感應風扇程序\Listings\自感應風扇.m51
?????文件????????1862??2017-06-29?23:07??自感應風扇\自感應風扇程序\main.c
?????目錄???????????0??2017-10-27?22:15??自感應風扇\自感應風扇程序\ob
?????文件????????8260??2017-06-28?21:44??自感應風扇\自感應風扇程序\ob
?????文件?????????125??2017-06-28?21:44??自感應風扇\自感應風扇程序\ob
?????文件????????5250??2017-06-28?22:18??自感應風扇\自感應風扇程序\ob
?????文件?????????113??2017-06-28?22:18??自感應風扇\自感應風扇程序\ob
?????文件???????15126??2017-06-29?22:23??自感應風扇\自感應風扇程序\ob
?????文件?????????116??2017-06-29?22:23??自感應風扇\自感應風扇程序\ob
?????文件?????????828??2017-06-28?21:00??自感應風扇\自感應風扇程序\ob
?????文件???????13427??2017-06-29?23:07??自感應風扇\自感應風扇程序\ob
?????文件????????1075??2017-06-29?23:07??自感應風扇\自感應風扇程序\ob
?????文件????????2625??2017-06-29?23:07??自感應風扇\自感應風扇程序\ob
............此處省略5個文件信息
- 上一篇:Qt多線程教程.rar
- 下一篇:dsp 28335的實驗報告 帶濾波的AD采樣
評論
共有 條評論