功能要求:
基于這個設(shè)計的上述要求,根據(jù)功能要求,須設(shè)計有下載電路、顯示電路、LED控制電路、定時電路、報警電路,主控電路各個電路都有其自己的功能。通過復(fù)位按鍵“KEY1”,電路進入就緒狀態(tài)。然后傳感器開始預(yù)熱大概20秒,該預(yù)設(shè)初值為60,然后實時檢測周邊的濃度,如果檢測濃度正常,報警電路不會工作進入休眠狀態(tài),屏幕會顯示正常。如果家庭的煙霧濃度超過該預(yù)設(shè)值,報警電路就會報警,并且led會持續(xù)閃爍,屏幕上顯示報警!提醒居民要注意。該濃度值還可以手動調(diào)節(jié),加與減,當設(shè)置最大的閾值,報警電路也是可以報警,需要手動關(guān)閉。
原理圖:
部分程序:
#include "gather.h"
void main()
{
u8 temp;
/****IO口初始化****/
P0M1=P0M0=0X00;
P1M1=P1M0=0X00;
P2M1=P2M0=0X00;
P4M1=P4M0=0X00;
/****定時器初始化****/
Timer0Init();
ET0=0;
while(1)
{
smg();//數(shù)碼管顯示
temp=keyscan();//按鍵掃描
if(temp==1&&ET0==1)//判斷返回值是否為1與定時器0是否打開 如果都滿足條件 執(zhí)行以下程序
{
JDQ1=!JDQ1; //繼電器led取反
LED1=!LED1;
LED2=!LED2;
}
if(JDQ1==0){LED2=0;LED1=1;}//當繼電器1為0時 切換燈效果
if(JDQ1==1){LED2=1;LED1=0;}
if(IR==0)ET0=1;
if(min<=0)//當?shù)褂嫊r為0時 所有繼電器關(guān)閉
{
JDQ1=1;
JDQ2=1;
}
}
}