更加可靠的技術(shù)實(shí)現(xiàn)大門的管理。在我國電子鎖整體水平尚處于國際上70年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進(jìn)國際先進(jìn)水平,現(xiàn)國內(nèi)有幾個廠生產(chǎn)供應(yīng)市場。但國內(nèi)自行研制開發(fā)的電子鎖,其市場結(jié)構(gòu)尚未形成,應(yīng)用還不廣泛。國內(nèi)的不少企業(yè)也引進(jìn)了世界上先進(jìn)的技術(shù),發(fā)展前景非常可觀。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應(yīng)用
1.2、電子密碼鎖發(fā)展趨勢 電子密碼鎖應(yīng)用于金融業(yè),其根本的作用是“授權(quán)”,即被“授權(quán)”的人才可以存取錢、物。廣義上講,金融業(yè)的“授權(quán)”主要包括以下三種層次的內(nèi)容:1、授予保管權(quán),如使用保管箱、保險箱和保險柜;2、授予出入權(quán),如出入金庫、運(yùn)鈔車和保管室;3、授予流通權(quán),如自動存取款。目前,金融行業(yè)電子密碼鎖的應(yīng)用主要集中在前兩個層面上。下面將介紹幾種在金融行業(yè)中使用較多的電子密碼鎖以及它們的技術(shù)發(fā)展方向。當(dāng)然,以上所說的授權(quán)技術(shù)再高超,都必須由精良的“鎖具”擔(dān)當(dāng)承載結(jié)構(gòu)部件,實(shí)現(xiàn)開啟、閉鎖的功能,而且承擔(dān)實(shí)體防護(hù)作用,抵抗住或盡量延遲破壞行為,讓電子密碼鎖“軟、硬不吃”。一般情況下,鎖具防盜的關(guān)鍵是鎖身外殼、閉鎖的部件的強(qiáng)度、鎖止型式、配合間隙和布局。提高電子密碼鎖之防護(hù)能力的必然途徑是報警,在金融業(yè)的許多場所有人值守、有電視監(jiān)控,具有報警功能,可以綜合物理防范和人力防范兩種作用。報警的前提是具備探測功能,根據(jù)電子密碼鎖的使用場所和防護(hù)要求,可選擇多種多樣的探測手段。在中國的城市金融業(yè)中,實(shí)現(xiàn)聯(lián)網(wǎng)報警已經(jīng)成為對各金融網(wǎng)點(diǎn)的基本要求。根據(jù)國內(nèi)外的實(shí)踐經(jīng)驗(yàn),金融業(yè)實(shí)行安全防范風(fēng)險等級很有必要,即依據(jù)使用的防盜報警器材的性能、安裝布局和人員值守狀況等,可以評估被防護(hù)物或區(qū)域的防護(hù)能力,得出風(fēng)險等級,其中,電子密碼鎖的性能至關(guān)重要。
由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子密碼鎖獲得高度的保密性,如防范森嚴(yán)的金庫,需要使用復(fù)合信息密碼的電子密碼鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子密碼鎖獲得無窮擴(kuò)展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。
第二章 總體設(shè)計方案的確定2.1 電子密碼鎖設(shè)計的具體要求(1)本設(shè)計為了防止密碼被竊取要求在輸入密碼時在LCD屏幕上顯示*號。
(2)設(shè)計開鎖密碼位六位密碼的電子密碼鎖。
(3)能夠LCD顯示在密碼正確時顯示OPEN,密碼錯誤時顯示 ERROR,輸入密碼時顯示INPUT PASSWORD。
(4)實(shí)現(xiàn)輸入密碼錯誤超過限定的三次電子密碼鎖定。
(5)4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵、*、#和A-D的功能鍵
(6)本產(chǎn)品具備報警功能,當(dāng)輸入密碼錯誤時蜂鳴器響并且LED燈亮。
- (7)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認(rèn),以防止誤操作 。
2.2總體設(shè)計方案選定方案一:采用數(shù)字電路控制。
用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單但控制的準(zhǔn)確性和靈活性差。故不采用。
方案二:采用一種是用以STC89C51為核心的單片機(jī)控制方案。
選用單片機(jī)STC89C51 作為本設(shè)計的核心元件,利用單片機(jī)靈活的編程設(shè)計和豐富的IO端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。其原理如下圖2.1所示:

圖2.1 單片機(jī)控制密碼鎖原理圖
可以看出方案二控制靈活準(zhǔn)確性好且保密性強(qiáng)還具有擴(kuò)展功能,根據(jù)現(xiàn)實(shí)生活的需要此次設(shè)計采用此方案
第三章 系統(tǒng)硬件設(shè)計
3.1 設(shè)計原理本設(shè)計主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實(shí)際使用時只要將單片機(jī)的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點(diǎn)去控制電磁鐵吸合線圈。
本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,軟件部分對應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時程序等組成。其原理框圖如圖3.1所示。

3.1 電子密碼鎖原理框圖
3.2 單片機(jī)STC89C51簡介STC89C51是一種低功耗、高性能CMOS8位微控制器,具有 4K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 4k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外 STC89C51 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6T/12T可選。STC89C51主要功能如表1所示,其DIP封裝如圖2所示
表1:STC89C51主要功能
STC89C52引腳介紹
① 主電源引腳(2根)
VCC(Pin40):電源輸入,接+5V電源
GND(Pin20):接地線
②外接晶振引腳(2根)
XTAL1(Pin19):片內(nèi)振蕩電路的輸入端
XTAL2(Pin20):片內(nèi)振蕩電路的輸出端
③控制引腳(4根)
RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機(jī)器周期的高電平將使單片機(jī)復(fù)位。
ALE/PROG(Pin30):地址鎖存允許信號
PSEN(Pin29):外部存儲器讀選通信號
EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。
④可編程輸入/輸出引腳(32根)
STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。
P0口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7
P1口(Pin1~Pin8):8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7
P2口(Pin21~Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7
P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7
作頻率35Mhz,6T/12T可選。
圖3.2 STC89C51 DIP封裝圖
最小系統(tǒng)包括單片機(jī)及其所需的必要的電源、時鐘、復(fù)位等部件,能使單片機(jī)始終處于正常的運(yùn)行狀態(tài)。電源、時鐘等電路是使單片機(jī)能運(yùn)行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部分,通過對其進(jìn)行存儲器擴(kuò)展、A/D擴(kuò)展等,使單片機(jī)完成較復(fù)雜的功能。
STC89C51是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡單﹑可靠。用STC89C52單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機(jī)接上時鐘電路和復(fù)位電路即可,結(jié)構(gòu)如圖2-3所示,由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。

圖3.3單片機(jī)最小系統(tǒng)原理框圖
(1) 時鐘電路
STC89C51單片機(jī)的時鐘信號通常有兩種方式產(chǎn)生:一是內(nèi)部時鐘方式,二是外部時鐘方式。內(nèi)部時鐘方式如圖2-4所示。在STC89C51單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的XTAL1(18)和XTAL2(19)引腳外接石英晶體(簡稱晶振),就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時鐘脈沖信號。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為30pF。晶振CYS的振蕩頻率范圍在1.2~12MHz間選擇,典型值為12MHz和6MHz。

圖3.4 STC89C51內(nèi)部時鐘電路
(2) 復(fù)位電路
當(dāng)在STC89C51單片機(jī)的RST引腳引入高電平并保持2個機(jī)器周期時,單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。
最簡單的上電自動復(fù)位電路中上電自動復(fù)位是通過外部復(fù)位電路的電容充放電來實(shí)現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實(shí)現(xiàn)自動上電復(fù)位。
除了上電復(fù)位外,有時還需要按鍵手動復(fù)位。本設(shè)計就是用的按鍵手動復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過RST(9)端與電源Vcc接通而實(shí)現(xiàn)的。

圖3.5 STC89C51復(fù)位電路
(3) STC89C51中斷技術(shù)概述
中斷技術(shù)主要用于實(shí)時監(jiān)測與控制,要求單片機(jī)能及時地響應(yīng)中斷請求源提出的服務(wù)請求,并作出快速響應(yīng)、及時處理。這是由片內(nèi)的中斷系統(tǒng)來實(shí)現(xiàn)的。當(dāng)中斷請求源發(fā)出中斷請求時,如果中斷請求被允許,單片機(jī)暫時中止當(dāng)前正在執(zhí)行的主程序,轉(zhuǎn)到中斷服務(wù)處理程序處理中斷服務(wù)請求。中斷服務(wù)處理程序處理完中斷服務(wù)請求后,再回到原來被中止的程序之處(斷點(diǎn)),繼續(xù)執(zhí)行被中斷的主程序。
圖2-6為整個中斷響應(yīng)和處理過程。
圖3.6 中斷響應(yīng)和處理過程
圖3.6 中斷過程
如果單片機(jī)沒有中斷系統(tǒng),單片機(jī)的大量時間可能會浪費(fèi)在查詢是否有服務(wù)請求發(fā)生的定時查詢操作上。采用中斷技術(shù)完全消除了單片機(jī)在查詢方式中的等待現(xiàn)象,大大地提高了單片機(jī)的工作效率和實(shí)時性。
3.3 AT24C02存儲芯片AT24C02是美國Atmel公司的低功耗CMOS型E2PROM,內(nèi)含256×8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10 ms)、抗干擾能力強(qiáng)、數(shù)據(jù)不易丟失、體積小等特點(diǎn)。而且他是采用了I2C總線式進(jìn)行數(shù)據(jù)讀寫的串行器件,占用很少的資源和I/O線,并且支持在線編程,進(jìn)行數(shù)據(jù)實(shí)時的存取十分方便。AT24C02中帶有的片內(nèi)地址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實(shí)現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達(dá)8個字節(jié)的數(shù)據(jù)。I2C總線是一種用于IC器件之間連接的二線制總線。他通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件。AT24C02正是運(yùn)用了I2C規(guī)程,使用主/從機(jī)雙向通信,主機(jī)(通常為單片機(jī))和從機(jī)(AT24C02)均可工作于接收器和發(fā)送器狀態(tài)。主機(jī)產(chǎn)生串行時鐘信號(通過SCL引腳)并發(fā)出控制字,控制總線的傳送方向,并產(chǎn)生開始和停止的條件。無論是主機(jī)還是從機(jī),接收到一個字節(jié)后必須發(fā)出一個確認(rèn)信號ACK。AT24C02的控制字由8位二進(jìn)制數(shù)構(gòu)成,在開始信號發(fā)出以后,主機(jī)便會發(fā)出控制字,以選擇從機(jī)并控制總線傳送的方向。

SOIC PDIP
圖3.7 24C02的兩種引腳圖
圖3.8 AT24C02的電路接線圖
圖中AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。第8腳和第4腳分別為正、負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送,第6腳SCL為串行時鐘輸入線, SDA和SCL都需要和正電源間各接一個10 K的電阻上拉。第7腳需要接地。
24C02中帶有片內(nèi)地址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實(shí)現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達(dá)8個字節(jié)的數(shù)據(jù)。
3.4 LCD顯示模塊LCD1602A 是一種工業(yè)字符型液晶,能夠同時顯示16x02 即32個字符。(16列2行)。在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管和LED數(shù)碼管比較常用,軟硬件都比較簡單。
在單片機(jī)系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個優(yōu)點(diǎn):
由于液晶顯示器每一個點(diǎn)在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫質(zhì)高且不會閃爍。
液晶顯示器都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡單可靠,操作更加方便。
液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。
相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。
(1)引腳說明:
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。
第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。
第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平
R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
第15腳:背光源正極。
第16腳:背光源負(fù)極。
(2)1602LCD的RAM地址映射以及標(biāo)準(zhǔn)字庫表
LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲器已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符圖有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母。
它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的(說明:1為高電平,0為低電平)。
指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。
指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H 。
指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 。S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效 。
指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)。 B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 。
指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo) 。
指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線。 N:低電平時為單行顯示,高電平時雙行顯示。 F:低電平時顯示5X7的點(diǎn)陣字符,高電平時顯示5x10的點(diǎn)陣字符 (有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)。
指令7:字符發(fā)生器RAM地址設(shè)置 。
指令8:DDRAM地址設(shè)置 。
指令9:讀出忙信號和光標(biāo)地址。 BF為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙,模塊就能接收相應(yīng)的命令或者數(shù)據(jù)。
指令10:寫數(shù)據(jù) 。
指令11:讀數(shù)據(jù) 。
液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。
1602 內(nèi)部顯示地址如圖3-6所示:
圖3.9 1602內(nèi)部顯示地址
例如第二行第一個字符的地址是40H,那么是否直接寫入40H 就可以將光標(biāo)定位在第二行第 一個字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時要求最高位D7恒定為高電平1,所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H) 。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602 液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,如下圖所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H 中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。
液晶顯示的原理是利用液晶的物理特性, 通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動通信工具等眾多領(lǐng)域。

圖3.10 液晶顯示模塊電路圖
3.5 鍵盤設(shè)計本設(shè)計就采用行列式鍵盤,同時也能減少鍵盤與單片機(jī)接口時所占用的I/O線的數(shù)目,在按鍵比較多的時候,通常采用這樣方法。
每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個按鍵的鍵盤。
在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。
4×4矩陣鍵盤的工作原理
在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖5所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。
掃描原理
把每個鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個bit,而讀入掃描碼的則是水平,掃描的動作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個鍵被按下。
比如說掃描碼送入01111111,前面的0111是代表此時掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設(shè)為VDD,若此時第一行的第三列按鍵被按下,那讀取的結(jié)果就會變成01111101(注意1111變成1101),其中LSB的第三個bit會由1變成0,這是因?yàn)檫@個按鍵被按下之后,會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。
由於這種按鍵是機(jī)械式的開關(guān),當(dāng)按鍵被按下時,鍵會震動一小段時間才穩(wěn)定,為了避免讓單片機(jī)誤判為多次輸入同一按鍵,我們必須在偵測到有按鍵被按下,就Delay一小段時間,使鍵盤以達(dá)穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤的輸入穩(wěn)定。圖3.8為鍵盤整體模框圖:
圖3.8 鍵盤整體模框圖
3.6 聲音提示模塊蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機(jī)、打印機(jī)、復(fù)印機(jī)、報警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。1.壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。
多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。
壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。
電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。
接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互纏繞
蜂鳴器驅(qū)動電路一般都包含以下幾個部分:一個三極管、一個蜂鳴器、一個限流電阻。
蜂鳴器為發(fā)聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無源蜂鳴器)就可以發(fā)聲,其主要參數(shù)是外形尺寸、發(fā)聲方向、工作電壓、工作頻率、工作電流、驅(qū)動方式(直流/方波)等。這些都可以根據(jù)需要來選擇。本設(shè)計采用有源蜂鳴器。

圖3.9 聲音報警電路
三極管Q1起開關(guān)作用,其基極的低電平使三極管飽和導(dǎo)通,使蜂鳴器發(fā)聲;而基極高電平則使三極管關(guān)閉,蜂鳴器停止發(fā)聲。
3.7 繼電器控制模塊電磁繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點(diǎn)與原來的靜觸點(diǎn)(常閉觸點(diǎn))釋放。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。對于繼電器的“常開、常閉”觸點(diǎn),可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點(diǎn),稱為“常開觸點(diǎn)”;處于接通狀態(tài)的靜觸點(diǎn)稱為“常閉觸點(diǎn)”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。

圖3.12繼電器控制負(fù)載電路
電路中繼電器室通過PNP型三極管驅(qū)動,當(dāng)閥值超過設(shè)定時,單片機(jī)會由高電平跳變成低電平,三極管導(dǎo)通繼電器吸合,繼電器起開關(guān)作用,可以驅(qū)動負(fù)載。
3.8 紅外接收模塊紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來發(fā)出經(jīng)過調(diào)制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發(fā)射器發(fā)射雕紅外光轉(zhuǎn)換為相應(yīng)的電信號,再送后置放大器。
發(fā)射機(jī)一般由指令鍵(或操作桿)、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動電路、發(fā)射電路等幾部分組成。當(dāng)按下指令鍵或推動操作桿時,指令編碼電路產(chǎn)生所需的指令編碼信號,指令編碼信號對載體進(jìn)行調(diào)制,再由驅(qū)動電路進(jìn)行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定指令編碼信號。
接收電路一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動電路、執(zhí)行電路(機(jī)構(gòu))等幾部分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號接收下來,并進(jìn)行放大后送解調(diào)電路,解調(diào)電路將已調(diào)制的指令編碼信號解調(diào)出來,即還原為編碼信號。指令譯碼器將編碼指令信號進(jìn)行譯碼,最后由驅(qū)動電路來驅(qū)動執(zhí)行電路實(shí)現(xiàn)各種指令的操作控制(機(jī)構(gòu))。
紅外線遙控是目前使用很廣泛的一種通信和遙控技術(shù)。由于紅外線遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),因而,繼彩電、錄像機(jī)之后,在錄音機(jī)、音響設(shè)備、空凋機(jī)以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可*而且能有效地隔離電氣干擾。
紅外線是太陽光線中眾多不可見光線中的一種,由德國科學(xué)家霍胥爾于1800年發(fā)現(xiàn),又稱為紅外熱輻射,他將太陽光用三棱鏡分解開,在各種不同顏色的色帶位置上放置了溫度計,試圖測量各種顏色的光的加熱效應(yīng)。結(jié)果發(fā)現(xiàn),位于紅光外側(cè)的那支溫度計升溫最快。因此得到結(jié)論:太陽光譜中,紅光的外側(cè)必定存在看不見的光線,這就是紅外線。也可以當(dāng)作傳輸之媒界。 太陽光譜上紅外線的波長大于可見光線,波長為0.75~1000μm。紅外線可分為三部分,即近紅外線,波長為0.75~1.50μm之間;中紅外線,波長為1.50~6.0μm之間;遠(yuǎn)紅外線,波長為6.0~l000μm 之間。圖 3.12為紅外遙控器及編碼。
圖3.13 紅外遙控器及編碼
一體化紅外線接收器是一種集紅外線接收和放大整形于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,而體積又很小巧,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸,廣泛用于電視機(jī)、衛(wèi)星接收機(jī)、VCD、DVD、音響、空調(diào)等家用電器中接收紅外信號。
圖3.14 一體化紅外接器電路
第四章 系統(tǒng)軟件設(shè)計4.1主程序模塊本系統(tǒng)軟件設(shè)計由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時程序等組成。主要程序設(shè)計流程圖如下所示:
圖4.1 主程序的流程圖
4.2 鍵盤掃描子程序
圖4.2 鍵盤掃描程序流程圖
4.3 系統(tǒng)模塊密碼設(shè)置子程序由于設(shè)計是分模塊化進(jìn)行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化整為零,使其復(fù)雜簡單化,同時也方便閱讀,修改等,每個功能模塊都有它自己的子程序,在本設(shè)計中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計中用的是矩陣鍵盤,所以就用到鍵盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯誤后的提示子程序等。如下圖為密碼修改子程序流程圖




圖4.3 設(shè)置密碼子程序
4.4開鎖子程序 

圖4.4 開鎖流程圖
4.4軟件調(diào)試在硬件支持的環(huán)境下,用proteus設(shè)計好的電路,Keil編好的程序編譯成芯片可識別的S51文件,利用PC機(jī)寫進(jìn)proteus程序圖芯片內(nèi)進(jìn)行仿真測試,并對其出現(xiàn)的錯誤進(jìn)行修改,由圖4.5~圖4.9可看出最終調(diào)試成功。
圖4.5 keil編譯程序成功
圖4.6 keil生成hex文件
圖4.7 proteus調(diào)用keil的hex文件進(jìn)行仿真
圖4.8 仿真成功密碼正確
圖4.9 密碼正確黃燈亮
第五章 系統(tǒng)制作及調(diào)試5.1焊接注意事項(xiàng):LCD的注意事項(xiàng)
1. 采用焊接方法將金屬基PIN安裝于LCD時,從玻璃末端到PCB的焊接位置的長度至少5mm,焊接溫度必須在260℃以下,且焊接時間必須在10秒以內(nèi),以免焊接過程中對裝置的損壞,確保焊接性能。在230℃,30秒條件下,90%的焊料須緊密附著于PIN上。
2. 對LCD基板或基PIN焊接位置的調(diào)整必須在安裝前完成。嚴(yán)禁猛烈移動基PIN,否則會機(jī)械地破壞LCD屏與基PIN之間的連接點(diǎn)。焊接時平放LCD,盡量不讓LCD受力。
3. 焊接LCD基板時,將其小心、平衡地插入PCB插槽,以避免損壞基PIN或LCD基板。
4. 焊接時,LCD基板不應(yīng)長時間置于焊錫蒸汽中,清洗PCB時,必須避免污染LCD基板,否則可能損壞顯示器表面的偏光片及封口膠。
5. 顯示器表面的保護(hù)膜直到焊接完成才可揭掉,禁止手指及其它硬物接觸偏光片,禁止水和其他化學(xué)物質(zhì)沾污裝置,因?yàn)檫@些物質(zhì)會污染顯示器表面。
單片機(jī)焊接注意事項(xiàng):
80s51單片機(jī)與其它單片機(jī),dsp,arm芯片相比較而言是脆弱的,如果焊接時不小心就很可能把芯片損壞!建議用比較好的恒溫可調(diào)的烙鐵,功率在30瓦左右,溫度控制在260到300度,建議采用點(diǎn)焊而不用拉焊,焊接時烙鐵放在每個引腳的時間不能太長(最好低于3秒)。上邊提到的方法還不能確保芯片完好,對芯片有危害的還有帶電烙鐵的靜電感應(yīng)!烙鐵質(zhì)量不是太好的,焊接時可以把烙鐵電源插頭拔掉。
其他的電子器件焊接須知:
一般分四步驟進(jìn)行。①準(zhǔn)備焊接:清潔被焊元件處的積塵及油污,再將被焊元器件周圍的元器件左右掰一掰,讓電烙鐵頭可以觸到被焊元器件的焊錫處,以免烙鐵頭伸向焊接處時燙壞其他元器件。焊接新的元器件時,應(yīng)對元器件的引線鍍錫。②加熱焊接:將沾有少許焊錫和松香的電烙鐵頭接觸被焊元器件約幾秒鐘。若是要拆下印刷板上的元器件,則待烙鐵頭加熱后,用手或銀子輕輕拉動元器件,看是否可以取下。③清理焊接面:若所焊部位焊錫過多,可將烙鐵頭上的焊錫甩掉(注意不要燙傷皮膚,也不要甩到印刷電路板上!),用光烙錫頭"沾"些焊錫出來。若焊點(diǎn)焊錫過少、不圓滑時,可以用電烙鐵頭"蘸"些焊錫對焊點(diǎn)進(jìn)行補(bǔ)焊。④檢查焊點(diǎn):看焊點(diǎn)是否圓潤、光亮、牢固,是否有與周圍元器件連焊的現(xiàn)象。
焊接流程按照附錄I所示的電子密碼鎖的硬件聯(lián)接原理圖按下列順序依次焊接:
(1)焊接單片機(jī)的晶振電路、復(fù)位電路等單片機(jī)的最小系統(tǒng)的外圍電路。
(2)焊接LCD的相應(yīng)管腳并把LCD的管腳單片機(jī)相連接。
(3)焊接鍵盤的按鍵電路。
(4)焊接電子密碼鎖的密碼輸入錯誤的報警電路。
(5)焊接密碼鎖的開鎖機(jī)構(gòu)電路。
(6)焊接其他接口及輔助電路。
(7)焊接接地及高電平。
5.2、硬件調(diào)試問題及解決方法本設(shè)計在焊接調(diào)試時遇到的問題以及解決方法:
單片機(jī)的最小系統(tǒng)問題:
電源、晶振電路和復(fù)位電路都無異常。
Lcd焊接時的問題:
(1)接通電源后lcd無反應(yīng),各個引腳均屬正常。推斷可能是初始化程序出現(xiàn)問題。
經(jīng)查找得知是lcd顯示器的15和16管腳控制背光功能,連接好之后還是不能顯示字符。
(2)接通電源開門燈和報警電路就會工作,分析原因是單片機(jī)剛開始各個管腳輸出高電平。

第六章 結(jié)論本設(shè)計從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用單片機(jī)STC89C51低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的鍵盤輸入、顯示、報警、開鎖等電路并用C語言的控制程序,研制了一款可以多次更改密碼具有報警功能的電子密碼鎖。設(shè)計完全可行可以達(dá)到設(shè)計目地。使用單片機(jī)制作的電子密碼鎖具有軟硬件設(shè)計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點(diǎn),可應(yīng)用于住宅、辦公室的保險箱及檔案柜等需要防盜的場所,有一定的實(shí)用性。該電路設(shè)計還具有按鍵有效提示,輸入錯誤提示,控制開鎖電平,控制報警電路,修改密碼等多種功能。可在意外泄密的情況下隨時修改密碼。保密性強(qiáng),靈活性高,特別適用于家庭、辦公室、學(xué)生宿舍及賓館等場所。
參考文獻(xiàn)[01] 何宏主編. 單片機(jī)原理與接口技術(shù). 北京:國防工業(yè)出版社. 2006.07
[02] 楊西明, 朱騏主編 . 單片機(jī)編程與應(yīng)用入門. 北京:機(jī)械工業(yè)出版社 .2004.06
[03] 先鋒工作室編著. 單片機(jī)程序設(shè)計實(shí)例. 北京: 清華大學(xué)出版社 .2003.01
[04] 謝宜仁主編 . 單片機(jī)實(shí)用技術(shù)問答. 北京: 人民郵電出版社 . 2003.02
[05] 梁麗.電子密碼鎖的計算機(jī)仿真設(shè)計.計算機(jī)仿真,2005
[06] 房小翠,王金鳳編著. 單片機(jī)實(shí)用系統(tǒng)設(shè)計技術(shù). 北京: 國防工業(yè)出版社 . 1999.06
[07] 各種網(wǎng)絡(luò)教程及其他
[08] 王寬仁. 可靠安全的智能密碼鎖. 電子技術(shù)應(yīng)用 , 2001
[09] 李捷 , 陳典濤 , 陳建華 , 等. 一種基于單片機(jī)的電子密碼鎖的設(shè)計 [J]. 農(nóng)機(jī)化研究 , 2004, 5
[10] 董繼成. 能防止多次試探密碼的單片機(jī)密碼鎖.國外電子元器件 , 2004, 3
[11]趙益丹,徐曉林,周振峰編著.電子密碼鎖的系統(tǒng)原理、設(shè)計程序及流程圖.嘉興學(xué)院學(xué)報,2003,15
[12] 張培仁. 基于 C語言編程 MCS- 51單片機(jī)原理與應(yīng)用. 北京: 清華大學(xué)出版社 , 2002.12
[13] 李朝清. PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù). 北京:北京航空航天大學(xué)出版社 , 1999.
[14] 路而紅.專用集成電路設(shè)計與電子設(shè)計自動化.北京:清華大學(xué)出版社,2004
[15] 劉文濤.MCS-51單片機(jī)培訓(xùn)教程(C51)版.電子工業(yè)出版社,2005.8
[16] 王為青 程國鋼.單片機(jī)Keil Cx51 應(yīng)用開發(fā)技術(shù).人民郵電出版社,2007.2
[17] 范風(fēng)強(qiáng) 蘭嬋麗.單片機(jī)語言C51應(yīng)用實(shí)戰(zhàn)集錦.電子工業(yè)出版社,2003.3
[18] 龔運(yùn)新.單片機(jī)C語言開發(fā)技術(shù).清華大學(xué)出版社,2006.10
[19] 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法.清華大學(xué)出版社,2006.3
[20] 王宜懷.單片機(jī)原理及其嵌入式應(yīng)用教程.北京希望電子出版社,2002.8
附錄一 原理圖
附錄二 仿真圖
附錄三 電子密碼鎖程序源代碼(見附件)