工程師黃明星 發表於 2018-08-16 17:38:23
電子密碼鎖是現代生活中常用的加密工具。它克服了機械式密碼鎖密碼量少、安全性能差的缺點,尤其是微控制器的智能電子密碼鎖;不僅具有電子密碼鎖的功能」還可引人智能化管理功能,從而使密碼鎖具有更離的安全性和可靠性。
電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用數碼管。而本文所介紹的電子密獁鎖使用移植性及可讀性強的高級語言C語言編寫,便於修改和增減功能蚤同時採用顯示清楚,功率消耗小而且壽命長的1602 液晶顯示器,顯示更加直觀,使用更加方便。從經濟實用的角度出發,採用STC89C52單片機設計出一種具有密碼設置、報警和防止多次試探密碼功能的電子密碼鎖,通過Protues軟體成功地進行了仿真。
1、系統工作原理本系統以STC89C52單片機為核心,使用4X4矩陣鍵盤作為數據輸人方式,驅動1602顯示器提示程序運行過程和*的步驟。本系統的密碼判斷過程如下:
當使用者輸人6位密碼後按下BESURE鍵,單片機通過密碼逐個比較,如果輸入的6位蜜碼和設定的密碼完全相同,那麼能成功驅動*模擬燈將鎖打開。若輸入6位密碼與設定的密碼不相同,按下BESURE鍵後,模擬燈不亮,可以按BACK鍵重新輸入。由於輸入密碼過程中難免輸入失誤,如果密碼輸錯,可直接攢下BACK鍵重新輸入,但是系統不允許無限次地按BACK 鍵,以免密碼被套用,當3次密碼輸入都錯誤,單片機將驅動蜂鳴器報警。並且本系統輸入密碼還有囈間限制,在規定的時閽內沒有將正確密碼輸入也會報警。
修改密碼功能如下:當密碼輸人正確後,按下SET鍵可新設置密碼。每設定一位新密碼,單片機將其送給EPROM,當6位新密碼都輸入完畢,系統將自動回到程序開始,重新讀取密碼並保存,使用者需輸人新的密碼才能將鎖打開。
2、系統設計 2.1 硬體支持使用的元器件有:核心晶片STC89C52、存儲晶片AT24C02、液晶顯示1602、矩陣鍵盤、報警蜂鳴器、獨立按鍵(摸擬門的開關)、發光二極體(模擬鎖的開關)和三極體(放大電流)。
2.2 軟體設計本系統軟體包插主程序模塊、甯碼比較判斷模塊、修改密碼模塊、鍵盤掃描模塊、液晶顯示模塊及定時程序等模塊。系統程序流程如圖1所示。
圖1 系統程序流程圖
2.2.1 主程序模塊主租序主要用於定義全局變量,給全局變量賦初值,初始化EPROM,啟動定時器以及從AT24C02中讀取密碼, 為整個程序提供數據。
2.2.2 密碼比較判斷模塊該模塊的功能是將鍵盤輸入的密碼利用IF語句與設定的密碼進行逐個比較,若密碼完全正確則*;若不正確,則按下BACK鍵,重新輸入密碼,每按下BACK鍵一次,輸人次數將自加1,當3}fi都出錯則報警。
2.2.3 密碼修改模塊在窖碼輸入正確情況下,可以按下SET對密碼進行重新設置,每設定一位就將密碼送給AT24C02存儲起來,當設置6位密碼完畢後,系統將自動跳到程序開始,調用新設置的轔碼。
STC89C52向AT24C02寫入密碼子程序:
void wrtte_byte(uchar date)
STC89C52 從 AT24C02讀取密碼子程序:
2.2.4 鍵盤掃描模塊
該模塊具備功能有:逐列掃描鍵盤確實被按鍵的具體位置、判斷鍵盤上有無鍵按下、消除抖動、判斷閉合的鍵是否釋放等功能。
2.2.5定時模塊本模塊用於對密碼輸入時間控制。在程序運行時首先對定時器進行了初始化,從按下PUT IN鍵開始,系統開始計時,當輸入的時間達到規定的時間將立即報警。
2.2.6 液晶顯示模塊此模塊包括液晶初始化、命令的輸入、顯示數據的輸入。其中命令 用於控制液晶狀態是否顯示光標,光標是否閃爍,是否清除原來數據以及顯示的具體位置。數據顯示主要是將要顯示的信息安需要準時顯示出來。
3 系統仿真為了方便程序高度。本文採用了 Protues 仿真,仿真圖如圖2所示。
3.1系統介紹
圖2中U1為STC89C52是個系統的核心,編寫的程序以二進位的文件導入其中;U2為AT24C02,第5和第6個引腳分別與單片機的P1.2和P1.3相連;LCD1為1602液晶顯示器,引腳連接如圖2所示;獨立按鍵DOOR,當門關上為鍵按下狀態;D1為模擬*燈,當密碼正確,按下BESURE鍵D1將亮;BUZ1為蜂鳴器報警。當程序編寫好並導入到單片機裡後,按下圖2最下面的開始按鈕,1602液晶顯示器將提示密碼鎖的運行狀態,系統開始工作。
3.2*功能當電源開啟後,1602液晶顯示Welcome歡迎界面,當按下PUT IN鍵後,顯示器顯示PUT IN CODES提示使用輸入密碼,如圖3所示。幾秒後液晶顯示器上提示將自動消失。此進可輸入正確密碼,且密碼輸入時顯示*而不會將輸入的數據顯示出來。當輸入密碼完畢後,按下BESURE鍵,如果輸入的密碼正確D1將亮(D1作為*的模擬開關)。若密碼錯誤,可以按下BACK鍵,程序將跳到loop(開始界面),重新輸入密碼,同時輸入次數將增加一次。當3次都輸入錯誤則自動報警,並且輸入密碼的時間必須在規定時間完成,否則也會報警。
3.3密碼設定
在密碼輸入正確後,按下SET鍵可對密碼進行重新設置,液晶顯示器顯示SET CODS。同樣幾秒後提示將自動消失,此時開始重設密碼。在密碼設定過程中會將設定的數字顯示出來,每輸入一位密碼需按下YES鍵確定,當設置的密碼達到6位將自動回到啟動界面。
4、結論(1)成功仿真實現了1602液晶顯示,密碼*,密碼設置,防止多次試探,報警等功能。
(2)採用C語言編寫程序,具有很強的移植性,為系統增減和修改帶了方便。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴