1.系統功能
火災報警器,主要檢測溫度和煙霧,再通過微控制器控制相應的報警和驅動負載。通過液晶顯示當前的煙霧值和溫度值,通過按鍵設定相應的閥值。
主要包括以下幾項功能:
(1)火情探測功能:為了提高火災報警的準確性和及時性,火災報警系統需要使用各種方法進行火災探測。在實際使用中,根據不同的防火場所,使用者可以選用溫度探測法、可燃氣體檢測法及煙霧探測法等合適的火災探測方法,來有效的探測火災;
(2)燈光報警功能:當室內煙霧濃度過大、有火情產生、故障等異常情況發生時,報警器要進行燈光報警。當煙霧超過最大設定值時,可以蜂鳴器報警。
2.系統硬體方案設計
(1)硬體框圖
本設計主要由煙霧探測感測器電路、微控制器、燈光報警電路、負載驅動電路、控制程式和編譯碼程式等組成。
系統的組成結構如下:
(2)系統硬體設計
實時顯示當前的煙霧值和溫度值,共有2個報警值(可以通過按鍵設定),分別是溫度的上限和煙霧的上限報警值,當煙霧超過的時候紅燈和蜂鳴器聲光報警,當溫度超過時候黃燈和蜂鳴器聲光報警。
(3)煙霧探測電路的設計
如圖所示,在這個電路中,有兩個部分,主要是煙霧感測器檢測煙霧,將電壓訊號給adc0809,模數轉換電路將模擬訊號轉換成數碼訊號給微控制器,微控制器再讀取相應的數值和處理。
3.軟體設計
(1)程式流程圖
(2)lcd1602驅動程式
//巨集定義
#define uint unsigned int
#define uchar unsigned char
//lcd管腳宣告 (rw引腳實物直接接地,因為本設計只用到液晶的寫操作,rw引腳一直是低電平)
sbit lcdrs = p2^3;
sbit lcden= p2^4;
//初始畫時顯示的內容
uchar code init1=" set e:000 ";
uchar code init2=" now e:000 ";
//lcd延時
void lcddelay(uint z) //該延時大約100us(不精確,液晶操作的延時不要求很精確)
//寫命令
void write_com(uchar com)
//寫資料
void write_data(uchar date)
//1602初始化
void init1602()
write_com(0x80+0x40);//設定位置
for(i=0;i<16;i++) }
void display_1602(yushe_yanwu,temp)
(3)按鍵處理程式
/*************************按鍵說明******************************/
/*1鍵設定按鍵
2鍵加按鍵
3鍵減按鍵
按一下設定鍵,溫度報警值閃爍,此時按下加減按鍵調節溫度報警值;再按一下設定鍵,煙霧報警值閃爍,此時按下加減按鍵,調節煙霧報警值;設定完成後,再按一下設定按鍵,退出設定。系統開始正常檢測煙霧溫度值,並且根據報警值判斷是否開啟報警
*///按鍵
sbit key1=p2^6; //設定鍵
sbit key2=p2^7; //加按鍵
sbit key3=p3^7; //減按鍵
void key()
case 2: //當模式加到3時
}} }
if(key2==0&&mode!=0) //加按鍵只有在模式不等於0時有效
if(key3==0&&mode!=0)
}
(4)主程式
/*****主函式*****/
void main()
else //煙霧值小於預設值時
if(temp}}}
微控制器自動水滿報警器
摘 要 i abstract 1 引言 1 2電路原理圖 1 3工作原理 1 4 元件引數選擇 2 5 pcb設計流程 2 6 pcb板的3d顯示 4 7安裝與除錯 4 7.1 理論分析 4 7.2 實際除錯過程 6 8 結論 6 參考文獻 6 致 謝 9 自動水滿報警器 摘 要自動水滿報警器是當今...
51微控制器之煙霧報警器(MQ 2)
今天朋友做畢業設計,讓我幫他寫下程式,花了兩個小時,給了他們乙個模板,雖然很簡單,但是還是拿出來分享吧,適用於初學者。高手不要忘下看了 要求 液晶屏顯示.四個按鍵分別控制選擇設定值位數,加一,減一。報警功能開關鍵 lcd.c檔案 include define lcd1602 4pins define...
基於51微控制器的計算器
繼續寫一下寒假做的51小專案,這一次是基於at89c51的計算器,帶乙個八位密碼鎖功能。具體實現了計算器的加減乘除功能,並且自帶八位密碼鎖,輸入密碼後按 確定,錯誤輸入三次密碼就會鎖定,重啟後解除鎖定,密碼可以在密碼表中設定。顯示部分採用了1602顯示屏。這一次在使用ad畫pcb時,考慮到計算器要脫...