智能燈光晚上有人+晚上有聲音防盜報(bào)警
(1)利用單片機(jī)作為中央處理器;
(2)實(shí)現(xiàn)了室內(nèi)無(wú)人或者關(guān)照充足時(shí)燈光自動(dòng)光燈,有人到來(lái)且光照不足時(shí)自動(dòng)開(kāi)啟燈光或者光線不足有聲音時(shí)自動(dòng)開(kāi)啟燈光。
(3)延時(shí)關(guān)燈;
(4)所設(shè)計(jì)的智能燈光控制系統(tǒng)具有防盜報(bào)警功能,布防后如果檢測(cè)到人具有聲光報(bào)警功能。
(5)所設(shè)計(jì)的開(kāi)關(guān)系統(tǒng)應(yīng)做到節(jié)能、智能、耐用、可靠性高以及維護(hù)方便。
(6)在硬件設(shè)計(jì)時(shí),結(jié)構(gòu)要盡量簡(jiǎn)單實(shí)用、易于實(shí)現(xiàn),使系統(tǒng)電路盡量簡(jiǎn)單。(7)根據(jù)硬件電路圖,在開(kāi)發(fā)板上完成器件的焊接。
(8)根據(jù)設(shè)計(jì)的硬件電路,編寫(xiě)控制STC89C52芯片的單片機(jī)程序。
(9)通過(guò)編程、編譯、調(diào)試,把程序下載到單片機(jī)上運(yùn)行,并實(shí)現(xiàn)本設(shè)計(jì)的功能。
部分源程序如下: #include "std_for_wym.h"
sbit Ji_D_Qi = P1^0; //繼電器接口 sbit Rsd = P1^1; //紅外熱釋電接口 sbit Led = P1^2; //紅外熱釋電信號(hào)指示接口 sbit Light = P1^3; //光敏電阻接口 sbit shengyin= P1^4;
#define TIMEMIN 6 //檢測(cè)到一次吸合2分鐘 sbit bufang=P2^0; //布防按鍵 sbit beep = P2^1; //蜂鳴器定義 sbit green = P2^5; //綠色發(fā)光二極管定義 sbit yellow = P2^4; //黃色發(fā)光二極管定義 sbit hw = P2^6; //紅外熱釋傳感器定義 bit flag_300ms = 0;
uchar flag_alarm ; //報(bào)警標(biāo)志位 uchar flag_bufang ; //布防標(biāo)志位 uchar flag_bufang_en ; //布防標(biāo)志位使能 uint flag_value,flag_value2; //用做定時(shí)器的變量 uchar flag_deng_en ; //燈標(biāo)志位使能 /*************定時(shí)器0初始化程序***************/ void time_init() { EA = 1; //開(kāi)總中斷 TMOD = 0X01; //定時(shí)器0工作方式1 ET0 = 1; //開(kāi)定時(shí)器0中斷 TR0 = 1; //允許定時(shí)器0定時(shí) }
/******************紅外報(bào)警處理**********************/ void hongwai_dis() { if(flag_alarm == 1) //報(bào)警 { beep = ~beep; //蜂鳴器報(bào)警 } if(flag_bufang_en == 1) //準(zhǔn)備開(kāi)始布防 { green = ~green; //綠燈閃
} if(flag_bufang == 1) //確認(rèn)布防 { green = 0; //如果延時(shí)布防成功 綠燈長(zhǎng)亮 if(hw == 1) //紅外有輸出 { flag_alarm = 1; } }
}
|