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