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