看看吧,挺好的。
做出來的51單片機(jī)電子密碼鎖實物圖:
pcb圖:
電路原理圖:
內(nèi)容預(yù)覽:
隨著科技的不斷發(fā)展,人們越來越重視對具有私密、重要物質(zhì)的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設(shè)計單片機(jī)為主要控制器的電子密碼鎖具有工程意義和解決日常應(yīng)用需求的價值。 本電子密碼鎖的設(shè)計采用以單片機(jī)STC89C52RC為主控制器,應(yīng)用矩陣鍵盤、SMC1602A液晶顯示器、STC89C52RC內(nèi)部的EEPROM等器件進(jìn)行設(shè)計了鍵盤電路、液晶顯示電路、UART串口電路、電源(5V)電路、指示(LED)電路、報警(蜂鳴器)電路等電路設(shè)計;應(yīng)用protel軟件設(shè)計了硬件原理圖和PCB圖;應(yīng)用C51語言設(shè)計了顯示時間和校對時間、輸入密碼和修改密碼、控制EEPROM等軟件模塊;最后焊接PCB并調(diào)試電路。最終設(shè)計出一個具有等待狀態(tài)顯示時間(可以對時間進(jìn)行校準(zhǔn))、輸入密碼、修改密碼、密碼正確與否指示、報警、密碼保護(hù)、一鍵還原初始密碼等功能的密碼鎖。設(shè)計此系統(tǒng)具有較高的安全性和科學(xué)性。
|
目 次 1 緒論…………………………………………………………………….……..….1 1.1本文的研究背景及意義……………………………………………….….……..1 1.2 技術(shù)的發(fā)展歷史與現(xiàn)狀………………………………….1
- 1.3 本文的章節(jié)安排……………………………………………………….………..3
2 系統(tǒng)總體方案設(shè)計……………………………………4 2.1 電子密碼鎖系統(tǒng)的功能簡介………………………………………….….…….4 2.2電子密碼鎖系統(tǒng)的總方案設(shè)計………………………….………..………….....4 2.3本章小結(jié)………………………………………………………………………..11 3系統(tǒng)硬件設(shè)計………………………………………………………...…………..12 3.1指示燈電路設(shè)計………………………………………………………...……...12 3.2 5V電源電路設(shè)計…………………………………………………………..…..12 3.3 晶振電路設(shè)計……………………………………………………………….....13 3.4 復(fù)位電路設(shè)計……………………………………………………………...…..13 3.5 液晶顯示電路設(shè)計………………………………………………………...…..13 3.6報警電路設(shè)計…………………………………………………………………..14 3.7鍵盤電路設(shè)計…………………………………………………………………..15 3.8串口電路設(shè)計…………………………………………………………………..16 3.9 本章小結(jié)…………………………………….……………………………..…..16 4 系統(tǒng)軟件設(shè)計…………………………………………………………………..17 4.1主程序設(shè)計流程……………………………………………………………..…17 4.2鍵盤掃描設(shè)計流程…………………………………………………………..…18 4.3 輸入密碼程序設(shè)計流程…………………………………………………….…19 4.4 修改密碼程序設(shè)計流程…………………………………………………….…20 4.5 報警程序設(shè)計流程………………………………………………………….…21 4.6 時間顯示程序設(shè)計流程………………………………………………….……21 4.7 時間設(shè)置程序設(shè)計流程………………………………………………….……22 4.8 控制EEPROM程序設(shè)計流程……………………………………….……......23 4.9本章小結(jié)…………………………………………………………..……….…...25 5 系統(tǒng)測試與調(diào)試………………………………………………………….……...26 5.1 系統(tǒng)仿真測試與調(diào)試…………………………………………………….……26 5.2 系統(tǒng)測試及結(jié)果分析………………………………………………….………29 結(jié)論 …………………………………………………………………………..……36 參考文獻(xiàn)……………………………………………………………………………37 致謝….…………………………………………………………………………...…38 附錄A 系統(tǒng)總電路圖...…...………………………………………………………39 附錄B 系統(tǒng)PCB版圖……………………………………………………..…..…..40 附錄C 系統(tǒng)元件布局圖……………………………………….……….…..………40 附錄D 系統(tǒng)元件清單………………………………………………….…….…......41 附錄E 部分源程序清單……………….……….………………….………. .….......42
(圖片請下載附件中的word版本)
隨著科技的不斷發(fā)展,人們越來越重視對具有私密、重要物質(zhì)的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設(shè)計單片機(jī)為主要控制器的電子密碼鎖具有工程意義和解決日常應(yīng)用需求的價值。本文主要介紹的是以單片機(jī)STC89C52型號為主要控制器的電子密碼鎖的設(shè)計并介紹其設(shè)計方法和設(shè)計的成果。 隨著科技的不斷進(jìn)步和發(fā)展,人類已經(jīng)步入了一個高科技的新時代。在這日新月異的時代中,人們對住宅、部門等具有私密、重要物質(zhì)的場所的安全性要求不斷提高。舊社會中,由于科技不發(fā)達(dá),人們常常用機(jī)械鎖來保護(hù)個人的財產(chǎn),以這種方法來確保它們的安全性。這種用鑰匙開鎖式的機(jī)械鎖常常會給人們帶來不少的煩惱,比如:開鎖的鑰匙不慎丟了或者鎖門的鎖壞了。同時,平時攜帶一大竄鑰匙也給人們帶來不少的麻煩。從安全的角度來看,一種具有報警和高實用性的密碼鎖將取代人們所熟知的機(jī)械鎖,這種電子密碼鎖安全可靠,具有較高的安全性和科學(xué)性。
- 技術(shù)的發(fā)展歷史與現(xiàn)狀
1.2.1 電子密碼鎖技術(shù)的發(fā)展歷史 電子密碼鎖從電子科技技術(shù)發(fā)展以來經(jīng)歷了由大型到小型、由復(fù)雜到簡單、由原始到智能的發(fā)展經(jīng)歷。尤其是近年來不同型號的微處理器出現(xiàn),為電子密碼鎖不斷的改進(jìn)與創(chuàng)新提供了新的發(fā)展契機(jī):比如如今的微處理器會做的很小,這樣小巧的處理器能為電子密碼鎖節(jié)省更多的硬件空間達(dá)到節(jié)省成本;再比如說老版本的8051單片機(jī)它內(nèi)部是不提供EEPROM的,這如果想實現(xiàn)數(shù)據(jù)儲存就需要用I2C總線來外接存儲器來保存數(shù)據(jù),如今單片機(jī)內(nèi)部有EEPROM,數(shù)據(jù)掉電不會丟失。 說到識別密碼方式,國內(nèi)外大致經(jīng)歷了由早期的矩陣鍵盤輸入操作到紅外遙控控制操作再到智能IC卡再到如今指紋識別等多種實現(xiàn)方法。紅外遙控控制密碼鎖會更加的方便快捷,通過密碼鎖的內(nèi)部芯片對紅外接收頭接受到的信號進(jìn)行解碼然后通過對比密碼來判定輸入密碼是否正確;IC卡密碼鎖設(shè)計是基于一個AT24C01A卡進(jìn)行設(shè)計的,IC卡的核心是電可擦除的EEPROM。指紋密碼鎖設(shè)計是西門子公司研制的一種指紋感應(yīng)片,這種芯片面積只有130mm,大小和人的指甲蓋差不多,在這么小的芯片上卻覆蓋著有6.5萬個微小型敏感元件,每個感應(yīng)片有很高的靈敏度和測量精度,如此多的敏感細(xì)致元件完全可以非常詳細(xì)和精準(zhǔn)的將人手上的各種紋路信息拾取下來,將指紋數(shù)據(jù)存于電腦數(shù)據(jù)庫中,這種具有人體特征標(biāo)志的人體密碼不僅可以大大增加了私人財產(chǎn)的安全性而且其操作簡便、快捷具有很高的可靠性,于是這種指紋人體密碼芯片將逐漸的被用于日常生活中具有重要物質(zhì)的場所和設(shè)備比如銀行、倉庫等。 還有顯示方面,早期顯示使用的led燈、后來有了7段數(shù)碼管、再后來大多數(shù)用的是lcd顯示器。所以,隨著科技的進(jìn)步和創(chuàng)新,設(shè)計密碼鎖的技術(shù)也不甘落后,也在朝著智能化,通用化,人性化等富有創(chuàng)新的方向發(fā)展。 1.2.2 電子密碼鎖技術(shù)的研究現(xiàn)狀 針對電子密碼鎖系統(tǒng)設(shè)計經(jīng)過翻閱資料和對學(xué)術(shù)的學(xué)習(xí)和研究,提出多種實現(xiàn)方案,其中比較典型的有以下幾種。文獻(xiàn)中應(yīng)用矩陣式鍵盤作為密碼輸入,用單片機(jī)的IO口控制鍵盤,通過編寫程序用單片機(jī)對鍵盤進(jìn)行掃描,然后用7段數(shù)碼管顯示系統(tǒng)狀態(tài)和信息、門開門關(guān)提示信息是由LED燈進(jìn)行提示。還有,應(yīng)用紅外遙控器和紅外接收頭來代替上面的矩陣式鍵盤,采用現(xiàn)成的遙控器,應(yīng)用單片機(jī)編程對紅外接收頭接受的信號進(jìn)行解碼,顯示應(yīng)用的是型號為1602A的液晶顯示,開關(guān)門指示信息是由led燈提示的,設(shè)計的優(yōu)勢是應(yīng)用了I2C總線來控制外接的EEPEOM,來實現(xiàn)輸入密碼的數(shù)據(jù)保存功能。還有,應(yīng)用STC89C52單片機(jī),這個單片機(jī)和AT系列的單片機(jī)最大區(qū)別就是這類單片機(jī)有內(nèi)部集成了4kb大小的EEPROM,利用ISP/API功能能應(yīng)用編程來控制內(nèi)部的EEPROM的讀寫而不需要外接存儲器來進(jìn)行數(shù)據(jù)保護(hù)。再有,應(yīng)用單片機(jī)來完成以下的工作,第一個工作是對連接在單片機(jī)IO口上的鍵盤進(jìn)行編碼來制作一個遠(yuǎn)紅外遙控器,將序列碼經(jīng)過發(fā)送頭發(fā)送到單片機(jī)連接的接收頭上,第二個工作是將接受到的數(shù)據(jù)經(jīng)過紅外接收頭解碼將數(shù)據(jù)交給單片機(jī)來處理來實現(xiàn)各個碼的功能。目前,電子密碼鎖的功能的得到實現(xiàn)的新方法真是別出心裁,展現(xiàn)科技的發(fā)展和進(jìn)步,比如:IC卡和指紋識別,IC卡密碼鎖設(shè)計是基于一個AT24C01A卡進(jìn)行設(shè)計的,IC卡的核心是EEPROM。應(yīng)用指紋設(shè)計出的密碼鎖主要應(yīng)用的是傳感器是西門子公司研制,這種傳感器有很高的測量精度和靈敏度,所以這種人體密碼大大提高了家庭、個人、公共的具有重要性的財產(chǎn)的安全性,這是科技發(fā)展和人類不斷創(chuàng)新的結(jié)果,所以我們要好好利用科技帶給我們生活的每一種便捷。 1.2.3 總結(jié): 通過對以上各種實現(xiàn)電子密碼鎖的方法的學(xué)習(xí)、研究和比較,下面來談一談各種方法的優(yōu)缺點(diǎn),對于采用矩陣鍵盤來進(jìn)行輸入的這種方法生產(chǎn)成本低、操作方便,在如今也是很受歡迎的,但是他壽命不長;而用7段數(shù)碼顯示比較落后,顯示不出科技的進(jìn)步;對于采用遙控方式,優(yōu)點(diǎn)是輸入電路換成了紅外遙控控制輸入,這樣來操作密碼更加方便,缺點(diǎn)是成本比較高,外接EEPROM增加了硬件成本和操作強(qiáng)度。對于采用STC單片機(jī),這種設(shè)計方法很合理,充分利用了單片機(jī)內(nèi)部集成的EEPROM,只需通過編寫控制它的程序就能實現(xiàn)數(shù)據(jù)保護(hù)功能,而不需外接儲存器所以就降低了生產(chǎn)成本,不僅如此,這樣設(shè)計的系統(tǒng)可行性好。而目前,密碼鎖設(shè)計和實現(xiàn)的新方法是現(xiàn)在流行的高科技手段來對密碼鎖進(jìn)行更進(jìn)一步的智能化,技術(shù)含量高。由此可見密碼鎖的發(fā)展的方向是不斷的滿足人們生活中的要求,功能更加齊全,更加人性,更加智能,更加方便的方向發(fā)展。 上面對電子密碼鎖的研究背景意義、發(fā)展進(jìn)行了簡要的介紹,在下面的章節(jié)中,將對系統(tǒng)的設(shè)計方案;以及系統(tǒng)的硬件設(shè)計;還有系統(tǒng)的軟件設(shè)計;最后對系統(tǒng)的測試按照任務(wù)書和設(shè)計的功能要求來一一測試。 第2章主要說明系統(tǒng)的功能要求、系統(tǒng)的工作原理及最終實行的方案。 第3章主要介紹供5V直流電源設(shè)計,lcd顯示電路的設(shè)計等系統(tǒng)硬件部分的設(shè)計,這部分工作為畫原理圖和PCB版圖提供能基礎(chǔ),所以是系統(tǒng)重要的部分。 第4章主要介紹系統(tǒng)軟件部分的設(shè)計,比如輸入密碼怎么實現(xiàn),修改密碼怎么實現(xiàn)等等,可以說這一章是第三章的靈魂,它的地位與第三章一樣重要。 第5章主要是進(jìn)行系統(tǒng)的測試與調(diào)試;主要對系統(tǒng)按設(shè)計的功能要求來一一進(jìn)行驗證。
對本系統(tǒng)設(shè)計任務(wù)書要求的功能羅列如下: 1、系統(tǒng)的液晶顯示屏具有指示功能。 2、系統(tǒng)在空閑狀態(tài)顯示當(dāng)前時間并可以對時間進(jìn)行校準(zhǔn)。 3、系統(tǒng)在輸入密碼狀態(tài)用鍵盤(0~9)來輸入系統(tǒng)設(shè)定的當(dāng)前密碼,如果密碼輸入正確在屏幕上有歡迎信息提示和開門信息提示;如果輸入密碼錯誤在屏幕上會有密碼錯誤信息提示,如果輸入密碼錯誤三次將會有報警提示。 4.系統(tǒng)在修改密碼狀態(tài),要求輸入當(dāng)前密碼,如果密碼輸入正確則進(jìn)入修改密碼狀態(tài);如果輸入當(dāng)前密碼錯誤則有錯誤信息提示。 5.系統(tǒng)有存儲數(shù)據(jù)功能,當(dāng)斷電后會保存當(dāng)前的密碼不會丟失。 6.系統(tǒng)在按了輸入密碼鍵或修改密碼健后如果30秒內(nèi)沒有對系統(tǒng)進(jìn)行任何操作的話,系統(tǒng)將自動切換到顯示時鐘狀態(tài)。 7.系統(tǒng)具有一鍵還原出廠密碼功能,如果對密碼管理不善可以使用本功能進(jìn)行密碼還原。
本課題設(shè)計用的主要芯片有兩個:一個是STC89C52單片機(jī),一個是SMC1602A液晶顯示器。STC89C52單片機(jī)作為系統(tǒng)的總控制核心,SMC1602A 為主要的外圍電路。下面對STC89C52和SMC1602A做一下簡單的介紹。
2.2.1 STC89C52概述
STC89C52系列單片機(jī)的封裝形式共分為DIP、PLCC及PQEP 3中形式,常用的是DIP封裝方式。 STC89C52單片機(jī)共40個引腳,大致可分為4類: (1)電源引腳 Vcc(40腳):電源端,+5V Vss(20腳):接地端(GND) (2)時鐘電路引腳 XTAL1(19腳):外部接晶振輸入端 XTAL2(18腳):外部接晶振輸出端 (3) I/O引腳 P0口 (39~32腳):P0口是一組8位的漏極開路型雙向I/O口,也是地址和數(shù)據(jù)的總線復(fù)用口 P1口 (1 ~ 8腳):P1口是一組帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,可驅(qū)動4個TTL門電路 P2口(21~28腳):P2口是一組帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,可驅(qū)動4個TTL門電路 P3口(10~17腳):P3口是一組帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,該端口的每個引腳都有第二功能 (4) 控制線引腳 RST(9腳):復(fù)位端 EA/VPP(31腳):片外的存儲器選擇端/Flash存儲器編程電源 ALE/PROG(30腳):地址鎖存允許端/編程脈沖輸入端 PSEN(29腳):讀片外程序存儲器選通信號輸入端 STC89C52單片機(jī)最大的特點(diǎn)就是有ISP/IAP功能,它具有4K字節(jié)的EEPROM。其內(nèi)部集成的EEPROM是與程序空間分開的,內(nèi)部寄存器和功能描述如下: 表2.1 ISP/IAP相關(guān)寄存器列表
ISP_DATA:ISP/IAP操作時的數(shù)據(jù)寄存器。 ISP/IAP從Flash讀出的數(shù)據(jù)放在此處,向Flash寫入的數(shù)據(jù)也需放在此處。 ISP_ADDRH:ISP/IAP操作時的地址寄存器高八位。 ISP_ADDRL:ISP/IAP操作時的地址寄存器低八位。 ISP_CMD:ISP/IAP操作時的命令模式寄存器,須命令觸發(fā)寄存器觸發(fā)方可生效。命令模式如表2.2所示。 表2.2 ISP_CMD寄存器模式設(shè)置 | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | 對用戶的應(yīng)用程序flash區(qū)及數(shù)據(jù)flash區(qū)字節(jié)讀 | | | | | | | | | 對用戶的應(yīng)用程序flash區(qū)及數(shù)據(jù)flash區(qū)字節(jié)編程 | | | | | | | | | 對用戶的應(yīng)用程序flash區(qū)及數(shù)據(jù)flash區(qū)扇區(qū)擦除 |
程序在系統(tǒng)ISP程序區(qū)時可以對用戶應(yīng)用程序區(qū)/數(shù)據(jù)Flash區(qū)(EEPROM)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除;程序在用戶應(yīng)用程序區(qū)時,僅可以對數(shù)據(jù)Flash區(qū)(EEPROM)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除。STC89C51RC/RD+系列單片機(jī)出廠時已經(jīng)固化有ISP引導(dǎo)碼,并設(shè)置為上電復(fù)位進(jìn)入ISP程序區(qū),并且出廠時就已完全加密。 ISP_TRIG:ISP/IAP操作時的命令觸發(fā)寄存器。 在ISPEN(ISP_CONTR.7)=1時,對ISP_TRIG 先寫入46h,再寫入B9h,ISP/IAP命令才會生效。 STC89C52RC,STC89LE52RC單片機(jī)內(nèi)部可用Data Flash(EEPROM)的地址如表2.3所示 表2.3 STC89C52RC、STC89LE52RC單片機(jī)內(nèi)部EEPROM地址表
2.2.2 SMC1602A概述
SMC1602A 標(biāo)準(zhǔn)字符點(diǎn)陣型液晶顯示模塊(LCM),采用點(diǎn)陣型液晶顯示器(LCD),可顯示16 個字符X2 行西文字符, 字符尺寸為2.95X4.35(WXH)mm,內(nèi)置HD44780 接口型液晶顯示控制器,可與MCU 單片機(jī)直接連接,廣泛應(yīng)用于各類儀器儀表及電子設(shè)備。
◆控制器接口說明(HD44780 及兼容芯片): 1) 基本操作時序: 1.1 讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字 1.2 寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖輸出:無 1.3 讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:D0~D7=數(shù)據(jù) 1.4 寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖輸出:無
2) RAM 地址映射圖控制器內(nèi)部帶有80X8 位(80字節(jié))的RAM緩沖區(qū),對應(yīng)關(guān)系如右圖所示:
3) 指令說明
- 顯示開/關(guān)及光標(biāo)設(shè)置
控制器內(nèi)部設(shè)有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部 80 字節(jié)RAM。
4) 初始化過程(復(fù)位過程) - 寫指令38H:顯示模式設(shè)置第一次
- 延時3ms
- 寫指令38H:顯示模式設(shè)置第二次
- 延時3ms
- 寫指令38H:顯示模式設(shè)置第三次
- 延時3ms
- 寫指令38H:顯示模式設(shè)置第四次
- 延時3ms
- 寫指令08H:顯示關(guān)閉
- 寫指令01H:顯示清屏
- 延時3ms
- 寫指令06H:顯示光標(biāo)移動設(shè)置
- 寫指令0CH:顯示開及光標(biāo)設(shè)置
2.2.3 系統(tǒng)框圖 本系統(tǒng)的核心部分是STC89C52單片機(jī),利用MAX232芯片實現(xiàn)將hex文件下載到單片機(jī)運(yùn)行的功能;利用SMC1602液晶顯示屏實現(xiàn)電子密碼鎖所需的提示信息輸出功能;利用鍵盤實現(xiàn)對密碼操作的各項的功能比如輸入密碼或者修改密碼等;采用蜂鳴器實現(xiàn)系統(tǒng)在輸入密碼錯誤三次后的自動報警功能;LED燈來指示密碼輸入是否正確和指示狀態(tài)的功能;利用STC單片機(jī)內(nèi)部的EEPROM實現(xiàn)密碼數(shù)據(jù)保存功能;用電源電路為系統(tǒng)提供5V的穩(wěn)定電源電源;用12MHZ的晶振電路為系統(tǒng)的單片機(jī)提供內(nèi)部時鐘。
系統(tǒng)的框圖如下圖所示:
圖2.9 系統(tǒng)結(jié)構(gòu)框圖 單片機(jī)中P1.0~P1.6連接10個獨(dú)立按鍵來組成一個矩陣鍵盤,實現(xiàn)鍵盤掃描并對按鍵進(jìn)行編碼,從而實現(xiàn)輸入密碼和修改密碼的功能;P1.7通過NPN型三極管來驅(qū)動蜂鳴器,當(dāng)輸入密碼錯誤三次后自動實現(xiàn)報警功能;P2.0~P2.7連接液晶顯示器的8位數(shù)據(jù)線,實現(xiàn)從單片機(jī)向液晶顯示器傳輸數(shù)據(jù);P3.0連接液晶的RS端和max232的out端、P3.1連接液晶的RW端和max232的in端、P3.2連接液晶的EN端,實現(xiàn)單片機(jī)控制液晶顯示器和連接串口的功能;P3.3連接獨(dú)立按鍵,按鍵后進(jìn)入輸入密碼狀態(tài);單片機(jī)的P3.4、P3.5、P3.6都連接了獨(dú)立按鍵,這些獨(dú)立鍵盤都是功能鍵盤他們是:輸入密碼功能鍵,按下系統(tǒng)會進(jìn)入輸入密碼狀態(tài);修改密碼功能鍵,按下系統(tǒng)會進(jìn)入修改密碼狀態(tài);還有一個確定功能鍵,按下系統(tǒng)會實現(xiàn)確定功能;P3.6和 P3.7分別連接紅色LED燈和綠色的LED燈,實現(xiàn)密碼輸入是否正確指示的功能。 根據(jù)設(shè)計的要求和系統(tǒng)中所用到的元件的原理特征,確定了設(shè)計的總體方案即:以STC89C52為主控制器,SMC1602A液晶顯示為提示器件,矩陣鍵盤為輸入器件,蜂鳴器為報警器件,STC89C52內(nèi)部的EEPROM為存儲數(shù)據(jù)器件,LED燈為指示器件,MAX232和上位機(jī)實現(xiàn)異步通信的器件等。這些器件與單片機(jī)的連接方式將在下面的內(nèi)容進(jìn)行說明。
本設(shè)計包括8個電路模塊,其中包括:指示燈電路模塊、5V電源電路模塊、晶振電路模塊、復(fù)位電路模塊、LCD顯示電路模塊、報警電路模塊、鍵盤電路模塊、串口電路模塊。
指示電路分為兩個部分:電源指示和密碼輸入狀態(tài)指示,設(shè)計電路如下圖所示: 3.2.1 電源指示燈電路設(shè)計 當(dāng)電源接通后指示燈亮,表示系統(tǒng)供電正常。
圖3.1 電源指示燈電路 3.2.2 密碼輸入狀態(tài)指示電路設(shè)計 P3.6連接紅色LED1,LED1亮表示當(dāng)前密碼輸入錯誤;P3.7連接綠色LED2,LED2亮表示當(dāng)前密碼輸入正確,LED1、LED2全亮表示系統(tǒng)在修改密碼狀態(tài)。
圖3.2 密碼輸入狀態(tài)指示電路 設(shè)計電路如下圖所示:
圖3.3 電源電路接法電路 晶振電路這里采用的是內(nèi)部振蕩器接法,晶振的頻率為12MHZ,它為單片機(jī)提供內(nèi)部時鐘源,設(shè)計電路如下圖所示:
圖3.4 晶振電路
3.4 復(fù)位電路設(shè)計 單片機(jī)的復(fù)位本設(shè)計手動復(fù)位,復(fù)位的作用是防止程序由于某些原因跑飛,通過此鍵來保證單片機(jī)運(yùn)行的可靠性,設(shè)計電路如下圖所示:
圖3.5 復(fù)位電路 3.5 LCD顯示電路設(shè)計 單片機(jī)的P2.0~P2.7連接液晶顯示器的7~14腳(8位數(shù)據(jù)),實現(xiàn)從單片機(jī)向液晶顯示器傳輸數(shù)據(jù)的功能;P3.0連接液晶4腳(RS端),從而實現(xiàn)單片機(jī)向其發(fā)送命令或數(shù)據(jù)功能;P3.1連接液晶的5腳(RW端),從而實現(xiàn)單片機(jī)對其讀寫的功能;P3.2連接液晶的6腳(EN端),這個引腳是用來編程控制lcd使能的。還有l(wèi)cd顯示器的3引腳連接10K歐姆的可變電阻器,當(dāng)改變它的阻值大小時可以改變lcd顯示的對比度如,設(shè)計電路下圖所示:
圖3.6 液晶顯示電路 蜂鳴器的連接到單片機(jī)的P1.7端。當(dāng)編程給P1.7一個高電平的話,三極管的源極和集電極導(dǎo)通,蜂鳴器將要通電,通過設(shè)置蜂鳴器的通電的時間來實現(xiàn)報警的聲音,設(shè)計電路如下圖所示:
圖3.7 報警電路 鍵盤電路分為兩種:矩陣式輸入鍵盤和獨(dú)立按鍵,矩陣式輸入鍵盤是(0~9)10個數(shù)輸入鍵,獨(dú)立按鍵共3個為功能鍵:輸入密碼鍵、修改密碼鍵、確定鍵,設(shè)計電路如下圖所示: 3.7.1 矩陣式鍵盤 矩陣鍵盤與單片機(jī)的引腳連接如下圖,其中的P1.0~P1.2是行掃描,P1.3~P1.6列掃描。
圖3.8 矩陣鍵盤電路 3.7.2 獨(dú)立式功能鍵 以下三個獨(dú)立按鍵是密碼鎖的功能鍵,S12連接P3.3實現(xiàn)進(jìn)入輸入密碼狀態(tài)的功能;S13連接P3.4實現(xiàn)按鍵后進(jìn)入修改密碼狀態(tài)的功能;S14連接P3.5實現(xiàn)確定功能。
圖3.9 功能鍵盤電路 串口電路的作用是將TTL電平轉(zhuǎn)換為CMOS電平,從而將PC機(jī)產(chǎn)生的hex文件拷貝到單片機(jī)中,設(shè)計電路如下圖所示:
圖3.10 串口電路 3.9 本章小結(jié) 根據(jù)設(shè)計的設(shè)計要求完成了以上所述的各個硬件部分的設(shè)計。系統(tǒng)硬件設(shè)計共分為8個部分:指示電路設(shè)計的作用是指示電源與密碼輸入狀態(tài)的指示作用;5V電源電路設(shè)計的作用是為系統(tǒng)提供穩(wěn)定的電壓;晶振電路設(shè)計的作用是為單片機(jī)的運(yùn)行提供內(nèi)部的時鐘脈沖;復(fù)位電路設(shè)計的作用是防止程序跑飛回復(fù)運(yùn)行的作用;液晶顯示電路設(shè)計的作用是提示與指示操作的作用;報警電路設(shè)計的作用是當(dāng)密碼輸入錯誤三次以上能夠報警;鍵盤電路設(shè)計的作用是向系統(tǒng)輸入數(shù)據(jù)和進(jìn)入各種功能狀態(tài);串口電路設(shè)計的作用是將hex文件拷貝到單片機(jī)內(nèi)部rom。
本系統(tǒng)軟件主要包括10個軟件程序模塊:主程序、鍵盤掃描程序、輸入密碼程序、修改密碼、時間顯示程序、時間調(diào)整程序、報警程序、對EEPROM操作程序、還原出廠設(shè)置程序、密碼校驗函數(shù)等函數(shù)模塊的設(shè)計。 主程序流程圖如下圖所示: (圖片請下載附件中的word版本)
系統(tǒng)上電后,系統(tǒng)將對硬件中的寄存器進(jìn)行初始化設(shè)置,初始化的寄存器主要是初始化單片機(jī)的內(nèi)部定時器用哪個定時器就要使能該定時器然后設(shè)置它的定時初值;初始化液晶,主要是初始化lcd的顯示方式等;初始化單片機(jī)的IO端口等。當(dāng)初始化完成后系統(tǒng)進(jìn)入了顯示當(dāng)前時間的等待狀態(tài),在顯示時間的同時系統(tǒng)在主函數(shù)中也不斷的調(diào)用以下幾個功能函數(shù):輸入密碼子函數(shù),修改時間子函數(shù),報警子函數(shù),一鍵還原子函數(shù)等。當(dāng)系統(tǒng)檢測到有功能鍵按下的時候,系統(tǒng)就調(diào)用相應(yīng)的子函數(shù)去執(zhí)行,來實現(xiàn)相應(yīng)子程序的預(yù)設(shè)功能。 下面對主要的函數(shù)模塊的流程簡要的說明。
鍵盤掃描程序流程圖如下圖所示: (圖片請下載附件中的word版本) 當(dāng)系統(tǒng)用到鍵盤時就要對鍵盤進(jìn)行掃描。鍵盤有10個數(shù)字鍵和3個功能鍵,數(shù)字鍵盤的連接方式見圖3.8和圖3.9。當(dāng)系統(tǒng)檢測到有鍵按下的時候,這時系統(tǒng)將這個按下的鍵對應(yīng)的鍵值傳遞給函數(shù)告訴主函數(shù)是哪個鍵按下,實現(xiàn)的方法是將按下鍵的序號付給一個變量,然后將這個變量的值返回給主函數(shù)。 為了實現(xiàn)在輸入密碼狀態(tài)和修改密碼2個狀態(tài)之間的自由切換,在鍵盤掃描電路的程序中又添加了兩個工作狀態(tài)的判斷程序,比如我現(xiàn)在是輸入密碼狀態(tài),現(xiàn)在我又想修改密碼。這時按一下對應(yīng)的功能鍵就能進(jìn)入想要進(jìn)入的狀態(tài)。
輸入密碼程序流程圖如下圖所示: (圖片請下載附件中的word版本) 圖4.3 輸入密碼程序流程圖 當(dāng)按了輸入密碼鍵后,密碼鎖進(jìn)入輸入密碼狀態(tài),首先系統(tǒng)將調(diào)用鍵盤掃描函數(shù)進(jìn)行密碼的輸入,當(dāng)6位密碼輸入完成后,此時需要按一下確認(rèn)鍵,此時如果輸入的6位密碼全部正確,密碼鎖將會通過lcd提示密碼正確信息的提示,同時綠色的led燈亮表示輸入的密碼正確;當(dāng)6位密碼輸入錯誤,密碼鎖將會有通過lcd提示密碼錯誤的提示同時紅色的led指示燈亮表示輸入的密碼錯誤,此時錯誤次數(shù)加一,如輸錯的次數(shù)到達(dá)系統(tǒng)設(shè)置的要求的話密碼鎖將自動產(chǎn)生報警信號。如果在輸入密碼狀態(tài)沒有對系統(tǒng)進(jìn)行任何的操作的話,30秒后系統(tǒng)將自動的跳到等待狀態(tài)。
修改密碼程序流程圖如下圖所示: (圖片請下載附件中的word版本) 圖4.4 修改密碼程序流程圖 當(dāng)按下修改密碼鍵后,密碼鎖將進(jìn)入修改密碼狀態(tài),此時的紅色和綠色的指示燈都亮表示當(dāng)前的狀態(tài)是修改密碼狀態(tài),系統(tǒng)調(diào)用鍵盤掃描函數(shù)進(jìn)行密碼的輸入,當(dāng)6位密碼輸入完成后需要按一下確認(rèn)鍵,此時如果輸入的6位密碼全部正確,密碼鎖進(jìn)入修改密碼狀態(tài);當(dāng)6位密碼輸入錯誤那么會有密碼輸入錯誤的提示;進(jìn)入修改密碼狀態(tài)后,系統(tǒng)將再一次的調(diào)用鍵盤掃描函數(shù)進(jìn)行新的密碼輸入,要求輸入新的6位密碼,輸完后按確認(rèn)鍵后,系統(tǒng)會有修改密碼成功的提示;如果按了修改密碼功能鍵后沒有對系統(tǒng)進(jìn)行任何的操作的話,30秒后系統(tǒng)將自動的跳到等待狀態(tài)。 報警程序流程圖如下圖所示: (圖片請下載附件中的word版本) 圖4.5 報警程序流程圖 在報警函數(shù)主要設(shè)置了報警聲音的頻率,當(dāng)報警條件滿足時,系統(tǒng)將由蜂鳴器進(jìn)行十次報警。和蜂鳴器連接的是NPN型號的三極管,當(dāng)給驅(qū)動引腳送一個高電平則蜂鳴器通路,開始報警,當(dāng)給驅(qū)動引腳送一個低電平則蜂鳴器不通,停止報警。
(圖片請下載附件中的word版本)
系統(tǒng)上電后,將初始化定時器,然后系統(tǒng)向液晶的第一行送入now time數(shù)據(jù),然后向液晶的第二行送入時間數(shù)組的值。 (圖片請下載附件中的word版本) 圖4.7 時鐘設(shè)置流程圖 當(dāng)按下修改時間功能鍵后,系統(tǒng)將停止定時并記錄按下此鍵的次數(shù),按下的次數(shù)為1的時候?qū)γ氲膫位進(jìn)行校準(zhǔn);按下的次數(shù)為2的時候?qū)γ氲氖贿M(jìn)行校準(zhǔn)等等,當(dāng)按下的次數(shù)為7時候,系統(tǒng)將開啟定時,這時時鐘將按照設(shè)置好的時間值進(jìn)行計時。
EEPROM操作(讀、寫、擦除)程序流程圖如下圖所示:
(圖片請下載附件中的word版本) 圖4.8 對EEPROM進(jìn)行讀操作流程圖
(圖片請下載附件中的word版本)
圖4.9 對EEPROM進(jìn)行讀操作流程圖
(圖片請下載附件中的word版本)
圖4.10 對EEPROM進(jìn)行擦除操作流程圖
本章介紹的主要是基于硬件平臺的軟件的流程,通過keil uvision3軟件的編程來實現(xiàn)任務(wù)書中要求的各個功能。本系統(tǒng)共設(shè)計了10個功能模塊,每個功能模塊的實現(xiàn)都是是經(jīng)過不斷的編寫、不斷的調(diào)試、不斷的改進(jìn)實現(xiàn)的。對編寫好的電子密碼鎖的代碼進(jìn)行編譯、鏈接生成了hex文件,最后下載到焊接好的硬件平臺上,在下面的章節(jié)中將對測試系統(tǒng)功能進(jìn)行詳細(xì)介紹。
在設(shè)計完硬件和軟件后對系統(tǒng)也進(jìn)行仿真,這里用的仿真軟件是protues。仿真運(yùn)行結(jié)果沒什么問題,可以滿足設(shè)計要求。將hex文件拷貝到實際的硬件電路上的單片機(jī)上,然后進(jìn)行測試設(shè)計要求的各種功能。通過測試和調(diào)試不斷的提高系統(tǒng)的可靠性與可執(zhí)行性。
5.1系統(tǒng)仿真測試與調(diào)試 系統(tǒng)調(diào)試用到的軟件是keil uvision3和protues,將keil uvision3和protues仿真軟件結(jié)合起來,仿真實現(xiàn)各種功能能否實現(xiàn),然后再將軟件加載到硬件上。調(diào)試過程很重要,因為在代碼編寫的過程中,調(diào)試能夠清楚的了解程序運(yùn)行的順序和各個函數(shù)之間的調(diào)用情況,更重要的是調(diào)試能夠幫助找到程序中遇到的不可理解的錯誤。經(jīng)過多次對代碼的調(diào)試,系統(tǒng)的軟件部分可以滿足系統(tǒng)的設(shè)計要求,使設(shè)計合理、完美。 下面對protues仿真結(jié)果進(jìn)行簡要的說明:
圖5.1 KC51調(diào)試界面
圖5.4 仿真時鐘顯示功能 通過以上一步一步的調(diào)試和仿真,說明設(shè)計的軟件部分可以滿足系統(tǒng)設(shè)計的要求,接下來對系統(tǒng)的硬件電路進(jìn)行調(diào)試。當(dāng)把所有的元器件都有序的焊接到電路板上后,主要應(yīng)用萬用表來檢查焊接好的電路電壓是否正常,檢查焊接的節(jié)點(diǎn)有沒有虛焊、漏焊、短接等情況。 如果軟件與硬件調(diào)試都沒什么問題的話,應(yīng)用STC系列單片機(jī)的程序下載工具,將軟件編寫好后生成的hex文件拷貝到單片機(jī)內(nèi)部,然后按復(fù)位鍵,開始測試系統(tǒng)的各項功能。
下載工具如下圖所示:
5.2系統(tǒng)測試及結(jié)果分析 下面主要按照第三章第一小節(jié)中功能要求來對密碼鎖系統(tǒng)所要求的功能來進(jìn)行一一測試。 5.2.1 測試液晶顯示屏的提示與指示操作功能。 空閑顯示時間和提示操作信息等。測試結(jié)果如下圖所示:
圖5.6 液晶顯示屏的提示功能 5.2.2 測試系統(tǒng)在空閑狀態(tài)顯示時間并校對時間功能。 空閑狀態(tài)時顯示當(dāng)前時間。測試結(jié)果如下圖所示: 圖5.7 空閑狀態(tài)顯示當(dāng)前時間 當(dāng)按下校對時間功能鍵后進(jìn)入時間校準(zhǔn)狀態(tài)。測試結(jié)果如下圖所示:
對秒的個位校準(zhǔn) 對秒的十位進(jìn)行校準(zhǔn)
對分的個位進(jìn)行校準(zhǔn) 對分的十位進(jìn)行校準(zhǔn)
對時的個位進(jìn)行校準(zhǔn) 對時的十位進(jìn)行校準(zhǔn) 圖5.8 校對時間狀態(tài) 5.2.3 測試系統(tǒng)在輸入密碼和報警功能 系統(tǒng)初始密碼為528825,當(dāng)按下輸入密碼功能鍵后屏幕會顯示輸入密碼提示信息。測試結(jié)果如下圖所示:
圖5.9 輸入密碼狀態(tài) 輸入密碼后結(jié)果為:
圖5.10 輸入6位密碼 按確認(rèn)鍵后: 如果密碼輸入正確結(jié)果提示信息為:hello 請關(guān)門;密碼輸入正確綠燈亮表示輸入密碼正確。測試結(jié)果如下圖所示:
圖5.11 密碼輸入正確
如果密碼輸入錯誤,lcd1602a上的提示信息內(nèi)容為:密碼輸入錯誤,請按輸入密碼鍵進(jìn)行重輸入密碼;紅色的led亮表示輸入密碼錯誤。測試結(jié)果如下圖所示:
圖5.12 密碼輸入錯誤
如果密碼輸入錯誤達(dá)到三次液晶顯示會有報警提示,蜂鳴器將進(jìn)行報警。測試結(jié)果如下圖所示:
圖5.13 報警狀態(tài)
5.2.4 測試系統(tǒng)修改密碼功能 初始密碼為528825;按下修改密碼功能鍵后,紅色的led和綠色的led亮(當(dāng)修改密碼時這兩個燈都亮)。測試結(jié)果如下圖所示:
圖5.14 修改密碼狀態(tài) 輸入密碼鎖系統(tǒng)的6位密碼正確則進(jìn)入修改密碼狀態(tài),密碼正確后要求設(shè)置新密碼,當(dāng)按了確定鍵后新密碼設(shè)置成功。測試結(jié)果如下圖所示:
圖5.15 輸入新密碼
圖5.16 設(shè)置新密碼 圖5.17 測試新密碼輸入正確
當(dāng)初始密碼輸入錯誤,測試結(jié)果如下圖所示:(提示信息為:對不起 密碼錯誤,修改密碼錯誤)
圖5.18 測試新密碼輸入錯誤
5.2.5 測試系統(tǒng)密碼數(shù)據(jù)保護(hù)功能 比如說電子密碼鎖初始的密碼為528825,現(xiàn)在將它改為123123。這時突然掉電,當(dāng)系統(tǒng)再次接上電后,現(xiàn)在可以用123123來進(jìn)行輸入密碼。測試結(jié)果如下圖所示:
圖5.19 測試密碼數(shù)據(jù)保護(hù) 5.2.6 測試30秒到切換狀態(tài)功能 比如按下修改密碼功能鍵或輸入密碼功能鍵,按下此鍵后如果沒有對系統(tǒng)做任何操作,30秒后將回到等待狀態(tài)。測試結(jié)果如下圖所示:
圖5.20 30秒到狀態(tài)切換功能 5.2.7 測試一鍵還原初始密碼功能 當(dāng)按下一鍵還原功能鍵后,(此時系統(tǒng)提示信息意思為:初始化密碼完成)之后就可以用初始密碼進(jìn)行開鎖了。測試結(jié)果如下圖所示:
圖5.21 一鍵還原出廠密碼 結(jié) 論 設(shè)計的基于單片機(jī)的電子密碼鎖實現(xiàn)了密碼鎖的常用功能和技術(shù)指標(biāo)。在指導(dǎo)老師精心指導(dǎo)和自己的不懈努力下完成了軟件和硬件的各項工作,現(xiàn)在系統(tǒng)各項功能運(yùn)行正常,基本上完成了任務(wù)書中的要求和任務(wù)。 系統(tǒng)中用LCD1602A來顯示提示信息,使系統(tǒng)更加實用。 電子密碼鎖最重要的方面就是具有較高的可靠性,本文設(shè)計的密碼鎖具有密碼數(shù)據(jù)保護(hù)功能和備用電源等措施來增加系統(tǒng)的可靠性。在數(shù)據(jù)保護(hù)方面,應(yīng)用單片機(jī)內(nèi)部的eeprom,這樣使硬件資源利用率大大提高。 由單片機(jī)控制器系統(tǒng)控制密碼鎖在空閑狀態(tài)顯示當(dāng)前時間的同時不斷的檢測那幾個功能鍵是否被按下,如果有功能鍵按下,之后系統(tǒng)就馬上進(jìn)入相應(yīng)的功能狀態(tài)。
附錄A 系統(tǒng)總電路圖
附錄B 系統(tǒng)PCB版圖
附錄C 系統(tǒng)元件布局圖
附錄E 部分源程序清單 主程序程序:
1 - void main()
- {
- init();
- while(1)
- {
- display();
- szkey();
- gaimihs();
- mimahs();
- if(errcount==3) //輸入密碼三次錯誤報警
- {
- write_com(0x01);
- write_com(0x80);
- for(i=0;alarm[i]!='';i++)
- {
- write_data(alarm[i]);
- delay(1);
- }
- fayin();
- errcount=0;
- }
- initpaswd();
- }
- }
復(fù)制代碼
很開心你和我做的項目一樣,我這里有我當(dāng)初寫的程序和設(shè)計的電路板。
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
文檔下載地址(為防止有人照搬,附件不含代碼和仿真,僅供學(xué)習(xí)參考):
文檔.7z
(2.61 MB, 下載次數(shù): 649)
2021-3-24 04:10 上傳
點(diǎn)擊文件名下載附件
|