摘 要:研究并設(shè)計一種基于單片機的紅外遙控電子密碼鎖,介紹了系統(tǒng)軟硬件的實現(xiàn)原理及實現(xiàn)方法。系統(tǒng)在不擴展任何外圍芯片的情況下,能夠?qū)崿F(xiàn)密碼修改、按鍵提示、密碼錯誤報警、超次提示、本機開鎖、遙控開鎖等功能,而且當按鍵間隔超時時,有自動復位的特點。系統(tǒng)成本低、可靠性高、使用方便,值得廣泛應用。
關(guān)鍵詞:電子密碼鎖; 紅外遙控; 單片機; 自動復位
中圖分類號:TP274 文獻標識碼:A
文章編號: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 引 言
隨著科學技術(shù)的進步和社會經(jīng)濟的發(fā)展,電子密碼鎖取代傳統(tǒng)的機械鎖已成為一種必然的趨勢[1]。以往基于單片機的密碼鎖系統(tǒng),直接將編好的密碼程序存儲在片內(nèi)EPROM中,但不易實現(xiàn)密碼的修改;如要完成修改密碼功能,多采用片外串行E2PROM實現(xiàn)[2]。本文研究并設(shè)計的一種基于單片機的紅外遙控電子密碼鎖,不但具有普通密碼鎖智能控制上鎖、開鎖、報警等特點,而且在不擴展E2PROM的情況下,可以實現(xiàn)8位密碼任意修改的功能,節(jié)省了硬件資源,減小了系統(tǒng)體積,這是本設(shè)計的一個創(chuàng)新點。另外還增加了遙控開鎖的特點。所以該系統(tǒng)不但成本低、保密性強,更適用于那些正常人體不宜接近的特殊場合,比如高輻射區(qū)、高傳染區(qū)等。
1 系統(tǒng)硬件設(shè)計方案
1.1 系統(tǒng)總體設(shè)計
系統(tǒng)主要由紅外發(fā)射模塊和本機處理接收模塊兩部分構(gòu)成,系統(tǒng)總體設(shè)計框圖如圖1所示。發(fā)射模塊和本機處理接收模塊的核心分別采用AT89C2051和AT89S52單片機。紅外信號的收發(fā)通過串口進行通信,兩部分的串口工作方式及通信波特率的設(shè)置相同[3]。
AT89C2051[4]單片機是AT89C51的一種精簡版本,只有20個引腳,體積小;具有2.7~6 V的寬電壓工作范圍;具備低功耗空閑和掉電模式。該單片機滿足本系統(tǒng)低電壓供電、低功耗、方便隨身攜帶的要求。
在本機處理接收模塊中,采用了AT89S52[5]單片機, 該單片機有3個定時器。設(shè)置密碼和按鍵開鎖時,均設(shè)計了按鍵間隔超過3 s自動復位的功能,分別采用定時器T0和T1定時實現(xiàn);定時器T2設(shè)置串口通信波特率。
圖1 紅外遙控電子密碼鎖系統(tǒng)框圖
1.2 紅外發(fā)射模塊的設(shè)計
紅外發(fā)射模塊僅僅是一手持遙控器,由AT89C2051單片機及鍵盤電路、按鍵K及紅外發(fā)光二極管組成。發(fā)射電路原理圖如圖2所示[6]。
發(fā)射模塊設(shè)置的密碼必須與本機接收模塊相同(設(shè)置密碼方法見2.2.1節(jié)),所設(shè)密碼保存在RAM存儲器的31H~38H單元。在待機狀態(tài)下,系統(tǒng)工作在空閑方式,當按鍵K按下時,系統(tǒng)上電工作,依次發(fā)送密碼信號。這樣做的優(yōu)點是,密碼不但能跟隨主機任意改動,而且遙控開鎖時,僅按一鍵就可完成開鎖,方便了用戶。
圖2 發(fā)射模塊電路原理圖
1.3 本機處理接收電路的設(shè)計
本機處理接收電路的控制核心是AT89S52單片機。外接鍵盤電路、紅外接收電路、開鎖電路、報警電路和按鍵指示電路等,電路原理圖如圖3所示。
圖3 本機處理接收模塊電路原理圖
1.3.1 紅外接收電路的設(shè)計
紅外接收電路中使用一體化紅外接收頭TL1838[7]接收紅外信號。TL1838集紅外接收和放大于一體,不需任何外接元件,就能完成從紅外接收到輸出與TTL電平兼容的所有工作,而體積和普通的塑封三極管大小一樣。TL1838的輸出波形如圖4所示。當接收到頻帶內(nèi)的紅外信號時,TL1838會輸出低電平,否則數(shù)據(jù)高電平,從而將“時斷時續(xù)”的紅外信號解調(diào)成原來的連續(xù)方波信號。
圖4 TL1838的輸出波形
1.3.2 報警電路的設(shè)計
報警電路采用了蜂鳴器發(fā)聲模擬報警,蜂鳴器接在CPU的引腳P2.1上,通過NPN型三極管做電流放大,通過單片機控制蜂鳴器的頻率及蜂鳴時間。當輸入錯誤的密碼進行開鎖時,由P21口輸出高電平使得NPN型三極管9014導通,蜂鳴器兩端加電,由蜂鳴器發(fā)出3 s的報警聲,當連續(xù)三次出現(xiàn)密碼錯誤時,系統(tǒng)將長時間報警,有效起到了防盜作用。
1.3.3 電源電路的設(shè)計
電源部分使用LM7805芯片進行穩(wěn)壓后提供單片機5 V的電壓[8],其電路如圖5所示。主要采用家用交流電,同時采用9 V電池作為備用電源。這樣做的優(yōu)點是,即使斷電也不至于無法開鎖。
圖5 電源部分電路原理圖
1.3.4 其他外圍電路的設(shè)計
由于AT89S52單片機有4個并行輸入輸出口,硬件資源比較充足,鍵盤電路采用了相對簡單的獨立式按鍵;電路中用一繼電器控制一綠色發(fā)光二極管代替具體的鎖,當密碼正確時,開鎖5 s,然后自動上鎖;P2.0口接一紅色發(fā)光二極管,用其亮與滅來提醒用戶按鍵是否按下。這樣既巧妙地提醒了用戶又有效地保護了密碼。
2 系統(tǒng)軟件設(shè)計及實現(xiàn)
軟件部分的設(shè)計基于匯編語言[9],采用模塊化設(shè)計思想,以主程序為核心設(shè)置了多個功能模塊子程序。主程序主要起到一個導向和決策功能,決定什么時候系統(tǒng)該做什么,系統(tǒng)的各種功能主要是通過調(diào)用具體的子程序來實現(xiàn)。
2.1 紅外發(fā)射模塊程序的設(shè)計
發(fā)射模塊的編碼與調(diào)制工作是由軟件編程實現(xiàn)的。當按鍵K按下時,密碼信號依次送往數(shù)據(jù)緩沖器SBUF,然后利用“0”電平調(diào)制、“1”電平不調(diào)制的方法,將二進制信號調(diào)制成頻率為38.5 kHz的間斷脈沖串信號,通過P3.0口輸出,驅(qū)動紅外發(fā)光二極管,最后以波長940 nm的紅外光發(fā)出紅外遙控信號。紅外發(fā)射模塊程序流程圖如圖6所示。
圖6 紅外發(fā)射模塊程序流程圖
38.5 kHz已調(diào)波的實現(xiàn)是依據(jù)匯編語言具有嚴格的指令周期來實現(xiàn)的,低電平與高電平均持續(xù)13個機器周期,這里采用的時鐘晶振是12 MHz,所以產(chǎn)生的調(diào)制波的精確頻率為38.46 kHz。
2.2 本機接收處理模塊程序的設(shè)計
本機處理部分可以實現(xiàn)密碼設(shè)置和修改、本機按鍵開鎖、按鍵提示、密碼錯誤報警、超次提示、遙控開鎖和按鍵之間超過3 s自動復位等所有的功能。本機處理的主程序流程圖如圖7所示。
2.2.1 密碼設(shè)置子程序的設(shè)計
系統(tǒng)只有內(nèi)部上電復位的時候才能設(shè)置或者修改密碼。當系統(tǒng)復位時,即進入了等待用戶按鍵設(shè)置新密碼狀態(tài),用戶輸入的8位密碼依次保存在RAM存儲單元的41H~48H單元。當8位密碼設(shè)置完成后,蜂鳴器鳴響1 s提示密碼已成功設(shè)置。當按鍵開鎖時,輸入的密碼依次和RAM存儲器中41H~48H單元的數(shù)相比較,只要有1位不相同,門鎖不但不能打開,而且還發(fā)出報警信號。
2.2.2 按鍵間隔超時的判斷及復位
前文提到了當按鍵間隔超過3 s有自動復位的功能,設(shè)置密碼和按鍵開鎖時分別采用定時器T0和T1來實現(xiàn)。兩定時器均設(shè)為50 ms定時中斷,連續(xù)產(chǎn)生60次中斷的時間是3 s。當確實有鍵按下并彈起時,打開相應定時器中斷并允許其計數(shù)。假如在下一按鍵按下時,發(fā)生定時中斷還不到60次,則定時器停止計數(shù)并重設(shè)計數(shù)初值及定時中斷次數(shù);如果在下一按鍵按下之前,定時器已發(fā)生60次中斷,表示3 s已到,則系統(tǒng)自動進行軟件復位。設(shè)置密碼時按鍵間隔超時的復位程序代碼如下:
INTT0:MOV TH0,#4CH;設(shè)置定時器初值
MOV TL0,#00H
POP ACC
POP ACC
CLRA ;ACC中內(nèi)容清零
PUSHACC ;把0000H壓入棧頂
PUSHACC
RETI
以上程序當執(zhí)行完RETI指令后,PC指針指向0000H,程序從地址0000H處開始執(zhí)行,即實現(xiàn)了軟件復位。
圖7 本機處理接收模塊主程序流程圖
當鍵盤開鎖時,如果按鍵間隔超過3 s,這時的程序“復位”并不是從地址0000H處執(zhí)行,而是回到“密碼設(shè)置結(jié)束提示音”后的那一條指令處開始執(zhí)行,利用單步執(zhí)行指令的方法得到了此條指令的地址:0FC00H。
3 結(jié) 語
該設(shè)計的亮點在于沒有擴展任何E2PROM的情況下,實現(xiàn)了任意修改密碼的功能,且采用軟件復位的方法取消無效按鍵。通過對本系統(tǒng)設(shè)置密碼、鍵盤開鎖、紅外遙控開鎖等各方面的情況進行試驗測試,驗證了系統(tǒng)的精確性和安全性。實驗證明該系統(tǒng)成本低、可靠性高,值得推廣與應用。
參考文獻
[1]郭海英.基于單片機的電子安全密碼鎖的設(shè)計[J].現(xiàn)代電子技術(shù),2005,28(13):95-97.
[2]劉振海.一種基于單片機和串行E2PROM的智能密碼鎖[J].微計算機信息,2007,23(35):133-134.
[3]戴佳,戴衛(wèi)恒,劉博文.51單片機C語言應用程序設(shè)計實例精講[M].2版.北京:電子工業(yè)出版社,2008.
[4]Atmel. AT89C2051高性能8位單片機[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è)計實例教程[M].北京:清華大學出版社,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]張友德,趙志英,涂時亮.單片微型機原理、應用與實驗[M].上海:復旦大學出版社,2003.