版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于單片機(jī)的電子密碼鎖設(shè)計第一章 緒 論1.1 電子密碼鎖簡介電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉 合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。其特點(diǎn)如下:1)保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零。2)密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。3)誤碼輸入保護(hù),當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。4)無活動零件,不會磨損,壽命長。5)使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開鎖。6)電子密碼鎖操作簡單易行,一學(xué)即會。1.2 本設(shè)計所要實現(xiàn)的目標(biāo)本設(shè)計采用單片機(jī)為主控芯片,結(jié)合外圍電路,組成電子密
2、碼鎖,用戶想要打開鎖, 必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為了提高安全性,當(dāng)密碼輸入錯誤三次將報警。密碼可以有用戶自己修改設(shè)定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入就的密碼,在輸入新密碼的時候要二次確認(rèn),以防止誤操作。1.3 設(shè)計方案簡介采用以單片機(jī)為核心的控制方案由于單片機(jī)種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較, 合理選擇,以期獲得最佳的性價比。一般來說在選取單片機(jī)時從下面幾個方面考慮:性能、 存儲器、運(yùn)行速度、I/O 口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、 封裝形式、抗干擾性、保密性,除了以上的一些的還有
3、一些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、 有沒有低電壓檢測功能、單片機(jī)內(nèi)有無時鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機(jī)還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、 技術(shù)支持和服務(wù)等等因素?;谝陨弦蛩乇驹O(shè)計選用單片機(jī)AT89S51作為本設(shè)計的核心元件,利用單片機(jī)靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性, 實現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接LCD1602顯示器用于顯示作用。當(dāng)用戶需要開鎖時,先按鍵盤開 鎖鍵之后按鍵盤的數(shù)字鍵 0-9輸入密碼。密碼輸完后按下確認(rèn)鍵,
4、如果密碼輸入正確則開 鎖,不正確顯示密碼錯誤重新輸入密碼,當(dāng)三次密碼錯誤則發(fā)出報警;當(dāng)用戶需要修改密碼時,先按下鍵盤設(shè)置鍵后輸入原來的密碼,只有當(dāng)輸入的原密碼正確后才能設(shè)置新密碼。新密碼輸入無誤后按確認(rèn)鍵使新密碼將得到存儲,密碼修改成功。第二章主要元器件2.1主控芯片AT89S51單片機(jī)AT89S51功能介紹AT89S51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROFalsh Programmableand Erasable Read Only Memory )的低電壓,高性能 CMOS位微處理器,俗稱單片機(jī)。該 器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-
5、51指令集和輸出管腳相兼容。由于將多功能 8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的 AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案,AT89S51芯片引腳圖如圖2-1所示。 主要特性:與 MCS-51兼容 4K字節(jié)可編程閃爍存儲器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定 128*8位內(nèi)部RAM 32可編程I/O線兩個16位定時器/計數(shù)器 5個中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路 管腳說明:下面按其引腳功能分為四部分?jǐn)⑹鲞@40條引腳的功能。1、主電源引腳 VSS和VSSA
6、T89S51芯片引腳圖VSS( 40 腳)接 +5V 電壓;VSS( 20 腳)接地。2、外接晶體引腳XTAL1和XTAL21234567891 01 11 21 31 41 51 61 71 81 920P1.0VCCP1.1P0. 0P1.2P0. 1P1.3P0. 2P1.4P0. 3P1.5P0. 4AT89 S5 1P1.6P0. 5P1.7P0. 6RSTP0. 7P3.0/RXDEAP3.1 /TXDALEP3.2/INT0PSENP3.3/INT1P2. 7P3.4/T0P2. 6P3.5/T1P2. 5P3.6/WRP2. 4P3.7/RDP2. 3XTAL1P2. 2XTA
7、L2P2. 1VssP2. 0U14039383736353433323130292827262524232221XTAL1 (19腳)接外部晶體的一個引腳。 在單片機(jī)內(nèi)部,它是一個反相放大器的輸入端, 這個放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時,對HMOS單片機(jī),此引腳應(yīng)接地;對SHMO單片機(jī),此引腳作為驅(qū)動端。XTAL2 ( 18腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸 出端。采用外部振蕩器時,對HMO單片機(jī),該引腳接外部振蕩器的信號,即把外部振蕩器的信號直接接到內(nèi)部時鐘發(fā)生器的輸入端;對XHMQS此引腳應(yīng)懸浮。3、控制或與其它電源復(fù)用引腳RST/VPD AL
8、E/PROG PSEN和EA/VPP RST/VPD( 9腳)當(dāng)振蕩器運(yùn)行時,在此腳上出現(xiàn)兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與 VSS引腳之間連接一個約 8.2k的下拉電阻,與 VSS引腳之間連接一 個約10卩F的電容,以保證可靠地復(fù)位。VSS掉電期間,此引腳可接上備用電源,以保證內(nèi)部RAM的數(shù)據(jù)不丟失。當(dāng) VSS主電源下掉到低于規(guī)定的電平,而 VPD在其規(guī)定的電壓范圍(5 ± 0.5V )內(nèi),VPD就向內(nèi)部RAM提 供備用電源。 ALE/PROG( 30腳):當(dāng)訪問外部存貯器時,ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變
9、的頻率周期性地出現(xiàn)正脈沖信號,此頻率為振蕩器頻率的1/6。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。ALE端可以驅(qū)動(吸收或輸出電流)8個LS型的TTL輸入電路。 對于EPROI#片機(jī)(如8751 ),在EPROMS程期間,此 引腳用于輸入編程脈沖(PRO) PSEN( 29腳):此腳的輸出是外部程序存儲器的讀選通信號。在從外部程序存儲器取指令(或常數(shù))期間,每個機(jī)器周期兩次PSEN有效。但在此期間,每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的 PSEN信號將不出現(xiàn)。PSEN同樣可以驅(qū)動(吸收或輸出)8個LS型的TTL輸入。PS (
10、程序計數(shù) EA/VPP (引腳):當(dāng)EA端保持高電平時,訪問內(nèi)部程序存儲器,但在器)值超過OFFFH(對851/8751/80S51 )或仆FFH(對8052)時,將自動轉(zhuǎn)向執(zhí)行外部程序 存儲器內(nèi)的程序。當(dāng) EA保持低電平時,則只訪問外部程序存儲器,不管是否有內(nèi)部程序存 儲器。對于常用的8031來說,無內(nèi)部程序存儲器,所以EA腳須常接地,這樣才能只選擇外部程序存儲器。對于EPRO型的單片機(jī)(如 8751),在EPROM編程期間,此引腳也用于施加21V的編程電源(VPP。4. 控制或與其它電源復(fù)用引腳RST/Vpd , ALE/PROG PSEN和EA/Vpp。RST/Vpd當(dāng)振蕩器運(yùn)行時。在此
11、引腳上出現(xiàn)兩個機(jī)器同期的高電平(由低到高跳變),將使單片機(jī)復(fù)位。在VSS掉電期間,此引腳可接上備用電源,由Vpd向內(nèi)部RAM提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。ALE/PROG正常操作時為ALE功能(允許地址錢存),提供把地址的低字節(jié)鎖存到外部鎖 存器。ALE引腳以不變的頻率(振蕩周期的 1/6 )周期性地發(fā)出正脈沖信號。因此,它可用 作對外輸出的時鐘, 或用于定時目的。但要注意, 每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個 ALE脈沖。ALE端可以驅(qū)動(吸收或輸出電流)八個 LSTTL電路。對于EPROM型單片機(jī),在EPROM編程期間,此引腳接收編程脈沖(PRO勘能)。PSEN外部程序存儲器讀
12、選通信號輸出端。在從外部程序存儲器取指令(或數(shù)據(jù))期間;PSEN在每個機(jī)器周期內(nèi)兩次有效。PSEN同樣可以驅(qū)動八個 LSTTL輸入。EA/ Vpp EA為內(nèi)部程序存儲器和外部程序存儲器選擇端。當(dāng)EA為高電平時,訪問內(nèi)部程序存儲器(PS值小于4K)。當(dāng)EA為低電平時,則訪問外部程序存儲器。對于EPROI型單片機(jī),在EPROlMw程期間,此引腳上加21VEPRO編程電源(Vpp)。5、輸入/輸出(I/O )引腳P0、P1、P2、P3 (共32根) P0 口( 39腳至32腳):是雙向8位三態(tài)I/O 口,在外接存儲器時,與地址總線的低8位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動8個LS型的TTL負(fù)載。
13、 P1 口( 1腳至8 腳):是準(zhǔn)雙向8位I/O 口。由于這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O 口。P1 口能驅(qū)動(吸收或輸出電流)4個LS型的TTL負(fù)載。對8052、8032 , P1.0引腳的第二功能為 T2定時/計數(shù)器的外部輸入,P1.1引腳的第 二功能為T2EX捕捉、重裝觸發(fā),即T2外部控制端。對EPROMS程和程序驗證時,它接收低8位地址。 P2 口( 21腳至28腳):是準(zhǔn)雙向8位I/O 口。在訪問外部存儲器時,它可以作為擴(kuò)展電路高8位地址總線送出高 8位地址。在對EPROMS程和程序驗證期間, 它接收高8位地 址。P2可以驅(qū)動(吸收或輸出電流)4個LS
14、型的TTL負(fù)載。 P3 口( 10腳至17腳):是準(zhǔn)雙向8位I/O 口,在MSS-51中,這8個引腳還用于專門功能,是復(fù)用雙功能口。P3能驅(qū)動(吸收或輸出電流) 4個LS型的TTL負(fù)載。作為第一功能使用時,就作為普通I/O 口用,功能和操作方法與 P1 口相同。作為第二功能使用時,各引腳的定義如表所示。值得強(qiáng)調(diào)的是,P3 口的每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二功能。表2-1 P3 口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0 (外部中斷0)P3.3/INT1 (外部中斷1)P3.4T0 (記時器0外部輸入)P3.5T1 (記時器1外部輸
15、入)P3.6/WR (外部數(shù)據(jù)存儲器寫選通)P3.7/RD (外部數(shù)據(jù)存儲器讀選通)2.2存儲芯片AT24C02如圖2-2為AT24C02的芯片引腳圖。1A0VGC56AlWP37A2SCL48GNDSDL圖 2-2 AT24C02的芯片引腳圖特點(diǎn):低壓和標(biāo)準(zhǔn)電壓運(yùn)行模式2.7 (VCC = 2.7V to 5.5V)1.8 (VCC = 1.8V to 5.5V)內(nèi)建128x8存儲序列,2線制串行接口,雙向數(shù)據(jù)傳送協(xié)議,100kHz(1.8V,2.5V,2.7V)和400kHz(5V)兼容,寫同步時鐘(最大10ms),高可靠性,極限:1M寫時鐘周期,數(shù)據(jù)保存:100 年,不斷推進(jìn)的芯片等級擴(kuò)
16、大了設(shè)備的可用溫度范圍。AT24C02提供電可擦除的串行 1024位存儲或可編程只讀存儲器 (EEPROM)128字(8位/ 字)。芯片在低壓的工業(yè)與商業(yè)應(yīng)用中進(jìn)行了最優(yōu)化。設(shè)備操作:CLOCK和DATA變化:SDA管腳通常外部要拉高。SDA管腳上的數(shù)據(jù)只能在 SCL低期間改 變。數(shù)據(jù)在SCL高期間改變定義為一個開始或停止信號。開始狀態(tài):在任何操作之前必須有一個開始信號-在SCL為高時SDA上產(chǎn)生一個下降 沿。停止?fàn)顟B(tài):SCL為高時SDA產(chǎn)生一個上升沿是停止信號,停止信號后將停止所有通信。 在一個讀的序列之后,停止信號將讓EEPRO進(jìn)入備用電源模式。2.3 LCD16022 顯示器液晶顯示模塊
17、已作為很多電子產(chǎn)品的通過器件,如在計算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點(diǎn)。1602型LCD可以顯示2行16個字符,有8位數(shù)據(jù)總線D0-D7和RS,R/W,EN三個控制端口,工作電壓為5V,并且具有字符對比度調(diào)節(jié)和背光功能。接口信號說明:1602型LCD的接口信號說明如表 2-2所示。表2-2 LCD1602接口信號說明編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W:讀/寫選擇:
18、13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極1602型LCD主要技術(shù)參數(shù):顯示容量:16 X2個字符 芯片工作電壓 45 5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95 X 4.35(WX H)mm1602型LCD基本操作程序如下表所示:表2-3 LCD1602基本操作程序讀狀態(tài)輸入RS=L, R/W=H E=H輸出D0 D7= 犬態(tài)字寫指令輸入RS=L, R/W=L, D0 D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H R/W=H E=H輸出D0 D7= 據(jù)寫數(shù)據(jù)輸入RS=H R/W=L, D0-
19、D7=據(jù),E=高脈沖輸出無2.4晶體振蕩器晶體振蕩器,簡稱晶振,其作用在于產(chǎn)生原始的時鐘頻率,這個頻率經(jīng)過頻率發(fā)生器的放大或縮小后就成了電腦中各種不同的總線頻率。以聲卡為例,要實現(xiàn)對模擬信號44.1kHz或48kHz的采樣,頻率發(fā)生器就必須提供一個 44.1kHz或48kHz的時鐘頻率。如果需要對這 兩種音頻同時支持的話,聲卡就需要有兩顆晶振。但是現(xiàn)在的娛樂級聲卡為了降低成本,通常都采用SCR將輸出的采樣頻率固定在 48kHz,但是SRC會對音質(zhì)帶來損害,而且現(xiàn)在的娛 樂級聲卡都沒有很好地解決這個問題?,F(xiàn)在應(yīng)用最廣泛的是石英晶體振蕩器。石英晶體振蕩器是一種高精度和高穩(wěn)定度的振蕩器,石英晶體振蕩
20、器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。石英晶體振蕩器廣泛地應(yīng)用在電視機(jī)、影碟機(jī)、錄像機(jī)、無線通訊設(shè)備、電子鐘表、單片機(jī)、數(shù)字儀 器儀表等電子設(shè)備中。為數(shù)據(jù)處理設(shè)備產(chǎn)生時鐘信號和為特定系統(tǒng)提供基準(zhǔn)信號。在單片機(jī)中為其提供時鐘頻率。石英晶體振蕩器是利用石英晶體 (二氧化硅的結(jié)晶體)的壓電效應(yīng)制成的一種諧振器件, 它的基本構(gòu)成大致是:從一塊石英晶體上按一定方位角切下薄片(簡稱為晶片,它可以是正方形、矩形或圓形等),在它的兩個對應(yīng)面上涂敷銀層作為電極,在每個電極上各焊一根引 線接到管腳上,再加上封裝外殼就構(gòu)成了石英晶體諧振器,簡稱為石英晶體或晶體、晶
21、振。 其產(chǎn)品一般用金屬外殼封裝,也有用玻璃殼、陶瓷或塑料封裝的。只要在晶體振子板極上施 加交變電壓,就會使晶片產(chǎn)生機(jī)械變形振動,此現(xiàn)象即所謂逆壓電效應(yīng)。當(dāng)外加電壓頻率等于晶體諧振器的固有頻率時,就會發(fā)生壓電諧振,從而導(dǎo)致機(jī)械變形的振幅突然增大。第三章硬件系統(tǒng)設(shè)計3.1 設(shè)計原理本設(shè)計主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤 用于輸入數(shù)字密碼和進(jìn)行各種功能的實現(xiàn)。由用戶通過連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實際使用時只要將單片機(jī)的負(fù)載
22、由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點(diǎn)去控制電磁鐵吸合線圈。本系統(tǒng)共有兩部分構(gòu)成, 即硬件部分與軟件部分。 其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,軟件部 分對應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPRO讀寫程序和延時程序等組成。圖3-1電子密碼鎖原理框圖3.2 電路總體構(gòu)成在確定了選用什么型號的單片機(jī)后,就要確定在外圍電路, 其外圍電路包括電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部分、晶振部分、顯示部分、報警部分、開
23、鎖部 分組成,根據(jù)實際情況鍵盤輸入部分選擇4*4矩陣鍵盤,顯示部分選擇字符型液晶顯示LCD1602密碼存儲部分選用 AT24C02 芯片完成J_L4I<IfTf*mntn11I I 判 I>fchAlAT Ji* *PaTi'iS.slBsuWTC41 LTDJ-OKDDlVPF1 I1WXT舸XT.4UTrrar FSM.圖3-2電路總體結(jié)構(gòu)圖3.3 電源輸入電路密碼鎖主要控制部分電源需要用5V直流電源供電,其電路如圖3-3所示,而5V電源輸入時往往伴有雜波,所以加一個VCC2.2uFC4的電容濾波。這樣輸出的電壓一般能滿足要求。2 PIN3.4 鍵盤輸入電路由于本設(shè)計所
24、用到的按鍵數(shù)量較多而不適合用獨(dú)立按鍵式鍵盤。采用的是矩陣式按鍵 鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點(diǎn)上,密碼鎖的密碼由鍵盤輸入完成,與獨(dú)立式按鍵鍵盤相比,要節(jié)省很多I/O 口。本設(shè)計中使用的這個 4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤的每個按鍵功能在程序設(shè)計中設(shè)置 。其大體功能(看鍵盤按鍵上的標(biāo)記)及與單片機(jī)引腳接法如圖3-4所圖3-4鍵盤輸入原理圖機(jī)通訊,電壓最低可以到 2.5V,額定電流為 以在斷電的情況下保存 40年以上,而且采用 所示。U31234A0VCCA1WPA2SCLGNDSDLAT24C0 2VCC678P3.5
25、P3.6P3.7R95.1 kR1 05.1 k3.5 密碼存儲電路AT24C02是ATMEL公司的2KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總線和單片1mA靜態(tài)電流10Ua(5.5V),芯片內(nèi)的資料可 8腳的DIP封裝,使用方便。其電路如圖3-5VCC圖中1、2、3腳是三條地址線,用于確定芯片的硬件地址,在AT89S51 上它們都能接地,第5腳和第8腳分別為正、負(fù)電源。 AT24C02中帶有片內(nèi)地址寄存器,每寫入或讀出一個數(shù) 據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個儲存單元的讀寫,所有字節(jié)均以單一操作方式讀取。3.6 復(fù)位電路單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的
26、初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC= 0000H,使單片機(jī)從第一個單元取指令。無論是在單片機(jī)剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0 口為高組態(tài),P1- P3 口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖 2-8所示的復(fù)位電路。該電路在最簡單的復(fù)位電 路下增加了手動復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中 RST端電壓逐漸下降,當(dāng)RST端的 電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容 C1足
27、夠大,可以保證 RST高電平有效時間大于24個振蕩周期,CPU能夠可靠復(fù)位。增加手動復(fù)位按鍵是為了避免死機(jī)時無法可 靠復(fù)位。當(dāng)復(fù)位按鍵按下后電容C1通過R5放電。當(dāng)電容 C1放電結(jié)束后,RST端的電位由R11與R15分壓比決定。由于 R11<<R15因此RST為高電平,CPU處于復(fù)位狀態(tài),松手后, 電容C1充電,RST端電位下降,CPU脫離復(fù)位狀態(tài)。R11的作用在于限制按鍵按下瞬間電容 C1的放電電流,避免產(chǎn)生火花,以保護(hù)按鍵觸電。K1VCCR1 1r41R1 51 Ok圖3-6 復(fù)位電路原理圖3.7 晶振電路AT89C51引腳XTAL1和XTAL2與晶體振蕩器及電容 C2 C1按
28、圖3-7所示方式連接。晶振、電容C2/ C3及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點(diǎn)式振蕩器,振蕩信 號頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定,范圍在 033MHz之間,電容C2 C3取值范圍在530pF之間。根據(jù)實際情況,本設(shè)計中采用12MHZ做系統(tǒng)的外部晶振。電容取值為 20pF。XT AL1 XT AL2圖3-7晶振電路原理圖3.8 顯示電路為了提高密碼鎖的密碼顯示效果能力。本設(shè)計的顯示部分由液晶顯示器LCD1602取代普通的數(shù)碼管來完成。只有按下鍵盤上的開啟按鍵后,顯示器才處于開啟狀態(tài)。同理只有按下關(guān)閉按鍵后顯示器才處于關(guān)閉狀態(tài)。否則顯示器將一直處于初始
29、狀態(tài),當(dāng)需要對密碼鎖進(jìn)行開鎖時,按下鍵盤上的開鎖按鍵后利用鍵盤上的數(shù)字鍵0-9輸入密碼,每按下一個數(shù)字鍵后在顯示器上顯示一個 *,輸入多少位就顯示多少個 *。當(dāng)密碼輸入完成時,按下確認(rèn)鍵, 如果輸入的密碼正確的話,LCD子顯示“ RIGHT”單片機(jī)其中P2.0引角會輸出低電平,使三極管T2導(dǎo)通,電磁鐵吸合,電子密碼鎖被打開,如果密碼不正確,LCD顯示屏?xí)@示“ERROR, P2.0輸出的是高電平,電子密碼鎖不能被打開。通過LCD顯示屏,可以清楚的圖3-8顯示電路原理圖3.9 報警電路“?!眻缶糠钟商沾蓧弘姲l(fā)聲裝置及外圍電路組成,加電后不發(fā)聲,當(dāng)有鍵按下時, 聲,每按一下,發(fā)聲一次,密碼正確時
30、,不發(fā)聲直接開鎖,當(dāng)密碼輸入錯誤時,單片機(jī)的 P2.1弓I腳為低電平,三極管 T3導(dǎo)喇叭發(fā)出噪鳴聲報警。如圖3-9所示:圖3-9報警電路原理圖3.10 開鎖電路通過單片機(jī)開鎖執(zhí)行機(jī)構(gòu),電路驅(qū)動電磁鎖吸合,從而達(dá)到開鎖的目的。 其原理如圖3-10所示。圖3-10密碼鎖開鎖機(jī)構(gòu)示意圖當(dāng)用戶輸入的密碼正確時,單片機(jī)便輸出開門信號,送到開鎖驅(qū)動電路, 然后驅(qū)動電磁鎖,達(dá)到開門的目的。其實際電路如圖3-11所示。電路由驅(qū)動和開鎖兩級組成。由D1、R12、Q1組成驅(qū)動電路,其中 Q1可以選擇普通的小功率三極管如 8050、9018都可以滿足要求。D1是開鎖指示燈;由 D2、C5組成開鎖。其 中D2、C5是
31、為了消除電磁鎖可能產(chǎn)生的反向高電壓以及可能產(chǎn)生的電磁干擾。電磁鎖的選 用要視情況而定,但是吸合力要足夠且有一定的余量。在設(shè)計中,暫時用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示開鎖;滅,表示沒有開鎖。8od LLLLCS®CO口 口口口 口 口口口 口 0 口口口口口口口口口口口口口口g第四章軟件程序設(shè)計本系統(tǒng)軟件設(shè)計由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設(shè)置程序、EEPRO讀寫程序和延時程序等組成。4.1主程序流程圖如圖4-1為主程序流程圖,開始接上電源,程序進(jìn)行初始化設(shè)置,然后在鍵盤上輸入 密碼,此系統(tǒng)進(jìn)行鍵盤掃描,密碼正確,開鎖成功,密碼錯誤3次出錯報警
32、,選擇是否修改密碼,若要修改密碼,先輸入舊密碼,密碼正確后設(shè)置新密碼,錯誤時報警,需要兩次確認(rèn) 新密碼,確認(rèn)后,密碼修改成功,否則結(jié)束最終返回。然后啟動程序,進(jìn)行保護(hù),再次在鍵 盤上輸入密碼,系統(tǒng)進(jìn)行掃描,如果和之前一樣,則執(zhí)行相同程序,如不是,則執(zhí)行另一種 程序。圖4-1主程序流程圖4.2 按鍵軟件設(shè)計如圖4-2按鍵功能流程圖,在按鍵當(dāng)中,有與輸入、開鎖、清除、設(shè)置、確認(rèn)的程序相對應(yīng)的按鍵,并按順序與輸入的數(shù)相比較,當(dāng)輸入正確時,進(jìn)入密碼程序,錯誤時進(jìn)行清除,輸入兩次新密碼正確時,可進(jìn)行重新設(shè)置密碼,最后確認(rèn)程序。圖4-2按鍵功能流程圖4.3 密碼設(shè)置軟件設(shè)計如圖4-3為密碼設(shè)置流程圖,開始
33、按下設(shè)置鍵,輸入舊密碼,如果錯誤累計三次, 進(jìn)行報警程序。如果輸入正確,可以修改密碼,確認(rèn)后再次輸入新密碼,如果兩次輸入一樣,則 輸入成功。如果兩次輸入的新密碼不一樣,則修改密碼失敗,重新返回設(shè)置新密碼。開始圖4-3 密碼設(shè)置流程圖4.4 開鎖軟件設(shè)計如圖4-4開鎖流程圖,開始時按開鎖鍵,輸入密碼,如果輸入正確,則開鎖成功。如果 輸入錯誤累計達(dá)到三次,則執(zhí)行報警程序。開始初始化按開鎖鍵輸入密碼M_輸入次數(shù)加 1按確認(rèn)鍵-r-圖4-4開鎖流程圖程序清單 :F_F1 BIT 2CH顯示緩沖區(qū)F_F2 BIT 2DHLED1 EQU 6FHPSW_F BIT 2EHBUFF EQU 6EH確的標(biāo)志位
34、TIMERS1 EQU 6DH ;輸入回車口資源定義的次數(shù)SPK BIT P2.1TIMERS2 EQU 6CH ;報警的次WP BIT P3.5數(shù)SDA BIT P3.6LED6 EQU 6AH數(shù)據(jù)端密碼緩沖區(qū)SCL BIT P3.7PS1 EQU 69HPS2 EQU 78HORG 0000HPS3 EQU 67HAJMP MAINPS4 EQU 66HORG 000BHPS5 EQU 65H;AJMP TIMER0PS6 EQU 64HORG 001BHPS7 EQU 63H;AJMP TIMER1PS8 EQU 62HORG 0030HAT24C02 讀取緩沖區(qū)密碼是否正定義串口AT1
35、EQU61HMOVTMOD, #11HAT2EQU60HMOVTH0, #3CHAT3EQU5FHMOVTL0, #0B0HAT4EQU5EHMOVTH1, #3CHAT5EQU5DHMOVTL1, #0B0HAT6EQU5CHCLRF_0 ;AT7EQU5BH位AT8EQU5AHCLRF_1MAIN:MOV SP, #70H清除標(biāo)志按鍵標(biāo)志位CLRF_2F_0 BIT 20HCLRF_3F_1 BIT 21HCLRF_4F_2 BIT 22HCLRF_5F_3 BIT 23HCLRF_6F_4 BIT 24HCLRF_7F_5 BIT 25HCLRF_8F_6 BIT 26HCLRF_9F_
36、7 BIT 27HCLRBUF_FULLF_8 BIT 28HCLRCH_STATEF_9 BIT 29HCLRFLAG1CH_STATE BIT 2AH ; 系統(tǒng)更改的狀態(tài)標(biāo)志CLRF_F1CLR F_F2位,為 1 表示 busyFLAG1 BIT 2BH ; 功能鍵標(biāo)志CLR PSW_F位,為 1 表示功能按鍵MOV BUFF,#00H調(diào)用LCALL INITPS ;初始化環(huán)SUBB A, #01H境JNZ PS_2LCALL INITATMOV PS1, BUFF ;依照順序LCALL XSA ; 調(diào)用默認(rèn)顯示存放密碼MOV TIMERS1,#00HAJMP NEXTNOPPS_2:M
37、OV A, TIMERSMOV PS1, #11H ;初始化密SUBB A, #02H碼 830620CLR CMOV PS2, #0AHJNZ PS_3MOV PS3, #02HMOV PS2, BUFFMOV PS4, #13HAJMP NEXTMOV PS5, #0BHPS_3:MOV A, TIMERSMOV PS6, #02HCLR CSTART:NOP ;程序開始SUBB A, #03HLCALL CH_KEY ;檢查鍵盤JNZ PS_4AJMP START ;返回MOV PS3, BUFFAJMP NEXTCH_KEY:LCALL KS ;檢查有沒有PS_4:MOV A, TIM
38、ERS按鍵按下CLR CJNZ LK1SUBB A, #04AJMP CH_KEYJNZ PS_5LK1:MOV PS4, BUFFLCALL T12MSAJMP NEXTACALL KSPS_5:MOV A, TIMERSJNZ LK2CLR CRETSUBB A, #05JNZ PS_6LK2:MOV PS5, BUFFNOPAJMP NEXTLCALL SBIE ;按鍵識別PS_6:MOV A, TIMERS子程序CLR CMOV BUFF, A ;送緩沖區(qū)SUBB A, #06H以識別是數(shù)字鍵還是功能鍵?JNZ CH_KEYLCALL CH_KF ;判斷按鍵MOV PS6, BUFF功
39、能。NEXT:LCALL XSCJB FLAG1 ,KEY_FUN ;標(biāo)志為 1,MOV R7, TIMERS ;比較輸則為功能鍵入的次數(shù)。* 數(shù)字按鍵輸入并且存放到緩沖區(qū)CJNE R7, #06H ,FULL內(nèi)等待比較 *FULL:JC NEXT9KEY_DIG:NOP ;設(shè)一標(biāo)SETB BUF_FULL志,辨別輸入是否滿MOV TIMERS,#06H;SETB TR0CLR L3INC TIMERS ;輸入數(shù)NOP字的位數(shù)CLR P2.1MOV A, TIMERSLCALL T100MSDCLR CSETB P2.1NOPAJMP CH_KEYFU1:NOPNEXT9:CLR P2.1入一
40、位,鳴叫一聲。CLR L3LCALL T100MSDSETB L3SETB P2.1密碼輸延時100msAJMP CH_KEY*CL:NOPSETB L3MOV BUFF, #00H;消密碼緩沖MOV TIMERS,#00HLCALL INITPS;消除AT緩沖,調(diào)電存儲后一定要加上LCALLXSCLCALL BPLCALL BPLCALL T100MSDLCALL BPCLR FLAG1AJMP CH_KEYLCALLXSCJB F_F1, NEXT_F1CLR L1LCALL BPSETB F_F1AJMP CH_KEYNEXT_F1:SETB L1LCALL BPCLR F_F1;LCA
41、LL CH_STATE現(xiàn)在的狀態(tài)以防誤按;SETB TR1警限制暫時不開;INC F_F1CLR FLAG1AJMP CH_KEYFU2:NOP查看報FU4:NOPLCALL BPLCALL T100MSDLCALL BPLCALL T100MSDLCALL BPLCALL T100MSDLCALL BPLCALL T100MSDLCALL BPCLR FLAG1AJMP CH_KEYJB F_F2, NEXT_F2CLR L2LCALL BPSETB F_F2AJMP CH_KEYNEXT_F2:SETB L2LCALL BPCLR F_F2CLR FLAG1AJMP CH_KEY*注意清楚
42、緩沖區(qū)時 AT1.AT8不應(yīng)在初始化 中執(zhí)行,以防兩緩沖區(qū)都為0,相同開鎖*CLR_BUF:MOV R7, #06HMOV R0, #6FHFU3:NOPLCALL BPLCALL T100MSDLCALL BPLCALL KILLXS ;CLR FLAG1關(guān)閉顯示LOOP1:MOV A, #00HMOV R0, ADEC R0DJNZ R7,L OOP1RET*初始化顯示緩沖區(qū)以及其他緩AJMP CH_KEY*檢驗密碼正誤鎖定,鳴笛程*顯示子程序*INITPS:PUSH ACCPUSH PSWMOV R7, #06HMOV R1, #PS1MOV A, #00HINIT_PS:MOV R1,
43、 ADEC R1DJNZ R7, INIT_PSPOP PSWPOP ACCNOPRETINITAT:PUSH ACCPUSH PSWMOV R7,#06HMOV R1,#AT1MOV A, #00HINIT_AT:MOV R1, ADEC R1DJNZ R7, INIT_ATMOV TIMERS,#00H ;密碼輸入的次數(shù)清零。POP PSWPOP ACCRET*C_PSW:PUSH PSWPUSH ACCMOV R2,#06HMOV R0,#PS1MOV R1,#AT1C_P:CLR CMOV A,R0SUBB A,R1JNZ RETURNDEC R0DEC R1DJNZ R2,C_PNO
44、PSETB PSW_FAJMP EXIT7RETURN:CLR PSW_FEXIT7:NOPPOP ACCPOP PSWRET* 序 *LOCK_1M:MOV R4,#3CH; 鎖定 1 分鐘M1_LOOP:L CALL SECDJNZ R4,M1_LOOPNOPRETWARN2S:PUSH PSWPUSH ACCMOV R5, #14H;調(diào)用 20 次BP,報警2sWARN:L CALL BPDJNZ R5,WARNNOPPOP ACCPOP PSWNOPRETBP:CLR SPK;鳴笛子程序LCALL T100MSDSETB SPKNOPRET*鎖定狀態(tài)顯示。XSA:PUSH ACCPUS
45、H PSWMOV A, TIMERS1MOV DPTR, #TABMOVC A, A+DPTRMOVSBUF,A;送已經(jīng)輸入密碼的次數(shù)JNB TI, $CLR TIMOVSBUF,#0FEH;送短線JNB TI, $CLR TIMOVSBUF,#OFEH;送短線JNB Tl, $CLRTl;送 FMOV SBUF, #78HJNB Tl, $CLR TlMOV SBUF, #78HJNB Tl, $CLR TlMOV SBUF, #11HJNB Tl, $CLR TlPOP PSWPOP ACCRET成功開鎖狀態(tài)顯示XSB:PUSH ACCPUSH PSWMOV A, TIMERS1MOV D
46、PTR, #TABMOVC A, A+DPTRMOV SBUF, AJNB Tl, $CLR TlMOV SBUF, #0FEHJNB Tl, $CLR TlMOV SBUF, #0FEHJNB Tl, $CLR TlMOV SBUF, #10HJNB Tl, $CLR TlMOV SBUF, #10HJNB Tl, $CLR TlMOV SBUF, #10HJNB Tl, $CLR TlPOP PSWPOP ACCRET密碼輸入及修改狀態(tài)XSC:PUSH ACCPUSH PSWLCALL KILLXSSETB RS1 ;切換到第三組寄存器防止操作數(shù)讀取錯誤。MOV R6, TIMERSMOV
47、 A, R6SUBB A, #01HJNC SC0JZ SC1SC0:MOV SBUF, #0FEHJNB Tl, $CLR TlSC1:MOV A, R6SUBB A, #02HJNC SC11JNZ SC2SC11:MOV SBUF,#0FEHJNB Tl, $CLR TlSC2:MOV A, R6SUBB A, #03HJNC SC22JNZ SC3SC22:MOV SBUF, #0FEHJNB Tl, $CLR TlSC3:MOV A, R6SUBB A, #04HJNC SC33JNZ SC4SC33:MOV SBUF, #0FEHJNB Tl, $CLR TlSC4:MOV A, R6SUBB A, #05HJNC SC44JNZ SC5SC44:MOV SBUF, #0FEHJNB Tl, $CLR TlSC5:MOV A, R6SUBB A, #06HJNC SC55JNZ SC6SC55:MOV SBUF, #0FEHJNB Tl, $CLR TlSC6:M0V A, R6SUBB A, #07HJNC SC66JNZ EXIT_CSC66:MOV SBUF, #0FEHJNB TI, $CLR TINOPNOP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度軟件測試工程師保密合同及質(zhì)量保證協(xié)議3篇
- 2025年度店鋪股份質(zhì)押與融資服務(wù)合同范本2篇
- 二零二五年度智慧城市基礎(chǔ)設(shè)施建設(shè)項目承包合同樣本3篇
- 科學(xué)思維在學(xué)科復(fù)習(xí)中的運(yùn)用
- 網(wǎng)絡(luò)安全教育在學(xué)校中的創(chuàng)新實踐與策略研究
- Unit 6【單元測試·基礎(chǔ)卷】-2023-2024學(xué)年九年級英語上冊(牛津上海版)(解析版)
- 二零二五年度車輛抵押借款合同爭議解決機(jī)制4篇
- 2025年度土地租賃合同參考范本3篇
- 2025年度個人水電安裝與維護(hù)承包服務(wù)合同4篇
- 2025版?zhèn)€人二手房交易合同附房屋維修責(zé)任說明2篇
- 多子女贍養(yǎng)老人協(xié)議書范文
- 安踏運(yùn)動品牌營銷策略研究
- 彩票市場銷售計劃書
- 骨科抗菌藥物應(yīng)用分析報告
- 支付行業(yè)反洗錢與反恐怖融資
- 百詞斬托福詞匯excel版本
- 基礎(chǔ)設(shè)施綠色施工技術(shù)研究
- 寶鋼BQB 481-2023全工藝?yán)滠堉蓄l無取向電工鋼帶文件
- 車輛定損情況確認(rèn)書范本
- 高中英語新課標(biāo)詞匯表(附詞組)
- 2022年高考湖南卷生物試題(含答案解析)
評論
0/150
提交評論