版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科畢業(yè)設(shè)計(jì)</b></p><p><b> ?。?0 屆)</b></p><p> 密碼鎖控制電路設(shè)計(jì)與實(shí)現(xiàn)研制方案</p><p> 所在學(xué)院 </p><p> 專業(yè)班級(jí) 電子信息工
2、程 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b>&l
3、t;/p><p> 隨著電子科學(xué)技術(shù)水平的不斷提高,電子產(chǎn)品已經(jīng)逐步深入到人們生活中。安全防盜問(wèn)題已經(jīng)漸漸引起人們的重視,由于傳統(tǒng)的機(jī)械鎖構(gòu)造簡(jiǎn)單,盜竊事件時(shí)有發(fā)生。為滿足人們對(duì)鎖的使用要求,增加其安全性,電子密碼鎖作為傳統(tǒng)機(jī)械鎖的代替者應(yīng)運(yùn)而生。電子密碼鎖具有安全性高、生產(chǎn)成本低、工作消耗低、操作簡(jiǎn)易等優(yōu)點(diǎn)。</p><p> 因此,為了克服傳統(tǒng)機(jī)械式的缺點(diǎn)以便于更好的做好防盜措施,將應(yīng)
4、用單片機(jī)為核心的電子密碼鎖來(lái)取代傳統(tǒng)的機(jī)械密碼鎖?;趩纹瑱C(jī)的電子密碼鎖將采用單片機(jī)AT89C51作為核心芯片,同時(shí)將存儲(chǔ)芯片AT24C02應(yīng)用于電子密碼鎖的密碼保護(hù)電路來(lái)防止掉電而發(fā)生的密碼丟失。同時(shí)單片機(jī)將結(jié)合外圍的各個(gè)輔助電路來(lái)實(shí)現(xiàn)電子密碼鎖的輸入、顯示、報(bào)警和開(kāi)鎖等功能。通過(guò)C語(yǔ)言編寫(xiě)程序繼而導(dǎo)入芯片來(lái)實(shí)現(xiàn)對(duì)電子密碼鎖的控制和應(yīng)用。這樣一款可以完成開(kāi)鎖、按鍵提示、報(bào)警等功能的電子密碼鎖便可以被設(shè)計(jì)出來(lái)。</p>&
5、lt;p> 由于該密碼鎖具有價(jià)格低廉、操作簡(jiǎn)易、功能強(qiáng)大等優(yōu)點(diǎn),相信它將會(huì)對(duì)安全防盜領(lǐng)域作出巨大的貢獻(xiàn)。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);AT89C51;密碼鎖</p><p><b> Abstract</b></p><p> As electronic science and technology unceasing de
6、velopment, electronic products have already gradually come into the people's life. Anti-theft security question has gradually attracted people's attention. As The simple structure of traditional mechanical lock,
7、broken event always occur. In order to satisfy the requirement of people and increase the safety of lock, the password of electronic combination lock have emerged which instead of the traditional mechanical lock. Electro
8、nic combination loc</p><p> Therefore, in order to overcome the shortcomings of the traditional mechanical to do a good job in a better anti-theft measures, microcontroller-based electronic lock will replac
9、e the traditional mechanical. Microcontroller-based electronic lock will adopt the single-chip microcomputer AT89C51 as the core chip while AT24C02 will be used in the electronic lock password protection circuitry to pre
10、vent the password loss. At the same time the single chip will combine the external auxiliary circuits </p><p> As the electronic lock is low cost, simple, powerful, etc, it will make a significant contribut
11、ion to the field of security precautions.</p><p> Key Words: Microcontroller; AT89C51; Combination lock</p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p>
12、;<p> Abstract2</p><p><b> 1 引言1</b></p><p><b> 2 總體設(shè)計(jì)2</b></p><p><b> 3 硬件設(shè)計(jì)3</b></p><p> 3.1 單片機(jī)系統(tǒng)模塊3</p>
13、<p> 3.2 按鍵電路模塊4</p><p> 3.2.1 鍵盤(pán)分類4</p><p> 3.2.2 鍵盤(pán)電路的設(shè)計(jì)5</p><p> 3.3 顯示電路模塊6</p><p> 3.4 開(kāi)鎖電路模塊7</p><p> 3.5 報(bào)警電路模塊8</p><p&g
14、t; 3.6 密碼保護(hù)電路模塊9</p><p> 3.7 指示燈電路模塊10</p><p><b> 4 軟件設(shè)計(jì)11</b></p><p> 4.1 總體程序流程圖11</p><p> 4.2 鍵盤(pán)掃描程序流程圖12</p><p> 4.3 按鍵功能程序流程圖1
15、3</p><p> 4.4 密碼設(shè)置程序流程圖14</p><p> 4.5 密碼比較判斷程序流程圖15</p><p> 5 制作和調(diào)試17</p><p><b> 6 結(jié)論18</b></p><p> 致 謝錯(cuò)誤!未定義書(shū)簽。</p><p>
16、;<b> 參考文獻(xiàn)19</b></p><p> 附錄1 實(shí)驗(yàn)原理圖20</p><p> 附錄2 主要C語(yǔ)言源程序21</p><p><b> 1 引言</b></p><p> 隨著電子科學(xué)技術(shù)的日益發(fā)展,安全防盜問(wèn)題已經(jīng)不斷引起人們的廣泛重視。然而由于安全性能低、易損壞
17、、易丟失、易復(fù)制等問(wèn)題已經(jīng)使傳統(tǒng)密碼鎖不能滿足人們的安全需求,隨著單片機(jī)的出現(xiàn),基于單片機(jī)的電子密碼鎖不斷被開(kāi)發(fā)出來(lái),很好地解決了傳統(tǒng)機(jī)械鎖的安全性能低、易損壞、易丟失、易復(fù)制等問(wèn)題,使安全防盜問(wèn)題得到了長(zhǎng)足的改善,除此之外電子密碼鎖還具備了生產(chǎn)成本低、功率消耗低、易于操作等優(yōu)點(diǎn),因此,電子密碼鎖一出現(xiàn)就得到了人們熱切的擁護(hù)和喜愛(ài)[1]。雖然許多電子密碼鎖已相繼問(wèn)世,但該類密碼鎖只能針對(duì)特定的媒介有效,而且不能進(jìn)行遠(yuǎn)距離操控,只能應(yīng)用在
18、安全要求高且比較私人的儲(chǔ)藏設(shè)備中。而且該類密碼鎖相應(yīng)的生產(chǎn)成本比較高,還容易出現(xiàn)遺失,在某種意義上不利于該類密碼鎖的發(fā)展。但是隨著人們生活水平的不斷提高,通過(guò)不斷的研究和完善,相信在不久的將來(lái)電子密碼鎖勢(shì)必將在安全防盜領(lǐng)域起著更大的作用 [2]。</p><p> 本文將通過(guò)把AT89C51單片機(jī)作為核心,以及結(jié)合周邊的顯示電路、密碼保護(hù)電路、報(bào)警電路、按鍵電路、開(kāi)鎖電路等一系列輔助性的電路來(lái)實(shí)現(xiàn)電子密碼鎖的一
19、系列功能。例如通過(guò)將輸入密碼與原始密碼進(jìn)行比較來(lái)判斷輸入密碼正確與否。如果密碼輸入正確,則密碼鎖自動(dòng)打開(kāi)。如果密碼錯(cuò)誤,則允許操作者重新輸入密碼。如果密碼連續(xù)三次輸入錯(cuò)誤,則密碼鎖啟動(dòng)報(bào)警程序。本設(shè)計(jì)正是通過(guò)這樣一系列的電路,以及結(jié)合軟件程序來(lái)實(shí)現(xiàn)的。</p><p><b> 2 總體設(shè)計(jì)</b></p><p> 由于單片機(jī)I/O端的多樣性及其控制的準(zhǔn)確性和單
20、片機(jī)設(shè)計(jì)編程的靈活性,因此從經(jīng)濟(jì)適用的角度出發(fā),本作品將應(yīng)用AT89C51單片機(jī)作為控制核心的單片機(jī)控制方案,通過(guò)AT89C51單片機(jī)的應(yīng)用不但能通過(guò)液晶顯示器實(shí)現(xiàn)良好的人機(jī)交互,并且能夠設(shè)置掉電保護(hù)系統(tǒng),保證了在意外斷電的情況下密碼仍然保留?;趩纹瑱C(jī)設(shè)計(jì)電子密碼鎖具備了較強(qiáng)的擴(kuò)展功能。該密碼鎖不但能很好的完成密碼鎖的基本功能,而且還能夠?qū)崿F(xiàn)一定的擴(kuò)展和升級(jí)[3]。本設(shè)計(jì)的系統(tǒng)框圖如圖2-1所示。</p><p&g
21、t; 圖2-1 系統(tǒng)總體框圖</p><p> 本設(shè)計(jì)實(shí)現(xiàn)的功能主要有:</p><p> (1) 設(shè)置6位十進(jìn)制碼密碼,密碼用0~9十個(gè)按鍵輸入,若密碼正確,則密碼鎖打開(kāi);</p><p> (2) 密碼由用戶自己設(shè)定,用戶可自行修改密碼[4];</p><p> (3) 報(bào)警、鎖定鍵盤(pán)功能。密碼輸入錯(cuò)誤會(huì)發(fā)出警告音。若密碼輸入
22、錯(cuò)誤次數(shù)超過(guò)3次,蜂鳴器報(bào)警并且鎖定鍵盤(pán);</p><p> (4) 通過(guò)發(fā)光二極管提示有效按鍵;</p><p> (5) 90秒定時(shí)中斷,防止長(zhǎng)時(shí)間無(wú)效操作;</p><p> (6) 掉電保護(hù)功能。在電源斷開(kāi)時(shí)儲(chǔ)存當(dāng)前設(shè)定的密碼;</p><p><b> (7) 復(fù)位功能;</b></p>
23、<p> (8) 其他擴(kuò)展功能。</p><p><b> 3 硬件設(shè)計(jì)</b></p><p> 本系統(tǒng)硬件主要有以下模塊組成:?jiǎn)纹瑱C(jī)系統(tǒng)模塊、按鍵電路模塊、開(kāi)鎖電路模塊、顯示電路模塊、報(bào)警電路模塊、密碼保護(hù)電路模塊、復(fù)位電路模塊以及指示燈電路模塊等[5]。</p><p> 3.1 單片機(jī)系統(tǒng)模塊</p>&
24、lt;p> 本系統(tǒng)的單片機(jī)采用的是具備低電壓、高性能的AT89C51芯片,該芯片是一種包含128字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器和4K字節(jié)閃存的可反復(fù)擦寫(xiě)的只讀存儲(chǔ)器的單片機(jī)芯片。該芯片采用ATMEL公司的最先進(jìn)技術(shù)生產(chǎn),并與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)相兼容,而且芯片內(nèi)部合成了FLASH存儲(chǔ)單元和通用8位中央處理器。由于該芯片具有性能優(yōu)越、價(jià)格低廉等特點(diǎn),在芯片控制領(lǐng)域占據(jù)著重要的一席之地。該芯片包括40個(gè)引腳,按功能可分為電源及時(shí)鐘引腳
25、,控制引腳和輸入/輸出引腳。其中電源及時(shí)鐘引腳包括電源引腳VCC、VSS、及時(shí)鐘引腳XTAL1、XTAL2;控制引腳則包括RST、ALE、/PSEN、/EA等,此類引腳提供控制信號(hào)、有些引腳具有復(fù)用功能;而輸入/輸出引腳則包括P0口、P1口和P3口[6]。其引腳圖如圖3-1所示。</p><p> 圖3-1 AT89C51引腳圖</p><p> 3.2 按鍵電路模塊</p&g
26、t;<p> 鍵盤(pán)是由一組規(guī)則排列的按鍵組成,一個(gè)按鍵實(shí)際上是一個(gè)開(kāi)關(guān)元件,也就是說(shuō)鍵盤(pán)是一組規(guī)則排列的開(kāi)關(guān)。在單片機(jī)應(yīng)用中,操作者通過(guò)鍵盤(pán)向系統(tǒng)發(fā)送各種指令和數(shù)據(jù)從而實(shí)現(xiàn)人機(jī)交互對(duì)話。因此鍵盤(pán)模塊設(shè)計(jì)的好壞,直接關(guān)系到系統(tǒng)的可靠性和穩(wěn)定性[7]。</p><p> 3.2.1 鍵盤(pán)分類</p><p> 按鍵按照結(jié)構(gòu)原理可分為觸點(diǎn)開(kāi)關(guān)按鍵和無(wú)觸點(diǎn)開(kāi)關(guān)按鍵兩類。觸點(diǎn)開(kāi)關(guān)
27、包括導(dǎo)電橡膠式開(kāi)關(guān)、機(jī)械式開(kāi)關(guān)等,而無(wú)觸點(diǎn)開(kāi)關(guān)按鍵則包括電氣式按鍵,磁感應(yīng)按鍵等。觸點(diǎn)開(kāi)關(guān)按鍵相比較無(wú)觸點(diǎn)開(kāi)關(guān)按鍵具有成本低的優(yōu)點(diǎn),但是無(wú)觸點(diǎn)開(kāi)關(guān)按鍵的使用期則較長(zhǎng)。</p><p> 按鍵按照接口原理可分為編碼鍵盤(pán)與非編碼鍵盤(pán)兩類,兩則的主要區(qū)別是:編碼鍵盤(pán)本身帶有實(shí)現(xiàn)接口主要功能所需的硬件電路,不僅能自動(dòng)檢測(cè)被按下的鍵并完成去抖動(dòng)防串鍵等功能,而且能提供與被按鍵功能對(duì)應(yīng)的鍵碼送往CPU,而非編碼鍵盤(pán)只簡(jiǎn)單的
28、提供按鍵開(kāi)關(guān)的行列矩陣,有關(guān)鍵的識(shí)別,鍵碼的輸入與確定,以及去抖動(dòng)等功能都由軟件完成。</p><p> 由于相比較全編碼鍵盤(pán)而言,非編碼鍵盤(pán)只簡(jiǎn)單地提供行和列的矩陣,其它工作均由軟件完成,因此不需要較多的硬件,而且成本低。鑒于非編碼鍵盤(pán)經(jīng)濟(jì)實(shí)用的特點(diǎn),因此被較多地應(yīng)用于單片機(jī)系統(tǒng)中。下面將重點(diǎn)介紹非編碼鍵盤(pán)接口。</p><p> 非編碼鍵盤(pán)又包括了獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán)。</
29、p><p><b> 1、獨(dú)立式鍵盤(pán)</b></p><p> 獨(dú)立式鍵盤(pán)的每個(gè)按鍵占用一根測(cè)試線,可以直接與單片機(jī)I/O線相接,結(jié)構(gòu)簡(jiǎn)單。這些測(cè)試線相互獨(dú)立無(wú)編碼關(guān)系,因而鍵盤(pán)軟件不存在譯碼問(wèn)題。一旦檢測(cè)到某測(cè)試線上有鍵閉合,可直接轉(zhuǎn)入到相應(yīng)的鍵功能處理程序進(jìn)行處理。獨(dú)立式鍵盤(pán)各按鍵相互獨(dú)立,每個(gè)按鍵各接一根I/O口線,每根I/O口線上的按鍵都不會(huì)影響其它的I/O口
30、線。</p><p><b> 2、矩陣式鍵盤(pán)</b></p><p> 獨(dú)立式鍵盤(pán)雖然硬件、軟件結(jié)構(gòu)簡(jiǎn)單,但在按鍵數(shù)量較多的情況下,占有較多的I/O端口,而矩陣式鍵盤(pán)在按鍵數(shù)量較多的情況下,卻可以有效減少I(mǎi)/O端口數(shù)量。矩陣式鍵盤(pán)結(jié)構(gòu)的特點(diǎn)是把檢測(cè)線分成兩組,一組為行線,另一組為列線,按鍵放在行線和列線的交叉點(diǎn)上。因此M×N矩陣鍵盤(pán)與主機(jī)連接只需要M+
31、N條線,顯然,當(dāng)需要的按鍵數(shù)目大于8時(shí),一般都采用矩陣式鍵盤(pán)。</p><p> 通過(guò)對(duì)獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán)的比較我們可以發(fā)現(xiàn),獨(dú)立式鍵盤(pán)硬件結(jié)構(gòu)簡(jiǎn)單,軟件編程較簡(jiǎn)單,但每個(gè)按鍵獨(dú)自占用一個(gè)I/O端口,在按鍵數(shù)量較多的情況下,將占有較多的I/O端口,因此獨(dú)立式鍵盤(pán)一般用于按鍵數(shù)量不多的場(chǎng)合。而矩陣式鍵盤(pán)能有效地減少I(mǎi)/O端口的占用量,但因?yàn)楦靼存I不是單獨(dú)的占有I/O端口,從而給按鍵的判斷帶來(lái)難度,造成編程難度
32、加大。</p><p> 3.2.2 鍵盤(pán)電路的設(shè)計(jì)</p><p> 本設(shè)計(jì)將采用非編碼矩陣式鍵盤(pán)。該鍵盤(pán)包括16個(gè)按鍵,其中包括功能鍵和數(shù)字鍵。功能鍵則包括了“確定”鍵、“設(shè)置”鍵以及“清除”鍵。其中“確定”鍵用于密碼輸入后的確認(rèn),“設(shè)置”鍵則用于密碼的修改,“清除”鍵則用于密碼輸入錯(cuò)誤后的清除。其中數(shù)字鍵包括數(shù)字0-9,通過(guò)數(shù)字鍵可以進(jìn)行密碼的輸入和修改。鍵盤(pán)設(shè)計(jì)采用矩陣式鍵盤(pán),
33、按鍵置于行列的交叉點(diǎn)上,行列分別連接到按鍵開(kāi)關(guān)的兩端,行線所接的單片機(jī)4個(gè)I/O口作為輸出端,而列線所接的I/O口則作為輸入端。當(dāng)按鍵沒(méi)有被按下時(shí)所有的輸出端都是高電平,代表無(wú)鍵按下。一旦有鍵按下,則輸入線就會(huì)被拉低,這樣通過(guò)讀入輸入線的狀態(tài)就可知是否有鍵按下。本設(shè)計(jì)采用16個(gè)按鍵排成4×4矩陣[8]。其電路原理圖如圖3-2所示,各鍵具體的功能定義如表3-1所示。</p><p> 表3-1 按鍵功
34、能表</p><p> 圖3-2 按鍵電路原理圖</p><p> 3.3 顯示電路模塊</p><p> 本文中應(yīng)用帶背光的字符型液晶顯示器LCD1602作為顯示部分,它的顯示容量為16*2個(gè)字符。其各引腳功能如表3-2所示。其顯示部分引腳接口如圖3-3所示。</p><p> 表3-2 引腳功能表</p><
35、;p> 圖3-3 密碼鎖顯示電路</p><p> 帶背光的液晶顯示器LCD1602采用16腳接口。其中VSS引腳和VDD引腳分別為接地端和正極電源端。LCD1602的數(shù)據(jù)口DB0-DB7為8位雙向數(shù)據(jù)線,連接到單片機(jī)的P0口上,進(jìn)行數(shù)據(jù)的連接和傳輸。而LCD1602的RW、RS和使能端E則分別連接到P3口上。其中RW為讀寫(xiě)信號(hào)線,處于低電平時(shí)進(jìn)行寫(xiě)操作,處于高電平時(shí)進(jìn)行讀操作。RS為寄存器選擇,低電
36、平時(shí)選擇指令寄存器,高電平時(shí)選擇數(shù)據(jù)寄存器。E端則為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。VL為液晶屏對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)最高,使用時(shí)可通過(guò)一個(gè)10千歐的電位器進(jìn)行調(diào)整[9]。</p><p> 3.4 開(kāi)鎖電路模塊</p><p> 通過(guò)單片機(jī)送給開(kāi)鎖執(zhí)行機(jī)構(gòu).電路驅(qū)動(dòng)電磁鎖吸合,從而達(dá)到開(kāi)鎖的目的。其原理如圖3-4所示。</p>
37、<p> 圖3-4 開(kāi)鎖電路設(shè)計(jì)框圖</p><p> 在規(guī)定時(shí)間內(nèi)通過(guò)輸入有效的密碼,使AT89C51單片機(jī)輸出開(kāi)鎖信號(hào),從而驅(qū)動(dòng)開(kāi)鎖電路,達(dá)到開(kāi)鎖的目的。其電路圖如圖3-5所示。</p><p> 圖3-5 密碼鎖開(kāi)鎖機(jī)構(gòu)電路圖</p><p> 開(kāi)鎖電路模塊由三級(jí)管Q2、Q3,發(fā)光二級(jí)管D1,二極管D2,電阻R15以及電容C5組成。其中
38、三極管Q2,電阻R15和發(fā)光二極管D1組成了開(kāi)鎖電路模塊的驅(qū)動(dòng)電路。在驅(qū)動(dòng)電路中,發(fā)光二極管D1起到的是提示作用。而三極管Q3,二極管D2以及電容C5則組成了該模塊的開(kāi)鎖電路。在開(kāi)鎖電路中,二級(jí)D2和電容C5的作用是為了消除電磁鎖產(chǎn)生的電磁干擾以及反向高電壓。而對(duì)于電磁鎖的要求則是其需要擁有足夠的吸合力,避免由于吸合力不足所導(dǎo)致的無(wú)法開(kāi)鎖的后果[10]。</p><p> 3.5 報(bào)警電路模塊</p>
39、;<p> 報(bào)警電路模塊是通過(guò)蜂嗚器發(fā)聲進(jìn)行報(bào)警的,蜂鳴器通過(guò)PNP型3極管電流放大后連接到單片機(jī)的P21引腳,從而實(shí)現(xiàn)單片機(jī)對(duì)蜂鳴器的控制。每當(dāng)有按鍵按下時(shí),蜂鳴器發(fā)出一聲短促的“叮”聲提示按鍵有效,密碼輸入正確蜂鳴器不發(fā)出聲音,當(dāng)連續(xù)3次密碼輸入錯(cuò)誤時(shí),則蜂鳴器會(huì)長(zhǎng)時(shí)間發(fā)出連續(xù)的報(bào)警音,從而實(shí)現(xiàn)報(bào)警的功能[9]。其電路如圖3-6所示。</p><p> 圖3-6 密碼鎖報(bào)警電路圖</
40、p><p> 3.6 密碼保護(hù)電路模塊</p><p> 密碼保護(hù)電路的作用是在斷電的時(shí)候依舊能夠保留原有的密碼信息。本設(shè)計(jì)采用AT24C02作為密碼鎖保護(hù)電路的核心芯片,并通過(guò)I2C總線進(jìn)行傳輸。AT24C02是由ATMEL公司開(kāi)發(fā)的一個(gè)2KB的串行E2PROM,其內(nèi)部含有256個(gè)8位字節(jié)。該器件經(jīng)過(guò)優(yōu)化后,已經(jīng)可以在許多工業(yè)和商業(yè)應(yīng)用中進(jìn)行低功耗和低電壓工作。AT24C02采用的是8腳
41、的雙列直插式封裝并且在斷電情況下對(duì)已儲(chǔ)存資料的記憶功能可達(dá)到40年以上。其電路圖如圖3-7所示。</p><p> 圖3-7 掉電存儲(chǔ)電路圖</p><p> 圖中地址輸入引腳A0、A1、A2的功能是器件地址選擇,此處三個(gè)地址輸入引腳統(tǒng)一接地;第四引腳和第五引腳則分別接低電平和高電平;WP引腳具有寫(xiě)保護(hù)功能,當(dāng)WP引腳接高電平時(shí),所有的內(nèi)容都被寫(xiě)保護(hù)只能進(jìn)行讀操作。當(dāng)WP引腳接低電平
42、時(shí),則可以進(jìn)行正常的讀寫(xiě)操作;SDA引腳用于器件所有數(shù)據(jù)的發(fā)送或接收,而SCL引腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘,本設(shè)計(jì)則應(yīng)用SDA和SCL引腳與單片機(jī)進(jìn)行數(shù)據(jù)的傳輸;而R9、R10則為上拉電阻,用于減少器件的工作消耗。通過(guò)密碼保護(hù)電路的作用,系統(tǒng)可以將每次重新設(shè)定的密碼都儲(chǔ)存到AT24C02芯片中,以不至于發(fā)生斷電而導(dǎo)致密碼丟失 [11]。</p><p> 3.7 指示燈電路模塊</p>
43、<p> 本設(shè)計(jì)應(yīng)用發(fā)光二極管作為電路的指示燈。發(fā)光二極管的正極與單片機(jī)P33口相接,負(fù)極通過(guò)100歐的電阻接地。當(dāng)電路輸入按鍵時(shí),每按下一個(gè)按鍵發(fā)光二極管都會(huì)隨之發(fā)光,從而確保了按鍵的有效性。其電路連接圖如圖3-8所示。</p><p> 圖3-8 指示燈電路圖</p><p><b> 4 軟件設(shè)計(jì)</b></p><p&g
44、t; 電子密碼鎖的軟件系統(tǒng)主要包括主程序模塊、鍵盤(pán)掃描模塊、按鍵功能模塊、密碼設(shè)置模塊、密碼比較判斷模塊、掉電存儲(chǔ)服務(wù)模塊、LCD顯示模塊、延時(shí)模塊等。</p><p> 4.1 總體程序流程圖</p><p> 整個(gè)系統(tǒng)的主程序流程圖,見(jiàn)圖4-1所示。</p><p> 圖4-1 主程序流程圖</p><p> 首先接通電源,程
45、序開(kāi)始進(jìn)行初始化設(shè)置,同時(shí)調(diào)用顯示子程序并打開(kāi)待機(jī)定時(shí)器,然后調(diào)用鍵盤(pán)掃描子程序進(jìn)行鍵盤(pán)掃描。當(dāng)沒(méi)有按鍵閉合時(shí)則返回;當(dāng)有按鍵閉合時(shí)則關(guān)閉待機(jī)定時(shí)器并調(diào)用蜂鳴器子程序。如果閉合的按鍵是數(shù)字鍵則調(diào)用密碼判斷子程序,如果是設(shè)置鍵則調(diào)用密碼設(shè)置子程序,其他按鍵則無(wú)效。</p><p> 4.2 鍵盤(pán)掃描程序流程圖</p><p> 鍵盤(pán)掃描程序流程圖,見(jiàn)圖4-2所示。</p>
46、<p> 圖4-2 鍵盤(pán)掃描程序流程圖</p><p> 首先判斷是否有按鍵閉合,當(dāng)有按鍵閉合時(shí),再對(duì)該按鍵進(jìn)行延時(shí)去抖動(dòng),然后通過(guò)掃描鍵盤(pán)找到閉合的按鍵以及計(jì)算出其鍵值,當(dāng)閉合按鍵釋放時(shí),鍵盤(pán)掃描程序完成。</p><p> 4.3 按鍵功能程序流程圖</p><p> 按鍵功能程序流程圖,見(jiàn)圖4-3所示。</p><p&g
47、t; 圖4-3 按鍵功能程序流程圖</p><p> 輸入的按鍵按順序分別與輸入、清除、設(shè)置、確認(rèn)相對(duì)應(yīng)的按鍵進(jìn)行比較,若是密碼輸入鍵則執(zhí)行密碼輸入程序;若是清除鍵則執(zhí)行清除程序;若是設(shè)置鍵則執(zhí)行密碼設(shè)置程序;若是確認(rèn)鍵則執(zhí)行確認(rèn)程序。</p><p> 4.4 密碼設(shè)置程序流程圖</p><p> 密碼設(shè)置程序流程圖,見(jiàn)圖4-4所示。</p>
48、<p> 圖4-4 密碼設(shè)置程序流程圖</p><p> 進(jìn)入密碼設(shè)置子程序后,首先進(jìn)行初始化并等待按鍵輸入,待按鍵輸入后再判斷輸入的按鍵是否是數(shù)字鍵。如果輸入的是數(shù)字鍵則判斷其是否已經(jīng)到達(dá)六位數(shù),不到六位數(shù)則記錄所輸入的數(shù)字鍵,超過(guò)六位則不予以記錄;如果輸入的是確定鍵則需要判斷其是否已經(jīng)輸入六位數(shù)密碼,若是六位數(shù)密碼則需要再判斷其是原始密碼還是新密碼,確定是原始密碼的話返回到子程序初始化后狀
49、態(tài)繼續(xù)等待按鍵,而確定是新密碼的話則需要判斷連續(xù)兩次輸入的新密碼是否一致,兩次輸入的新密碼相同則密碼設(shè)置成功;如何輸入的是設(shè)置鍵則重新調(diào)用設(shè)置子程序;如果輸入的是取消鍵則取消輸入內(nèi)容并返回。</p><p> 4.5 密碼比較判斷程序流程圖</p><p> 密碼比較判斷程序流程圖,見(jiàn)圖4-5所示。</p><p> 圖4-5 密碼比較判斷程序流程圖<
50、/p><p> 進(jìn)入密碼比較判斷子程序后,先判斷所輸入的密碼是否到六位數(shù)。如果沒(méi)到六位數(shù)則需要記錄該按鍵并繼續(xù)等待其他按鍵,若接下來(lái)輸入的還是數(shù)字鍵則返回子程序初始化后狀態(tài),若是其他按鍵則清除并返回;如果輸入的密碼到達(dá)六位數(shù)則繼續(xù)等待其他按鍵,若是確定鍵則判斷密碼是否正確,密碼正確則開(kāi)鎖成功,連續(xù)三次輸入密碼錯(cuò)誤則啟動(dòng)報(bào)警程序,若是取消鍵則清除并返回,其他按鍵則無(wú)效。</p><p><
51、;b> 5 制作和調(diào)試</b></p><p> 系統(tǒng)的調(diào)試主要包括硬件調(diào)試和軟件調(diào)試。系統(tǒng)的硬件主要是對(duì)系統(tǒng)的硬件進(jìn)行檢查,看該系統(tǒng)的電路、元器件、邏輯、電源和系統(tǒng)穩(wěn)定性等是否存在問(wèn)題。例如本設(shè)計(jì)中的報(bào)警電路因?yàn)殄e(cuò)誤的連接了頻率蜂鳴器而導(dǎo)致報(bào)警電路不能正常運(yùn)行,而把頻率蜂鳴器更換為電壓蜂鳴器后,報(bào)警電路才正常運(yùn)行。同時(shí)系統(tǒng)的硬件調(diào)試是不能獨(dú)立開(kāi)軟件調(diào)試而單獨(dú)進(jìn)行的。有時(shí)候只有通過(guò)軟、硬件共
52、同調(diào)試才能發(fā)現(xiàn)一些硬件問(wèn)題,但前提是系統(tǒng)中已經(jīng)不存在比較明顯的硬件問(wèn)題,然后才進(jìn)行軟、硬件共同調(diào)試。</p><p> 而系統(tǒng)的軟件調(diào)試則需要首先對(duì)系統(tǒng)的各個(gè)小模塊進(jìn)行軟件調(diào)試,當(dāng)確定各個(gè)小模塊不存在問(wèn)題,再對(duì)整個(gè)系統(tǒng)進(jìn)行軟件調(diào)試。首先將寫(xiě)好的程序?qū)懭胄酒賹?duì)各個(gè)小模塊進(jìn)行調(diào)試,檢測(cè)各個(gè)小模塊的功能是否能夠?qū)崿F(xiàn)以及是否滿足要求,當(dāng)確定各個(gè)小模塊不存在問(wèn)題后,再進(jìn)行總調(diào)試來(lái)確保各個(gè)小模塊能夠很好的共同運(yùn)行,當(dāng)系
53、統(tǒng)各功能能夠很好的實(shí)現(xiàn)時(shí),調(diào)試完畢。</p><p><b> 6 結(jié)論</b></p><p> 本文著重介紹了電子密碼鎖的設(shè)計(jì)和實(shí)現(xiàn)。對(duì)如何實(shí)現(xiàn)密碼鎖的密碼設(shè)定、密碼修改、密碼儲(chǔ)存、報(bào)警、顯示等一系列功能進(jìn)行了詳細(xì)介紹。本設(shè)計(jì)中采用的核心芯片是單片機(jī)AT89C51,設(shè)計(jì)通過(guò)將輸入的密碼與儲(chǔ)存在存儲(chǔ)器中的密碼進(jìn)行對(duì)比,判斷密碼是否正確,如果密碼正確則可以直接開(kāi)鎖
54、;如果密碼錯(cuò)誤,則允許操作者重新輸入密碼;如果連續(xù)三次輸入錯(cuò)誤,則開(kāi)啟報(bào)警模式。如果要修改密碼,則需要在正確輸入密碼之后才能進(jìn)行修改密碼操作。通過(guò)這樣一系列硬件和軟件的設(shè)計(jì)從而實(shí)現(xiàn)電子密碼鎖的功能。</p><p> 但由于本人的水平有限,此次設(shè)計(jì)的電子密碼鎖還存在一定的問(wèn)題和局限性。例如本次設(shè)計(jì)的密碼鎖沒(méi)能實(shí)現(xiàn)多用戶的登入,紅外線的遠(yuǎn)程控制以及一些高度的智能化。但由于該密碼鎖是基于單片機(jī)而設(shè)計(jì)的,具有很強(qiáng)的擴(kuò)
55、展功能,只要經(jīng)過(guò)不斷的探索和研究,該電子密碼鎖將實(shí)現(xiàn)高度的智能化。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 陳丹萍.基于AT89S51單片機(jī)的電子密碼鎖設(shè)計(jì)[J].大眾科技,2010,(6).</p><p> [2] 成俊偉,陳波,梁書(shū)旺.基于AT89C51的紅外遙控電子密碼鎖的設(shè)計(jì)[J].科技信息,200
56、8,(29).</p><p> [3] 王慧軍.基于AT89s51單片機(jī)控制的電子密碼鎖設(shè)計(jì)[J].裝備制造技術(shù),2010,(5).</p><p> [4] 周功明.基于AT89C2051單片機(jī)的防盜自動(dòng)報(bào)警電子密碼鎖系統(tǒng)的設(shè)計(jì)[J]. 綿陽(yáng)師范學(xué)院學(xué)報(bào),2007,26(5).</p><p> [5] 吳小帆,許志華,吳玉翠.通用型電子密碼鎖[J].商情
57、,2010,(13).</p><p> [6] AT89C51 Description [EB/OL],[2011-3-16].</p><p> http://wenku.baidu.com/view/2a44894769eae009581bec4d.html.</p><p> [7] 姚德法.單片機(jī)應(yīng)用中的鍵盤(pán)模塊設(shè)計(jì)[J].信息技術(shù)與信息化,2005
58、,(6).</p><p> [8] 張海燕,蘇新紅.基于AT89C2051單片機(jī)電子密碼鎖的設(shè)計(jì)[J].內(nèi)江科技,2010,31(3).</p><p> [9] 朱璇,唐曉茜,殷建軍.基于單片機(jī)的智能加密電子密碼鎖設(shè)計(jì)[J].輕工機(jī)械,2009,27(4).</p><p> [10] 周文龍.基于單片機(jī)控制的電子密碼鎖設(shè)計(jì)[J].大眾商務(wù),2009,(3
59、).</p><p> [11] 韓團(tuán)軍.基于單片機(jī)的電子密碼鎖設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2010,29(7).</p><p> 附錄1 實(shí)驗(yàn)原理圖</p><p> 附錄2 主要C語(yǔ)言源程序</p><p> #include<REG51.H></p><p> #include<
60、;ABSACC.h></p><p> #include<stdio.h></p><p> #include<intrins.h></p><p> #define uchar unsigned char </p><p> #define uint unsigned int
61、 //*Port Definitions</p><p> sbit p3_6=P2^1;</p><p> sbit LcdRs=P3^2;</p><p> sbit LcdRw=P3^1;</p><p> sbit LcdEn=P3^0;</p><p> sfr DBPort=0x
62、80; /*P0=0x80,P1=0x90,P2=0xA0,P3=0xB0數(shù)據(jù)端口*/</p><p> sbit P2_0=P2^0;</p><p> uint key_val=16;</p><p> uint m=0,count=0,count2=0;</p><p> uint pass=0,pass0=
63、0,pass1=0,pass2=0,o=0,n=0;</p><p> uint co[6]={0,0,0,0,0,0};</p><p> uint cp[1]={0};</p><p> uint cq[7]={0,0,0,0,0,0,0};</p><p> uchar sk[16]={0,0,0,0,0,0,0,0,0,0,0
64、,0,0,0},pa=10;</p><p> uchar password[16];</p><p> void DelayMs(unsigned int n)</p><p> {unsigned int i,j;</p><p> for(i=0;i<n;i++)</p><p> for(j=0
65、;j<120;j++);} /*按鍵掃描*/</p><p> void Check_key(void)</p><p> {unsigned int row,col,tmp1,tmp2;</p><p> tmp1=0x10; /*tmp
66、1用來(lái)設(shè)置P1口的輸出,取反后使P1.1~P1.7中有一個(gè)為0 */ </p><p> for(row=0;row<4;row++) /*行檢測(cè)*/ </p><p> {P1=0x0f; /*先將p1.0~p1.3置高*/</p
67、><p> P1=~tmp1 ; /*使p1.4~p1.7中有一個(gè)為0*/</p><p> tmp1*=2 ; /*tmp1左移一位*/</p><p> if((P1&0x0f)<0x0f) /*檢測(cè)p1.0~p1
68、.3中是否有一位為0,只要有說(shuō)明此行有按鍵按下,進(jìn)入列檢測(cè)*/</p><p> {DelayMs(30);</p><p> if((P1&0x0f)<0x0f) /*檢測(cè)p1.0~p1.3中是否有一位為0,只要有說(shuō)明此行有按鍵按下,進(jìn)入列檢測(cè)*/</p><p> { tmp2=0x01;
69、 /*tmp2用來(lái)檢測(cè)哪一列為0*/</p><p> for(col=0;col<4;col++) /*列檢測(cè)*/</p><p> {if((P1&tmp2)==0x00) /*該列如果為低電平則可以判定為列*/</p><p> {key_val=row*4+
70、col; /*獲取鍵值,識(shí)別按鍵*/</p><p> while((P1&tmp2)==0x00);</p><p> return; } /*退出循環(huán)*/</p><p> tmp2*=2; } /*tmp2左移一位*/</
71、p><p> while((P1&tmp2)==0x00);</p><p><b> }}}}</b></p><p> void rec_key(void) /*按鍵判斷*/</p><p> {if(key_val!=16) /*當(dāng)按鍵4
72、被按下時(shí),標(biāo)志位presskey4置位,從而去執(zhí)行判斷按鍵1,2程序*/</p><p><b> {if(m>6)</b></p><p><b> m=0;</b></p><p> if(count2==1)</p><p> {if(key_val==0)</p>
73、<p> {//delay(1000);</p><p> sk[0]=1; </p><p><b> count++;</b></p><p><b> pa=0;</b></p><p> password[m]=0;</p
74、><p><b> m++;</b></p><p> DelayMs(10);</p><p><b> p3_6=0;</b></p><p> DelayMs(100);</p><p><b> p3_6=1;</b></p>
75、<p> key_val=16;}</p><p> if(key_val==1)</p><p> {//delay(1000);</p><p> sk[1]=1; </p><p><b> count++;</b></p><p&
76、gt;<b> pa=1;</b></p><p> password[m]=1;</p><p><b> m++;</b></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p>
77、key_val=16;}</p><p> if(key_val==2)</p><p> {//delay(1000);</p><p> sk[2]=1; </p><p><b> count++;</b></p><p><b>
78、 pa=2;</b></p><p> password[m]=2;</p><p><b> m++;</b></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}
79、</p><p> if(key_val==3)</p><p> {//delay(1000);</p><p> sk[3]=1; </p><p> count++;pa=3;password[m]=3;</p><p><b> m++;</b
80、></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;</p><p><b> }</b></p><p> if(key_val==4)</p><p
81、> {//delay(1000);</p><p> sk[4]=1; </p><p><b> count++;</b></p><p><b> pa=4;</b></p><p> password[m]=4;</p>
82、<p><b> m++;</b></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==5)</p><p> {//del
83、ay(1000);</p><p> sk[5]=1; </p><p><b> count++;</b></p><p><b> pa=5;</b></p><p> password[m]=5;</p><p><
84、;b> m++;</b></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==6)</p><p> {//delay(1000);<
85、;/p><p> sk[1]=6; </p><p><b> count++;</b></p><p><b> pa=6;</b></p><p> password[m]=6;</p><p><b> m++;
86、</b></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==7)</p><p> {//delay(1000);</p><
87、;p> sk[7]=1; </p><p><b> count++;</b></p><p><b> pa=7;</b></p><p> password[m]=7;</p><p><b> m++;</b>&l
88、t;/p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==8)</p><p> {//delay(1000);</p><p> sk[8
89、]=1; </p><p><b> count++;</b></p><p><b> pa=8;</b></p><p> password[m]=8;</p><p><b> m++;</b></p>&l
90、t;p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==9)</p><p> {//delay(1000);</p><p> sk[9]=1; count++
91、;</p><p><b> pa=9;</b></p><p> password[m]=9;</p><p><b> m++;</b></p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;<
92、/p><p> key_val=16;}</p><p><b> if(m>9)</b></p><p><b> m=0;</b></p><p><b> }}</b></p><p> if(key_val==10)</p>
93、;<p> {//delay(1000);</p><p> sk[10]=1; count++;</p><p><b> pa=10;</b></p><p> password[m]=10;m++;</p><p> DelayMs(10);p3_6=0;</p><p
94、> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==11)</p><p> {//delay(1000);</p><p> sk[11]=1; count++;</p><p><b> pa=11;<
95、/b></p><p> password[m]=11;m++;</p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==12)</p>&l
96、t;p> {//delay(1000);</p><p> sk[12]=1; </p><p><b> count++;</b></p><p><b> pa=12;</b></p><p> password[m]=12;m++;</p><p>
97、 DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==13)</p><p> {//delay(1000);</p><p> sk[13]=1; count++;<
98、/p><p><b> pa=13;</b></p><p> password[m]=13;m++;</p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;</p><
99、;p><b> }</b></p><p> if(key_val==14)</p><p> {//delay(1000);</p><p> sk[14]=1; count++;</p><p><b> pa=14;</b></p><p> pass
100、word[m]=14;m++;</p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p><p> key_val=16;}</p><p> if(key_val==15)</p><p> {//delay(1000);</p>
101、;<p> sk[15]=1; count++;</p><p><b> pa=15;</b></p><p> password[m]=15;m++;</p><p> DelayMs(10);p3_6=0;</p><p> DelayMs(100);p3_6=1;</p>&
102、lt;p> key_val=16;}</p><p><b> if(m>10)</b></p><p> m=0;} /*內(nèi)部等待函數(shù)*/</p><p> unsigned char LCD_Wait(void)</p><p> { LcdEn=0
103、;LcdRs=0;</p><p> LcdRw=1;_nop_();</p><p> LcdEn=1;_nop_();</p><p> LcdEn=0;_nop_();</p><p> while(DBPort&0x80)</p><p> if(DBPort&0x80==0x80)&
104、lt;/p><p> return DBPort;}</p><p> /*向LCD寫(xiě)入命令或者數(shù)據(jù)*/</p><p> #define LCD_COMMAND 0 /*Command*/</p><p> #define LCD_DATA 1 /*Data*/</p><p>
105、#define LCD_CLEAR_SCREEN 0x01 /*清屏*/</p><p> #define LCD_HOMING 0x02 /*光標(biāo)返回原點(diǎn)*/</p><p> void LCD_Write(bit style,unsigned char input)</p><p> {LCD_Wait();</p&g
106、t;<p><b> LcdEn=0;</b></p><p> LcdRs=style;</p><p> LcdRw=0; _nop_();</p><p> DBPort=input; _nop_();</p><p> LcdEn=1; _nop_();&l
107、t;/p><p> LcdEn=0; _nop_();</p><p> } /*設(shè)置顯示模式*/</p><p> #define LCD_SHOW 0x04 //顯示開(kāi)</p><p> #define LCD_HIDE 0x00
108、//顯示關(guān)</p><p> #define LCD_CURSOR 0x02 //顯示光標(biāo)</p><p> #define LCD_NO_CURSOR 0x00 //無(wú)光標(biāo)</p><p> #define LCD_FLASH 0x01 //光標(biāo)閃動(dòng)</p><p
109、> #define LCD_NO_FLASH 0x00 //光標(biāo)不閃動(dòng)</p><p> void LCD_SetDisplay(unsigned char DisplayMode)</p><p> {LCD_Write(LCD_COMMAND,0x08|DisplayMode);}</p><p> /*設(shè)置輸入模式*/<
110、/p><p> #define LCD_AC_UP 0x02</p><p> #define LCD_AC_DOWN 0x00 /*default*/</p><p> #define LCD_MOVE 0x01 /*畫(huà)面可平移*/</p><p> #define LCD
111、_NO_MOVE 0x00 /*default */ </p><p> void LCD_SetInput(unsigned char InputMode)</p><p> {LCD_Write(LCD_COMMAND,0x04|InputMode);}</p><p> /*移動(dòng)光標(biāo)或屏幕*/</p><p&
112、gt; /*#define LCD_CURSOR 0x02 </p><p> #define LCD_SCREEN 0x08 </p><p> #define LCD_LEFT 0x00 </p><p> #define LCD_RIGHT 0x04 &l
113、t;/p><p> void LCD_Move(unsigned char object,unsigned char direction)</p><p> {if(object==LCD_CURSOR)</p><p> LCD_Write(LCD_COMMAND,0x10|direction);</p><p> if(object=
114、=LCD_SCREEN)</p><p> LCD_Write(LCD_COMMAND,0x18|direction);</p><p><b> }*/</b></p><p> void LCD_Initial()</p><p><b> {LcdEn=0;</b></p>
115、<p> LCD_Write(LCD_COMMAND,0x38); //*8位數(shù)據(jù)端口2行顯示5*7點(diǎn)陣</p><p> LCD_Write(LCD_COMMAND,0x38); </p><p> LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR ); /*開(kāi)啟顯示,無(wú)光標(biāo)*/</p><p> LCD
116、_Write(LCD_COMMAND,LCD_CLEAR_SCREEN ); /*清屏*/</p><p> LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /*AC遞增,畫(huà)面不動(dòng)*/</p><p><b> }</b></p><p> void GotoXY(unsigned char x,
117、unsigned char y)</p><p><b> {if(y==0)</b></p><p> LCD_Write(LCD_COMMAND,0x80|x); </p><p><b> if(y==1)</b></p><p> LCD_Write(LCD_COMMAND,0x80
118、|(x-0x40)); </p><p><b> }</b></p><p> void Print(unsigned char*str)</p><p> {while(*str!='\0')</p><p> {LCD_Write(LCD_DATA,*str);</p><
119、;p><b> str++;</b></p><p><b> }</b></p><p> void LCD_LoadChar(unsigned char user[8],unsigned char place)</p><p> unsigned char i;</p><p>
120、 LCD_Write(LCD_COMMAND,0x40|(place*8));</p><p> for(i=0;i<8;i++)</p><p> LCD_Write(LCD_DATA,user[i]);</p><p> } //密碼設(shè)置</p><p> void main(void)</p>
121、<p> {int count1=0,count4=0,count6=0,count7=0,count8=0,</p><p><b> P2_0=1;</b></p><p> LCD_Initial();</p><p><b> while(1)</b></p><p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 密碼鎖控制電路設(shè)計(jì)與實(shí)現(xiàn)【開(kāi)題報(bào)告】
- 密碼鎖控制電路設(shè)計(jì)與實(shí)現(xiàn)【任務(wù)書(shū)】
- 數(shù)字電子技術(shù)課程設(shè)計(jì)----密碼鎖控制電路設(shè)計(jì)
- 密碼鎖設(shè)計(jì)畢業(yè)論文
- 電子密碼鎖的電路設(shè)計(jì)
- 密碼鎖畢業(yè)論文
- 數(shù)字密碼鎖設(shè)計(jì)畢業(yè)論文
- 電子密碼鎖設(shè)計(jì)畢業(yè)論文
- 九位密碼鎖電路設(shè)計(jì)報(bào)告
- 電子密碼鎖畢業(yè)論文
- 畢業(yè)論文——電子密碼鎖
- 電子密碼鎖-畢業(yè)論文
- 基于fpga的電子密碼鎖電路設(shè)計(jì)
- 電子密碼鎖畢業(yè)論文
- 電子密碼鎖的設(shè)計(jì)畢業(yè)論文
- 數(shù)字電路課程設(shè)計(jì)--數(shù)字密碼鎖電路設(shè)計(jì)
- 單片機(jī)密碼鎖設(shè)計(jì)畢業(yè)論文
- 密碼鎖畢業(yè)設(shè)計(jì)論文
- 交通燈控制電路設(shè)計(jì)畢業(yè)論文
- 變頻器控制電路設(shè)計(jì) 畢業(yè)論文
評(píng)論
0/150
提交評(píng)論