新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機的簡易報警器

基于單片機的簡易報警器

作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
一、需求分析

現(xiàn)代社會,家庭安全、財產(chǎn)安全和社會公共安全已成為人們普遍關(guān)注的問題。盜賊破門而入、爬窗而出,博物館展品無故丟失,江河水位上漲……這一系列問題都和人們生活息息相關(guān)。

本文引用地址:http://m.butianyuan.cn/article/201611/315863.htm

針對這類現(xiàn)象,今利用單片機的原理,特設計了一款簡易報警器,來解決這些問題。

二、設計規(guī)劃

1、整體構(gòu)思系統(tǒng),確定工作原理。

2、用Protel99設計電路圖,確定所需元件參數(shù),并由此設計PCB圖。

3、購買所需元件和實驗板,依據(jù)PCB焊接電路。

4、用KeilC51編寫程序,并用仿真器仿真通過,下載至芯片AT89S52。

5、調(diào)試硬件系統(tǒng),符合預期構(gòu)想。

6、創(chuàng)新改進系統(tǒng)。

三、原理設計

原理簡介

通過單片機AT89S52控制紅色LED2、綠色LED1、蜂鳴器U1和監(jiān)測信號端口J2,C3排除干擾信號。圖中S2、EC1和R2組成單片機復位電路,三極管Q0起音頻放大作用,晶振Y0為12MHz,J1接DC5V電源。

工作描述

安全情況下,綠燈點亮,紅燈熄滅,喇叭無聲;一旦信號監(jiān)測端口有脈沖或電平變化(依場合設置為高脈沖或低脈沖,高電平或低電平)出現(xiàn),即觸發(fā)報警器進入報警狀態(tài),紅綠燈交替閃爍,喇叭發(fā)出警報聲。

除非關(guān)閉電源或按下復位鍵,否則會報警不止,從而達到報警目的。

四、硬件設計

1、PCB的設計

PCB屬性:單面板7.62×5.08cm2 (可依場合小型化)

2、元器件清單

3、元件安裝圖

4、布線圖

5、硬件三維圖

五、單片機程序

1、程序流程圖

2、C語言程序

#include
#define Signal 0x00 //脈沖信號定義
sbit LED_G=P0^0;//綠燈驅(qū)動端口
sbit LED_R=P0^1;//紅燈驅(qū)動端口
sbit Pulse=P2^0;//脈沖信號檢測端口
sbit Buzzer=P2^1;//喇叭驅(qū)動端口
unsigned int Count=0;//閃爍時間計數(shù)
//延時1毫秒函數(shù)
void Delay_ms(unsigned int ms)
{
unsigned char Temp;
while(ms--)
for(Temp=0;Temp<120;Temp++);
}
//高脈沖信號掃描函數(shù)
unsigned char Key_Scan()
{
if(Pulse==0)
{
Delay_ms(100);
if(Pulse==1)
{
Delay_ms(200);
return Signal;
}
else return 0xff;
}
else return 0xff;
}
//定時器0初始化
void Timer_Start()
{
TMOD=0x01;
TH0=0xfc;
TL0=0x18;
TR0=0;
ET0=1;
EA=1;
}
//定時器0中斷服務函數(shù),閃燈和鳴喇叭
void Timer0_Serve()interrupt 1
{
TH0=0xfc;
TL0=0x18;
Count++;
if(Count>=200)
{
Count=0;
LED_G=~LED_G;
LED_R=~LED_G;
Buzzer=~Buzzer;
}
}
//主函數(shù)
void main()
{
unsigned char Key_Code;
Timer_Start();
LED_G=0;
LED_R=1;
Buzzer=1;
Pulse=1;
while(1)
{
Key_Code=Key_Scan();
switch(Key_Code)
{
case Signal:TR0=1;break;
default:break;
}
}
}

3、匯編程序

;程序名稱:
; 簡易報警器
;硬件資源:
; 紅色LED-------------P2.3
; 綠色LED-------------P2.4
; 蜂鳴器--------------P2.0
; 脈沖輸入------------P3.4

;-------------------------------------
;端口定義
ledgequp2.4
ledrequp2.3
bzzrequp2.0
plsequp3.4

;-------------------------------------
;數(shù)據(jù)存儲
pulseequ20h.0

;-------------------------------------
;程序代碼
org0000h
jmpmain
org0100h
;系統(tǒng)初始化
init :
clrpulse
setbledr
clrledg
setbbzzr
setbpls
ret

;延時ms毫秒
delay_ms:
movr7,a
delay1 :movr6,#5
delay2 :movr5,#100
djnzr5,$
djnzr6,delay2
djnzr7,delay1
ret

;脈沖檢測
pls_ch :
jbpls,fail
mova,#1
calldelay_ms
jnbpls,succ
jmpfail
succ :setbpulse
jmpexit
fail :clrpulse
exit :ret

;報警信號產(chǎn)生
alarm :
cplbzzr
cplledr
movc,ledr
cplc
movledg,c
ret

;主程序
main :
callinit
scan :callpls_ch
jbpulse,start
jmp scan
start :callalarm
mova,#200
calldelay_ms
jmp start
end

說明:匯編程序的設計思路與C語言的有所不同,程序更高效和緊湊,建議選用。

六、應用舉例

1、家庭安全:在J2端口接一個大面積按鍵,置于門口地毯之下,夜間打開報警器,只要有人踏上地毯,J2獲得一個低脈沖,即觸發(fā)報警,如果再在窗欞上安置一個滑觸開關(guān),一同接入J2端口,則可達到綜合防盜目的。

2、文物安全:在J2端口接一個小按鍵,置于博物館文物之下,全天打開報警器,只要有人拿起文物,按鍵彈起,J2端口立即獲得一個高脈沖,即觸發(fā)報警,如果再增加同樣的檢測端口和指示燈,則可對多個文物同時監(jiān)控。

3、水利安全:在J2端口接一個浮力觸發(fā)裝置,放置在江邊,設定水位報警點,一旦達到危險水位,同樣報警,如果在江邊安置一個水位到電壓的傳感器,經(jīng)AD轉(zhuǎn)換送入單片機,可實時遠程監(jiān)測水位變化。

……

七、功能擴展

在脈沖端口接入一個溫度傳感器,如DS18B20,單片機通過對溫度采樣,可實現(xiàn)自動溫度超限報警。

……

說明:本報警器作為一個簡單的單片機應用設計,適用于畢業(yè)設計或課程設計,而且可依據(jù)需求進行相應的擴展設計。



關(guān)鍵詞: 單片機簡易報警

評論


技術(shù)專區(qū)

關(guān)閉