潘劍風(fēng) 王先春
摘要:本設(shè)計(jì)以單片機(jī)AT89C52為主控芯片,外圍設(shè)備由液晶顯示模塊、存儲芯片AT24C04、藍(lán)牙模塊HC-06以及矩陣鍵盤、復(fù)位電路、開鎖電路等模塊組成。本設(shè)計(jì)軟件系統(tǒng)是用C語言編寫的,在KeiR環(huán)境下開發(fā)。用戶能夠進(jìn)行密碼修改、輸入用戶密碼;系統(tǒng)能夠開鎖、報警;密碼修改、密碼輸入可以在矩陣健盤上完成,也能夠在藍(lán)牙APP上輸入,系統(tǒng)自動將輸入的密碼與用戶所設(shè)置的密碼進(jìn)行比較,結(jié)果一致,則進(jìn)行開鎖動作并亮綠指示燈,否則亮紅指示燈,本設(shè)計(jì)具有掉電儲存密碼的功能,當(dāng)整個系統(tǒng)斷電后又重新上電時,用戶所設(shè)置的原密碼依然有效。
關(guān)鍵詞:密碼鎖;AT89C52;藍(lán)牙APP
1 緒論
1.1 課題背景和意義
在現(xiàn)代的家庭中,鎖是一個家庭的重要工具,很多家庭需要用到密碼鎖保護(hù)個人財(cái)產(chǎn),比如房門、密碼箱、密碼盒等都需要用到密碼鎖。如今藍(lán)牙密碼鎖越來越受歡迎,它克服了機(jī)械式密碼鎖的安全性差、密碼輸入不變,設(shè)置密碼不靈活等缺點(diǎn)。使用單片機(jī)控制的藍(lán)牙密碼鎖,不但在功能上遠(yuǎn)勝于機(jī)械式密碼鎖,而且具有更高的安全性和可靠性。并且藍(lán)牙密碼鎖可以存儲用戶所設(shè)置的密碼,無需攜帶鑰匙,只要用戶熟記所設(shè)置的密碼即可進(jìn)行開鎖,免除了人們攜帶鑰匙的煩惱,因此越來越受到人們的歡迎。由于我國電子技術(shù)及產(chǎn)業(yè)鏈的不斷提升,藍(lán)牙密碼鎖將會越來越受到人們的歡迎,為人們的生活提供更多美好的體驗(yàn)。
1.2 藍(lán)牙密碼鎖的發(fā)展趨勢
在1970之后,由于大規(guī)模集成電路的出現(xiàn),使得電子密碼鎖在體積上大大減小,重量也減輕很多,但是它的成本提高了很多,因此不能被大多數(shù)人接受,因此它使用的范圍非常有限,難以普及。因此對于電子密碼鎖的研究處于停滯不前的狀態(tài),技術(shù)沒有什么進(jìn)步。到1900后,由于一些發(fā)達(dá)國家的電子技術(shù)和藍(lán)牙技術(shù)的不斷發(fā)展,人們開始進(jìn)一步研究電子密碼鎖,使得電子密碼鎖的技術(shù)進(jìn)步了很多,這也為藍(lán)牙密碼鎖的出現(xiàn)提供了技術(shù)上的支持。如今,隨著藍(lán)牙技術(shù)的應(yīng)用不斷擴(kuò)大,藍(lán)牙技術(shù)已相當(dāng)成熟,它也被應(yīng)用在密碼鎖上。
2 系統(tǒng)的總體設(shè)計(jì)
2.1 系統(tǒng)設(shè)計(jì)要求
藍(lán)牙密碼鎖的功能描述:藍(lán)牙密碼鎖主要是通過無線通信中的藍(lán)牙進(jìn)行通信,它可以現(xiàn)實(shí)無接觸式開鎖。用戶可以輸入藍(lán)牙密碼鎖指定的ID號,如果輸入的ID號成功就可以自由設(shè)定密碼、修改密碼。它具有記憶功能,即掉電后再次上電,用戶所設(shè)置的密碼依然有效,具有報警提示功能,用戶可以使用兩種方式輸入密碼,既可以通過矩陣鍵盤手動輸入密碼,又可以通過藍(lán)牙APP交互界面輸入密碼。經(jīng)測試它的用戶體驗(yàn)非常好,藍(lán)牙密碼鎖的設(shè)計(jì)遵循以下要求:
(1)用戶輸入密碼時液晶顯示屏用星號替代作為保護(hù)字符;
(2)用戶可以根據(jù)需要設(shè)置成六位數(shù)或六位數(shù)以下的用戶密碼;
(3)液晶顯示屏上顯示用戶輸入的密碼與設(shè)置的密碼是否一致的提示信息;
(4)如果用戶輸錯三次密碼后,將會自動報警;
(5)用戶可以在矩陣鍵盤上和藍(lán)牙APP交互界面上輸入密碼;
(6)具有記憶功能,有效保存用戶所設(shè)置的密碼及藍(lán)牙密碼的ID號。
2.2 系統(tǒng)設(shè)計(jì)思路
隨著芯片技術(shù)的發(fā)展,單片機(jī)的性能大大提高,而且其價格低廉,所以本設(shè)計(jì)采用以單片機(jī)為主控芯片的控制方案。綜合考慮本設(shè)計(jì)選用單片機(jī)AT89C52作為主控芯片,再外接液晶顯示器LCD1602、藍(lán)牙模塊HC-06、矩陣鍵盤、存儲芯片AT24C04等器件,單片機(jī)通過I/O口控制外接設(shè)備LCD1602液晶屏用于顯示用戶輸入的密碼,ID號、提示用戶信息等,實(shí)際顯示的密碼均用星號代替用于保護(hù),不管是設(shè)置的密碼還是輸入的密碼都是0-9這十個字符;藍(lán)牙模塊HC-06通過串口通信的方式接收手機(jī)上的藍(lán)牙APP所輸入的密碼;矩陣鍵盤用于用戶手動的輸入用戶ID、設(shè)置密碼、輸入密碼等;存儲芯片AT24C04則是保存用戶的ID號和用戶所設(shè)置的密碼;用戶可以有兩種方式輸入密碼,可以使用矩陣鍵盤也可以使用藍(lán)牙APP輸入密碼。用戶所輸入的密碼要和AT24C04中用戶所設(shè)置的密碼相比較,如果一致,則綠燈亮、LCD1602液晶屏提示輸入密碼成功、開鎖動作,如果不一致,紅燈亮、LCD1602液晶屏提示輸入密碼錯誤,假如用戶輸入三次密碼都未與所設(shè)置的密碼匹配成功,則會報警,即蜂鳴器響,整個體統(tǒng)進(jìn)入鎖死狀態(tài)。其原理框圖如圖1所示;其硬件原理圖如圖1所示。
3 藍(lán)牙模塊
ATK-HC06模塊,是ALIENTEK生成的一款高新能主從一體藍(lán)牙串口模塊。它可以跟各種帶藍(lán)牙功能的電腦、手機(jī)、iPad等智能終端配對,配對成功后就可以通過串口通信進(jìn)行數(shù)據(jù)傳輸。這個藍(lán)牙模塊支持的波特率的范圍為:4800~138240,它能夠兼容5V或3.3V單片機(jī)系統(tǒng),很方便的應(yīng)用到設(shè)計(jì)中,使用非常靈活、方便。ATK-HC06模塊非常小巧,模塊通過6個2.54mm間距的排針與外部連接。
單片機(jī)的地腳與藍(lán)牙模塊HC-06的地腳相連,實(shí)現(xiàn)共地;單片機(jī)的VCC與藍(lán)牙模塊的VCC相連,藍(lán)牙模塊可支持5V或3.3 V電源;RX為數(shù)據(jù)接收端,TX為數(shù)據(jù)發(fā)送端,單片機(jī)的RX端連接藍(lán)牙模塊的TX端,單片機(jī)的TX端連接藍(lán)牙模塊的RX端。
圖3為藍(lán)牙APP的用戶操作界面,在使用時把APP安裝至手機(jī)或電腦等移動電子產(chǎn)品上,打開藍(lán)牙,待藍(lán)牙連接成功后,就可以正常使用了。比如我們需要輸入“1”,則在界面上直接點(diǎn)擊“1”號方塊,就會通過藍(lán)牙將字符“1”,再由HC-06藍(lán)牙模塊接收字符“1”,再通過串口通信將“1”發(fā)送至單片機(jī)做數(shù)據(jù)處理。此藍(lán)牙APP的使用其實(shí)跟我們手機(jī)中的藍(lán)牙一樣,在第一次配對成功后就不需要再次配對,只需點(diǎn)擊連接即可。
3.1 存儲電路
本設(shè)計(jì)的存儲電路是由ATMEL公司生產(chǎn)的存儲芯片AT24C04構(gòu)成的。它是具有nC總線接口的EE-PROM。通過軟件模擬的方式產(chǎn)生IIC時序,就可以讀取和寫入數(shù)據(jù)。使用它可以現(xiàn)實(shí)掉電存儲數(shù)據(jù)并且對數(shù)據(jù)的保存期限非常久,可達(dá)到上百年。它還可以實(shí)現(xiàn)多次擦寫操作,擦寫的次數(shù)達(dá)到幾十萬次。
本設(shè)計(jì)采用AT24C04芯片作為存儲芯片,主要是它具有IIC控制口,只要用軟件模擬好ⅡC時序,并可以用單片機(jī)快速、簡單的讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù),操作非常簡單。當(dāng)要從AT24C04中讀取數(shù)據(jù)時,只需要寫入相應(yīng)的地址,當(dāng)需要向AT24C04中寫入數(shù)據(jù)時,需要寫入保存的數(shù)據(jù)及保存數(shù)據(jù)的地址,這個地址是數(shù)據(jù)存放在AT24C04中的地址,它的地址范圍是1-4096。它保存數(shù)據(jù)也很穩(wěn)定,它可以保存4kb數(shù)據(jù),在本設(shè)計(jì)中只用到了它很小一部分存儲空間。
3.2 報警電路的設(shè)計(jì)
本設(shè)計(jì)中報警電路的設(shè)計(jì)采用了無源蜂鳴器、三極管、LED燈等組成報警系統(tǒng),三極管是充當(dāng)開關(guān)的作用,基極加高電平,三極管導(dǎo)通,相當(dāng)于開關(guān)閉合;基極加低電平,三極管斷開,相當(dāng)于開關(guān)斷開。其優(yōu)點(diǎn)是控制簡單,成本低,報警的效果好。
3.3 矩陣鍵盤的設(shè)計(jì)
用戶輸入可以通過矩陣鍵盤進(jìn)行,本設(shè)計(jì)的矩陣鍵盤設(shè)計(jì)成4*4的矩陣鍵盤。設(shè)計(jì)成矩陣鍵盤的目的是為了節(jié)約單片機(jī)的I/O資源,4*4矩陣鍵盤占用8個單片機(jī)I/O,而不采用矩陣鍵盤的設(shè)計(jì),需要占用16個單片機(jī)的I/O資源。所以本設(shè)計(jì)選擇矩陣鍵盤的設(shè)計(jì)。矩陣鍵盤有4條行線,4條列線,它的每一條行線和列線之間就是通過連接一個按鍵。而如果想組成一個i*j的矩陣鍵盤,只需設(shè)置成i條行線,j條列線,每條行線跟列線之間通過連接一個按鍵就可以實(shí)現(xiàn)i*i的矩陣鍵盤。
3.4 顯示電路的設(shè)計(jì)
顯示設(shè)計(jì)采用1602液晶屏設(shè)計(jì),由單片機(jī)的P2口控制顯示,由P1.0~P1.2控制LCD的控制端口。
4 系統(tǒng)的軟件設(shè)計(jì)
因設(shè)計(jì)主要是作用C語言來開發(fā)的51單片機(jī)項(xiàng)目程序,所以首先必須有一個可以在Windows 10操作系統(tǒng)下執(zhí)行的C語言編譯器。由于kei14支持很多51單片機(jī)的開發(fā),本設(shè)計(jì)所以選擇Kei14開發(fā)環(huán)境進(jìn)行開發(fā)。軟件的流程設(shè)計(jì)如圖4所示。
4.1 HC-06實(shí)現(xiàn)數(shù)據(jù)的接收
HC-06為藍(lán)牙收發(fā)模塊,它既能夠接收數(shù)據(jù),也能夠發(fā)送數(shù)據(jù)。在本設(shè)計(jì)中它主要是將用戶在藍(lán)牙APP上點(diǎn)擊的鍵值發(fā)送到單片機(jī)進(jìn)行數(shù)據(jù)處理。藍(lán)牙模塊與單片機(jī)的通信是通過串口進(jìn)行通信的。
生活中我們通常稱呼的串行通信,其實(shí)是UART接口的通信,它是一種異步通信方式,我們在本次設(shè)計(jì)中也是采用這種方式。在使用串口通信時需要設(shè)置幾個重要的參數(shù),如,數(shù)據(jù)位、奇偶校驗(yàn)位、停止位和波特率。數(shù)據(jù)位通??梢栽O(shè)置成5-8位,在本設(shè)計(jì)中設(shè)計(jì)為8位,也就是一幀數(shù)據(jù)中有8位有效數(shù)據(jù);奇偶校驗(yàn)通常可以設(shè)置成奇校驗(yàn)、偶校驗(yàn)或不校驗(yàn),由于在本設(shè)計(jì)中藍(lán)牙模塊與單片機(jī)的距離比較短,不容易造成數(shù)據(jù)丟失的現(xiàn)象,所以本設(shè)計(jì)中奇偶校驗(yàn)位設(shè)置成不校驗(yàn);停止位通常可以設(shè)置成1位、1.5位、2位,在本設(shè)計(jì)中將停止位設(shè)置成1位;波特率是衡量通信速度的指標(biāo),本設(shè)計(jì)將波特率設(shè)置成4800bps。
異步傳送一幀數(shù)據(jù)的格式是由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位組成,起始位為。,停止位設(shè)置為1。這是一種起止的通信方式,字符之間沒有固定的間隔長度,但是它占用了傳輸時間,影響了傳輸數(shù)據(jù)的速度,特別是在需要傳輸?shù)臄?shù)據(jù)量比較大時,現(xiàn)象就會更明顯。
5 總結(jié)
本設(shè)計(jì)是運(yùn)用AT89C52單片機(jī)作為主控芯片,LCD1602液晶模塊作為顯示模塊用于顯示相關(guān)信息,AT24C04做為存儲數(shù)據(jù)用于保存用戶設(shè)置的密碼、ID號,矩陣鍵盤用于輸入密碼,藍(lán)牙模塊HC-06用于將用戶在藍(lán)牙APP上輸入的數(shù)據(jù)傳送到單片機(jī)處理。用戶可以實(shí)現(xiàn)兩種方式輸入密碼,在本設(shè)計(jì)中還加入了報警電路,真正實(shí)現(xiàn)了智能開鎖、智能防盜,用戶體驗(yàn)很好。
參考文獻(xiàn)
[1]李德俊,羅維平.單片機(jī)原理及應(yīng)用[M].武漢:華中科技大學(xué)出版社,2012.
[2]蒙博宇.STM32自學(xué)筆記[M].北京:北京航空航天大學(xué)出版社,2012.
[3]譚浩強(qiáng).C程序設(shè)計(jì)(第4版)[M].北京:清華大學(xué)出版社,2010.
[4]Joseph Yiu.ARM Cortex-M3權(quán)威指南[M].北京:北京航空航天大學(xué)出版社,2012.
[5]李朝青,劉艷玲.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2013.
[6]姜志海,黃玉清,劉連鑫.單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社,2013.