本設(shè)計(jì):
基于51單片機(jī)的火災(zāi)檢測(cè)設(shè)計(jì)(仿真+程序+原理圖+論文報(bào)告)
Proteus仿真版本:proteus7.8
原理圖:Altium Designer
程序編譯器:keil 4
編程語(yǔ)言:C語(yǔ)言
編號(hào)C0017
【騰訊文檔】C0017 網(wǎng)盤鏈接
https://docs.qq.com/doc/DS3JiakhvUFJneHFL
整個(gè)系統(tǒng)以STC89C52單片機(jī)為核心器件,配合電阻電容晶振等器件,構(gòu)成單片機(jī)的最小系統(tǒng)。
1.煙霧采集傳感器選用MQ-2,由于該傳感器輸出的是模擬信號(hào),因此需要模數(shù)轉(zhuǎn)換芯片ADC0832,把模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào)再傳給單片機(jī);
2.溫度采集使用DS18B20數(shù)字傳感器,該傳感器通過(guò)單總線和單片機(jī)相連;
3.火焰檢測(cè)使用火焰檢測(cè)模塊,該模塊完成了信號(hào)的檢測(cè)、放大、比較等處理,最終輸出高低電平信號(hào)給單片機(jī);
4.顯示設(shè)備使用1602液晶,可以在屏幕上顯示實(shí)時(shí)煙霧濃度值、溫度值,以及報(bào)警值等信息;
5.報(bào)警模塊則采用蜂鳴器和LED燈組成,三個(gè)LED分別代表了火焰報(bào)警指示、煙霧報(bào)警指示和溫度報(bào)警指示,無(wú)論哪個(gè)檢測(cè)元素超標(biāo),蜂鳴器都會(huì)鳴叫報(bào)警;
6.3個(gè)按鍵作為操作輸入設(shè)備,可以用來(lái)調(diào)節(jié)報(bào)警閾值的大??;
7.供電采用常用的USB 5V進(jìn)行供電。
仿真圖(提供源文件):
原理圖(提供源文件):
源程序(提供源文件):
void main(void)
{
int temp; // 保存溫度值
uchar num; // 保存煙霧值
uchar i; // 循環(huán)變量
LcdInit(); // 液晶功能初始化
LcdShowInit(); // 液晶顯示內(nèi)容初始化
gMqAlarm=EEPROM_Read(0x2000); // 從EEPROM中讀取報(bào)警值
if((gMqAlarm==0)||(gMqAlarm>100)) // 如果讀出來(lái)數(shù)據(jù)異常,則重新賦值30
gMqAlarm=30;
LcdGotoXY(0,11); // 光標(biāo)定位
LcdPrintNum1(gMqAlarm); // 顯示煙霧濃度的報(bào)警值
gTempAlarm=EEPROM_Read(0x2001)-55; // 將溫度報(bào)警值讀取出來(lái)
if((gTempAlarm<=-55)||(gTempAlarm>125)) // 如果讀出來(lái)數(shù)據(jù)異常,則重新賦值40度
gTempAlarm=40;
LcdGotoXY(1,11); // 光標(biāo)定位
LcdPrintNum2(gTempAlarm); // 顯示溫度的報(bào)警值
while(DS18B20_ReadTemp()==85) // 等待傳感器初始化完成
{
DelayMs(10);
}
while(1)
{
num=Get_ADC0832(); // 獲取煙霧的濃度值
num=num/2.2; // 調(diào)整濃度值,使其在0-100之間變化
if(num>100)
num=100;
LcdGotoXY(0,5); // 液晶光標(biāo)定位到第0行第5列
LcdPrintNum1(num); // 顯示煙霧濃度的值
temp=DS18B20_ReadTemp(); // 讀取溫度值
LcdGotoXY(1,5); // 液晶光標(biāo)定位到第1行第5列
LcdPrintNum2(temp); // 顯示溫度值
AlarmJudge(num,temp); // 報(bào)警判斷
for(i=0;i<15;i++) // 執(zhí)行15次循環(huán)(延時(shí)0.15秒,并在這個(gè)時(shí)間段進(jìn)行按鍵掃描)
{
KeyScanf(); // 按鍵掃描
DelayMs(10); // 延時(shí)
}
}
}
論文/報(bào)告:
資料清單如下:
溫馨提示:
1、拿到壓縮包文件之后先解壓,再運(yùn)行?。嚎s名稱帶有特殊符號(hào)的,要把特殊符號(hào)刪除再解壓,例如?;
2、單片機(jī)芯片是通用的,無(wú)論51還是52、無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片;
3、仿真原理圖和硬件原理圖會(huì)有著些許區(qū)別,如果要做硬件請(qǐng)參照硬件原理圖,硬件原理圖中的. Sch .pcb等格式要用altium designer 打開(kāi);
4、如果沒(méi)有裝KEIL軟件:.c .h結(jié)尾的文件即為程序,可以選擇記事本、Notepad++、Source Insight 4.0、或其他C語(yǔ)言軟件打開(kāi),打開(kāi)的就是程序了。其他后綴的文件是寫程序編譯時(shí)自動(dòng)生成的,沒(méi)什么用的,不用管;
5、仿真時(shí)請(qǐng)打開(kāi)“.pdsprj”工程文件或“.DSN”工程文件,“.pdsprj”是proteus8版本畫的,“.DSN”是proteus7版本畫的,版本是向上兼容的,理論上proteus8可以打開(kāi)“.DSN”工程文件,proteus7打不開(kāi)“.pdsprj”工程文件;
6、后綴.hex結(jié)尾的文件為燒錄文件,仿真時(shí)一定要記得燒錄程序(.hex)。
注:
請(qǐng)大家將keil安裝在默認(rèn)路徑,C:Keil,不要安裝在其他盤上,以免重新配置工具文件路徑。
遇到問(wèn)題先上網(wǎng)查找答案,大部分問(wèn)題都能在網(wǎng)上找到解決辦法。