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