 利用單片機制(zhi)作報(bao)警(jing)器及報(bao)警(jing)系統常見問題分析(xi)
							時(shi)間:2018-07-26      來(lai)源:未知
							利用單片機制(zhi)作報(bao)警(jing)器及報(bao)警(jing)系統常見問題分析(xi)
							時(shi)間:2018-07-26      來(lai)源:未知 
							利(li)用單片機制作(zuo)報警器(qi)及報警系統常見問(wen)題(ti)分析,在現代社(she)會(hui),家庭安全、財產(chan)安全和社(she)會(hui)公共安全已成為人(ren)們(men)普遍關(guan)注的問(wen)題(ti)。小偷闖(chuang)入大門,爬上窗戶,博物館展品沒有(you)理由失去,河(he)水水位(wei)上升…這一系列問(wen)題(ti)與人(ren)們(men)的生活息(xi)息(xi)相關(guan)。
針對(dui)這(zhe)種現象,我(wo)們(men)利(li)用(yong)單(dan)片機原理,專(zhuan)門設計(ji)了一種簡單(dan)的報警裝置(zhi)來解決這(zhe)些問題(ti)。
一(yi)、設計(ji)規劃
1、整體構思系統(tong),確(que)定工作原理(li)。
2、用Protel99設(she)計(ji)電路圖,確定(ding)所需元件參數,并由此設(she)計(ji)PCB圖。
3、購(gou)買所需元件和實驗板,依據PCB焊接電路。
4、用KeilC51編寫程(cheng)序,并用仿(fang)(fang)真器仿(fang)(fang)真通過,下載至芯(xin)片(pian)AT89S52。
5、調(diao)試(shi)硬(ying)件系(xi)統,符合預期構想(xiang)。
6、創新改進系統。
二、原理設計
 
原理簡介
通過單(dan)片(pian)機AT89S52控制(zhi)紅色(se)(se)LED2、綠色(se)(se)LED1、蜂鳴器(qi)U1和(he)監測(ce)信號端口J2,C3排除干擾信號。圖中S2、EC1和(he)R2組成單(dan)片(pian)機復位電路(lu),三極管Q0起音頻(pin)放大作(zuo)用,晶(jing)振Y0為12MHz,J1接DC5V電源。
工作描述
安全情況(kuang)下,綠燈(deng)點(dian)亮(liang),紅燈(deng)熄滅(mie),喇叭(ba)無聲;一(yi)旦信號(hao)監測端口有脈沖或電平變化(hua)(依場(chang)合設置為高脈沖或低脈沖,高電平或低電平)出現(xian),即觸發報(bao)警器進入報(bao)警狀態,紅綠燈(deng)交替閃爍,喇叭(ba)發出警報(bao)聲。
除非關閉電(dian)源或按下(xia)復位鍵,否則會報警不止(zhi),從而達到報警目(mu)的(de)。
三、硬件設計
1、PCB的設計
 
PCB屬(shu)性(xing):單(dan)面板7.62×5.08cm2 (可依場合小型(xing)化)
2、元器(qi)件清單
  
3、元件(jian)安(an)裝圖
  
4、布線圖
  
四、單片機程序
1、程序(xu)流程圖
  
2、C語(yu)言程序(xu)
#include
#define Signal 0x00 //脈(mo)沖信號定義
sbit LED_G=P0^0; //綠燈驅(qu)動端口
sbit LED_R=P0^1; //紅燈(deng)驅動(dong)端口
sbit Pulse=P2^0; //脈沖(chong)信號檢測端口
sbit Buzzer=P2^1; //喇叭驅動端口
unsigned int Count=0;//閃爍(shuo)時(shi)間(jian)計數
//延時1毫秒(miao)函數
void Delay_ms(unsigned int ms)
{
unsigned char Temp;
while(ms--)
for(Temp=0;Temp<120;Temp++);
}
//高脈沖信號(hao)掃描函數
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初(chu)始(shi)化
void Timer_Start()
{
TMOD=0x01;
TH0=0xfc;
TL0=0x18;
TR0=0;
ET0=1;
EA=1;
}
//定時器0中斷服務(wu)函數(shu),閃燈(deng)和鳴喇叭
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;
}
}
//主函數
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、匯編程序
;程序名稱:
; 簡(jian)易報警器
;硬件資源:
; 紅色LED-------------P2.3
; 綠色(se)LED-------------P2.4
; 蜂鳴器--------------P2.0
; 脈沖輸入------------P3.4
;-------------------------------------
;端口定義
ledg equ p2.4
ledr equ p2.3
bzzr equ p2.0
pls equ p3.4
;-------------------------------------
;數據存儲
pulse equ 20h.0
;-------------------------------------
;程序代碼
org 0000h
jmp main
org 0100h
;系統初始化
init :
clr pulse
setb ledr
clr ledg
setb bzzr
setb pls
ret
;延時ms毫秒
delay_ms:
mov r7,a
delay1 :mov r6,#5
delay2 :mov r5,#100
djnz r5,$
djnz r6,delay2
djnz r7,delay1
ret
;脈沖檢測
pls_ch :
jb pls,fail
mov a,#1
call delay_ms
jnb pls,succ
jmp fail
succ :setb pulse
jmp exit
fail :clr pulse
exit :ret
;報警信號(hao)產生(sheng)
alarm :
cpl bzzr
cpl ledr
mov c,ledr
cpl c
mov ledg,c
ret
;主程序
main :
call init
scan :call pls_ch
jb pulse,start
jmp scan
start :call alarm
mov a,#200
call delay_ms
jmp start
end
說明(ming):匯編(bian)程序的設計思路與C語言的有(you)所(suo)不同,程序更高(gao)效(xiao)和緊(jin)湊,建(jian)議(yi)選用。
五、應用舉例
1、家庭安全(quan):在J2端口(kou)接(jie)一個(ge)大面積按鍵,置于門口(kou)地毯之下,夜間打(da)開(kai)報警器,只要有人踏上地毯,J2獲得一個(ge)低脈沖,即觸發報警,如果再在窗欞上安置一個(ge)滑觸開(kai)關,一同接(jie)入J2端口(kou),則(ze)可達(da)到綜合防(fang)盜目的。
2、文(wen)物安全:在J2端(duan)口(kou)接一個小按鍵(jian),置于博(bo)物館(guan)文(wen)物之下,全天打開報警器,只要有人拿起(qi)文(wen)物,按鍵(jian)彈(dan)起(qi),J2端(duan)口(kou)立即獲(huo)得(de)一個高(gao)脈沖,即觸發(fa)報警,如果再增加(jia)同樣(yang)的檢測(ce)端(duan)口(kou)和指示燈,則可對(dui)多個文(wen)物同時監控。
3、水(shui)(shui)利安(an)全(quan):在J2端口(kou)接(jie)一個(ge)浮力觸發裝(zhuang)置(zhi),放置(zhi)在江邊,設定水(shui)(shui)位報(bao)警點,一旦達到危險水(shui)(shui)位,同樣(yang)報(bao)警,如果在江邊安(an)置(zhi)一個(ge)水(shui)(shui)位到電壓的傳(chuan)感器,經AD轉換送入單片機,可實時遠程監測水(shui)(shui)位變(bian)化。
……
六、功能擴展
在脈沖端口接(jie)入一個溫度傳感器,如DS18B20,單片機通過(guo)對溫度采(cai)樣,可實(shi)現自動溫度超限報警。
……
說明(ming):本報警(jing)器(qi)作為(wei)一個簡單的單片機應用設計(ji),適(shi)用于(yu)畢業(ye)設計(ji)或課程(cheng)設計(ji),而且可依據需求(qiu)進行相應的擴(kuo)展設計(ji)。
七、常見問題
利用(yong)單片機(ji)應用(yong)系統進行(xing)報(bao)警的常用(yong)方法(fa)是(shi)什么?
常(chang)用的方法就是把(ba)采集到的數據(ju)送到單片機應用系(xi)統(tong)進(jin)行處理,與該參數的上、下限(xian)給定值進(jin)行比(bi)較,若(ruo)超過給定值時則(ze)進(jin)行報警,否則(ze),就作為正常(chang)值進(jin)行顯示或控制(zhi)。
利用(yong)(yong)單片機應用(yong)(yong)系(xi)統(tong)進行報警的常用(yong)(yong)方法是(shi)什么(me)?
在單片機(ji)報警(jing)系統中,發光二極(ji)管常用何種型號的集成電(dian)路驅動?
由于發光二極(ji)管的(de)(de)(de)驅(qu)動電流在(zai)20~30mA,所以不能用TTL門電路(lu)的(de)(de)(de)輸出直接啟動。在(zai)單片機報警系統中,發光二極(ji)管常見(jian)的(de)(de)(de)驅(qu)動方法是采用OC門進(jin)行驅(qu)動,如74LS06或74LS07等型號(hao)的(de)(de)(de)OC門。
單片機報警系統(tong)有(you)哪兩種程序設計方法?
依據報(bao)警(jing)(jing)參(can)數和傳感器劃(hua)分,簡單的(de)報(bao)警(jing)(jing)程序可分為兩種(zhong):一種(zhong)是全軟件(jian)報(bao)警(jing)(jing)程序,另(ling)一種(zhong)是硬件(jian)申(shen)請(qing),軟件(jian)處(chu)理報(bao)警(jing)(jing)程序。
怎樣使(shi)用全(quan)軟(ruan)件報警(jing)程序的方法實現報警(jing)?
全軟件(jian)件(jian)報警程(cheng)序的(de)基(ji)本(ben)方法是(shi):作業現場的(de)被測(ce)參數經傳(chuan)感器、變送器、模/數轉換器送到單片機(ji)后,再與規定的(de)上、下限給定值(zhi)相比較(jiao),根(gen)據(ju)比較(jiao)的(de)結(jie)果進行報警或(huo)處理,其整(zheng)個過(guo)程(cheng)都由(you)軟件(jian)實(shi)現。
怎樣用硬(ying)件申請、軟件處理報警程序的(de)方法(fa)實現報警?
使用這種報(bao)警方法時,報(bao)警要求不是通過程序比較法得到的,而(er)是直接由傳感(gan)器(qi)產生的。在(zai)發現(xian)警性(xing),傳感(gan)器(qi)發出報(bao)警要求之后,立即(ji)向CPU提出中斷申請,CPU響應中斷后,立刻進(jin)入中斷服務程序,實(shi)現(xian)報(bao)警或對(dui)參數、位置實(shi)現(xian)監控(kong)。例如(ru):電接點壓力(li)式報(bao)警,吊車的限(xian)位控(kong)制等(deng)。
報警程序根據(ju)系統中的參數的要(yao)求,可以分(fen)為哪(na)兩(liang)種程序?
報(bao)警(jing)程(cheng)序根據系統和參數的(de)要(yao)求,可(ke)以分(fen)為(wei)簡單的(de)越限報(bao)警(jing)和報(bao)警(jing)處理(li)程(cheng)序兩種。

