器件名稱 | 型號 | 大小 | 個數 | 封裝 | 說明 |
電阻 | R5 R6 R7 | 1K | 3 | AXIAL-0.4 | |
R1 R2 R3 R4 R10 | 10K | 5 | AXIAL-0.3 | ||
R11 | 10K | 1 | SIP-3 | 滑動變阻器 | |
電容 | C1 C2 | 20pF | 2 | RAD-0.1 | |
C3 C4 C5 C6 C8 C9 | 104 | 6 | RAD0.1 | ||
C7 C10 | 100uF | 2 | RAD0.1 | 極性電容 | |
C11 | 10uF | 1 | RAD-0.1 | ||
晶振 | 11.0592MHZ | 1 | CRYSTAL | ||
單片機 | STC89C52 | 1 | DIP-40 | ||
轉化芯片 | MAX232 | 1 | DIP16 | ||
并口 | DB9 | 1 | DB9 | ||
二極管 | IN4007 | D7 D8 D9 D10 | 4 | DIODE0.4 | 整流二極管 |
J2 | 1 | DIANYUAN | 電源接口 | ||
穩壓芯片 | LM7805CT | 1 | TO-126 | ||
三極管 | 1 | SANJIGUAN | |||
蜂鳴器 | 1 | FENGMINGQI | |||
發光二極管 | D1 D3 D4 | <5mA | 3 | LED | 2紅1綠 |
液晶顯示屏 | SMC1602A | 1 | |||
電源 | 9V | 1 | |||
接口線 | 1 | ||||
P1 | 1 | 液晶接口 | |||
按鈕 | S1~S14 | 14 | SW-PB1-15 |
隨著科技的不斷發展,人們越來越重視對具有私密、重要物質的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設計單片機為主要控制器的電子密碼鎖具有工程意義和解決日常應用需求的價值。 本電子密碼鎖的設計采用以單片機STC89C52RC為主控制器,應用矩陣鍵盤、SMC1602A液晶顯示器、STC89C52RC內部的EEPROM等器件進行設計了鍵盤電路、液晶顯示電路、UART串口電路、電源(5V)電路、指示(LED)電路、報警(蜂鳴器)電路等電路設計;應用protel軟件設計了硬件原理圖和PCB圖;應用C51語言設計了顯示時間和校對時間、輸入密碼和修改密碼、控制EEPROM等軟件模塊;最后焊接PCB并調試電路。最終設計出一個具有等待狀態顯示時間(可以對時間進行校準)、輸入密碼、修改密碼、密碼正確與否指示、報警、密碼保護、一鍵還原初始密碼等功能的密碼鎖。設計此系統具有較高的安全性和科學性。
|
目 次
(圖片請下載附件中的word版本)
隨著科技的不斷發展,人們越來越重視對具有私密、重要物質的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設計單片機為主要控制器的電子密碼鎖具有工程意義和解決日常應用需求的價值。本文主要介紹的是以單片機STC89C52型號為主要控制器的電子密碼鎖的設計并介紹其設計方法和設計的成果。
隨著科技的不斷進步和發展,人類已經步入了一個高科技的新時代。在這日新月異的時代中,人們對住宅、部門等具有私密、重要物質的場所的安全性要求不斷提高。舊社會中,由于科技不發達,人們常常用機械鎖來保護個人的財產,以這種方法來確保它們的安全性。這種用鑰匙開鎖式的機械鎖常常會給人們帶來不少的煩惱,比如:開鎖的鑰匙不慎丟了或者鎖門的鎖壞了。同時,平時攜帶一大竄鑰匙也給人們帶來不少的麻煩。從安全的角度來看,一種具有報警和高實用性的密碼鎖將取代人們所熟知的機械鎖,這種電子密碼鎖安全可靠,具有較高的安全性和科學性。
1.2.1 電子密碼鎖技術的發展歷史
電子密碼鎖從電子科技技術發展以來經歷了由大型到小型、由復雜到簡單、由原始到智能的發展經歷。尤其是近年來不同型號的微處理器出現,為電子密碼鎖不斷的改進與創新提供了新的發展契機:比如如今的微處理器會做的很小,這樣小巧的處理器能為電子密碼鎖節省更多的硬件空間達到節省成本;再比如說老版本的8051單片機它內部是不提供EEPROM的,這如果想實現數據儲存就需要用I2C總線來外接存儲器來保存數據,如今單片機內部有EEPROM,數據掉電不會丟失。
說到識別密碼方式,國內外大致經歷了由早期的矩陣鍵盤輸入操作到紅外遙控控制操作再到智能IC卡再到如今指紋識別等多種實現方法。紅外遙控控制密碼鎖會更加的方便快捷,通過密碼鎖的內部芯片對紅外接收頭接受到的信號進行解碼然后通過對比密碼來判定輸入密碼是否正確;IC卡密碼鎖設計是基于一個AT24C01A卡進行設計的,IC卡的核心是電可擦除的EEPROM。指紋密碼鎖設計是西門子公司研制的一種指紋感應片,這種芯片面積只有130mm,大小和人的指甲蓋差不多,在這么小的芯片上卻覆蓋著有6.5萬個微小型敏感元件,每個感應片有很高的靈敏度和測量精度,如此多的敏感細致元件完全可以非常詳細和精準的將人手上的各種紋路信息拾取下來,將指紋數據存于電腦數據庫中,這種具有人體特征標志的人體密碼不僅可以大大增加了私人財產的安全性而且其操作簡便、快捷具有很高的可靠性,于是這種指紋人體密碼芯片將逐漸的被用于日常生活中具有重要物質的場所和設備比如銀行、倉庫等。
還有顯示方面,早期顯示使用的led燈、后來有了7段數碼管、再后來大多數用的是lcd顯示器。所以,隨著科技的進步和創新,設計密碼鎖的技術也不甘落后,也在朝著智能化,通用化,人性化等富有創新的方向發展。
1.2.2 電子密碼鎖技術的研究現狀
針對電子密碼鎖系統設計經過翻閱資料和對學術的學習和研究,提出多種實現方案,其中比較典型的有以下幾種。文獻中應用矩陣式鍵盤作為密碼輸入,用單片機的IO口控制鍵盤,通過編寫程序用單片機對鍵盤進行掃描,然后用7段數碼管顯示系統狀態和信息、門開門關提示信息是由LED燈進行提示。還有,應用紅外遙控器和紅外接收頭來代替上面的矩陣式鍵盤,采用現成的遙控器,應用單片機編程對紅外接收頭接受的信號進行解碼,顯示應用的是型號為1602A的液晶顯示,開關門指示信息是由led燈提示的,設計的優勢是應用了I2C總線來控制外接的EEPEOM,來實現輸入密碼的數據保存功能。還有,應用STC89C52單片機,這個單片機和AT系列的單片機最大區別就是這類單片機有內部集成了4kb大小的EEPROM,利用ISP/API功能能應用編程來控制內部的EEPROM的讀寫而不需要外接存儲器來進行數據保護。再有,應用單片機來完成以下的工作,第一個工作是對連接在單片機IO口上的鍵盤進行編碼來制作一個遠紅外遙控器,將序列碼經過發送頭發送到單片機連接的接收頭上,第二個工作是將接受到的數據經過紅外接收頭解碼將數據交給單片機來處理來實現各個碼的功能。目前,電子密碼鎖的功能的得到實現的新方法真是別出心裁,展現科技的發展和進步,比如:IC卡和指紋識別,IC卡密碼鎖設計是基于一個AT24C01A卡進行設計的,IC卡的核心是EEPROM。應用指紋設計出的密碼鎖主要應用的是傳感器是西門子公司研制,這種傳感器有很高的測量精度和靈敏度,所以這種人體密碼大大提高了家庭、個人、公共的具有重要性的財產的安全性,這是科技發展和人類不斷創新的結果,所以我們要好好利用科技帶給我們生活的每一種便捷。
1.2.3 總結:
通過對以上各種實現電子密碼鎖的方法的學習、研究和比較,下面來談一談各種方法的優缺點,對于采用矩陣鍵盤來進行輸入的這種方法生產成本低、操作方便,在如今也是很受歡迎的,但是他壽命不長;而用7段數碼顯示比較落后,顯示不出科技的進步;對于采用遙控方式,優點是輸入電路換成了紅外遙控控制輸入,這樣來操作密碼更加方便,缺點是成本比較高,外接EEPROM增加了硬件成本和操作強度。對于采用STC單片機,這種設計方法很合理,充分利用了單片機內部集成的EEPROM,只需通過編寫控制它的程序就能實現數據保護功能,而不需外接儲存器所以就降低了生產成本,不僅如此,這樣設計的系統可行性好。而目前,密碼鎖設計和實現的新方法是現在流行的高科技手段來對密碼鎖進行更進一步的智能化,技術含量高。由此可見密碼鎖的發展的方向是不斷的滿足人們生活中的要求,功能更加齊全,更加人性,更加智能,更加方便的方向發展。
上面對電子密碼鎖的研究背景意義、發展進行了簡要的介紹,在下面的章節中,將對系統的設計方案;以及系統的硬件設計;還有系統的軟件設計;最后對系統的測試按照任務書和設計的功能要求來一一測試。
第2章主要說明系統的功能要求、系統的工作原理及最終實行的方案。
第3章主要介紹供5V直流電源設計,lcd顯示電路的設計等系統硬件部分的設計,這部分工作為畫原理圖和PCB版圖提供能基礎,所以是系統重要的部分。
第4章主要介紹系統軟件部分的設計,比如輸入密碼怎么實現,修改密碼怎么實現等等,可以說這一章是第三章的靈魂,它的地位與第三章一樣重要。
第5章主要是進行系統的測試與調試;主要對系統按設計的功能要求來一一進行驗證。
對本系統設計任務書要求的功能羅列如下:
1、系統的液晶顯示屏具有指示功能。
2、系統在空閑狀態顯示當前時間并可以對時間進行校準。
3、系統在輸入密碼狀態用鍵盤(0~9)來輸入系統設定的當前密碼,如果密碼輸入正確在屏幕上有歡迎信息提示和開門信息提示;如果輸入密碼錯誤在屏幕上會有密碼錯誤信息提示,如果輸入密碼錯誤三次將會有報警提示。
4.系統在修改密碼狀態,要求輸入當前密碼,如果密碼輸入正確則進入修改密碼狀態;如果輸入當前密碼錯誤則有錯誤信息提示。
5.系統有存儲數據功能,當斷電后會保存當前的密碼不會丟失。
6.系統在按了輸入密碼鍵或修改密碼健后如果30秒內沒有對系統進行任何操作的話,系統將自動切換到顯示時鐘狀態。
7.系統具有一鍵還原出廠密碼功能,如果對密碼管理不善可以使用本功能進行密碼還原。
本課題設計用的主要芯片有兩個:一個是STC89C52單片機,一個是SMC1602A液晶顯示器。STC89C52單片機作為系統的總控制核心,SMC1602A 為主要的外圍電路。下面對STC89C52和SMC1602A做一下簡單的介紹。
2.2.1 STC89C52概述
STC89C52系列單片機的封裝形式共分為DIP、PLCC及PQEP 3中形式,常用的是DIP封裝方式。
STC89C52單片機共40個引腳,大致可分為4類:
(1)電源引腳
Vcc(40腳):電源端,+5V
Vss(20腳):接地端(GND)
(2)時鐘電路引腳
XTAL1(19腳):外部接晶振輸入端
XTAL2(18腳):外部接晶振輸出端
(3) I/O引腳
P0口 (39~32腳):P0口是一組8位的漏極開路型雙向I/O口,也是地址和數據的總線復用口
P1口 (1 ~ 8腳):P1口是一組帶內部上拉電阻的8位準雙向I/O口,可驅動4個TTL門電路
P2口(21~28腳):P2口是一組帶內部上拉電阻的8位準雙向I/O口,可驅動4個TTL門電路
P3口(10~17腳):P3口是一組帶內部上拉電阻的8位準雙向I/O口,該端口的每個引腳都有第二功能
(4) 控制線引腳
RST(9腳):復位端
EA/VPP(31腳):片外的存儲器選擇端/Flash存儲器編程電源
ALE/PROG(30腳):地址鎖存允許端/編程脈沖輸入端
PSEN(29腳):讀片外程序存儲器選通信號輸入端
STC89C52單片機最大的特點就是有ISP/IAP功能,它具有4K字節的EEPROM。其內部集成的EEPROM是與程序空間分開的,內部寄存器和功能描述如下:
名稱 | 地址 | 功能描述 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 復位值 |
ISP_DATA | E2h | Flash數據寄存器 | 1111 1111 | ||||||||
ISP_ADDRH | E3h | Flash高字節地址寄存器 | 0000 0000 | ||||||||
ISP_ADDRL | E4h | Flash低字節地址寄存器 | 0000 0000 | ||||||||
ISP_CMD | E5h | Flash命令模式寄存器 | -- | -- | -- | -- | -- | MS2 | MS1 | MS0 | xxxx x000 |
ISP_TRIG | E6h | Flash命令觸發寄存器 | xxxx xxxx | ||||||||
ISP_CONTR | E7h | ISP/IAP 控制寄存器 | ISPEN | SWBS | SWRST | -- | -- | WT2 | WT1 | WT0 | 000x x000 |
ISP_DATA:ISP/IAP操作時的數據寄存器。
ISP/IAP從Flash讀出的數據放在此處,向Flash寫入的數據也需放在此處。
ISP_ADDRH:ISP/IAP操作時的地址寄存器高八位。
ISP_ADDRL:ISP/IAP操作時的地址寄存器低八位。
ISP_CMD:ISP/IAP操作時的命令模式寄存器,須命令觸發寄存器觸發方可生效。命令模式如表2.2所示。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 模式選擇 |
保留 | 命令選擇 | |||||||
-- | -- | -- | -- | -- | 0 | 0 | 0 | 待機模式,無ISP操作 |
-- | -- | -- | -- | -- | 0 | 0 | 1 | 對用戶的應用程序flash區及數據flash區字節讀 |
-- | -- | -- | -- | -- | 0 | 1 | 0 | 對用戶的應用程序flash區及數據flash區字節編程 |
-- | -- | -- | -- | -- | 0 | 1 | 1 | 對用戶的應用程序flash區及數據flash區扇區擦除 |
程序在系統ISP程序區時可以對用戶應用程序區/數據Flash區(EEPROM)進行字節讀/字節編程/扇區擦除;程序在用戶應用程序區時,僅可以對數據Flash區(EEPROM)進行字節讀/字節編程/扇區擦除。STC89C51RC/RD+系列單片機出廠時已經固化有ISP引導碼,并設置為上電復位進入ISP程序區,并且出廠時就已完全加密。
ISP_TRIG:ISP/IAP操作時的命令觸發寄存器。
在ISPEN(ISP_CONTR.7)=1時,對ISP_TRIG 先寫入46h,再寫入B9h,ISP/IAP命令才會生效。
STC89C52RC,STC89LE52RC單片機內部可用Data Flash(EEPROM)的地址如表2.3所示
第一扇區 | 第二扇區 | 第三扇區 | 第四扇區 | ||||
起始地址 | 結束地址 | 起始地址 | 結束地址 | 起始地址 | 結束地址 | 起始地址 | 結束地址 |
2000H | 21FFH | 2200H | 23FFH | 2400H | 25FFH | 2600H | 27FFH |
第五扇區 | 第六扇區 | 第七扇區 | 第八扇區 | ||||
起始地址 | 結束地址 | 起始地址 | 結束地址 | 起始地址 | 結束地址 | 起始地址 | 結束地址 |
2800H | 29FFH | 2A00H | 2BFFH | 2C00H | 2DFFH | 2E00H | 2FFFH |
2.2.2 SMC1602A概述
SMC1602A 標準字符點陣型液晶顯示模塊(LCM),采用點陣型液晶顯示器(LCD),可顯示16 個字符X2 行西文字符,
字符尺寸為2.95X4.35(WXH)mm,內置HD44780 接口型液晶顯示控制器,可與MCU 單片機直接連接,廣泛應用于各類儀器儀表及電子設備。
◆控制器接口說明(HD44780 及兼容芯片):
1) 基本操作時序:
1.1 讀狀態:輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態字
1.2 寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖輸出:無
1.3 讀數據:輸入:RS=H,RW=H,E=H 輸出:D0~D7=數據
1.4 寫數據:輸入:RS=H,RW=L,D0~D7=數據,E=高脈沖輸出:無
2) RAM 地址映射圖控制器內部帶有80X8 位(80字節)的RAM緩沖區,對應關系如右圖所示:
3) 指令說明
控制器內部設有一個數據地址指針,用戶可通過它們來訪問內部的全部 80 字節RAM。
4) 初始化過程(復位過程)
2.2.3 系統框圖
本系統的核心部分是STC89C52單片機,利用MAX232芯片實現將hex文件下載到單片機運行的功能;利用SMC1602液晶顯示屏實現電子密碼鎖所需的提示信息輸出功能;利用鍵盤實現對密碼操作的各項的功能比如輸入密碼或者修改密碼等;采用蜂鳴器實現系統在輸入密碼錯誤三次后的自動報警功能;LED燈來指示密碼輸入是否正確和指示狀態的功能;利用STC單片機內部的EEPROM實現密碼數據保存功能;用電源電路為系統提供5V的穩定電源電源;用12MHZ的晶振電路為系統的單片機提供內部時鐘。
系統的框圖如下圖所示:
圖2.9 系統結構框圖
單片機中P1.0~P1.6連接10個獨立按鍵來組成一個矩陣鍵盤,實現鍵盤掃描并對按鍵進行編碼,從而實現輸入密碼和修改密碼的功能;P1.7通過NPN型三極管來驅動蜂鳴器,當輸入密碼錯誤三次后自動實現報警功能;P2.0~P2.7連接液晶顯示器的8位數據線,實現從單片機向液晶顯示器傳輸數據;P3.0連接液晶的RS端和max232的out端、P3.1連接液晶的RW端和max232的in端、P3.2連接液晶的EN端,實現單片機控制液晶顯示器和連接串口的功能;P3.3連接獨立按鍵,按鍵后進入輸入密碼狀態;單片機的P3.4、P3.5、P3.6都連接了獨立按鍵,這些獨立鍵盤都是功能鍵盤他們是:輸入密碼功能鍵,按下系統會進入輸入密碼狀態;修改密碼功能鍵,按下系統會進入修改密碼狀態;還有一個確定功能鍵,按下系統會實現確定功能;P3.6和 P3.7分別連接紅色LED燈和綠色的LED燈,實現密碼輸入是否正確指示的功能。
根據設計的要求和系統中所用到的元件的原理特征,確定了設計的總體方案即:以STC89C52為主控制器,SMC1602A液晶顯示為提示器件,矩陣鍵盤為輸入器件,蜂鳴器為報警器件,STC89C52內部的EEPROM為存儲數據器件,LED燈為指示器件,MAX232和上位機實現異步通信的器件等。這些器件與單片機的連接方式將在下面的內容進行說明。
本設計包括8個電路模塊,其中包括:指示燈電路模塊、5V電源電路模塊、晶振電路模塊、復位電路模塊、LCD顯示電路模塊、報警電路模塊、鍵盤電路模塊、串口電路模塊。
指示電路分為兩個部分:電源指示和密碼輸入狀態指示,設計電路如下圖所示:
3.2.1 電源指示燈電路設計
當電源接通后指示燈亮,表示系統供電正常。
圖3.1 電源指示燈電路
3.2.2 密碼輸入狀態指示電路設計
P3.6連接紅色LED1,LED1亮表示當前密碼輸入錯誤;P3.7連接綠色LED2,LED2亮表示當前密碼輸入正確,LED1、LED2全亮表示系統在修改密碼狀態。
圖3.2 密碼輸入狀態指示電路
設計電路如下圖所示:
圖3.3 電源電路接法電路
晶振電路這里采用的是內部振蕩器接法,晶振的頻率為12MHZ,它為單片機提供內部時鐘源,設計電路如下圖所示:
圖3.4 晶振電路
3.4 復位電路設計
單片機的復位本設計手動復位,復位的作用是防止程序由于某些原因跑飛,通過此鍵來保證單片機運行的可靠性,設計電路如下圖所示:
圖3.5 復位電路
3.5 LCD顯示電路設計
單片機的P2.0~P2.7連接液晶顯示器的7~14腳(8位數據),實現從單片機向液晶顯示器傳輸數據的功能;P3.0連接液晶4腳(RS端),從而實現單片機向其發送命令或數據功能;P3.1連接液晶的5腳(RW端),從而實現單片機對其讀寫的功能;P3.2連接液晶的6腳(EN端),這個引腳是用來編程控制lcd使能的。還有lcd顯示器的3引腳連接10K歐姆的可變電阻器,當改變它的阻值大小時可以改變lcd顯示的對比度如,設計電路下圖所示:
圖3.6 液晶顯示電路
蜂鳴器的連接到單片機的P1.7端。當編程給P1.7一個高電平的話,三極管的源極和集電極導通,蜂鳴器將要通電,通過設置蜂鳴器的通電的時間來實現報警的聲音,設計電路如下圖所示:
圖3.7 報警電路
鍵盤電路分為兩種:矩陣式輸入鍵盤和獨立按鍵,矩陣式輸入鍵盤是(0~9)10個數輸入鍵,獨立按鍵共3個為功能鍵:輸入密碼鍵、修改密碼鍵、確定鍵,設計電路如下圖所示:
3.7.1 矩陣式鍵盤
矩陣鍵盤與單片機的引腳連接如下圖,其中的P1.0~P1.2是行掃描,P1.3~P1.6列掃描。
圖3.8 矩陣鍵盤電路
3.7.2 獨立式功能鍵
以下三個獨立按鍵是密碼鎖的功能鍵,S12連接P3.3實現進入輸入密碼狀態的功能;S13連接P3.4實現按鍵后進入修改密碼狀態的功能;S14連接P3.5實現確定功能。
圖3.9 功能鍵盤電路
串口電路的作用是將TTL電平轉換為CMOS電平,從而將PC機產生的hex文件拷貝到單片機中,設計電路如下圖所示:
圖3.10 串口電路
3.9 本章小結
根據設計的設計要求完成了以上所述的各個硬件部分的設計。系統硬件設計共分為8個部分:指示電路設計的作用是指示電源與密碼輸入狀態的指示作用;5V電源電路設計的作用是為系統提供穩定的電壓;晶振電路設計的作用是為單片機的運行提供內部的時鐘脈沖;復位電路設計的作用是防止程序跑飛回復運行的作用;液晶顯示電路設計的作用是提示與指示操作的作用;報警電路設計的作用是當密碼輸入錯誤三次以上能夠報警;鍵盤電路設計的作用是向系統輸入數據和進入各種功能狀態;串口電路設計的作用是將hex文件拷貝到單片機內部rom。
本系統軟件主要包括10個軟件程序模塊:主程序、鍵盤掃描程序、輸入密碼程序、修改密碼、時間顯示程序、時間調整程序、報警程序、對EEPROM操作程序、還原出廠設置程序、密碼校驗函數等函數模塊的設計。
主程序流程圖如下圖所示:
(圖片請下載附件中的word版本)
系統上電后,系統將對硬件中的寄存器進行初始化設置,初始化的寄存器主要是初始化單片機的內部定時器用哪個定時器就要使能該定時器然后設置它的定時初值;初始化液晶,主要是初始化lcd的顯示方式等;初始化單片機的IO端口等。當初始化完成后系統進入了顯示當前時間的等待狀態,在顯示時間的同時系統在主函數中也不斷的調用以下幾個功能函數:輸入密碼子函數,修改時間子函數,報警子函數,一鍵還原子函數等。當系統檢測到有功能鍵按下的時候,系統就調用相應的子函數去執行,來實現相應子程序的預設功能。
下面對主要的函數模塊的流程簡要的說明。
鍵盤掃描程序流程圖如下圖所示:
(圖片請下載附件中的word版本)
當系統用到鍵盤時就要對鍵盤進行掃描。鍵盤有10個數字鍵和3個功能鍵,數字鍵盤的連接方式見圖3.8和圖3.9。當系統檢測到有鍵按下的時候,這時系統將這個按下的鍵對應的鍵值傳遞給函數告訴主函數是哪個鍵按下,實現的方法是將按下鍵的序號付給一個變量,然后將這個變量的值返回給主函數。
為了實現在輸入密碼狀態和修改密碼2個狀態之間的自由切換,在鍵盤掃描電路的程序中又添加了兩個工作狀態的判斷程序,比如我現在是輸入密碼狀態,現在我又想修改密碼。這時按一下對應的功能鍵就能進入想要進入的狀態。
輸入密碼程序流程圖如下圖所示:
(圖片請下載附件中的word版本)
圖4.3 輸入密碼程序流程圖
當按了輸入密碼鍵后,密碼鎖進入輸入密碼狀態,首先系統將調用鍵盤掃描函數進行密碼的輸入,當6位密碼輸入完成后,此時需要按一下確認鍵,此時如果輸入的6位密碼全部正確,密碼鎖將會通過lcd提示密碼正確信息的提示,同時綠色的led燈亮表示輸入的密碼正確;當6位密碼輸入錯誤,密碼鎖將會有通過lcd提示密碼錯誤的提示同時紅色的led指示燈亮表示輸入的密碼錯誤,此時錯誤次數加一,如輸錯的次數到達系統設置的要求的話密碼鎖將自動產生報警信號。如果在輸入密碼狀態沒有對系統進行任何的操作的話,30秒后系統將自動的跳到等待狀態。
修改密碼程序流程圖如下圖所示:
(圖片請下載附件中的word版本)
圖4.4 修改密碼程序流程圖
當按下修改密碼鍵后,密碼鎖將進入修改密碼狀態,此時的紅色和綠色的指示燈都亮表示當前的狀態是修改密碼狀態,系統調用鍵盤掃描函數進行密碼的輸入,當6位密碼輸入完成后需要按一下確認鍵,此時如果輸入的6位密碼全部正確,密碼鎖進入修改密碼狀態;當6位密碼輸入錯誤那么會有密碼輸入錯誤的提示;進入修改密碼狀態后,系統將再一次的調用鍵盤掃描函數進行新的密碼輸入,要求輸入新的6位密碼,輸完后按確認鍵后,系統會有修改密碼成功的提示;如果按了修改密碼功能鍵后沒有對系統進行任何的操作的話,30秒后系統將自動的跳到等待狀態。
報警程序流程圖如下圖所示:
(圖片請下載附件中的word版本)
圖4.5 報警程序流程圖
在報警函數主要設置了報警聲音的頻率,當報警條件滿足時,系統將由蜂鳴器進行十次報警。和蜂鳴器連接的是NPN型號的三極管,當給驅動引腳送一個高電平則蜂鳴器通路,開始報警,當給驅動引腳送一個低電平則蜂鳴器不通,停止報警。
(圖片請下載附件中的word版本)
系統上電后,將初始化定時器,然后系統向液晶的第一行送入now time數據,然后向液晶的第二行送入時間數組的值。
(圖片請下載附件中的word版本)
圖4.7 時鐘設置流程圖
當按下修改時間功能鍵后,系統將停止定時并記錄按下此鍵的次數,按下的次數為1的時候將對秒的個位進行校準;按下的次數為2的時候將對秒的十位進行校準等等,當按下的次數為7時候,系統將開啟定時,這時時鐘將按照設置好的時間值進行計時。
EEPROM操作(讀、寫、擦除)程序流程圖如下圖所示:
(圖片請下載附件中的word版本)
圖4.8 對EEPROM進行讀操作流程圖
(圖片請下載附件中的word版本)
圖4.9 對EEPROM進行讀操作流程圖
(圖片請下載附件中的word版本)
圖4.10 對EEPROM進行擦除操作流程圖
本章介紹的主要是基于硬件平臺的軟件的流程,通過keil uvision3軟件的編程來實現任務書中要求的各個功能。本系統共設計了10個功能模塊,每個功能模塊的實現都是是經過不斷的編寫、不斷的調試、不斷的改進實現的。對編寫好的電子密碼鎖的代碼進行編譯、鏈接生成了hex文件,最后下載到焊接好的硬件平臺上,在下面的章節中將對測試系統功能進行詳細介紹。
在設計完硬件和軟件后對系統也進行仿真,這里用的仿真軟件是protues。仿真運行結果沒什么問題,可以滿足設計要求。將hex文件拷貝到實際的硬件電路上的單片機上,然后進行測試設計要求的各種功能。通過測試和調試不斷的提高系統的可靠性與可執行性。
5.1系統仿真測試與調試
系統調試用到的軟件是keil uvision3和protues,將keil uvision3和protues仿真軟件結合起來,仿真實現各種功能能否實現,然后再將軟件加載到硬件上。調試過程很重要,因為在代碼編寫的過程中,調試能夠清楚的了解程序運行的順序和各個函數之間的調用情況,更重要的是調試能夠幫助找到程序中遇到的不可理解的錯誤。經過多次對代碼的調試,系統的軟件部分可以滿足系統的設計要求,使設計合理、完美。
下面對protues仿真結果進行簡要的說明:
圖5.1 KC51調試界面
通過以上一步一步的調試和仿真,說明設計的軟件部分可以滿足系統設計的要求,接下來對系統的硬件電路進行調試。當把所有的元器件都有序的焊接到電路板上后,主要應用萬用表來檢查焊接好的電路電壓是否正常,檢查焊接的節點有沒有虛焊、漏焊、短接等情況。
如果軟件與硬件調試都沒什么問題的話,應用STC系列單片機的程序下載工具,將軟件編寫好后生成的hex文件拷貝到單片機內部,然后按復位鍵,開始測試系統的各項功能。
5.2系統測試及結果分析
下面主要按照第三章第一小節中功能要求來對密碼鎖系統所要求的功能來進行一一測試。
5.2.1 測試液晶顯示屏的提示與指示操作功能。
空閑顯示時間和提示操作信息等。測試結果如下圖所示:
圖5.6 液晶顯示屏的提示功能
5.2.2 測試系統在空閑狀態顯示時間并校對時間功能。
空閑狀態時顯示當前時間。測試結果如下圖所示:
圖5.7 空閑狀態顯示當前時間
當按下校對時間功能鍵后進入時間校準狀態。測試結果如下圖所示:
對秒的個位校準 對秒的十位進行校準
對分的個位進行校準 對分的十位進行校準
對時的個位進行校準 對時的十位進行校準
圖5.8 校對時間狀態
5.2.3 測試系統在輸入密碼和報警功能
系統初始密碼為528825,當按下輸入密碼功能鍵后屏幕會顯示輸入密碼提示信息。測試結果如下圖所示:
圖5.9 輸入密碼狀態
輸入密碼后結果為:
圖5.10 輸入6位密碼
按確認鍵后:
如果密碼輸入正確結果提示信息為:hello 請關門;密碼輸入正確綠燈亮表示輸入密碼正確。測試結果如下圖所示:
圖5.11 密碼輸入正確
如果密碼輸入錯誤,lcd1602a上的提示信息內容為:密碼輸入錯誤,請按輸入密碼鍵進行重輸入密碼;紅色的led亮表示輸入密碼錯誤。測試結果如下圖所示:
圖5.12 密碼輸入錯誤
如果密碼輸入錯誤達到三次液晶顯示會有報警提示,蜂鳴器將進行報警。測試結果如下圖所示:
圖5.13 報警狀態
5.2.4 測試系統修改密碼功能
初始密碼為528825;按下修改密碼功能鍵后,紅色的led和綠色的led亮(當修改密碼時這兩個燈都亮)。測試結果如下圖所示:
圖5.14 修改密碼狀態
輸入密碼鎖系統的6位密碼正確則進入修改密碼狀態,密碼正確后要求設置新密碼,當按了確定鍵后新密碼設置成功。測試結果如下圖所示:
圖5.15 輸入新密碼
圖5.16 設置新密碼
圖5.17 測試新密碼輸入正確
當初始密碼輸入錯誤,測試結果如下圖所示:(提示信息為:對不起 密碼錯誤,修改密碼錯誤)
圖5.18 測試新密碼輸入錯誤
5.2.5 測試系統密碼數據保護功能
比如說電子密碼鎖初始的密碼為528825,現在將它改為123123。這時突然掉電,當系統再次接上電后,現在可以用123123來進行輸入密碼。測試結果如下圖所示:
圖5.19 測試密碼數據保護
5.2.6 測試30秒到切換狀態功能
比如按下修改密碼功能鍵或輸入密碼功能鍵,按下此鍵后如果沒有對系統做任何操作,30秒后將回到等待狀態。測試結果如下圖所示:
圖5.20 30秒到狀態切換功能
5.2.7 測試一鍵還原初始密碼功能
當按下一鍵還原功能鍵后,(此時系統提示信息意思為:初始化密碼完成)之后就可以用初始密碼進行開鎖了。測試結果如下圖所示:
圖5.21 一鍵還原出廠密碼
結 論
設計的基于單片機的電子密碼鎖實現了密碼鎖的常用功能和技術指標。在指導老師精心指導和自己的不懈努力下完成了軟件和硬件的各項工作,現在系統各項功能運行正常,基本上完成了任務書中的要求和任務。
系統中用LCD1602A來顯示提示信息,使系統更加實用。
電子密碼鎖最重要的方面就是具有較高的可靠性,本文設計的密碼鎖具有密碼數據保護功能和備用電源等措施來增加系統的可靠性。在數據保護方面,應用單片機內部的eeprom,這樣使硬件資源利用率大大提高。
由單片機控制器系統控制密碼鎖在空閑狀態顯示當前時間的同時不斷的檢測那幾個功能鍵是否被按下,如果有功能鍵按下,之后系統就馬上進入相應的功能狀態。
附錄A 系統總電路圖
windylc000 發表于 2017-12-28 14:53
**** 作者被禁止或刪除 內容自動屏蔽 ****
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |