電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產品。它的種類很多,有簡易的電路產品,也有基于芯片的性價比較高的產品。現在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現的。
本文以STC89C52單片機為核心器件,結合按鍵電路、LED數碼管顯示電路、報警指示電路和開鎖機構,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性通過軟件程序來控制整個系統實現電子密碼鎖的基本功能,其主要具有如下功能:
●密碼通過鍵盤輸入,若密碼正確,則將鎖打開
●密碼輸入錯誤,蜂鳴器將報警提示
●用戶可以自由設定密碼
本密碼鎖具有設計方法合理,簡單易行成本低,安全實用等特點,具有一定的推廣價值。
1 緒 論
隨著人們生活水平的提高, 日常生活和工作中的住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存等一系列安全防盜問題變的尤其突出。傳統的機械鎖由于其構造的簡單,被撬的事件屢見不鮮,且人們常需攜帶多把鑰匙, 使用極不方便, 一旦鑰匙丟失安全性即大打折扣。隨著科學技術的不斷發展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。密碼鎖因具有安全性高、成本低、功耗低、易操作等優點,受到了廣大用戶的青睞。
現今常見的密碼鎖設計主要有兩種方案,一種是中規模集成電路控制的方案,另一種是單片機控制的方案。對于采用集成電路控制的方案,其中的編碼電子鎖電路分為編碼電路、控制電路、復位電路、解碼電路、防盜報警電路、門鈴電路,而電子鎖主要由輸入元件、電路(包括電源)以及鎖體三部分組成。顯然此種方案的物理實現結構較為復雜且重新設置密碼、輸入密碼的操作過程也會給用戶帶來一定的不方便;而利用單片機控制的方案,由于單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,不但能實現基本的密碼鎖功能,還能添加掉電存儲、聲光提示甚至添加遙控控制功能,但其也有一定的局限性,就在于其控制原理的復雜以及要求設計人員具有更加良好的程序設計能力,調試較為繁瑣,否則程序一旦跑飛將造成意想不到的損失。通過對這兩種方案的優缺點比較,再考慮到本人自己對單片機設計具有一定的基礎,所以此次選擇利用單片機來進行密碼鎖的設計。
本文以STC89C52單片機為核心器件,結合按鍵電路、LED數碼管顯示電路、報警指示電路和開鎖機構,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性通過軟件程序來控制整個系統實現電子密碼鎖的基本功能。系統能實現如下的功能:
(1)密碼通過鍵盤輸入,若密碼正確,則將鎖打開
(2)密碼輸入錯誤,蜂鳴器將報警提示
(3)用戶可以自由設定密碼
系統功能實用,成本低廉,具有一定的實用價值。
2 系統的總體設計和主要元器件介紹
2.1設計要求
- 以STC89C52單片機為核心器件,結合按鍵電路、LED數碼管顯示電路、報警指示電路和開鎖機構,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性通過軟件程序來控制整個系統實現電子密碼鎖的以下基本功能:
- (1)輸入密碼時不顯示所輸入的數字,有一定的防偷窺特點
- (2)密碼通過鍵盤輸入,若密碼正確,則顯示燈發光,將鎖打開
- (3)密碼輸入錯誤,蜂鳴器將報警提示
- (4)用戶可以自由設定密碼
- 本密碼鎖具有設計方法合理,簡單易行成本低,安全實用等特點,具有一定的推廣價值。
2.2系統的總體思路設計
以STC89C52單片機為主控制單元,鍵盤為主要輸入單元,結合開鎖裝置、報警器和顯示器完成整個系統設計。
系統的運行過程大致如下:
假設初始狀態為閉鎖,此時整個系統只等待按鍵輸入,數碼管也不顯示。每按下一個數據鍵(即每輸入一個密碼),數碼管相應的顯示一個“-”標志,當密碼全部輸入完成后,需按下確認鍵“#”,此時系統判斷密碼是否正確,正確則開鎖(仿真中以繼電器動作導致發光二級管點亮為標志),錯誤則報警,此后數碼管熄滅繼續等待按鍵;若按下密碼重置鍵“*”,則需先輸入原密碼,正確后請輸入新密碼,輸入密碼過程中,數碼管顯示如上“-”。
2.3主要元器件介紹
2.3.1 STC89C52介紹
1.002.jpg (27.12 KB, 下載次數: 46)
下載附件
2017-6-13 20:34 上傳
STC89C52引腳圖
本次畢業設計選用的是STC89C52,STC89C52是一種帶4K字節FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的STC89C52是一種高效微控制器。STC89C52單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。
AT89C51主要特性:
- 與MCS-51 兼容
- 4K字節可編程FLASH存儲器
- 壽命:1000寫/擦循環
4. 數據保留時間:10年
5. 全靜態工作:0Hz-24MHz
6. 三級程序存儲器鎖定
7. 128×8位內部RAM
8.32可編程I/O線
9. 兩個16位定時器/計數器
10.5個中斷源
11.可編程串行通道
12. 低功耗的閑置和掉電模式
13. 片內振蕩器和時鐘電路
STC89C52單片機引腳:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須接上拉電阻。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3口也可作為STC89C52的一些特殊功能口,如下表所示:
口管腳 備選功能
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(記時器0外部輸入)
P3.5 T1(記時器1外部輸入)
P3.6 /WR(外部數據存儲器寫選通)
P3.7 /RD(外部數據存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
振蕩器特性:
XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。
2.3.2 繼電器介紹
繼電器是一種電控制器件。它具有控制系統(又稱輸入回路)和被控制系統(又稱輸出回路)之間的互動關系。通常應用于自動化的控制電路中,它實際上是用小電流去控制大電流運作的一種“自動開關”。故在電路中起著自動調節、安全保護、轉換電路等作用。
當輸入量(如電壓、電流、溫度等)達到規定值時,繼電器被所控制的輸出電路導通或斷開。輸入量可分為電氣量(如電流、電壓、頻率、功率等)及非電氣量(如溫度、壓力、速度等)兩大類。繼電器具有動作快、工作穩定、使用壽命長、體積小等優點。廣泛應用于電力保護、自動化、運動、遙控、測量和通信等裝置中。
電磁繼電器工作原理和特性:
1.003.jpg (9.58 KB, 下載次數: 64)
下載附件
2017-6-13 20:34 上傳
圖2.5 繼電器原理圖
電磁繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區分:繼電器線圈未通電時處于斷開狀態的靜觸點,稱為“常開觸點”;處于接通狀態的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。
2.3.3 LED數碼管介紹
1.004.jpg (9.75 KB, 下載次數: 47)
下載附件
2017-6-13 20:34 上傳
圖2.6 數碼管
LED數碼管實際上是由七個發光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當數碼管特定的段加上電壓后,這些特定段就會發亮,以形成我們眼睛看到的樣子。以“2”為例,應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數碼管的顯示筆畫常用一個發光二極管組成,而大尺寸的數碼管由二個或多個發光二極管組成,一般情況下,單個發光二極管的管壓降為1.8V左右,電流不超過30mA。發光二極管的陽極連接到一起連接到電源正極的稱為共陽數碼管,發光二極管的陰極連接到一起連接到電源負極的稱為共陰數碼管。常用LED數碼管顯示的數字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
在本次實驗中我們用的是四位一體的數碼管,圖如下:
1.005.jpg (18.13 KB, 下載次數: 53)
下載附件
2017-6-13 20:34 上傳
3、硬件設計
3.1 單片機主控制模塊(含晶振、復位基本工作電路)
1.006.jpg (41.8 KB, 下載次數: 50)
下載附件
2017-6-13 20:34 上傳
圖3.1 主控制模塊
1.007.jpg (37.12 KB, 下載次數: 51)
下載附件
2017-6-13 20:34 上傳
圖2.7 矩陣鍵盤
在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成3*4=12個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態就可得知是否有鍵按下了。
按鍵功能介紹:
第一行自左至右依次是1,2,3鍵, 第二行自左至右依次是4,5,6鍵, 第三行自左至右依次是7,8,9鍵, 第四行自左至右依次是*,0,#鍵
表3.1 按鍵功能
3.3 顯示模塊
1.008.jpg (36.82 KB, 下載次數: 54)
下載附件
2017-6-13 20:34 上傳
圖3.3 顯示模塊
此設計中,使用了四個共陰極數碼管,使用動態顯示技術控制數碼管。其4個位選信號與P2.0-P2.3相連,當其中某位為低電平時表示選中該位;8段段選信號與P0口相連,當其中某段為高電平時導通該段,特殊的,由于STC89C52的P0口的驅動能力較弱,不足以驅動數碼管點亮,故在此又引入上拉電阻以驅動數碼管。
關于上拉電阻有如下介紹:
- 當TTL電路驅動CMOS電路時,如果電路輸出的高電平低于CMOS電路的最低高電平(一般為3.5V), 這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。
2、OC門電路必須加上拉電阻,以提高輸出的高電平值。
3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。
4、在CMOS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗, 提供泄荷通路。
5、芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號的噪聲容限增強抗干擾能力。
6、提高總線的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾 。
7、長線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。
3.4 報警和開鎖模塊
1.009.jpg (61.95 KB, 下載次數: 50)
下載附件
2017-6-13 20:34 上傳
圖3.4 報警和開鎖模塊
報警模塊由蜂鳴器、PNP三極管和單片機組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時約需要100mA驅動電流。特殊的,此處為加強驅動能力,選用三極管來放大電流驅動蜂鳴器。當STC89C52的P3.0口輸出為低電平時,三極管導通,蜂鳴器產生蜂鳴音,STC89C52輸出為高電平時,蜂鳴器不發聲。
此處以繼電器的動作來模擬鎖的開閉。同樣,為了增強驅動能力添加了PNP三極管以放大電流,當P3.1口為低電平時,三極管導通,此時繼電器動作(鎖開),燈亮;二極管具有續流作用以保護器件安全