


摘要:電子密碼鎖具有安全性高、保密性好等優點。現利用YL-236單片機控制裝置安裝與調試實訓平臺,在STC15F2K60S2單片機的基礎上設計一種電子密碼鎖系統,由單片機控制矩陣鍵盤模塊實現密碼輸入功能,數碼管顯示模塊顯示密碼鎖相關信息,繼電器模塊控制開鎖。
關鍵詞:單片機;電子密碼鎖;報警裝置
1? ? 系統方案設計
本次設計的電子密碼鎖采用STC15F2K60S2單片機為核心控制器件,利用實訓臺上鍵盤輸入模塊——4×4行列鍵盤完成輸入,當按下“復位”或“清除”鍵時,所有的數碼管無顯示。當按下0~9中的一個數字鍵時,數碼管最右一位顯示按下的數字,再次按下一個數字鍵時,上次按下的數字左移一位,在數碼管右起第2位顯示,最右一位顯示按下的數字,以此類推,實現如手機撥號時的效果[1],如圖1、圖2所示。
當輸完6位數字后,不再響應輸入的數字鍵。按下“確定”鍵時,對輸入的密碼與設定的密碼進行比較。若密碼正確,則控制繼電器吸合開鎖,然后再釋放,此時蜂鳴器發出響聲;若密碼錯誤,繼電器無動作。無論密碼正確與否,數碼管均清屏(默認密碼是123456)。
2? ? 硬件電路設計
根據設計方案,采用YL-236實訓臺上的5個模塊組成電路連接,分別為主機模塊、電源模塊、顯示模塊、繼電器模塊、指令模塊。主機模塊上采用STC15F2K60S2單片機芯片,使用雙RS232串口。電源模塊使用直流5 V和12 V電源供電,顯示模塊使用共陽型數碼管8只。其中WR接單片機的P3.6,CS1接P2.6,CS2接P2.7,數據口接單片機主機模塊P0口。使用光電耦合繼電器1只,繼電器控制端口KA1接P2.4,繼電器的公共端COM接地,NO端接蜂鳴器,其余端口不接。指令模塊使用4×4行列鍵盤。ROW0-COL3口接主機模塊的P1口[2]。按照圖3所示密碼鎖硬件接線圖進行接線。
3? ? 軟件設計
在本次的程序設計中,使用單片機C語言進行系統程序的編寫,在程序編寫之前,歸納總結出程序的流程圖,這樣程序編寫就會思路清楚、層次分明,如圖4所示。在進行程序編寫前,首先要在Keil4中新建項目工程,在項目工程中新建程序文件,選擇本次設計中使用的單片機型號STC15F2K60S2,將單片機的庫文件下載到工程下,之后在編寫程序時就可以引用該單片機的頭文件。程序編譯完,在Keil4編譯環境下實現對系統代碼的調試,生成單片機可執行的程序文件。如果沒有問題,就直接利用STC-ISP下載器,把程序下載到單片機中運行,實現效果。如有問題,反復調試編譯,直到成功為止。
3.1? ? 主程序設計
根據程序的流程圖來設計電子密碼鎖子程序,由“開始”進入主程序后系統會初始化,清空顯示緩存。數碼管顯示,循環檢測按鍵是否按下,判斷輸入信號,按下的是數字鍵,送入顯示緩存;按下的是“確定”鍵,校驗密碼是否輸入正確,正確開鎖,不正確則清空顯示緩存;按下的是“清除”鍵,直接清空顯示緩存。程序如下[3]:
int main( )? ? ?//主程序main函數
{? init( );? ?//初始化程序,清空顯示緩存
While (1)? ? ?//在主程序中設置死循環程序
{? ?display( );? ? //數碼管顯示子函數
button( );? ? ?//按鍵處理子程序
}
3.2? ? 數碼管顯示數字左移程序
如何實現按數字鍵時,讓數碼管上顯示的數字鍵逐位左移呢?這是此程序的核心要點,可以先定義一個含有6個元素的數組pw用來存放輸入的6位密碼,每次按下數字鍵時,均把該數字送入pw[0],而pw[0]送入pw[1],pw[1]送入pw[2],pw[2]送入pw[3],pw[3]送入pw[4],pw[4]送入pw[5],顯示程序顯示pw[0]…pw[5]中的數。
3.3? ? 密碼校驗程序設計
密碼校驗程序設計就是開鎖子程序,系統會將輸入的密碼與系統密碼設置的密碼進行對比,密碼輸入正確,繼電器吸合開鎖;密碼輸入錯誤,清空數碼管顯示屏。
3.4? ? 按鍵處理子程序
在涉及行列式鍵盤的閉合鍵處理程序中,用到的是線反轉法,它是一種常用的方法,掃描速度快,還可以很好地解決重鍵問題,具體需要進行按鍵去抖和等待按鍵釋放。但在硬件電路上要求行線和列線都要既能作為輸出又能作為輸入,行線和列線上都要有上拉電阻[4]。
首先將行線作為輸出線,列線作為輸入線,先通過行線輸出全0信號,讀入列線的值,如果此時有某一個鍵按下,則必然使某一列線值為0;然后將行線和列線的輸入、輸出關系互換,列線作為輸出線,行線作為輸入線,再通過列線輸出全0信號,讀入行線的值,那么閉合鍵所在的行線上的值必定為0。這樣,當一個鍵按下時,必定讀得一對唯一的行值和列值,根據這一對值即可確定閉合鍵。
4? ? 系統的整體測試
包括軟件的測試和硬件的測試。
4.1? ? 軟件測試
程序在Keil軟件中編寫完,可對程序進行編譯,編譯的過程中只能找出一些語法錯誤[5],比如初學者常犯的語法錯誤有:(1)main函數的拼寫錯誤,因主機無法找到主程序而無法運行。(2)自定義的變量,在后面引用時拼寫錯誤。(3)字母大小寫的錯誤,比如數據的輸入、輸出口中的P應該為大寫。(4)語句結束缺少分號。(5)花括號不配對,漏寫或多寫等等。對錯誤的程序反復修改,最終能夠獲得目標代碼。但對于程序功能本身的錯誤是查找不出來的,需要結合程序調試和硬件設備才能得到正確結果。
4.2? ? 硬件調試
主要是檢查一下原理圖,是否出現連接錯誤,是否與程序匹配,導線的通斷情況,模塊的呈現狀態是否正常等,也可以通過電路仿真的方式對電路的功能進行仿真,在仿真中發現電路是否有錯的地方。
5? ? 結語
YL-236單片機安裝與調試實訓裝置涵蓋的內容廣、用途全,是職業院校進行各級別的技能大賽的指定裝置,也是選拔人才的基礎。本文利用此裝置進行電子密碼鎖的相關設計,利用了51單片機的諸多特性,如靈活性強、便于設計等,使得電子密碼鎖能夠貼近實際,保護人們的安全隱私,為人們使用。單片機的設計步驟可以小也可以大,要注意仔細觀察和認真思考,并懂得如何通過實際測試和不斷尋找真理得到最終的正確答案。科學技術的力量是巨大的,在這個科技發展和創新的時代,只有不斷進步,才能取得更好的成果,讓科技給人們帶來更多的好處。本設計結合了鍵盤的物理特性和自身的邏輯思維,單片機的開發可以更進一步。電子鎖的創新不僅僅局限于數字和字母,新的加密形式,如人臉、指紋、體溫等,正在迅速發展,在電子設備領域,還有很長的路要走。
[參考文獻]
[1] 沈紅衛.單片機應用系統設計實例與分析[M].北京:北京航空航天大學出版社,2016.
[2] 譚浩強.C語言程序設計[M].3版.北京:清華大學出版社,2017.
[3] 金杰.MCS-51單片機C語言程序設計與實踐[M].2版.北京:電子工業出版社,2017.
[4] 雷林均.單片機控制裝置安裝與調試[M].北京:電子工業出版社,2011.
[5] 葛金印,商聯紅.單片機控制項目訓練教程[M].北京:高等教育出版社,2010.
收稿日期:2020-09-03
作者簡介:馬花萍(1981—),女,河南鞏義人,講師,研究方向:單片機、電子電器。