賀錢琛
摘要:本文首先從設(shè)計背景和意義出發(fā),闡述了設(shè)計該報警電路的必要性。接著以單片機為核心,設(shè)計了報警電路圖,同時敘述了電路圖中的連接方式。然后對設(shè)計電路進(jìn)行了調(diào)試,列出了調(diào)試步驟。最后從三個方面出發(fā),分析了影響該電路設(shè)計的相關(guān)因素,同時附上了實現(xiàn)報警的部分程序。所以本文有著比較重大的研究意義。
關(guān)鍵詞:單片機 設(shè)計 仿真 報警電路
中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)05-0000-00
1 設(shè)計背景及意義
當(dāng)前很多地方都發(fā)生了火災(zāi),可是本應(yīng)該可以防范的火災(zāi)卻發(fā)生,可怕的火災(zāi)燒毀我們的財物,嚴(yán)重的是付出生命的代價。所以一種能夠檢測出溫度、煙霧和火光的設(shè)計電路顯得尤為重要,本文就是從這三點出發(fā)來設(shè)計的。
本電路的研究意義比較重大,只要溫度傳感器、煙霧傳感器或火光傳感器檢測到信號,信號通過單片機,單片機再通過其輸出端對發(fā)光二極管點亮,并使喇叭發(fā)聲報警。
2 報警電路的設(shè)計
如圖1-1所示,本電路是以單片機P89C51X2BN為主控器件,用于檢測信號并作出相應(yīng)的輸出。1腳和2腳之間連接溫度傳感器MK1,5腳和6腳之間連接煙霧傳感器MK2,21腳和22腳之間連接火花傳感器MK3,三個傳感器主要用于對溫度、煙霧和火光的檢測。單片機的9腳為復(fù)位信號端,主要用于實現(xiàn)對電路的復(fù)位操作,復(fù)位電路包括電阻R1、電容C3,開關(guān)S1,三者并聯(lián),最后一起連接到電源VCC2,按下開關(guān)S1起到復(fù)位的作用。單片機U1的18、19腳連接的是起振電路,起振電路由電容C1、C2和12MHZ的晶振Y1連接,起振電路用于對單片機提供基準(zhǔn)頻率,能夠確保單片機的周而復(fù)始的工作,單片機的控制電路根據(jù)輸入輸入信號的不同而對其輸出的電路提供相應(yīng)的控制操作[1]。其輸出電路連接至單片機的36腳,輸出電路主要由電阻R1、發(fā)光二極管D1、三極管9013、電容C4和喇叭Speaker組成。發(fā)光二極管D1起到顯示作用,而喇叭Speaker可以實現(xiàn)報警。
3電路調(diào)試結(jié)果
按照如圖所示連接好電路圖,并將程序載入到單片中進(jìn)行調(diào)試,調(diào)試步驟如下:
第一步:檢查復(fù)位電路,主要是按鍵和電容,注意如果有極性的電容,則需要注意電容的正極性。第二步:檢測單片機的起振電路,檢測晶振和兩個電容,注意晶振不能虛焊,同時注意需要接地,否則工作不正常。同時堅持三個傳感器是否合格,連接是否正確,報警處的發(fā)光二極管和喇叭是否工作正常。第三步:當(dāng)單片機能夠正常工作后。接通電源后,上電復(fù)位啟動單片機。當(dāng)溫度傳感器MK1、煙霧傳感器MK2和火花傳感器MK3檢測到信號的時候,檢測到的信號經(jīng)過單片機。單片機在程序的控制下,在36腳輸出高電平,高電平經(jīng)過發(fā)光二極管,同時經(jīng)過三極管放大進(jìn)入喇叭處報警。
4 影響因素分析
本設(shè)計可以較為準(zhǔn)確的檢測出溫度、煙霧和火花的信號,同時能夠夠通過輸出信號實現(xiàn)發(fā)光二極管亮和喇叭的報警。但是仍然存在一定的誤差因素。
(1)傳感器質(zhì)量的影響。目前傳感器的種類繁多,找一些質(zhì)量較好的傳感器比較重要,傳感器的安裝位置也比較關(guān)鍵。既要做到報警準(zhǔn)確,同時要做到如何安放。(2)單片機程序的控制影響。單片機是在程序的作用下進(jìn)行操作的,所以燒錄程序時要確保其運行結(jié)果正確,單片機的選擇也很重要,本設(shè)計選用51系列的單片機比較好[2]。(3)發(fā)光二極管和喇叭安裝位置的影響。既然是報警電路的設(shè)計,所以要方便我們能夠馬上知道危險信號的發(fā)生。所以發(fā)光二極管應(yīng)該安裝在比較顯眼的位置,喇叭也應(yīng)該安裝在很容易聽到的位置。
綜上所述,整個電路設(shè)計性能較好,精度較高,報警準(zhǔn)確,程序通俗易懂,各項指標(biāo)達(dá)到了報警器的要求。
附錄:
uint Read_Temp()
{ unsigned int j;
unsigned long m1;
float m2;
j=Start_Max187();
m1=125L*j;
m2=1142784+m1;
m1=14217216-m1;
m2*=1000000;
m1=m2/m1;
if(m1>100000)
{ m1-=100000;
m1*=100;
j=m1/3851;
j+=499;
}
else
{ m1=100000-m1;
m1*=100;
j=m1/3851;
j=499-j;
}
return j;
}
void Process_Alarm(uint temp)
{
if(temp>upperv)
{ LEDREDCON=0;
SPEAKERCON=0;
}
else if(temp { LEDGREENCON=0; SPEAKERCON=0; } 參考文獻(xiàn) [1] 田澤.《嵌入式開發(fā)教程》.北京航天航空出版社,2005年第 2 版. [2] 戴佳.51單片機C語言應(yīng)用程序設(shè)計實例精講[M].北京:電子工業(yè)出版社,2008.