新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ATMega16單片機(jī)的密碼鎖的設(shè)計(jì)

基于ATMega16單片機(jī)的密碼鎖的設(shè)計(jì)

作者: 時(shí)間:2014-01-07 來(lái)源:網(wǎng)絡(luò) 收藏

隨著科技的發(fā)展,安全問(wèn)題越來(lái)越受人們關(guān)注,各種安全產(chǎn)品相繼問(wèn)世,如指紋防盜,紅外防盜等,雖然這類產(chǎn)品的安全性較高,但其成本也同樣較高,攜帶安裝都不方便也同樣限制了其發(fā)展。本文利用ATMega 16,通過(guò)4×3鍵盤(pán)和七段數(shù)碼管顯示,除實(shí)現(xiàn)了的密碼驗(yàn)證、重新設(shè)置和輸入錯(cuò)誤報(bào)警等基本功能外,還創(chuàng)新性的實(shí)現(xiàn)了鍵盤(pán)的重新定義。通過(guò)對(duì)鍵盤(pán)的重新定義可以有效的防止密碼被盜,同時(shí)也降低了成本,便于攜帶安裝。

一、設(shè)計(jì)目的、用途、功能

1.設(shè)計(jì)目的
隨著科技的進(jìn)步,安全問(wèn)題越來(lái)越受人們重視,市場(chǎng)上也相應(yīng)的出來(lái)很多產(chǎn)品,如指紋防盜,紅外防盜等。最然其安全性能很高,但是成本也相對(duì)較高,也不方便攜帶和安裝。本設(shè)計(jì)的目的就是為了保證高安全性的前提下,實(shí)現(xiàn)降低成本,方便攜帶安裝。
2. 設(shè)計(jì)用途
由于本設(shè)計(jì)成本較低且安全性能穩(wěn)定優(yōu)良,可適用于家庭防盜、行李箱、車載行李箱等一些安全性能要求不高且需要便攜的產(chǎn)品上,其安全性能遠(yuǎn)遠(yuǎn)優(yōu)于同等成本的安全性。本設(shè)計(jì)的鍵盤(pán)定義的思想可移植到自動(dòng)提款機(jī)、公共場(chǎng)合的提款裝置等,可以防止用戶輸入密碼時(shí)被別人偷看、竊取等,增加用戶提款時(shí)的安全性。
3.實(shí)現(xiàn)功能
1)密碼設(shè)置功能:默認(rèn)情況下,默認(rèn)密碼為“6666”,鍵盤(pán)默認(rèn)為
“ 1 2 3
4 5 6
7 8 9
# 0 * ”
當(dāng)鍵盤(pán)按下時(shí),即為密碼輸入,每輸入一位,七段數(shù)碼管顯示“8”并左移一位。如果輸入正確,即顯示“PASS”;如果輸入錯(cuò)誤,即顯示“ErOr”,輸入錯(cuò)誤達(dá)到三次,鍵盤(pán)自動(dòng)鎖死,無(wú)法再次輸入,并且蜂鳴器發(fā)出警報(bào)。輸入過(guò)程中按“*”可以刪除輸入錯(cuò)誤的數(shù)字,同時(shí)顯示也右移一位。
2)鍵盤(pán)重新定義功能:當(dāng)密碼輸入正確后再按下“#”,即進(jìn)入選擇修改功能,再次輸入“#”即進(jìn)入鍵盤(pán)重新定義功能。依次按下每個(gè)按鍵,即從0開(kāi)始定義,直到9即定義結(jié)束(“*”“#”鍵無(wú)法被重新定義)。輸入過(guò)程中,每輸入一位,蜂鳴器響一聲,直到完全將“0~9”重新定義結(jié)束。此時(shí)數(shù)碼管顯示“PASS”,鍵盤(pán)即為重新定義后的鍵盤(pán),再次輸入密碼時(shí)必須按照重新定義后的鍵盤(pán)輸入。同樣,輸入過(guò)程中,按“*”鍵可以刪除上一位輸入的數(shù)字。
3)功能復(fù)位:當(dāng)有人輸入三次錯(cuò)誤觸發(fā)蜂鳴器時(shí),蜂鳴器會(huì)一直響,發(fā)出警報(bào),直到其主人按下“reset”鍵,全部恢復(fù)默認(rèn)。

二、硬件設(shè)計(jì)

1.硬件設(shè)計(jì)思路

基于ATMega16單片機(jī)的密碼鎖的設(shè)計(jì)

1)鍵盤(pán)輸入:采用4×3式矩陣鍵盤(pán)輸入,三列從左往右依次對(duì)應(yīng)PB0、PB1、PB2,四行從上往下依次對(duì)應(yīng)PB4、PB5、PB6、PB7。
2)顯示:顯示采用共陽(yáng)極七段數(shù)碼管顯示,四位數(shù)從右往左依次與PD0、PD1、PD2、PD3。七段數(shù)碼管的a b c d e f g對(duì)應(yīng)端口PA0,PA1,PA2,PA3,PA4.PA5,PA6。
3)報(bào)警:當(dāng)密碼輸入錯(cuò)誤達(dá)到三次時(shí),鍵盤(pán)被鎖,并且于端口PC0輸出高電平,驅(qū)動(dòng)蜂鳴器持續(xù)響。
2.電路原理圖

基于ATMega16單片機(jī)的密碼鎖的設(shè)計(jì)

三、軟件設(shè)計(jì)

1.程序設(shè)計(jì)思想
1)鍵盤(pán)掃描:
AVR課上學(xué)習(xí)的鍵盤(pán)掃描程序?yàn)榱讼?而進(jìn)行了軟件消抖處理, “delay_ms(10); //延時(shí)去抖”。由于對(duì)CPU調(diào)用了“delay函數(shù)”,而使CPU在這10ms內(nèi)無(wú)法進(jìn)行其他工作,因此而浪費(fèi)了CPU,降低了CPU效率。鑒于以上缺陷,我們對(duì)鍵盤(pán)掃描程序做了很大改進(jìn),采用定時(shí)器中斷與比較中斷相結(jié)合的方式,在讀取按鍵是否按下的兩次確認(rèn)之間的時(shí)間里,CPU可以繼續(xù)進(jìn)行其他工作,從而提高了CPU的效率。
2)七段數(shù)碼管的顯示
針對(duì)本實(shí)驗(yàn)的實(shí)際情況:密碼通過(guò)和重新定義鍵盤(pán)通過(guò)時(shí),七段數(shù)碼管顯示“PASS”,錯(cuò)誤時(shí)顯示“ErOr”,因此為了提高程序運(yùn)行的效率,采用指針變量輸出的方式,即將“PASS”和“ErOr”的顯示預(yù)存在存儲(chǔ)器中,當(dāng)需要時(shí),指針變量指到相應(yīng)的存儲(chǔ)器顯示。對(duì)每輸入一位左移的顯示則采用動(dòng)態(tài)掃描的方式。
3)蜂鳴器報(bào)警:
對(duì)PC7端口輸出高電平驅(qū)動(dòng)蜂鳴器發(fā)出警報(bào)。

蜂鳴器相關(guān)文章:蜂鳴器原理


關(guān)鍵詞: ATMega16 單片機(jī) 密碼鎖

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉