版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄1緒論1本設(shè)計(jì)的研究背景與研究目的1國(guó)內(nèi)外研究現(xiàn)狀22電子密碼鎖的總體設(shè)計(jì)方案3方案論證3方案一采用單片機(jī)控制方案3方案二采用數(shù)字電路控制方案4方案三采用EDA控制方案5方案比擬以及可行性53電子密碼鎖硬件電路的設(shè)計(jì)6中央控制模塊的設(shè)計(jì)6主控芯片STC89C52單片機(jī)的簡(jiǎn)介6時(shí)鐘電路的設(shè)計(jì)7復(fù)位電路的設(shè)計(jì)8鍵盤輸入模塊的設(shè)計(jì)9矩陣鍵盤工作原理9單片機(jī)鍵盤掃描法10顯示密碼模塊的設(shè)計(jì)10簡(jiǎn)介11液晶顯示模塊與單片機(jī)連接電路12開(kāi)鎖模塊的設(shè)計(jì)13報(bào)警模塊的設(shè)計(jì)13硬件電路總體設(shè)計(jì)144電子密碼鎖的軟件設(shè)計(jì)15主程序流程介紹15鍵盤模塊流程圖16顯示模塊流程圖18修改密碼流程圖19開(kāi)鎖和報(bào)警模塊流程圖205電子密碼鎖的系統(tǒng)調(diào)試及分析22硬件電路調(diào)試及結(jié)果分析22軟件調(diào)試及功能分析22調(diào)試過(guò)程22仿真結(jié)果分析24系統(tǒng)調(diào)試266結(jié)論及展望28結(jié)論28展望28謝辭29參考文獻(xiàn)30附錄32附1局部代碼32附2總電路圖401緒論本設(shè)計(jì)的研究背景與研究目的隨著人們生活水平的提高和社會(huì)科技的進(jìn)步,鎖已開(kāi)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在傳統(tǒng)鑰匙的根底上,加了一組或多組密碼,不同聲音,不同磁場(chǎng),不同聲波,不同光束光波,不同圖像。〔如指紋、眼底視網(wǎng)膜等〕來(lái)控制鎖的開(kāi)啟。從而大大提高了鎖的平安性,使不法之徒無(wú)從下手,人們也就能對(duì)自身財(cái)產(chǎn)平安有了更多的保障。因此電子密碼防盜鎖作為防盜衛(wèi)士的作用日趨重要,而如何實(shí)現(xiàn)家庭防盜這一問(wèn)題也變的尤其的突出,傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單,被撬的事件屢見(jiàn)不鮮,而電子密碼防盜鎖用密碼代替鑰匙,不但省去了佩戴鑰匙的煩惱,也從根本上解決了普通門鎖保密性差的缺點(diǎn)。當(dāng)今平安信息系統(tǒng)應(yīng)用越來(lái)越廣泛,特別在保護(hù)機(jī)密、維護(hù)隱私和財(cái)產(chǎn)保護(hù)方面起到重大作用,而基于電子密碼鎖的平安系統(tǒng)是其中的組成局部,因此研究它具有重大的現(xiàn)實(shí)意義。單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講,一塊芯片就成了一臺(tái)計(jì)算機(jī)。隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的飛速開(kāi)展,單片機(jī)性能不斷完善,性價(jià)比顯著提高,技術(shù)日趨完善。由于單片機(jī)具有體積小、重量輕、價(jià)格廉價(jià)、功耗低、控制功能強(qiáng)及運(yùn)算速度快等特點(diǎn),因而在國(guó)民經(jīng)濟(jì)建設(shè)、軍事及家用電器等各個(gè)領(lǐng)域均得到了廣泛的應(yīng)用。它主要是作為控制局部的核心部件。它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場(chǎng)控制,需要的是有較強(qiáng)的抗干擾能力,較低的本錢,這也是和離線式計(jì)算機(jī)的〔比方家用PC〕的主要區(qū)別。單片機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出設(shè)備構(gòu)成。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子〞里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了。本設(shè)計(jì)利用單片機(jī)及附加器件實(shí)現(xiàn)數(shù)據(jù)傳送和控制算法,來(lái)完成某一實(shí)際功能,檢驗(yàn)并提高同學(xué)對(duì)整體電路設(shè)計(jì)和把握能力,了解單片機(jī)系統(tǒng)設(shè)計(jì)流程,以及電路板的實(shí)際制作和調(diào)試能力。同時(shí)也加強(qiáng)對(duì)數(shù)字電路、單片機(jī)和微機(jī)原理等課程知識(shí)的實(shí)際應(yīng)用能力,也為同類產(chǎn)品的進(jìn)一步開(kāi)展奠定理論和實(shí)踐根底。隨著人們對(duì)平安的重視和科技的開(kāi)展,許多電子智能鎖已在國(guó)內(nèi)外相繼面世。但是這些產(chǎn)品的特點(diǎn)是針對(duì)特定的指紋和有效卡,只能適用于保密要求的箱、柜、門等。而且指紋識(shí)別器,假設(shè)在公共場(chǎng)所使用存在容易機(jī)械損壞,IC卡還存在容易喪失、損壞等特點(diǎn)。加上其本錢較高,一定程度上限制了這類產(chǎn)品的普及和推廣。電子鎖,由于其保密性高,使用靈活性好,平安系數(shù)高,受到了廣闊用戶的歡送。鑒于目前的技術(shù)水平與市場(chǎng)的接收程度,電子密碼鎖是這類電子防盜產(chǎn)品的主流。目前,在西方興旺國(guó)家,電子密碼鎖的技術(shù)相對(duì)先進(jìn),種類齊全,電子密碼鎖已被廣泛應(yīng)用于智能門禁系統(tǒng)中,通過(guò)多種更加平安,更加可靠的技術(shù)實(shí)現(xiàn)大門的管理。在我國(guó)電子鎖整體水平尚處于國(guó)際上70年代左右,電子密碼鎖的本錢還很高,市場(chǎng)上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進(jìn)國(guó)際先進(jìn)水平,現(xiàn)國(guó)內(nèi)有幾個(gè)廠生產(chǎn)供給市場(chǎng)。但國(guó)內(nèi)自行研制開(kāi)發(fā)的電子鎖,其市場(chǎng)結(jié)構(gòu)尚未形成,應(yīng)用還不廣泛。國(guó)內(nèi)的不少企業(yè)也引進(jìn)了世界上先進(jìn)的技術(shù),開(kāi)展前景非??捎^。2電子密碼鎖的總體設(shè)計(jì)方案方案論證.1方案一采用單片機(jī)控制方案選用單片機(jī)STC89C52作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的IO端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)根本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD顯示器用于顯示作用。框圖如下列圖復(fù)位電路復(fù)位電路振蕩電路鍵盤電路開(kāi)鎖電路AT9C51單片機(jī)報(bào)警電路顯示電路圖系統(tǒng)框圖1)中央控制局部采用STCT89C52單片機(jī),該型單片機(jī)有8KB的ROM,512B的RAM,5個(gè)中斷源,3個(gè)16位定時(shí)器/計(jì)數(shù)器。2)顯示局部采用1602LCD顯示屏組成顯示電路來(lái)提示信息。當(dāng)輸入密碼時(shí),只顯示*,當(dāng)密碼位數(shù)輸入完畢按下確認(rèn)鍵之后,對(duì)輸入的密碼進(jìn)行比擬,正確就發(fā)出‘叮當(dāng)’聲,同時(shí)門翻開(kāi);假設(shè)密碼輸入不正確時(shí)顯示錯(cuò)誤,并計(jì)次錄數(shù),當(dāng)次數(shù)超過(guò)三次就觸動(dòng)蜂鳴器發(fā)出報(bào)警聲。3)鍵盤輸入局部本設(shè)計(jì)所采用鍵盤為4×4行列式。每一條水平線〔行線〕與垂直線〔列線〕的交叉處不相通,而是通過(guò)一個(gè)按鍵來(lái)連通,利用這種行列式矩陣結(jié)構(gòu)只需要4條行線和4條列線,即可組成4×4個(gè)按鍵的鍵盤。在行線所接的單片機(jī)4個(gè)I/O口作為輸出端,而列線所接的I/O口那么作為輸入端。當(dāng)按鍵沒(méi)有被按下時(shí)所有的輸出端都是高電平,代表無(wú)鍵按下。一旦有鍵按下,那么輸入線就會(huì)被拉低,這樣通過(guò)讀入輸入線的狀態(tài)就可知是否有鍵按下。按鍵功能分配分為數(shù)字鍵和功能鍵,數(shù)字鍵主要是用于密碼輸入,功能鍵主要是用于修改密碼、確認(rèn)密碼、刪除密碼等。4)報(bào)警電路局部當(dāng)輸入密碼錯(cuò)誤超過(guò)3次,就會(huì)觸動(dòng)報(bào)警電路中蜂鳴器。5〕開(kāi)鎖電路局部用發(fā)光二極管代替開(kāi)鎖的電路,發(fā)光表示開(kāi)鎖。方案二采用數(shù)字電路控制方案用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個(gè)用戶輸入鍵,其中只有4個(gè)是有效的密碼按鍵,其它的都是干擾按鍵,假設(shè)按下干擾鍵,鍵盤輸入電路自動(dòng)清零,原先輸入的密碼無(wú)效,需要重新輸入;如果用戶輸入密碼的時(shí)間超過(guò)10秒〔一般情況下,用戶不會(huì)超過(guò)10秒,假設(shè)用戶覺(jué)得不便,還可以修改〕電路將報(bào)警20秒,假設(shè)電路連續(xù)報(bào)警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。電路由兩大局部組成:密碼鎖電路和備用電源(UPS),其中設(shè)置UPS電源是為了防止因?yàn)橥k娫斐傻拿艽a鎖電路失效,使用戶免遭麻煩。密碼鎖電路包含:鍵盤輸入、密碼修改、密碼檢測(cè)、開(kāi)鎖電路、執(zhí)行電路、報(bào)警電路、鍵盤輸入次數(shù)鎖定電路。電路框圖如下圖。密碼修改電路密碼修改電路鍵盤輸入電路報(bào)警電路開(kāi)鎖電路執(zhí)行電路密碼校驗(yàn)電路圖2.2密碼鎖電路2.1.3方案三采用EDA控制方案1〕整體結(jié)構(gòu)設(shè)計(jì)電子密碼鎖包括鍵盤控制、密碼設(shè)置和報(bào)警提示三大功能模塊。2〕硬件描述語(yǔ)言VHDL描述電路首先在適宜的路徑下建立本設(shè)計(jì)的文件夾。然后用VHDL語(yǔ)言編輯。最后仿真測(cè)試及編程下載配置。方案比擬以及可行性方案一采用基于單片機(jī)實(shí)現(xiàn)的電子密碼鎖,其中硬件電路設(shè)計(jì)具有按鍵有效提示、輸入錯(cuò)誤提示、控制開(kāi)鎖電平、控制報(bào)警電路、修改密碼電路等多種功能。密碼鎖內(nèi)部的單片機(jī)是核心處理設(shè)備,單片機(jī)有體積小、質(zhì)量輕、價(jià)格廉價(jià)諸多優(yōu)點(diǎn)。單片機(jī)軟件局部軟件的設(shè)計(jì)主要是51單片機(jī)的程序編寫且單片機(jī)是靠程序運(yùn)行的,如果需要修改只需要修改程序,不需要將整個(gè)硬件電路做整修,這不僅以節(jié)約資源而且可以節(jié)約時(shí)間,提高工作效率。因?yàn)橥ㄟ^(guò)不同的程序可以實(shí)現(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能。這是別的器件需要費(fèi)很大力氣才能做到的,有些那么是花大力氣也很難做到的,但是單片機(jī)卻可以輕松解決。通過(guò)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性,比起數(shù)電中邏輯器件這個(gè)優(yōu)點(diǎn)顯而易見(jiàn),因此方案一比方案二適宜。比照方案三,雖然都可通過(guò)編程來(lái)實(shí)現(xiàn)各種功能,但是單片機(jī)是軟件編程,而EDA技術(shù)是在軟件平臺(tái)下,用硬件描述語(yǔ)言VHDL來(lái)實(shí)現(xiàn)的。設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言VHDL完成設(shè)計(jì)文件。對(duì)于我個(gè)人來(lái)說(shuō),EDA方面的知識(shí)有限,不太會(huì)運(yùn)用,因此我個(gè)人不選擇這個(gè)方案。綜上,本次設(shè)計(jì)最優(yōu)選擇為方案一即采用AT89C51為核心的單片機(jī)控制,其方案的可行性如下:?jiǎn)纹瑱C(jī)價(jià)格實(shí)惠,因而畢業(yè)設(shè)計(jì)本錢不高。單片機(jī)型號(hào)、種類多,在市場(chǎng)上容易購(gòu)置。電路的安裝和調(diào)試都比擬容易方便,比擬易于實(shí)現(xiàn)。3電子密碼鎖硬件電路的設(shè)計(jì)本設(shè)計(jì)主要由中央控制模塊、鍵盤輸入模塊、LCD顯示密碼模塊、開(kāi)鎖電路模塊、蜂鳴器報(bào)警電路模塊五大模塊組成。中央控制模塊的設(shè)計(jì)中央控制主要由STC89C52單片機(jī)構(gòu)成,輔以復(fù)位電路和時(shí)鐘電路。主控芯片STC89C52單片機(jī)的簡(jiǎn)介1〕STC89C52單片機(jī)的主要特性如下:增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。用戶應(yīng)用程序空間為8K字節(jié),片上集成512字節(jié)RAM。通用I/O口〔32個(gè)〕,P1/P2/P3/P4是準(zhǔn)雙向口/電阻上拉,P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。2〕STC89C52RC引腳功能說(shuō)明:VCC〔40引腳〕:電源電壓VSS〔20引腳〕:接地,39~32引腳〕:P0口是一個(gè)漏極開(kāi)路的8位雙向I/O口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對(duì)端口P0寫入每個(gè)引腳能驅(qū)動(dòng)寫入“1”時(shí),可以作為高阻抗輸入。P1端口〔P1.0~P1.7,1~8引腳〕:P1口是一個(gè)內(nèi)部帶上拉電阻的8位雙向I/O口。P1口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸出一個(gè)電流。P2端口〔P2.0~P2.7,21~28引腳〕:P2口是一個(gè)內(nèi)部帶上拉電阻的8位雙向I/O端口。P2作為輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流〔I〕。P3端口〔P3.0~P3.7,10~17引腳〕:P3口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O端口。RST〔9引腳〕:復(fù)位輸入,當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)為有效,用來(lái)完成單片機(jī)的復(fù)位初始化操作。ALE/ROG〔30引腳〕地址鎖存控制信號(hào):〔ALE〕是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。圖STC單片機(jī)管腳圖時(shí)鐘電路的設(shè)計(jì)時(shí)鐘信號(hào)用來(lái)提供單片機(jī)片內(nèi)的各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比擬穩(wěn)定,實(shí)際使用中常采用這種方式,如圖2-2所示在其外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反應(yīng)元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。圖3.1.2中外接晶體以及電容C2和C3構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值為30pF左右,晶振頻率選11.0592MHz圖3.2晶振電路復(fù)位電路的設(shè)計(jì)單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,那么CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動(dòng)按鈕復(fù)位和上電復(fù)位,。1〕手動(dòng)按鈕復(fù)位手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端RST上參加高電平〔圖1〕。一般采用的方法是在RST端和正電源VCC之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),那么VCC的+5V電平就會(huì)直接加到RST端。手動(dòng)按鈕復(fù)位的電路如所示。由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。2〕上電復(fù)位上電復(fù)位電路只要在RST復(fù)位輸入引腳上接電容至VCC端,下接一個(gè)電阻到地即可。對(duì)于CMOS型單片機(jī),由于在RST內(nèi)部有一個(gè)下拉電阻,故可將外部電阻去掉,而將外接電容減至1?F。上電復(fù)位的工作過(guò)程是在加電時(shí),復(fù)位電路通過(guò)電容加給RST端一個(gè)短暫的高電平信號(hào),此高電平信號(hào)隨著VCC對(duì)電容的充電過(guò)程而逐漸回落,即RST端的高電平持續(xù)時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)能夠可靠地復(fù)位,RST端的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)間。上電時(shí),VCC的上升時(shí)間約為10ms,而起振蕩器的起時(shí)間取決于振蕩頻率,如晶振頻率為10MHz,起振時(shí)間為1ms;晶振頻率為1MHz,起振時(shí)間那么為10ms。在圖2的復(fù)位電路中,當(dāng)VCC掉電時(shí),必然會(huì)使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個(gè)負(fù)電壓將不會(huì)對(duì)器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“l(fā)〞態(tài)。如果系統(tǒng)在上電時(shí)得不到有效的復(fù)位,那么程序計(jì)數(shù)器PC將得不到一個(gè)適宜的初值,因此,CPU可能會(huì)從一個(gè)未被定義的位置開(kāi)始執(zhí)行程序。圖3.3手動(dòng)按鈕復(fù)位電路鍵盤輸入模塊的設(shè)計(jì)矩陣鍵盤工作原理矩陣鍵盤又稱為行列式鍵盤,它是用4條I/O線作為行線,4條I/O線作為列線,組成鍵盤的。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤中按鍵的個(gè)數(shù)是4×4個(gè)。這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。行列式鍵盤的工作方式是先利用列線發(fā)送掃描字,然后讀取行線的狀態(tài),查看是否有按鍵按下。鍵盤局部提供一種掃描的工作方式能對(duì)鍵盤不斷掃描、自動(dòng)消抖、自動(dòng)識(shí)別按下的鍵,并給出編碼。在顯示局部,它可以為發(fā)光二極管、熒光管及其他顯示器提供按掃描方式工作的顯示接口,而且為顯示器提供多路復(fù)用信號(hào),可以顯示多達(dá)16位的字符或數(shù)字。鍵盤中有無(wú)按鍵按下是由列線送入全掃描字、行線讀入行線狀態(tài)來(lái)判斷的,其方法是由列線逐列置低電平后,檢查行輸入狀態(tài)來(lái)判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,那么所按下的鍵不在此列,如果不全為1,那么所按下的鍵必在此列,而且是在與0電平線相交的交點(diǎn)上的那個(gè)鍵。單片機(jī)鍵盤掃描法掃描法是在判定有鍵按下后逐列果行〔或列〕的狀態(tài)出現(xiàn)非全1狀態(tài),如果〔或列〕的狀態(tài)出現(xiàn)非全1狀態(tài),這時(shí)0狀態(tài)的行、列交點(diǎn)的鍵就是所按下的鍵。掃描法的特點(diǎn)是逐行〔或逐列〕掃描查詢,這時(shí)相應(yīng)行〔或列〕應(yīng)有上拉電阻接高電平。行列式鍵盤掃描程序就是采用掃描法來(lái)確定哪個(gè)鍵按下的。確定矩陣式鍵盤上哪個(gè)鍵被按下時(shí)運(yùn)用掃描法,又稱為逐行〔或列〕掃描查詢法,是一種最常用的按鍵識(shí)別方法,過(guò)程如下:1〕判斷鍵盤中有無(wú)鍵按下,將全部行線Y0~Y3置為低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,那么表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。假設(shè)所有列線,均為高電平,那么鍵盤中無(wú)鍵按下。2〕判斷閉合鍵所在的位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為為低電平,即在置某根行線為低電平時(shí),其他線為高電平,在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài),假設(shè)某列為那么該列線與置為低電平的行線交叉處的按鈕就是閉合的按鍵。圖3.4矩陣鍵盤電路與單片機(jī)連接圖LCD顯示密碼模塊的設(shè)計(jì)顯示模塊主要由LCD1602顯示屏組成,他顯示的是鍵盤輸入的密碼,以及密碼正確與錯(cuò)誤的提示。當(dāng)輸入密碼時(shí),出于平安性的考慮,顯示的密碼是有*號(hào)代替,為暗密。當(dāng)輸入六位密碼后按下確認(rèn)鍵,系統(tǒng)會(huì)與存于ROM的密碼比照,假設(shè)密碼錯(cuò)誤,顯示屏?xí)@示Error,假設(shè)密碼正確,顯示屏?xí)@示Right。LCD1602簡(jiǎn)介1〕1602功能介紹1602液晶也叫1602字符型液晶它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有假設(shè)干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊〔顯示字符和數(shù)字〕。2〕1602LCD采用標(biāo)準(zhǔn)的14腳〔無(wú)背光〕或16腳〔帶背光〕接口,各引腳接口說(shuō)明如下表3.1所示:引腳功能說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極其引腳圖如下列圖所示:圖3.5LCD1602引腳圖3)LCD存放器的選擇LCD存放器的選擇ER/WRS功能說(shuō)明110寫入命令存放器111寫入數(shù)據(jù)存放器110讀取忙碌標(biāo)志及RAM地址111讀取RAM數(shù)據(jù)0X1不動(dòng)作LCD1602液晶顯示模塊與單片機(jī)連接電路圖連接電路開(kāi)鎖模塊的設(shè)計(jì)通過(guò)單片機(jī)送給開(kāi)鎖執(zhí)行機(jī)構(gòu),電路驅(qū)動(dòng)原本是利用電磁鎖吸合原理來(lái)進(jìn)行開(kāi)鎖的的。本設(shè)計(jì)為節(jié)約資源,通過(guò)P3.0接一個(gè)發(fā)光二極管作為電磁閥線圈,當(dāng)發(fā)光二級(jí)管亮那么表示實(shí)現(xiàn),密碼正確門開(kāi),假設(shè)二極管不亮那么表示輸入的密碼不正確,門不開(kāi),其連接電路如圖3.7所示。圖開(kāi)鎖電路報(bào)警模塊的設(shè)計(jì)報(bào)警模塊由蜂鳴器和單片機(jī)組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時(shí)約需要100mA驅(qū)動(dòng)電流。蜂鳴器電路如下圖。當(dāng)89C51的電平時(shí),蜂鳴器產(chǎn)生蜂鳴音,89C51輸出為低電平時(shí),蜂鳴器不發(fā)聲,其連接電路如圖3.5所示。圖報(bào)警電路硬件電路總體設(shè)計(jì)本次設(shè)計(jì)的各大模塊在上述章節(jié)中已仔細(xì)介紹了,將各大模塊融合在一起后組成電子密碼鎖硬件電路,鍵盤輸入模塊和LCD顯示模塊是最主要的兩大模塊,鍵盤主要是完成密碼的輸入、修改密碼、消除密碼等等任務(wù)。而顯示模塊那么是主要完成輸入密碼的顯示以及密碼輸入正確或者錯(cuò)誤的提示。而剩余的就是報(bào)警模塊、開(kāi)鎖模塊以及單片機(jī)的最小系統(tǒng)。開(kāi)鎖顧名思義就是密碼輸入正確后翻開(kāi)大門,而報(bào)警主要是為平安著想,當(dāng)有人非法入侵時(shí)便于抓住犯人。單片機(jī)最小系統(tǒng)那么是單片機(jī)正常運(yùn)行的保障??偟挠布娐啡缦聢D。圖3.9總的硬件電路4電子密碼鎖的軟件設(shè)計(jì)電子密碼鎖的軟件設(shè)計(jì)是整個(gè)電子密碼鎖可靠平安運(yùn)行的關(guān)鍵,密碼鎖軟件程序分為主程序、延時(shí)子程序、LCD顯示子程序、修改密碼子程序、掃描鍵盤輸入子程序、報(bào)警子程序。密碼通過(guò)矩陣鍵盤輸入,并且在液晶顯示屏上顯示,如果輸入密碼正確,那么可以直接開(kāi)鎖。如果不正確,并且3次以上輸入不正確,那么啟動(dòng)報(bào)警系統(tǒng),觸發(fā)蜂鳴器發(fā)聲。如果要修改密碼,那么需要在輸入根底密碼判別正確后,輸入修改后的密碼,通過(guò)系統(tǒng)確認(rèn)前方可修改密碼。為了完成上述任務(wù),在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)過(guò)程分成假設(shè)干個(gè)局部,每一局部叫做一個(gè)模塊。而本次設(shè)計(jì)分為四大模塊,分別是鍵盤輸入模塊、LCD顯示模塊、開(kāi)鎖和報(bào)警模塊以及修改密碼模塊,通過(guò)主程序來(lái)實(shí)現(xiàn)控制。主程序流程介紹主程序主要內(nèi)容是各子程序模塊的調(diào)用,并利用各模塊進(jìn)行電子密碼鎖功能的實(shí)現(xiàn),即是鍵盤輸入密碼并在LCD液晶顯示屏上顯示密碼,當(dāng)密碼輸入完成后,單片時(shí)機(jī)將輸入進(jìn)的密碼與原單片機(jī)內(nèi)部所儲(chǔ)存的密碼進(jìn)行比照,如假設(shè)密碼正確,那么代表電磁吸合器的發(fā)光二極管會(huì)顯示紅色,同時(shí)LCD液晶顯示屏?xí)@示出right;如假設(shè)密碼錯(cuò)誤,會(huì)啟動(dòng)計(jì)數(shù)器計(jì)數(shù),當(dāng)錯(cuò)誤次數(shù)超過(guò)三次時(shí),報(bào)警系統(tǒng)會(huì)啟動(dòng)即是蜂鳴器會(huì)發(fā)出報(bào)警聲,以提醒保安。流程圖如下圖。開(kāi)始開(kāi)始初始化有鍵按下?調(diào)用顯示啟動(dòng)定時(shí)識(shí)別按鍵按鍵數(shù)=6?超時(shí)?比擬密碼開(kāi)門結(jié)束自動(dòng)去除<3次?報(bào)警NNYYYYNN圖4.1主程序流程圖4.2鍵盤模塊流程圖鍵盤輸入模塊主要包含鍵盤的掃描、延時(shí)去抖、找到鍵值以及返回鍵值。鍵盤掃描時(shí)循環(huán)的,程序編寫是會(huì)使其進(jìn)入是循環(huán),這樣可以檢驗(yàn)出是否有按鍵按下,如果無(wú)按鍵按下就會(huì)進(jìn)入等待有按鍵按下的狀態(tài),如果有按鍵按下的話就進(jìn)入延時(shí)去抖的步驟,這樣可以肯定確實(shí)定掃描到的按鍵是否被按下。經(jīng)過(guò)去抖之后就是確定按鍵的位置即是第幾行和第幾列,找到按鍵后,就是確定鍵值并返回按鍵值,每一次掃描到有鍵按下后,最后都要有釋放閉合按鍵的步驟,這是為了防止影響下一次鍵盤的掃描和按鍵值的讀取。流程圖如下圖。鍵盤掃描鍵盤掃描返回鍵值閉合鍵釋放計(jì)算鍵值找到閉合鍵延時(shí)去抖有鍵閉合?YN圖4.2鍵盤掃描流程圖按鍵的消抖子程序所示: if(press_on!=0XF0)//--按鍵消抖〔時(shí)間自定〕 { delay(50); press_on=KEY_IO;}確定鍵值的子程序如下所示:switch(row){ case0xe0:row=0;break; case0xd0:row=1;break; case0xb0:row=2;break; case0x70:row=3;break; } switch(col) { case0x07:col=0;break; case0x0b:col=1;break; case0x0d:col=2;break; case0x0e:col=3;break; } recieve=key_value[row][col]; } 4.3顯示模塊流程圖LCD顯示模塊的軟件設(shè)計(jì)主要包含開(kāi)始、初始化LCD、去除LCD、寫LCD四個(gè)過(guò)程。其中寫包含寫數(shù)據(jù)和寫字符。寫數(shù)據(jù)的局部程序://寫數(shù)(5位數(shù)據(jù))voidprintf_data(ucharrow,ucharcol,ucharcount,uintdat){ucharsh1,sh2,sh3,sh4,sh5;sh5=dat/10000; sh4=dat%10000/1000; sh3=dat%1000/100; sh2=dat%100/10; sh1=dat%10; write_adr(0x0c);switch(row) { case1:row=0x80;break; case2:row=0xc0;break; default:break; } write_adr(row+col-1); delay(500); if(count>=5) write_data(sh5+48); if(count>=4) write_data(sh4+48); if(count>=3) write_data(sh3+48); if(count>=2) write_data(sh2+48); if(count>=1) write_data(sh1+48);寫字符的小程序?yàn)椋?/寫一段字符voidprintf_char(ucharrow,ucharcol,ucharInbuffer[31]){uchari; write_adr(0x0c); switch(row) { case1:row=0x80;break;流程圖如下圖:初始化LCD初始化LCD開(kāi)始去除LCD寫LCD結(jié)束圖4.3LCD顯示流程圖修改密碼流程圖修改密碼模塊主要是在輸入密碼正確之后,按下14鍵即是修改密碼鍵就能進(jìn)入修改密碼界面,其流程分為四個(gè)步驟,分別為按下14鍵并啟動(dòng)定時(shí)、輸入修改的密碼、按下確認(rèn)鍵11鍵、LCD的顯示。修改密碼的局部程序如下://改密碼voidch_word(void){ unsignedcharrecieve=0xff,b[10],j=0; LCD_CLR(); printf_char(1,1,"new_password%d"); while(recieve!=11) { recieve=keypad(); delay(10000); if(recieve<=9&&recieve>=0) { b[j]=recieve; printf_data(2,j+1,1,recieve); j++; } elseif(recieve==12) { if(j!=0) { a[j]='\0'; printf_char(2,j,"%d"); j--; } } 流程圖如下圖:按下14鍵按下14鍵啟動(dòng)定時(shí)輸入密碼存入緩沖按下確認(rèn)1111鍵比擬密碼調(diào)用LED調(diào)用顯示圖修改密碼流程圖開(kāi)鎖和報(bào)警模塊流程圖開(kāi)鎖和報(bào)警模塊主要任務(wù)是把從鍵盤輸入到單片機(jī)的密碼和本身保存在單片機(jī)中的密碼進(jìn)行比照,如果正確就開(kāi)鎖,如果錯(cuò)誤的話就進(jìn)行計(jì)數(shù)并顯示在LCD液晶顯示屏上,當(dāng)輸入密碼的錯(cuò)誤次數(shù)到達(dá)3所示。圖報(bào)警流程圖5電子密碼鎖的系統(tǒng)調(diào)試及分析5.1硬件電路調(diào)試及結(jié)果分析硬件調(diào)試首先檢查電路板焊接是否有誤,檢查有是否出現(xiàn)虛焊、漏焊、線路短接、元器件引腳是否錯(cuò)誤焊接等等問(wèn)題,然后檢查電路中某些元器件是否起作用,最后利用一些小程序測(cè)試LCD1602是否完好無(wú)損。檢測(cè)單片機(jī)是否工作可通過(guò)觀察示波器顯示的波形是否衰減,或者利用萬(wàn)用表測(cè)一下18,19腳的電壓,應(yīng)該有個(gè)2-3V就說(shuō)明起振了,另外,ALE如果有信號(hào)或者有電壓也說(shuō)明單片機(jī)工作了。我采用利用萬(wàn)用表側(cè)18、19腳的電壓,其結(jié)果顯示為2.3V。檢測(cè)電路有無(wú)虛焊可用萬(wàn)用表的二極管檔來(lái)檢測(cè),當(dāng)把萬(wàn)用表的紅黑兩表筆接觸在焊接線路的兩端后,萬(wàn)用表發(fā)出聲音,那么說(shuō)明沒(méi)有虛焊。檢查電路是否短路也是利用同一原理。軟件調(diào)試及功能分析軟件調(diào)試即是把已經(jīng)寫好的C語(yǔ)言程序載入到軟件調(diào)試工具,檢查軟件是否有設(shè)法錯(cuò)誤,再根據(jù)軟件提示對(duì)本程序進(jìn)行修改,直到?jīng)]有錯(cuò)誤再生成單片機(jī)能運(yùn)行的機(jī)器碼,再用51開(kāi)發(fā)板或其它單片機(jī)寫入工具把機(jī)器碼寫入單片機(jī)進(jìn)行實(shí)際的程序調(diào)試,根據(jù)實(shí)際情況再對(duì)程序的缺乏加以修改,直到滿足設(shè)計(jì)要求。本設(shè)計(jì)采用Proteus和KEIL軟件進(jìn)行仿真、調(diào)試,首先在在Proteus軟件上進(jìn)行硬件電路的描繪,其次在KEIL軟件編寫電子密碼鎖的源程序,源程序經(jīng)過(guò)匯編后產(chǎn)生Hex文件,最后將生成的目標(biāo)文件添加到單片機(jī)中仿真調(diào)試。調(diào)試過(guò)程首先翻開(kāi)KEILC51主程序,新建工程,新建文本框?qū)懭氤绦?,保存,檢查是否有語(yǔ)法錯(cuò)誤,經(jīng)反復(fù)檢查無(wú)誤后匯編,生成51單片機(jī)可執(zhí)行的HEX文件。然后用與51開(kāi)發(fā)板相匹配的寫入軟件把HEX文件寫入單片機(jī)。圖KEILc51調(diào)試介面圖程序?qū)懭虢缑娣抡娼Y(jié)果分析當(dāng)系統(tǒng)通電進(jìn)入初始化狀態(tài)后,LCD顯示屏?xí)@示W(wǎng)elcome,結(jié)果如下圖。圖系統(tǒng)初始化當(dāng)進(jìn)入輸入密碼階段時(shí),依次按下按鍵上的數(shù)字鍵1,2,3,4,5,6后,LCD顯示屏顯示如圖。圖輸入密碼階段仿真圖當(dāng)按下確定鍵11鍵后,顯示屏上顯示正確且二極管燈亮,表示密碼正確開(kāi)門,如下圖。圖5.5輸入密碼正確時(shí)仿真圖按下確認(rèn)鍵后,二極管不亮且顯示屏上顯示Error,表示密碼輸入錯(cuò)誤,門的鎖不會(huì)翻開(kāi)。如下圖。圖輸入密碼錯(cuò)誤仿真圖當(dāng)需要修改密碼時(shí),只需按下14鍵即可進(jìn)入到修改密碼界面,修改成功后顯示success,修改錯(cuò)誤后顯示屏?xí)@示fail。圖修改密碼仿真圖圖修改失敗仿真圖系統(tǒng)調(diào)試即是將源程序在KEIL軟件里運(yùn)行產(chǎn)生的可執(zhí)行文件HEX寫入到單片機(jī)中,然后通電初始化,檢查是否能實(shí)現(xiàn)仿真中到達(dá)的效果。如果都無(wú)誤寫入程序后還是有問(wèn)題就要檢查程序是否有問(wèn)題。其結(jié)果分析如下所示:?jiǎn)纹瑱C(jī)寫入程序后并通電初始化后,LCD顯示屏顯示welcome如圖。圖初始化硬件電路當(dāng)通過(guò)4*4矩陣鍵盤輸入密碼且密碼正確后,LCD顯示屏顯示right如下圖。圖密碼正確界面當(dāng)通過(guò)4*4矩陣鍵盤輸入密碼且密碼錯(cuò)誤后,LCD顯示屏顯示error以及輸入錯(cuò)誤的次數(shù),如所示。圖密碼錯(cuò)誤界面當(dāng)用戶需要修改密碼時(shí),按下14鍵即可進(jìn)入修改密碼界面,LCD顯示屏顯示new-password如所示。圖修改密碼界面6結(jié)論及展望結(jié)論本次設(shè)計(jì)通過(guò)硬件電路設(shè)計(jì)、軟件編程、硬件調(diào)試、軟件調(diào)試以及系統(tǒng)調(diào)試完成了設(shè)計(jì)要求,到達(dá)了設(shè)計(jì)目的。本次設(shè)計(jì)最終的結(jié)果如下:電子密碼鎖通過(guò)鍵盤能成功進(jìn)行輸入密碼;LCD液晶顯示屏上能顯示輸入的密碼;能判斷輸入的密碼是否正確并且能顯示判斷結(jié)果;能在密碼輸入正確后開(kāi)門;能在密碼輸入錯(cuò)誤次數(shù)到達(dá)三次以上后進(jìn)行報(bào)警;能在開(kāi)門后通過(guò)一按鍵對(duì)原有密碼進(jìn)行更改;能用*代替顯示輸入的密碼數(shù)字,隱藏了密碼,這實(shí)現(xiàn)了密碼保護(hù)。但是在實(shí)現(xiàn)上述功能時(shí),也存在許多缺乏。第一,在密碼輸入正確時(shí)除了要使代表電磁吸合器的發(fā)光二極管發(fā)光以外,還應(yīng)該加上語(yǔ)音模塊,提示門開(kāi),這樣更人性化一些。第二,密碼輸入錯(cuò)誤次數(shù)小于三次時(shí),也應(yīng)該采取措施提醒。第三,密碼修改局部,本次設(shè)計(jì)實(shí)現(xiàn)的不是很好,密碼能進(jìn)行修改但是只能修改第一個(gè)密碼。第四,本次設(shè)計(jì)的電子密碼鎖,平安方面還可以提高進(jìn)步。本設(shè)計(jì)中的報(bào)警系統(tǒng)只是一個(gè)簡(jiǎn)單的系統(tǒng),要應(yīng)用于實(shí)際生活還需要進(jìn)一步改良。展望電子鎖是信息化時(shí)代開(kāi)展的產(chǎn)物,應(yīng)時(shí)而生,我相信隨著科技的不斷開(kāi)展,將來(lái)的電子鎖一定更加完美,更加人性化,更加廉價(jià),更加平安。本次設(shè)計(jì)中還有待完善的地方還很多。首先,修改密碼可進(jìn)一步完善,實(shí)現(xiàn)有不管多少戶住戶和多少個(gè)密碼,都能修改密碼。其次,也是最重要的平安防問(wèn)題,報(bào)警途徑很多,有視屏監(jiān)視和發(fā)出報(bào)警聲提醒值班的保安等等。未來(lái),電子密碼鎖需要大面積占據(jù)市場(chǎng)首先必須要突破的就是平安問(wèn)題,如果解決了這個(gè)問(wèn)題,電子密碼鎖就能在鎖的行業(yè)所向披靡。最后本次設(shè)計(jì)還可以精進(jìn)的地方就是輸入密碼錯(cuò)誤時(shí)的處理方法。在輸入密碼錯(cuò)誤次數(shù)在三次以內(nèi)時(shí),也應(yīng)該采取措施。比方禁止輸入三秒或者也用發(fā)聲模塊提醒,只要發(fā)聲頻率不一致就可區(qū)分。謝辭本次設(shè)計(jì)題目是在和我的指導(dǎo)老師孫曉玲老師交流后定下的,選此題原因在于雖然電子密碼鎖在之前就已近在市場(chǎng)上出現(xiàn),但是始終沒(méi)有廣泛應(yīng)用到人們的日常生活中,因此電子密碼鎖就具有繼續(xù)研究的必要。所以在和孫老師商議過(guò)后,我就選擇了電子密碼鎖這個(gè)設(shè)計(jì)題目。從前期努力查找資料,到中期設(shè)計(jì)思路的討論和修改,及最后的反復(fù)斟酌,我都無(wú)比的感謝我的指導(dǎo)老師孫老師。她在此期間對(duì)我的幫助是我能及時(shí)準(zhǔn)確完成畢業(yè)設(shè)計(jì)任務(wù)的必要條件。在硬件調(diào)試和軟件調(diào)試的過(guò)程中,我遇到了相當(dāng)多的困難,而幫助我解決困難的同學(xué)是我必須要要感謝的。幫助我編寫程序并進(jìn)行調(diào)試的彭同學(xué),在我對(duì)某些程序一籌莫展的時(shí)候,伸出了援救之手,在編寫程序過(guò)程中少走了許多彎路,對(duì)于他給予我的幫助,我真心的表示感謝。再來(lái)就是幫助我進(jìn)行硬件調(diào)試的徐同學(xué)和胡同學(xué),他們?cè)谖译娐钒搴附雍煤?,但是未能成功?shí)現(xiàn)電子密碼鎖功能的時(shí)候,及時(shí)伸出了援救之手,把我從無(wú)助、迷茫中解救出來(lái),最終完美的完成畢業(yè)設(shè)計(jì),對(duì)大學(xué)四年畫上了圓滿的句號(hào)。在論文的不斷修改中孫老師總是認(rèn)真仔細(xì)的幫助我檢查并修改論文,使我的論文不斷完善。再次對(duì)您表示感謝,師恩偉大,無(wú)以回報(bào)。在這里還要深深的對(duì)您說(shuō)上一句抱歉,因?yàn)槲业膽猩⒑托傅?,令您費(fèi)盡苦心并且?guī)捉?。最后要感謝的是電信院所有的老師與領(lǐng)導(dǎo),我永遠(yuǎn)都不會(huì)忘記你們的良苦用心以及諄諄教誨。參考文獻(xiàn)[1]王千.實(shí)用電子電路大全[M].電子工業(yè)出版社,2004,28-36[2]彭為.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講[M].電子工業(yè)出版社,2006,69-88[3]張榮.基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].電子工業(yè)出版社,2005,35-38[4]朱勇.單片機(jī)原理與應(yīng)用技術(shù)[M].清華大學(xué)出版社,2006,14-16[5]潘永雄.新編單片機(jī)原理與應(yīng)用[M].西安電子科技大學(xué)出版社,2003,78-86[6]葉啟明.單片機(jī)制作的新型平安密碼鎖[J].家庭電子,2005,(10):[7]郭海英.基于單片機(jī)的電子平安密碼鎖的設(shè)計(jì)[M].現(xiàn)代電子技術(shù),2005,(13)[8]李明喜.新型電子密碼鎖的設(shè)計(jì)[J].機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2004,(03):[9]彭為.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2006,35-38[108L-8AC,2006,(01)[11]WirelessWorld,1998,42-45[12]石文軒,宋薇.基于單片機(jī)MCS一51的智能密碼鎖設(shè)計(jì)[J].武漢工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004,(01):76-35[13]祖龍起,劉仁杰.一種新型可編程密碼鎖[J].大連輕工業(yè)學(xué)院學(xué)報(bào),2002,(01):54-57[14]葉啟明.單片機(jī)制作的新型平安密碼鎖[J].家庭電子,2005,(10):98-111[15]郭海英.基于單片機(jī)的電子平安密碼鎖的設(shè)計(jì)[M].現(xiàn)代電子技術(shù),2005,(13),76-96[16]李明喜.新型電子密碼鎖的設(shè)計(jì)[J].機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2004,(03):45-66[17]董繼成.一種新型平安的單片機(jī)密碼鎖[J].電子技術(shù),2004,(03):122-134[18]R.Dye.VisualObject-OrientatedProgramming[J].Dr.DobbsMacintoshJournal,1991,56(1):213-234[19]李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版)[M].北京:北京航空航天大學(xué)出版社,1998[20]李全利.單片機(jī)原理及接口技術(shù)[M].高等教育出版社,2003[21]PROTEL99SE電路設(shè)計(jì)與制板[M].機(jī)械工業(yè)出版社,200722]楊將新,李華軍,劉到駿等.單片機(jī)程序設(shè)計(jì)及應(yīng)用〔從根底到實(shí)踐〕[J].電子工業(yè)出版社,2006[23]StevenF.Barrett.DaneilJ.Pack.EmbeddedSystem[M].北京:電子工業(yè)出版社,2006[24]周立功.LPC900系列Flash單片機(jī)應(yīng)用技術(shù)[J].北京航空航天大學(xué)出版社,2004[25]黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程[M].北京:電子工業(yè)出版社,2005附錄附1局部代碼#definekey_dataP1codeunsignedcharkey_value[4][4]={1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16};//--鍵值初始化〔可自行賦予鍵值〕ucharkeypad(void){ucharrow,col; ucharrecieve=0xff; key_data=0XF0; delay(100); if(key_data!=0xf0) { delay(100); if(key_data!=0xf0) row=key_data; key_data=0x0f; delay(10); col=key_data; switch(row) { case0xe0:row=0;break; case0xd0:row=1;break; case0xb0:row=2;break; case0x70:row=3;break; } switch(col) { case0x07:col=0;break; case0x0b:col=1;break; case0x0d:col=2;break; case0x0e:col=3;break; } recieve=key_value[row][col]; } returnrecieve;}#include"reg51.h"#include"lcd1602.c"#include"keydriver.c"sbitP3_0=P3^0;sbitP3_3=P3^3;//sbitP3_0=P3^0;unsignedcharcount,i;unsignedchara[10];unsignedcharpassword[4][10]={1,2,3,4,5,6,7,8,9,0, 2,4,5,6,7,8,2,3,4,7, 4,5,6,3,2,1,1,7,8,9, 0,9,8,7,6,5,4,3,2,1};//報(bào)告結(jié)果voidreport(unsignedcharflag){ a[10]=0; if(flag==0) { printf_char(1,10,"right%d"); P3_0=0; delay(60000);delay(60000); P3_0=1; LCD_CLR();} else { printf_char(1,10,"error%d");if(count>=3) P3_3=1; delay(60000);delay(60000); P3_3=0; LCD_CLR(); }}//回刪鍵voiddel(void){ if(i==0) return; else { a[i]='\0'; printf_char(2,i,"%d"); i--; } }//改密碼voidch_word(void){ unsignedcharrecieve=0xff,b[10],j=0; LCD_CLR(); printf_char(1,1,"new_password%d"); while(recieve!=11) { recieve=keypad(); delay(10000); if(recieve<=9&&recieve>=0) { b[j]=recieve; printf_data(2,j+1,1,recieve); j++; } elseif(recieve==12) { if(j!=0) { a[j]='\0'; printf_char(2,j,"%d"); j--; } } } LCD_CLR(); if(j==6) { for(j=0;j<6;j++) password[0][j]=b[j]; printf_char(1,1,"success%d"); } else printf_char(1,1,"fail%d"); delay(60000);delay(60000); LCD_CLR(); }//功能voidmenu(void){ //unsignedcharrecieve; unsignedcharnumber=0; unsignedcharkey_value=100; unsignedcharERROR=3; unsignedcharj=0; for(;;) { number=keypad(); key_value=number; while(number!=0XFF) number=keypad(); printf_char(1,1,"welcome%d"); if(key_value<=9&&key_value>=0&&i<6) { a[i]=key_value; printf_char(2,i+1,"*%d"); i++; } elseif(key_value==11) { for(i=0;i<6;i++) { if(a[i]!=password[0][i]&&a[i]!=password[1][i]&&a[i]!=password[2][i]&&a[i]!=password[3][i]) { ERROR=1; count++; break; } else { ERROR=0; count=0; } } i=0; report(ERROR); } elseif(key_value==13) { LCD_CLR(); a[10]=0; } elseif(key_value==12)del(); elseif(key_value==14) { ch_word(); } }}voidmain(void){ LCD_CLR(); LCD_init(); while(1) menu();}/********************************************************液晶顯示器說(shuō)明1、8位傳輸數(shù)據(jù)LCD_DATA=P02、控制端口RS=P2^0RW=P2^1 EN=P2^2********************************************************//********************************************************函數(shù)說(shuō)明1、LCD_init();//初始化2、LCD_CLR();//清屏函數(shù)3、printf_dat(ucharrow,ucharcol,ucharcount,uintdat)//在第row行第col位開(kāi)始顯示count個(gè)數(shù)據(jù)〔dat〕 4、printf_char(ucharrow,ucharcol,ucharInbuffer[31])//在第row行第col位開(kāi)始顯示字符串Inbuffer[] ********************************************************/#include<reg51.H>#defineucharunsignedchar#defineuintunsignedint//********************************************************////1602所用端口 *////********************************************************//#defineLCD_DATAP0//1602數(shù)據(jù)端口sbitRS=P2^7;sb
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化產(chǎn)業(yè)招投標(biāo)模擬體驗(yàn)
- 施工期間質(zhì)量保障協(xié)議
- 2025年度建筑工程施工現(xiàn)場(chǎng)安全文明施工責(zé)任書范本3篇
- 現(xiàn)代情感劇本編寫人才聘用
- 高速公路通信布線工程協(xié)議
- 食品加工園區(qū)管理指南
- 建筑通風(fēng)新施工合同范本
- 交通運(yùn)輸項(xiàng)目薪資結(jié)構(gòu)設(shè)計(jì)
- 基金管理收入管理辦法
- 食品生產(chǎn)車間主任聘用合同
- GB/T 11446.8-2013電子級(jí)水中總有機(jī)碳的測(cè)試方法
- 醫(yī)院患者壓力性損傷情況登記表
- 打印版(田字、拼音格)A4紙
- 風(fēng)險(xiǎn)分級(jí)管控與隱患排查治理雙重預(yù)防體系建設(shè)資料匯編
- 公共政策學(xué)政策分析的理論方法和技術(shù)課件
- 教案:孔門十弟子
- 中醫(yī)藥在肝癌介入治療中的作用課件
- 青島版二年級(jí)上冊(cè)數(shù)學(xué)《乘法的初步認(rèn)識(shí)》單元整體備課設(shè)計(jì)
- 房屋買賣協(xié)議書電子版模板
- 總工會(huì)新規(guī)慰問(wèn)標(biāo)準(zhǔn)
- 小學(xué)綜合實(shí)踐五年級(jí)上冊(cè)第2單元《社會(huì)服務(wù)》教材分析及全部教案
評(píng)論
0/150
提交評(píng)論