摘 要:研究并設(shè)計(jì)一種基于單片機(jī)的紅外遙控電子密碼鎖,介紹了系統(tǒng)軟硬件的實(shí)現(xiàn)原理及實(shí)現(xiàn)方法。系統(tǒng)在不擴(kuò)展任何外圍芯片的情況下,能夠?qū)崿F(xiàn)密碼修改、按鍵提示、密碼錯(cuò)誤報(bào)警、超次提示、本機(jī)開鎖、遙控開鎖等功能,而且當(dāng)按鍵間隔超時(shí)時(shí),有自動(dòng)復(fù)位的特點(diǎn)。系統(tǒng)成本低、可靠性高、使用方便,值得廣泛應(yīng)用。
關(guān)鍵詞:電子密碼鎖; 紅外遙控; 單片機(jī); 自動(dòng)復(fù)位
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)13-0159-03
Design and Implementation of Infrared Remote Control Code Lock
MA Dong-mei, QU Xia
(Jiangsu Polytechnic University, Changzhou 213016,China)
Abstract: A kind of infrared remote electronic code lock based on single-chip microcomputer is researched and designed, whose theory and method of the software and hardware are introduced. The system contains code modification, button cue, wrong code alarm, local unlock and remote control without expanding any peripheral chips. The system has characteristic of automatic reset when there′s no button pressed after another in three seconds. The system is safe and reliable,easy to use,worthy of widely use, and has low cost.
Keywords: electronic code lock; infrared remote control; single-chip microcomputer; automatic reset
0 引 言
隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)經(jīng)濟(jì)的發(fā)展,電子密碼鎖取代傳統(tǒng)的機(jī)械鎖已成為一種必然的趨勢(shì)[1]。以往基于單片機(jī)的密碼鎖系統(tǒng),直接將編好的密碼程序存儲(chǔ)在片內(nèi)EPROM中,但不易實(shí)現(xiàn)密碼的修改;如要完成修改密碼功能,多采用片外串行E2PROM實(shí)現(xiàn)[2]。本文研究并設(shè)計(jì)的一種基于單片機(jī)的紅外遙控電子密碼鎖,不但具有普通密碼鎖智能控制上鎖、開鎖、報(bào)警等特點(diǎn),而且在不擴(kuò)展E2PROM的情況下,可以實(shí)現(xiàn)8位密碼任意修改的功能,節(jié)省了硬件資源,減小了系統(tǒng)體積,這是本設(shè)計(jì)的一個(gè)創(chuàng)新點(diǎn)。另外還增加了遙控開鎖的特點(diǎn)。所以該系統(tǒng)不但成本低、保密性強(qiáng),更適用于那些正常人體不宜接近的特殊場合,比如高輻射區(qū)、高傳染區(qū)等。
1 系統(tǒng)硬件設(shè)計(jì)方案
1.1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)主要由紅外發(fā)射模塊和本機(jī)處理接收模塊兩部分構(gòu)成,系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。發(fā)射模塊和本機(jī)處理接收模塊的核心分別采用AT89C2051和AT89S52單片機(jī)。紅外信號(hào)的收發(fā)通過串口進(jìn)行通信,兩部分的串口工作方式及通信波特率的設(shè)置相同[3]。
AT89C2051[4]單片機(jī)是AT89C51的一種精簡版本,只有20個(gè)引腳,體積小;具有2.7~6 V的寬電壓工作范圍;具備低功耗空閑和掉電模式。該單片機(jī)滿足本系統(tǒng)低電壓供電、低功耗、方便隨身攜帶的要求。
在本機(jī)處理接收模塊中,采用了AT89S52[5]單片機(jī), 該單片機(jī)有3個(gè)定時(shí)器。設(shè)置密碼和按鍵開鎖時(shí),均設(shè)計(jì)了按鍵間隔超過3 s自動(dòng)復(fù)位的功能,分別采用定時(shí)器T0和T1定時(shí)實(shí)現(xiàn);定時(shí)器T2設(shè)置串口通信波特率。
圖1 紅外遙控電子密碼鎖系統(tǒng)框圖
1.2 紅外發(fā)射模塊的設(shè)計(jì)
紅外發(fā)射模塊僅僅是一手持遙控器,由AT89C2051單片機(jī)及鍵盤電路、按鍵K及紅外發(fā)光二極管組成。發(fā)射電路原理圖如圖2所示[6]。
發(fā)射模塊設(shè)置的密碼必須與本機(jī)接收模塊相同(設(shè)置密碼方法見2.2.1節(jié)),所設(shè)密碼保存在RAM存儲(chǔ)器的31H~38H單元。在待機(jī)狀態(tài)下,系統(tǒng)工作在空閑方式,當(dāng)按鍵K按下時(shí),系統(tǒng)上電工作,依次發(fā)送密碼信號(hào)。這樣做的優(yōu)點(diǎn)是,密碼不但能跟隨主機(jī)任意改動(dòng),而且遙控開鎖時(shí),僅按一鍵就可完成開鎖,方便了用戶。
圖2 發(fā)射模塊電路原理圖
1.3 本機(jī)處理接收電路的設(shè)計(jì)
本機(jī)處理接收電路的控制核心是AT89S52單片機(jī)。外接鍵盤電路、紅外接收電路、開鎖電路、報(bào)警電路和按鍵指示電路等,電路原理圖如圖3所示。
圖3 本機(jī)處理接收模塊電路原理圖
1.3.1 紅外接收電路的設(shè)計(jì)
紅外接收電路中使用一體化紅外接收頭TL1838[7]接收紅外信號(hào)。TL1838集紅外接收和放大于一體,不需任何外接元件,就能完成從紅外接收到輸出與TTL電平兼容的所有工作,而體積和普通的塑封三極管大小一樣。TL1838的輸出波形如圖4所示。當(dāng)接收到頻帶內(nèi)的紅外信號(hào)時(shí),TL1838會(huì)輸出低電平,否則數(shù)據(jù)高電平,從而將“時(shí)斷時(shí)續(xù)”的紅外信號(hào)解調(diào)成原來的連續(xù)方波信號(hào)。
圖4 TL1838的輸出波形
1.3.2 報(bào)警電路的設(shè)計(jì)
報(bào)警電路采用了蜂鳴器發(fā)聲模擬報(bào)警,蜂鳴器接在CPU的引腳P2.1上,通過NPN型三極管做電流放大,通過單片機(jī)控制蜂鳴器的頻率及蜂鳴時(shí)間。當(dāng)輸入錯(cuò)誤的密碼進(jìn)行開鎖時(shí),由P21口輸出高電平使得NPN型三極管9014導(dǎo)通,蜂鳴器兩端加電,由蜂鳴器發(fā)出3 s的報(bào)警聲,當(dāng)連續(xù)三次出現(xiàn)密碼錯(cuò)誤時(shí),系統(tǒng)將長時(shí)間報(bào)警,有效起到了防盜作用。
1.3.3 電源電路的設(shè)計(jì)
電源部分使用LM7805芯片進(jìn)行穩(wěn)壓后提供單片機(jī)5 V的電壓[8],其電路如圖5所示。主要采用家用交流電,同時(shí)采用9 V電池作為備用電源。這樣做的優(yōu)點(diǎn)是,即使斷電也不至于無法開鎖。
圖5 電源部分電路原理圖
1.3.4 其他外圍電路的設(shè)計(jì)
由于AT89S52單片機(jī)有4個(gè)并行輸入輸出口,硬件資源比較充足,鍵盤電路采用了相對(duì)簡單的獨(dú)立式按鍵;電路中用一繼電器控制一綠色發(fā)光二極管代替具體的鎖,當(dāng)密碼正確時(shí),開鎖5 s,然后自動(dòng)上鎖;P2.0口接一紅色發(fā)光二極管,用其亮與滅來提醒用戶按鍵是否按下。這樣既巧妙地提醒了用戶又有效地保護(hù)了密碼。
2 系統(tǒng)軟件設(shè)計(jì)及實(shí)現(xiàn)
軟件部分的設(shè)計(jì)基于匯編語言[9],采用模塊化設(shè)計(jì)思想,以主程序?yàn)楹诵脑O(shè)置了多個(gè)功能模塊子程序。主程序主要起到一個(gè)導(dǎo)向和決策功能,決定什么時(shí)候系統(tǒng)該做什么,系統(tǒng)的各種功能主要是通過調(diào)用具體的子程序來實(shí)現(xiàn)。
2.1 紅外發(fā)射模塊程序的設(shè)計(jì)
發(fā)射模塊的編碼與調(diào)制工作是由軟件編程實(shí)現(xiàn)的。當(dāng)按鍵K按下時(shí),密碼信號(hào)依次送往數(shù)據(jù)緩沖器SBUF,然后利用“0”電平調(diào)制、“1”電平不調(diào)制的方法,將二進(jìn)制信號(hào)調(diào)制成頻率為38.5 kHz的間斷脈沖串信號(hào),通過P3.0口輸出,驅(qū)動(dòng)紅外發(fā)光二極管,最后以波長940 nm的紅外光發(fā)出紅外遙控信號(hào)。紅外發(fā)射模塊程序流程圖如圖6所示。
圖6 紅外發(fā)射模塊程序流程圖
38.5 kHz已調(diào)波的實(shí)現(xiàn)是依據(jù)匯編語言具有嚴(yán)格的指令周期來實(shí)現(xiàn)的,低電平與高電平均持續(xù)13個(gè)機(jī)器周期,這里采用的時(shí)鐘晶振是12 MHz,所以產(chǎn)生的調(diào)制波的精確頻率為38.46 kHz。
2.2 本機(jī)接收處理模塊程序的設(shè)計(jì)
本機(jī)處理部分可以實(shí)現(xiàn)密碼設(shè)置和修改、本機(jī)按鍵開鎖、按鍵提示、密碼錯(cuò)誤報(bào)警、超次提示、遙控開鎖和按鍵之間超過3 s自動(dòng)復(fù)位等所有的功能。本機(jī)處理的主程序流程圖如圖7所示。
2.2.1 密碼設(shè)置子程序的設(shè)計(jì)
系統(tǒng)只有內(nèi)部上電復(fù)位的時(shí)候才能設(shè)置或者修改密碼。當(dāng)系統(tǒng)復(fù)位時(shí),即進(jìn)入了等待用戶按鍵設(shè)置新密碼狀態(tài),用戶輸入的8位密碼依次保存在RAM存儲(chǔ)單元的41H~48H單元。當(dāng)8位密碼設(shè)置完成后,蜂鳴器鳴響1 s提示密碼已成功設(shè)置。當(dāng)按鍵開鎖時(shí),輸入的密碼依次和RAM存儲(chǔ)器中41H~48H單元的數(shù)相比較,只要有1位不相同,門鎖不但不能打開,而且還發(fā)出報(bào)警信號(hào)。
2.2.2 按鍵間隔超時(shí)的判斷及復(fù)位
前文提到了當(dāng)按鍵間隔超過3 s有自動(dòng)復(fù)位的功能,設(shè)置密碼和按鍵開鎖時(shí)分別采用定時(shí)器T0和T1來實(shí)現(xiàn)。兩定時(shí)器均設(shè)為50 ms定時(shí)中斷,連續(xù)產(chǎn)生60次中斷的時(shí)間是3 s。當(dāng)確實(shí)有鍵按下并彈起時(shí),打開相應(yīng)定時(shí)器中斷并允許其計(jì)數(shù)。假如在下一按鍵按下時(shí),發(fā)生定時(shí)中斷還不到60次,則定時(shí)器停止計(jì)數(shù)并重設(shè)計(jì)數(shù)初值及定時(shí)中斷次數(shù);如果在下一按鍵按下之前,定時(shí)器已發(fā)生60次中斷,表示3 s已到,則系統(tǒng)自動(dòng)進(jìn)行軟件復(fù)位。設(shè)置密碼時(shí)按鍵間隔超時(shí)的復(fù)位程序代碼如下:
INTT0:MOV TH0,#4CH;設(shè)置定時(shí)器初值
MOV TL0,#00H
POP ACC
POP ACC
CLRA ;ACC中內(nèi)容清零
PUSHACC ;把0000H壓入棧頂
PUSHACC
RETI
以上程序當(dāng)執(zhí)行完RETI指令后,PC指針指向0000H,程序從地址0000H處開始執(zhí)行,即實(shí)現(xiàn)了軟件復(fù)位。
圖7 本機(jī)處理接收模塊主程序流程圖
當(dāng)鍵盤開鎖時(shí),如果按鍵間隔超過3 s,這時(shí)的程序“復(fù)位”并不是從地址0000H處執(zhí)行,而是回到“密碼設(shè)置結(jié)束提示音”后的那一條指令處開始執(zhí)行,利用單步執(zhí)行指令的方法得到了此條指令的地址:0FC00H。
3 結(jié) 語
該設(shè)計(jì)的亮點(diǎn)在于沒有擴(kuò)展任何E2PROM的情況下,實(shí)現(xiàn)了任意修改密碼的功能,且采用軟件復(fù)位的方法取消無效按鍵。通過對(duì)本系統(tǒng)設(shè)置密碼、鍵盤開鎖、紅外遙控開鎖等各方面的情況進(jìn)行試驗(yàn)測(cè)試,驗(yàn)證了系統(tǒng)的精確性和安全性。實(shí)驗(yàn)證明該系統(tǒng)成本低、可靠性高,值得推廣與應(yīng)用。
參考文獻(xiàn)
[1]郭海英.基于單片機(jī)的電子安全密碼鎖的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2005,28(13):95-97.
[2]劉振海.一種基于單片機(jī)和串行E2PROM的智能密碼鎖[J].微計(jì)算機(jī)信息,2007,23(35):133-134.
[3]戴佳,戴衛(wèi)恒,劉博文.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].2版.北京:電子工業(yè)出版社,2008.
[4]Atmel. AT89C2051高性能8位單片機(jī)[EB/OL]. [ 2008-09-20] . http://www.zymcu.com/atmel_file/at89c2051.htm.
[5]Atmel. AT89S52[EB/OL]. [ 2009-02-13] . http://www.atmel.com/dyn/resources/prod_documents/doc1919.pdf.
[6]劉坤,高征紅,晁陽.Protel 99SE電路設(shè)計(jì)實(shí)例教程[M].北京:清華大學(xué)出版社,2008.
[7]佚名.TL1838功能描述和相關(guān)資料[EB/OL] .[ 2008-07-09] .http://www.datasheet5.com/datasheet_pdf/IYEATGIHFVSTG/TL1838/.
[8]康華光.電子技術(shù)基礎(chǔ)模擬部分[M].5版.北京:高等教育出版社,2006.
[9]張友德,趙志英,涂時(shí)亮.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2003.