電子密碼鎖仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (24.66 KB, 下載次數: 143)
下載附件
2018-12-14 02:30 上傳
0.png (34.48 KB, 下載次數: 87)
下載附件
2018-12-14 02:30 上傳
1.設計任務與設計思路
1.1 設計任務
1.系統通過4×4的矩陣鍵盤輸入或設定開鎖密碼,用24WC04保存密碼
2.可以通過LCD查看已輸入的字符個數[顯示為*****]
3. 通過單片機控制繼電器通斷(可以指示燈亮滅替代)
4、當密碼輸入正確時,繼電器通,綠燈亮;當密碼輸入錯誤時,繼電器斷,紅燈亮,控制蜂鳴器報警;
1.2 設計思路
本設計由主控芯片52單片機,24C04斷電存儲電路、單片機時鐘電路,LCD1602顯示電路、矩陣按鍵和蜂鳴器電路組成。單片機負責控制整個系統的執行過程。
2.硬件電路設計 為了達到系統要求,硬件應該包括如下部分: 單片機最小系統,最小系統主要包括時鐘電路和復位電路; LCD電路,為了能直觀的看到生成的密碼,以及用戶輸入的密碼,就需要一個顯示設備,而在單片機系統中,比較常見的顯示設備就是LED和LCD,相比較于LED來說,LCD顯示效果更加美觀,更加真實; 按鍵電路,為了做到密碼的提取以及校驗,就需要有人機交互的操作,本設計采用了機械按鍵充當此功能。 LED電路,本設計有紅綠兩個LED,當密碼校驗正確時,綠燈亮;相反當密碼校驗錯誤時,紅燈亮。 繼電器電路,為了模擬鎖的開和關,用到了繼電器的開關來模擬。
2.1 單片機最小系統 本次選用的主控芯片為單片機STC89C52。其引腳圖如圖2.1-1所示。

圖2.1-1 STC89C52引腳圖
目前,不管是在工業,農業還是消費電子領域,51系列單片機的身影隨處可見,例如,我們可以利用單片機來檢測溫濕度,來檢測空氣質量,我們日常使用的電子時鐘等等都能很方便的使用51單片機來實現。STC89C52單片機是深圳宏晶科技有限公司生產的一種單片機,它是在一小塊很小的集成電路上集成了一個微型計算機。每一個單片機的組成都離不開如下幾種組成成分: CPU:51系列單片機內部集成的CPU都是8位的; IO口;數據輸入輸出的并行口,51單片機有32個IO口,分別是P0,P1,P2,P3,每種有8條數據線; ROM:片內程序存儲器,它主要用來存儲程序的,一般大小為4K; RAM:片內數據存儲器,它主要用來存儲臨時數據,一般大小為512K; 中斷源;它主要用來引發中斷的,有5個中斷源; 定時器:它主要用來計數定時用,51單片機有2個,分別是定時器0和定時器1; 
圖2.1-2 STC89C52最小系統
2.2 液晶顯示電路 隨著人機界面的越來越人性化,液晶屏應運而生,十九世紀八十年代,奧地利科學家賴倪次在一種植物身上提取出了看起來很奇怪的物質,它既不是液態的,也不是固態的,徘徊于兩者之間,但是他即具有固態的特征,也有液態的特征,所以,當時的人們就把它叫做成液態的晶體,這就是當今液晶的前身。 市面上的LCD顯示屏可謂是林林總總,大型的有拼接墻,數十寸的等等,從才子上來分,有TFT、LED等等,但對于單片機系統來說,常用的LCD有兩種:分別是1602和12864型號。 12864的意思就是該LCD的點陣是128行*64列,總共有8192個像素點, 控制器AIP31020。可顯示漢字及圖形, 內置8192 個中文漢字 (16X16 點陣)、 128 個字符 (8X16點陣)及64X256點陣顯示RAM(GDRAM)。可與CPU 直接接口,提供兩種界面來連接微處理機:8-位并行及串行兩種連接方式。具有多種功能:光標顯示、畫面移位、睡眠模式等。而1602的意思就是該LCD的點陣是16行*2列,總共有32個像素點,1602LCD分為帶背光和不帶背光兩種,帶背光的用起來就比較方便,但缺點就是比較厚,而不帶背光的需要自己加一個背光片,不方便使用,但他比較輕薄。 本次設計采用了LCD1602液晶顯示器,本次設計采用了LCD1602液晶顯示器。

圖2.2-1 液晶顯示電路
1602型液晶接口信號說明如表2.2-1所示。
2.3 矩陣按鍵模塊 本實驗選用矩陣按鍵來輸入密碼值。矩陣按鍵電路如下圖2.3-1所示:

圖2.3-1 矩陣按鍵電路 為了滿足輸入功能的需要,本設計采用了14個按鍵,如果全部接成獨立式按鍵,那么就需要14個IO口,資源占用過多,所以這里采用了矩陣式4*4規格的鍵盤,多余兩個按鍵做備用。它總共占用8個IO口,分別接到了P0口上,由于P0口的特殊結構,必須接一個上拉電阻,才能輸出高電平。 其按鍵功能如下所示: 0-9的數字按鍵用來輸入密碼; “存包”按鍵 -- 按下此鍵生成四位隨機數密碼 “取包”按鍵 -- 按下此按鍵,提示輸入密碼 “清空”按鍵 -- 在輸入密碼過程中,按下此鍵清掉剛才輸入的數字 “確認”按鍵 -- 密碼輸入完畢后,按下此鍵進行密碼的校驗。 2.4 i2C 24C02模塊 串行E2PROM是基于I2C-BUS 的存儲器件,遵循二線制協議,由于其具有接口方便,體積小,數據掉電不丟失等特點,在儀器儀表及工業自動化控制中得到大量的應用。 24C02與單片機的接口非常簡單,如下圖2.4-1所示 
圖2.4-1 24C02電路
E0,E1,E2為器件地址線,WP為寫保護引腳,SCL,SDA為二線串行接口,符合I2C總線協議。在一般單片機系統中,24C02 數據受到干擾的情況是很少的。 本實驗采用AT24C02。AT24WC02是一個2K位串行CMOS,EEPROM內部含有256個8位字節CATALYST公司的先進CMOS技術實質上減少了器件的功耗。AT24WC02有一個16字節頁寫緩沖器,該器件通過I2C總線接口進行操作有一個專門的寫保護功能。
其引腳說明如表2.4-1: 表2.4-1 AT24C02引腳說明 
2.5.蜂鳴器電路 在單片機應用的設計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始工作、工作結束或是故障等等。 蜂鳴器電路如圖2.5-1所示。 
圖2.5-1 蜂鳴器電路
本次設計使用了ULN2003D來驅動蜂鳴器。其電路如圖2.5-2所示 
圖2.5-2 蜂鳴器驅動電路
本設計 用到了一個紅色LED和一個綠色LED來指示輸入密碼的正確與否。每個LED的正極通過一個限流電阻接到電源正極,然后負極分別接到P33和P34,當IO口為高電平時,燈熄滅,當LED為低電平時,燈亮起來。圖2.5-3是其連線圖。 
圖2.5-3 LED提示燈電路 2.6 繼電器電路本設計用繼電器來模擬鎖的動作,當繼電器吸合表示開始鎖關閉,當繼電器斷開表示斷開,繼電器的控制引腳接在單片機的P37口,高電平讓其吸合,低電平讓其斷開,圖2-6是其連接圖。

主程序里面首先對單片機的硬件資源進行初始化,硬件資源的初始化包括: - IO口的初始化,本設計所采用的51單片機有32個IO口,并且單片機復位后,所有IO口被默認賦值為高電平(1),這就給一些功能帶來了一些不必要的麻煩,所以就需要對某些上電需要置低電平的IO口置低電平(比如本設計中的LCD某些管腳);
- 定時器的初始化,定時器是單片機中的一個非常重要的資源,有了它,單片機就能“并行”的處理多個事情了,不然為了做到定時,只能用死等來實現,那樣會造成單片機資源大量的浪費,更嚴重的是,單片機運行會相當不流暢;
- 串口的初始化,串口的存在使得單片機跟外界的通訊帶來了很大的方便,因為它遵循標準的RS232協議,所以可以跟任何具有RS232接口的設備通信,
基本的資源初始化完畢后,程序然后進入了一個while(1)死循環,這樣保證了程序不斷的運行,在該循環中,多個任務逐一按順序的執行。
3.2 LCD顯示子程序
LCD1602的讀時序如圖3-2-1所示。 
圖3-2-1 LCD1602讀時序
LCD1602的寫時序如圖3-2-2 所示。 
圖3-2-3 LCD2602寫時序
從時序圖可以看出,首先判斷RS和RW,從硬件那一章我們得知,RS代表了是指令的操作(高電平)還是數據的操作(低電平),而RW代表了是往LCD里面寫數據(高電平)還是從LCD里面讀出數據(低電平)。 然后再通過控制器把使能端拉低(通過上面一章,我們知道此管腳為高表示禁用該芯片,此管腳為低表示使能該芯片),拉低后需要延時一段時間,至于要不要 延時,延時的時間多長,對于51單片機來說,其實關系都不大,不影響其使用。 以上兩步準備操作完成后,就可以開始讀和寫了,也就是從這時候開始數據或地址信號就被送上了數據總線,數據送完之后,然后又將使能端拉高(禁止芯片),當然,這中間需要一個建立時間的延遲,改時間最短為40納秒。然后再將使能端拉低(啟用),就可以將剛才數據總線上的數據送入LCD了。 1602液晶顯示子程序主要是對內部控制指令進行指定如液晶初始化,顯示空白,讀,寫,判斷液晶是否忙及指定字符的位置等函數構成。液晶顯示子程序流程圖如圖所示。首先進行液晶初始化,再寫地址命令到LCD,然后放發送字符串,最終液晶顯示。 根據上面描述的時序,可以得出如圖3-2-4所示的流程圖
3.3 矩陣按鍵子程序
16個按鍵接在了P0的8個口,其中P00-P03為四行,P04-P07為四列,本設計采用的是行掃描法,也就是說每次給四行當中的一行輸出低電平(其他三行為高電平),然后再讀取四列的值,如果發現四列全部為高電平,那么就表示沒有按鍵按下,如果有某一列為低電平,就表示有按鍵按下了。
3.4 密碼比對子程序 密碼比對過程主要是將按鍵輸入的密碼與正確密碼進行比較的過程。該過程要求把密碼放入24C02芯片中存儲,每按下一個按鍵則與芯片中相應位進行比較。流程如圖3.4-1所示
4.系統調試 整個系統設計完成后,要進行運行調試,排除軟件和硬件的故障,同時驗證系統的可靠性及穩定性,使系統符合設計要求。本系統的調試主要分兩個步驟:單片機系統調試(硬件調試和軟件調試)及整個控制系統試運行調試。 單片機系統的調試應包括硬件及軟件兩部分,主要是通過調試發現硬件及軟件中存在的問題,查看其運行結果是否符合設計要求。 系統硬件和軟件的研制可以相互獨立的平行進行,軟件調試可以在硬件完成之前,硬件也可以在無完整應用軟件的情況下進行調試,但它們需要借助另外的工具提供調試環境。硬件和軟件分調完成之后,還要再進行軟件和硬件的聯調,在調試中找出問題,判斷故障源,修改軟硬件。
4.1 硬件調試 靜態調試主要是排除明顯的硬件故障。在電路搭建好后,對其進行仔細檢查,查看端口是否正確連接,連接是否可靠。同時還應當用萬用表檢查電路,看應當開路的地方是否開路,應當短路的地方是否短路,電源地線連接是否可靠。在焊接后,查看焊接是否牢固,有無虛焊或短路等。在將芯片、傳感器等元件插到電路板上時,要保證各處電源極性、電壓正確,以防止因電源極性接反或電壓過高損壞芯片或傳感器。此外,插入芯片必須在斷電的情況下進行,特別注意芯片的方向不要插反。
4.2 軟件調試 系統軟件程序在編制好以后,可通過匯編軟件對源程序進行匯編,變為可執行的目標代碼,在匯編過程中出現的錯誤,要及時糾正。在軟件調試時采用軟件模擬開發系統對程序進行調試,這種模擬開發系統是在計算機上利用模擬軟件實現對單片機的硬件模擬、指令模擬及運行狀態模擬,從而完成應用軟件開發的全過程。調試過程中的運行狀態、各寄存器狀態、端口狀態等都可以在指定的窗口區域顯示出來,通過這些顯示結果隨時跟蹤程序運行狀態,以確定程序運行無誤。 4.3動態調試 控制系統的軟件和硬件是密切相關的,軟件模擬開發系統不能對硬件部分進行診斷,同時也不能實時在線仿真,所以用戶程序還需跟硬件連接起來進行聯調,同時對軟件和硬件進行檢查和診斷。整個單片機系統進行在線調試時,需借助仿真開發工具來對用戶軟件及硬件電路進行診斷、調試。在應用系統各電路板調試成功后,將用戶程序加載到在線仿真器上,這時就能單步、多步或連續地執行目標程序,同時也可以根據需要分段設置斷點執行用戶程序。系統中的硬件故障(如各個部件內部存在的故障和部件之間連接的邏輯錯誤)主要是靠聯機仿真來排除的。對于與硬件無聯系的用戶程序,例如定時標志等,雖然已經沒有語法錯誤,但可能存在邏輯錯誤,這時,就借助于動態在線調試手段發現邏輯錯誤,直至邏輯錯誤糾正為止。而對于一些與硬件相關的用戶程序,如接口驅動程序等,則需要配合硬件,進行在線調試,如果有邏輯錯誤,也要及時糾正修改。程序調試完畢后,利用在線編程器將程序固化到單片機中,使整個系統運行起來。
0.png (15.09 KB, 下載次數: 81)
下載附件
2018-12-14 02:29 上傳
4.4 實驗圖
按下取包鍵,獲取密碼,得到密碼為2392,此時繼電器為關閉狀態:
調試圖a:  
調試圖a
當輸入密碼錯誤時紅燈亮,即D1燈亮,此時繼電器為關閉狀態:
調試圖b:
 
調試圖b
當輸入密碼正確是綠燈亮,即D2燈亮,此時繼電器為打開狀態:
結果圖:
  結果圖
附錄 附錄1:電路原理圖 
單片機源程序如下:
所有資料51hei提供下載:
電子密碼鎖(自改).rar
(141.51 KB, 下載次數: 758)
2018-12-12 18:06 上傳
點擊文件名下載附件
代碼加仿真 下載積分: 黑幣 -5
電子密碼鎖.docx
(3.07 MB, 下載次數: 392)
2018-12-12 18:06 上傳
點擊文件名下載附件
文檔 下載積分: 黑幣 -5
|