2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)論文(設(shè)計)</b></p><p><b>  </b></p><p> 題目電子密碼鎖的設(shè)計</p><p> 學(xué)生姓名</p><p> 學(xué)號</p><p> 指導(dǎo)教師</p><p> 系部名稱信息科學(xué)與

2、工程系</p><p> 專業(yè)班級電子科學(xué)與技術(shù)</p><p> 完成時間</p><p><b>  摘 要</b></p><p>  隨著人們生活水平的提高,如何實現(xiàn)防盜這一問題日趨嚴(yán)重,在這幾不斷發(fā)展的今天,電子密碼鎖的作用日趨明顯。電子密碼鎖是一種通過密碼輸入來控制芯片工作的,從而控制機(jī)械開關(guān)的閉合,完成開

3、鎖,閉鎖的電子產(chǎn)品?,F(xiàn)在應(yīng)用比較廣泛的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。</p><p>  本設(shè)計以AT89C51單片機(jī)為核心器件,結(jié)合按鍵電路,LCD1602顯示電路,報警指示電路和開鎖機(jī)構(gòu),利用單片機(jī)豐富的I/O端口,通過軟件程序來控制整個系統(tǒng)實現(xiàn)電子密碼鎖的基本功能,其主要功能有:</p><p>  密碼通過鍵盤輸入,若密碼正確,則將鎖打開。</p>&l

4、t;p>  若密碼輸入錯誤,蜂鳴器將報警提示。</p><p><b>  可以自由設(shè)定密碼。</b></p><p>  關(guān)鍵詞:AT89C51;電子密碼鎖;LCD1602</p><p>  The Design of Electronic Cipher Lock</p><p><b>  ABST

5、RACT</b></p><p>  As people´s living standards improve, the question how to achieve home security has become particularly prominent. In science and technology is developing continuously, electroni

6、c cipher lock as a security guard ´s role is increasing important. The electronic cipher lock is a electronic products, which control the mechanical switch by chip when you input a password. Now the widely used ele

7、ctronic locks are based on the chip and achieve the function by programming.</p><p>  Based on the AT89C51 single-chip microcomputer as the core device, combining with the key circuit, LCD display circuit, a

8、n alarm circuit and unlocking mechanism, design the whole system to achieve the basic function of electronic cipher lock by its rich I/O port, and accuracy basing on the software program. With the following functions:<

9、;/p><p>  1 Input password through the keyboard, if the password is correct, lock will open</p><p>  2 If the password is error, the buzzer will alarm</p><p>  3 Users can freely set t

10、he password</p><p>  Key words: AT89C51; Cipher lock; LCD1602 </p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p

11、><b>  第一章 緒 論5</b></p><p><b>  1.1 引言5</b></p><p>  第二章 系統(tǒng)整體方案總體設(shè)計6</p><p>  2.1 設(shè)計目標(biāo)6</p><p>  2.2 設(shè)計方案7</p><p>  第三章 硬件設(shè)計

12、7</p><p>  3.1 主要元器件介紹………………………………………………………………7</p><p>  3.1.1 AT89C51介紹8</p><p>  3.1.2存儲芯片24C02C10</p><p>  3.1.3 LCD1602顯示器介紹11</p><p>  3.2 硬件電路設(shè)計

13、12</p><p>  3.2.1 復(fù)位電路……...……………………............…………………………………12</p><p>  3.2.2 晶振電路…….……………......................…………………………………13</p><p>  3.2.3 存儲電路……...………………….....................

14、.....……………………………14</p><p>  3.2.4 鍵盤輸入電路……......………...................................................................14</p><p>  3.2.5 顯示電路……...........................……………………………………………15</p

15、><p>  3.2.6 報警電路......................................................................................................16</p><p>  第四章 軟件程序設(shè)計17</p><p>  4.1 主流程圖17</p><p&g

16、t;  4.2 按鍵子程序18</p><p>  4.3 密碼設(shè)置子程序....................................................................................................19</p><p>  4.4 報警子程序....................................

17、........................................................................20</p><p>  4.5定時中斷服務(wù)......................................................................................................20</p>

18、<p>  4.6 LCD顯示子程序................................................................................................21</p><p>  第五章 系統(tǒng)仿真設(shè)計.................................................22</p>&

19、lt;p>  5.1 Proteus軟件簡介................................................22</p><p>  5.2 系統(tǒng)電路仿真………………………………………………………………23</p><p>  第六章 結(jié)束語23</p><p><b>  參考文獻(xiàn)24</b><

20、/p><p><b>  附錄25</b></p><p><b>  致謝42</b></p><p><b>  緒 論</b></p><p><b>  1.1引言</b></p><p>  我國鎖的發(fā)展已經(jīng)有數(shù)千年的歷史

21、,中國鎖的發(fā)展大體有鎖的創(chuàng)造期,發(fā)展期和繁榮期三階段。在夏商時期隨著私有制的發(fā)展,私有財產(chǎn)的積累,為了保護(hù)私有財產(chǎn),開始有了鎖的出現(xiàn)。人們開始了對鎖的研究,此時人們只是簡單的把個人貴重財產(chǎn)用繩索捆縛,此為鎖的初創(chuàng)階段。在春秋戰(zhàn)國一直延續(xù)到唐宋元時期,在這一時期人們開始普遍使用鐵索,銅鎖等高級鎖。在此階段為鎖的發(fā)展期。繁榮期為明清時期。此時以銅鎖,鐵索居多,不過工藝更加精巧。在開鎖難度和外形制造商具有了更大的創(chuàng)新?,F(xiàn)在鎖具在原有鎖的基礎(chǔ)上

22、充分運用了現(xiàn)代科技,出現(xiàn)了磁控鎖,聲控鎖,遙控鎖,紅外鎖,電子卡片鎖,超聲波鎖,電磁波鎖,指紋鎖等高科技含量的鎖具。大大提高了鎖的安全性,可靠性。</p><p>  在現(xiàn)今社會中,安全防盜已經(jīng)成為嚴(yán)重的社會問題,鎖具自古以來就是防盜的重要工具。目前國內(nèi)很多人都還在使用傳統(tǒng)的機(jī)械鎖,機(jī)械鎖存在很大的弊端。所以新型的電子密碼鎖有了更大的發(fā)展空間。從現(xiàn)在的技術(shù)水平和市場認(rèn)可度上來分析,目前使用最為廣泛的按鍵式電子密碼

23、鎖。電子密碼鎖一般用于保險柜,取款機(jī)等重要地方。由于電子密碼鎖的實用,涌現(xiàn)出了更多的電子智能密碼鎖,如:指紋識別的電子密碼鎖等高科技含量的鎖具。但是此類密碼鎖在公共場所容易損壞,成本也比較高,所以鍵盤式的電子密碼鎖依然是防盜的主流產(chǎn)品。鍵盤式電子密碼鎖突出的優(yōu)點是密碼在授權(quán)人的腦袋里記著,即準(zhǔn)確有可靠。很難丟失。此外電子密碼鎖還有很多特點。如:密碼可變。用戶可以隨時的更改密碼。防止密碼泄露。誤碼輸入保護(hù),當(dāng)密碼輸入錯誤時,系統(tǒng)會自動報警

24、。電子密碼鎖不同于機(jī)械鎖。電子密碼鎖沒有活動零件,不會磨損,壽命長,電子密碼鎖的操作也非常簡單。</p><p>  本設(shè)計中的鍵盤式電子密碼鎖采用以單片機(jī)芯片AT89C51為主控芯片,結(jié)合外圍的矩陣鍵盤,報警電路,顯示電路以及密碼存儲組成電子密碼鎖的控制系統(tǒng),此設(shè)計中密碼共有8位,用戶是可以自主的設(shè)定和修改密碼的。僅在門外按鍵式不能修改和設(shè)置密碼的。只有當(dāng)密碼輸入完全正確的情況下鎖才打開,為了安全,當(dāng)密碼輸入錯

25、誤三次時系統(tǒng)將會報警,在此期間輸入密碼無效。只有在內(nèi)部上鍵復(fù)位時才能設(shè)置和修改密碼。此類電子密碼鎖保密性好,靈活度高。遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)的機(jī)械鎖。因此在未來的生活中,電子密碼鎖的地位會不斷的上升,并且不斷的更新。 </p><p>  第二章 系統(tǒng)整體方案設(shè)計</p><p><b>  2.1 設(shè)計目標(biāo)</b></p><p>  本設(shè)計采用的是A

26、T89C51為主控芯片,結(jié)合外圍電路液晶顯示器電路,密碼存儲電路,矩陣鍵盤電路,報警電路以及晶振電路等部分組成。矩陣鍵盤用于密碼的輸入,修改等功能的實現(xiàn)。密碼有存儲芯片24c02c存儲。通過對比用戶通過矩陣鍵盤輸入的密碼來判斷密碼是否正確,進(jìn)而控制引腳高低電平傳送給開鎖電路或者是報警電路。本設(shè)計能夠?qū)崿F(xiàn)的功能如下:</p><p>  在完全正確輸入八位密碼時,系統(tǒng)將開鎖,綠燈亮,LCD有顯示ok;</p&

27、gt;<p>  當(dāng)密碼輸入錯誤時,蜂鳴器報警,紅燈亮,當(dāng)錯誤三次后系統(tǒng)將鎖住,在此期間密碼輸入無效;</p><p>  在系統(tǒng)開鎖后,按下設(shè)置鍵可以重設(shè)密碼,并有存儲芯片存儲。</p><p><b>  系統(tǒng)設(shè)計框圖</b></p><p>  圖2-1 系統(tǒng)設(shè)計框圖</p><p>  2.2.基

28、本設(shè)計方案</p><p><b>  1.主控芯片的選擇</b></p><p>  本設(shè)計采用AT89C51為主控芯片,AT89C51具有4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選

29、的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。</p><p><b>  2.鍵盤的選擇</b></p><p>  把按鍵按行列組成矩陣,在行列交點上都對應(yīng)有一個鍵,這樣使用的按鍵要少,為判定有無鍵被按下以及被按鍵的位置,這種

30、稱為鍵掃描法。這樣雖然提高了編程難度,但是節(jié)約了單片機(jī)大量的I/O 口,免去了上拉電阻為焊接帶來了方便,提高了整塊電路板的美觀度。</p><p><b>  顯示電路的選擇</b></p><p>  采用LCD 液晶顯示,顯示的位數(shù)多,由單片機(jī)驅(qū)動。此方案有美觀、顯示清晰多樣的優(yōu)點。</p><p><b>  報警模塊的選擇&l

31、t;/b></p><p>  采用蜂鳴器報警。成本低。</p><p><b>  第三章 硬件設(shè)計</b></p><p>  3.1 主要元器件介紹</p><p>  3.1.1 AT89C51介紹</p><p>  圖3.1 AT89C51引腳圖</p><

32、p>  AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4k的可反復(fù)擦寫的只讀程序存儲器和128bytes的隨機(jī)存取數(shù)據(jù)存儲器,器件采用ATMEL 公司的高密度,非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元。</p><p><b>  引腳功能說明</b></p><p>  

33、·Vcc:電源電壓 </p><p><b>  ·GND:地 </b></p><p>  ·P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電</p><p>  流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。 </p>

34、<p>  在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上</p><p><b>  拉電阻。 </b></p><p>  在FIash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 </p><p>  ·P1口:P1是一

35、個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯</p><p>  門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉</p><p>  電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 FIash編程和程序校驗期間,P1接收低8位地址。 </p><p>

36、;  ·P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上</p><p>  拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 </p><p>  在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)

37、行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中R2寄存器的內(nèi)容),在整個訪問期間不改變。 Flash編程或校驗時,P2亦接收高位地址和其它控制信號。</p><p>  ·P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門

38、電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用</p><p>  上拉電阻輸出電流(IIL)。</p><p>  ·RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 </p><p>  ·ALE/PROG 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,AL

39、E(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的l/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。 對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的DO位置位,可禁止ALE操作。該位置位后,只有</p><p> 

40、 一條MOVX和MOVC指令A(yù)LE才會被激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。 </p><p>  ·PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN</p><p>  有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN&l

41、t;/p><p><b>  信號不出現(xiàn)。 </b></p><p>  ·EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。 如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。 Flash存儲器編程時,該引

42、腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p>  3.1.2存儲芯片24C02C</p><p>  圖3.1.2 24C03C引腳圖</p><p>  24C02C引腳說明:</p><p><b>  SCL 串行時鐘 </b></p><p

43、>  CAT24WC01/02/04/08/16 串行時鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘 這是一個輸入管腳 </p><p>  SDA 串行數(shù)據(jù)/地址 </p><p>  CAT24WC01/02/04/08/16 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收 SDA 是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進(jìn)行線或wire-OR </p&g

44、t;<p>  A0 A1 A2 器件地址輸入端 </p><p>  這些輸入腳用于多個器件級聯(lián)時設(shè)置器件地址當(dāng)這些腳懸空時默認(rèn)值為0 24WC01 除外 當(dāng)使用 24WC01 或24WC02 時最大可級聯(lián) 8 個器件 如果只有一個 24WC02 被總線尋址 這三個地址輸入腳 A0 A1 A2 可懸空或連接到 Vss 如果只有一個 24WC01 被總線尋址 這三個地址輸入腳A0 A1 A2 必須

45、連接到Vss 當(dāng)使用 24WC04 時最多可連接 4 個器件 該器件僅使用 A1 A2地址管腳 A0管腳未用 可以連接到Vss 或懸空如果只有一個24WC04 被總線尋址A1和A2地址管腳可懸空或連接到Vss 當(dāng)使用24WC08 時最多可連接 2 個器件 且僅使用地址管腳 A2 A0 A1管腳未用 可以連接到Vss 或懸空如果只有一個24WC08 被總線尋址A2管腳可懸空或連接到Vss 當(dāng)使用24WC16 時最多只可連接 1 個器

46、件 所有地址管腳 A0 A1 A2都未用 管腳可以連接到Vss 或懸空 </p><p><b>  WP 寫保護(hù) </b></p><p>  如果WP管腳連接到 Vcc 所有的內(nèi)容都被寫保護(hù) 只能讀 當(dāng)WP管腳連接到 Vss 或懸空 允許器件進(jìn)行正常的讀/寫操作</p><p><b>  I2C 總線協(xié)議 </b>&

47、lt;/p><p>  I2C 總線協(xié)議定義如下 </p><p>  1 只有在總線空閑時才允許啟動數(shù)據(jù)傳送 </p><p>  2 在數(shù)據(jù)傳送過程中當(dāng)時鐘線為高電平時數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許有跳變時鐘線為高電平時數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號 </p><p><b>  起始信號 </b><

48、;/p><p>  時鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為IC 總線的起始信號 </p><p><b>  停止信號 </b></p><p>  時鐘線保持高電平期間數(shù)據(jù)線電平從低到高的跳變作為I2C總線的停止信號</p><p>  3.1.3 LCD1602顯示器介紹</p><p>

49、;  圖3.1.3 LCD1602</p><p>  1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2

50、,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。</p><p>  LCD1602引腳說明</p><p>  第1腳:VSS為電源地</p><p>  第2腳:VCC接5V電源正極</p&

51、gt;<p>  第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。</p><p>  第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。</p><p>  第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。&

52、lt;/p><p>  第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負(fù)跳變時執(zhí)行指令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。</p><p>  第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。</p><p>  3.2 硬件電路設(shè)計</p><p>

53、  本設(shè)計有單片機(jī),矩陣鍵盤,液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實現(xiàn)。由用戶通過連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對用戶輸入的密碼與自己保存的密碼進(jìn)行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警。硬件部分由電源輸入部分、鍵盤輸入部分、復(fù)位部分、晶振部分、顯示部分、報警部分組成。</p><p>  3.2.1 復(fù)位電路

54、 </p><p>  單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC=0000H,使單片機(jī)從第—個單元取指令。無論是在單片機(jī)剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0口為高組態(tài),P1-P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖3-4所示的復(fù)位

55、電路。該電路在最簡單的復(fù)位電路下增加了手動復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當(dāng)RST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時間大于24個振蕩周期,CPU能夠可靠復(fù)位。增加手動復(fù)位按鍵是為了避免死機(jī)時無法可靠復(fù)位。當(dāng)復(fù)位按鍵按下后電容C1通過R5放電。當(dāng)電容C1放電結(jié)束后,RST端的電

56、位由R1與R2分壓比決定。由于R11<<R15 因此RST為高電平,CPU處于復(fù)位狀態(tài),松手后,電容C1充電,RST端電位下降,CPU脫離復(fù)位狀態(tài)。R1的作用在于限制按</p><p>  圖3.2.1 復(fù)位電路 </p><p>  3.2.2 晶振電路</p><p>  AT89C51引腳XTAL1和XTAL2與晶體振蕩器及電容C2、C1按圖3-

57、5所示方式連接。晶振、電容C2/C3及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定,范圍在0~33MHz之間,電容C2、C3取值范圍在5~30pF之間。根據(jù)實際情況,本設(shè)計中采用12MHZ做系統(tǒng)的外部晶振。電容取值為22pF。</p><p>  圖3.2.2 晶振電路 </p><p>  3.2.3 存儲

58、電路</p><p>  與400KHzI2C 總線兼容,1.8到6.0伏工作電壓范圍,低功耗CMOS 技術(shù) ,寫保護(hù)功能W為高電平時進(jìn)入寫保護(hù)狀態(tài) ,頁寫緩沖器,自定時擦寫周期, 1,000,000編程/擦除周期 可保存數(shù)據(jù)100 年,8 腳DIP SOIC或TSSOP封裝。 CAT24WC01/02/04/08/16 是一個 1K/2K/4K/8K/16K 位串行 CMOS E2PROM 內(nèi)部含有&

59、lt;/p><p>  128/256/512/1024/2048 個8 位字節(jié)CATALYST 公司的先進(jìn) CMOS 技術(shù)實質(zhì)上減少了器件的功耗CAT24WC01 有一個8 字節(jié)頁寫緩沖器 CAT24WC02/04/08/16有一個 16字節(jié)頁寫緩沖器 該器件通過I2C 總線接口進(jìn)行操作有一個專門的寫保護(hù)功能 。CAT24WC01/02/04/08/16 支持I2C 總線數(shù)據(jù)傳送協(xié)議 I2C 總線協(xié)議規(guī)定, 任何將

60、數(shù)據(jù)傳送到總線的器件作為發(fā)送器 ,任何從總線接收數(shù)據(jù)的器件為接收器, 數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的, 主器件和從器件都可以作為發(fā)送器或接收器, 但由主器件控制傳送數(shù)據(jù) ,發(fā)送或接收的模式。 </p><p>  圖3.2.3 存儲電路 </p><p>  3.2.4 鍵盤輸入電路</p><p>  由于本設(shè)計所用到的按鍵數(shù)量較多而不適

61、合用獨立按鍵式鍵盤。采用的是矩陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設(shè)計中使用的這個4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等[13]。鍵盤的每個按鍵功能在程序設(shè)計中設(shè)置 。其大體功能(看鍵盤按鍵上的標(biāo)記)及與單片機(jī)引腳接法</p><p>  圖3.2.4 鍵盤輸入電路 <

62、;/p><p>  3.2.5 顯示電路</p><p>  本設(shè)計的顯示部分由液晶顯示器LCD1602取代普通的數(shù)碼管來完成。當(dāng)需要對密碼鎖進(jìn)行開鎖時,按下鍵盤上的開鎖按鍵后利用鍵盤上的數(shù)字鍵0-9輸入密碼,每按下一個數(shù)字鍵后在顯示器上顯示一個*,輸入多少位就顯示多少個*。當(dāng)密碼輸入完成時,按下確認(rèn)鍵,如果輸入的密碼正確的話, LCD子顯示“OK”,亮綠色LED,如果密碼不正確,LCD顯示屏

63、會顯示“ERROR”,亮紅色LED.</p><p>  1602LCD主要技術(shù)參數(shù):</p><p>  顯示容量:16×2個字符</p><p>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模塊最佳工作電壓:5.0V</p>

64、<p>  圖2.2.5 顯示電路 </p><p>  3.2.6 報警電路</p><p>  報警部分由陶瓷壓電發(fā)聲裝置及外圍電路組成,加電后不發(fā)聲,當(dāng)有鍵按下時,“叮”聲,每按一下,發(fā)聲一次,密碼正確時,不發(fā)聲直接開鎖,當(dāng)密碼輸入錯誤時,單片機(jī)的P2.1引腳為低電平,發(fā)出噪鳴聲報</p><p>  圖2.2.6 報警電路 </p>

65、<p>  第四章 軟件程序設(shè)計</p><p>  本系統(tǒng)軟件設(shè)計由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時程序等組成。</p><p><b>  4.1 主流程圖</b></p><p>  如圖4-1所示為主程序流程圖,開始接上電源,程序進(jìn)行初始化設(shè)置,然后在鍵盤

66、上輸入密碼,此系統(tǒng)進(jìn)行鍵盤掃描,密碼正確,開鎖成功,綠燈亮。密碼錯誤則出錯報警,蜂鳴器響。選擇是否修改密碼,若要修改密碼,先輸入舊密碼密碼,密碼正確后設(shè)置新密碼,確認(rèn)后,密碼修改成功,否則結(jié)束最終返回。然后啟動程序,進(jìn)行保護(hù),再次在鍵盤上輸入密碼,系統(tǒng)進(jìn)行掃描,如果和之前一樣,則執(zhí)行相同程序,如不是,則執(zhí)行另一種程序。</p><p><b>  圖4.1 主流程圖</b></p>

67、;<p><b>  4.2 按鍵子程序</b></p><p>  uchar scan(void)</p><p><b>  {</b></p><p>  uchar row,col;</p><p>  uchar j,m;</p><p><b

68、>  P1=0xF0;</b></p><p>  if((P1&0xF0)!=0xF0)</p><p><b>  {</b></p><p><b>  delay(1);</b></p><p>  if((P1&0xF0)!=0xF0)</p>

69、<p>  col=~(P1|0x0F);</p><p><b>  j=0;</b></p><p><b>  P1=a[j];</b></p><p>  while(j<=3)</p><p><b>  {</b></p><

70、p>  if((P1&0xF0)!=0xF0)</p><p><b>  {</b></p><p>  row=~a[j];</p><p><b>  break;</b></p><p><b>  }</b></p><p>&l

71、t;b>  else</b></p><p>  {j++;P1=a[j];}</p><p><b>  }</b></p><p>  m=row+col;</p><p>  return(m);</p><p><b>  }</b></p&g

72、t;<p><b>  else</b></p><p>  return(0);</p><p><b>  }</b></p><p>  uchar coding(uchar m){</p><p><b>  uchar k;</b></p>

73、<p><b>  switch(m)</b></p><p><b>  {</b></p><p>  case(0x08+0x80):k=0;break;</p><p>  case(0x08+0x40):k=1;break;</p><p>  case(0x08+0x20):

74、k=2;break;</p><p>  case(0x08+0x10):k=3;break;</p><p>  case(0x04+0x80):k=4;break;</p><p>  case(0x04+0x40):k=5;break;</p><p>  case(0x04+0x20):k=6;break;</p>&l

75、t;p>  case(0x04+0x10):k=7;break;</p><p>  case(0x02+0x80):k=8;break;</p><p>  case(0x02+0x40):k=9;break;</p><p>  case(0x02+0x20):k=10;break;</p><p>  case(0x02+0x10

76、):k=11;break;</p><p>  case(0x01+0x80):k=12;break;</p><p>  case(0x01+0x40):k=13;break;</p><p>  case(0x01+0x20):k=14;break;</p><p>  case(0x01+0x10):k=15;break;</p&

77、gt;<p><b>  }</b></p><p>  return(k);</p><p><b>  }</b></p><p>  4.3 密碼設(shè)置子程序</p><p>  void setpassword()</p><p><b>  {

78、</b></p><p>  uchar tmp,key,i=0;</p><p>  write_com(0x38);</p><p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p>&

79、lt;p>  gotoxy(1,0);</p><p>  write_str(" ");</p><p>  gotoxy(1,10);</p><p>  write_str("SET "); </p><p><b>  while(1)</b>&l

80、t;/p><p><b>  {</b></p><p>  tmp=scan();</p><p>  if(tmp!=0)</p><p><b>  { </b></p><p>  key=coding(tmp);</p><p>  if(key

81、<=9&&i<8)</p><p>  { </p><p>  if(i<8){password[i]=key;gotoxy(1,i);write_data(0x2a);}</p><p><b>  i++;</b></p><p><b>  ala

82、rm=0;</b></p><p>  delay(250);</p><p>  alarm=1; </p><p><b>  } </b></p><p>  if(i>=8&&(key==11)){</p><p>  gotoxy(1,10);

83、</p><p>  write_str("SET OK");</p><p>  gotoxy(1,0);</p><p>  write_str(" ");</p><p><b>  break;</b></p><p><b>

84、;  }</b></p><p>  delay(250); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

85、 4.4 報警子程序</b></p><p>  void buzzeralarm()</p><p><b>  {</b></p><p><b>  alarm=0;</b></p><p>  delay(250);</p><p><b>  

86、alarm=1;</b></p><p>  delay(250);</p><p><b>  alarm=0;</b></p><p>  delay(250);</p><p><b>  alarm=1;</b></p><p>  delay(250);

87、</p><p><b>  alarm=0;</b></p><p>  delay(250);</p><p><b>  alarm=1;</b></p><p>  delay(250);</p><p><b>  }</b></p>

88、;<p>  4.5 定時中斷服務(wù)子程序</p><p>  void time0() interrupt 1 </p><p><b>  { </b></p><p><b>  TL0=0xb0;</b></p><p><b>  TH0=0x3c;</b>

89、;</p><p>  if(++us==20)</p><p><b>  {</b></p><p><b>  us=0;</b></p><p>  gotoxy(1,6);</p><p>  write_num2(sec);</p><p>

90、;  gotoxy(1,3);</p><p>  write_num2(min);</p><p>  gotoxy(1,0);</p><p>  write_num2(hour);</p><p>  if(++sec==60)</p><p><b>  {</b></p>

91、<p><b>  sec=0;</b></p><p>  if(++min==60)</p><p><b>  {</b></p><p><b>  min=0;</b></p><p>  if(++hour==1)</p><p>

92、<b>  {</b></p><p>  hour=0;TR0=0;lock=0;</p><p>  gotoxy(2,10);</p><p>  write_str("UNLOCKED");</p><p><b>  }</b></p><p>

93、<b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  4.6 LCD顯示子程序</p><p><b> 

94、 //lcd 寫命令</b></p><p>  void write_com(uchar com)</p><p><b>  {</b></p><p><b>  lcdrs=0;</b></p><p><b>  lcdrw=0;</b></p>

95、;<p><b>  P0=com;</b></p><p><b>  delay(2);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(2);</b></p><p><b&g

96、t;  lcden=0;</b></p><p><b>  }</b></p><p><b>  //lcd 寫數(shù)據(jù)</b></p><p>  void write_data(uchar date)</p><p><b>  {</b></p>

97、<p><b>  lcdrs=1;</b></p><p><b>  lcdrw=0;</b></p><p><b>  P0=date;</b></p><p><b>  delay(2);</b></p><p><b>

98、  lcden=1;</b></p><p><b>  delay(2);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b></p><p>  //lcd 的初始化</p><p>  

99、void init_lcd()</p><p><b>  {</b></p><p>  write_com(0x38);</p><p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p

100、><p><b>  }</b></p><p><b>  // lcd 清屏</b></p><p>  void clearscn()</p><p><b>  {</b></p><p>  write_com(0x06);</p>

101、<p>  write_com(0x01);</p><p><b>  }</b></p><p>  //lcd 顯示坐標(biāo)</p><p>  void gotoxy(uchar x,uchar y)</p><p><b>  {</b></p><p>&l

102、t;b>  if(x==1)</b></p><p>  write_com(0x80+y);</p><p><b>  if(x==2)</b></p><p>  write_com(0xc0+y);</p><p><b>  }</b></p><p&

103、gt;<b>  //寫lcd字符串</b></p><p>  void write_str(uchar *str)</p><p><b>  {</b></p><p>  while(*str!='\0')</p><p><b>  {</b><

104、/p><p>  write_data(*str);</p><p><b>  delay(2);</b></p><p><b>  str++;</b></p><p><b>  }</b></p><p><b>  }</b>

105、;</p><p><b>  //寫一位數(shù)字</b></p><p>  void write_num(uchar num)</p><p><b>  {</b></p><p>  write_data(0x30+num);</p><p><b>  }&l

106、t;/b></p><p><b>  //寫兩位數(shù)</b></p><p>  void write_num2(uchar num)</p><p><b>  {</b></p><p>  uchar x,y;</p><p><b>  x=num/1

107、0;</b></p><p><b>  y=num%10;</b></p><p>  write_num(x);</p><p>  write_num(y);</p><p><b>  }</b></p><p>  第五章 系統(tǒng)仿真設(shè)計</p>

108、;<p>  Proteus軟件簡介</p><p>  Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作

109、者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持

110、續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。</p><p><b>  系統(tǒng)電路仿真</b></p><p>  圖5.2 電子密碼鎖仿真圖 </p><p><b>  第六章 結(jié)束語</b></p><p>  以上為畢業(yè)期間所作的畢業(yè)論文---基于

111、單片機(jī)AT89C51的電子密碼鎖設(shè)計,在著手本次畢業(yè)設(shè)計時,通過查閱網(wǎng)絡(luò)與圖書館搜集到的資料,再加上指導(dǎo)老師指點,結(jié)合生活中對密碼鎖的功能特性要求,設(shè)計出了這一套電子密碼鎖系統(tǒng)的主要硬件結(jié)構(gòu)和軟件結(jié)構(gòu),基本完成了課題的要求。</p><p>  本次設(shè)計的電子密碼鎖是以手動鍵盤輸入密碼的,通過這幾個月對電子密碼鎖的研究學(xué)習(xí),發(fā)覺這種密碼輸入方式可以進(jìn)行改革。在越來越高科技化的今天,遙控控制顯的愈發(fā)重要,今后的電子

112、密碼鎖應(yīng)該具有以紅外技術(shù)或無線電技術(shù)為輔助的密碼按鍵輸入遠(yuǎn)程交互技術(shù),這樣就能遠(yuǎn)程輸入密碼完成操作。也可以放棄傳統(tǒng)的按鍵輸入密碼模式,借助傳感器技術(shù)運用聲控來實現(xiàn)密碼輸入,又或者人臉識別技術(shù),還有一種就是用戶指紋輸入方式,這些都可以使開鎖的時間更短更方便。電子密碼鎖產(chǎn)業(yè)將向靜態(tài)功耗更低,外圍電路更簡化,可提供的功能或控制口更多,更人性化高科技化的方向發(fā)展。通過本次畢業(yè)設(shè)計的鍛煉,我學(xué)到了很多有關(guān)電子密碼鎖的設(shè)計方法與工作原理,鞏固了單片

113、機(jī)知識。無論從選題到定稿,從理論到實踐都使我學(xué)到了很多東西,它不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。同時也明白了理論與實踐相結(jié)合的重要性,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。</p><p><b>  參考文獻(xiàn)</b></p>&l

114、t;p>  [1] 葉啟明.單片機(jī)制作的新型安全密碼鎖[J].家庭電子.2000,第六期:24-27</p><p>  [2]胡漢才.單片機(jī)原理及其接口技術(shù)(第2版)[M].北京:清華大學(xué)出版社,2004</p><p>  [3]江志紅. 51單片機(jī)技術(shù)與應(yīng)用系統(tǒng)開發(fā)[M]. 清華大學(xué)出版社, 2008 [4] Khan A, </p><p>  [4]

115、何力民.I2C總線應(yīng)用系統(tǒng)設(shè)計[M].北京航空航天大學(xué)出版社.2004</p><p>  [5] 黃子強(qiáng).液晶顯示原理[J].國防工業(yè)出版社.2008</p><p>  [6]任艷艷. 基于AT89C51單片機(jī)多功能密碼鎖的研究[J]. 重慶職業(yè)技術(shù)學(xué)院學(xué)報.2008.5 </p><p>  [7]周鑫,何建新, 劉琥. 基于單片機(jī)的電子密碼鎖控制電路設(shè)計[

116、J] 成都信息工程學(xué)院學(xué)報. 2009,(08)</p><p>  [8] 寧愛民. 應(yīng)用AT89C2051 單片機(jī)設(shè)計電子密碼鎖[J]. 淮海工學(xué)院學(xué)報2003 ,6</p><p>  [9]郭惠,吳迅. 單片機(jī)C語言程序設(shè)計完全自學(xué)手冊[J].電子工業(yè)出版社 2008-10-1</p><p>  [10]趙亮,侯國瑞. 單片機(jī)C語言編程與實例[J].人民郵

117、電出版社.2003-09-01</p><p><b>  附 錄</b></p><p><b>  電子密碼鎖參考代碼</b></p><p><b>  MMS.c</b></p><p>  #include<reg51.h></p><

118、;p>  #include <intrins.h></p><p>  #include <absacc.h></p><p>  #include "VIIC_C51.h"</p><p>  #define uchar unsigned char</p><p>  #define uin

119、t unsigned int</p><p>  #define CSI24WC02 0XA0</p><p>  #define uchar unsigned char</p><p>  sbit lcdrs=P2^0;</p><p>  sbit lcdrw=P2^1;</p><p>  sbit lc

120、den=P2^2;</p><p>  sbit alarm=P2^3;</p><p>  sbit red=P2^7;</p><p>  sbit green=P2^6;</p><p>  sbit KEY_INT=P3^2;</p><p>  //led test</p><p> 

121、 sbit LED1=P3^5;</p><p>  sbit LED2=P3^1;</p><p>  uchar hour,min,sec,us;</p><p>  uchar flag=1,canscan=0,lock=0;</p><p>  uchar password[8]={0,0,0,0,0,0,0,0};</p>

122、;<p>  uchar input[8]={0,1,2,3,4,5,6,7};</p><p>  uchar code a[]={0xF7,0xFB,0xFD,0xFE};</p><p>  unsigned char DelayNS(unsigned char no){ </p><p>  unsigned char i,j;&

123、lt;/p><p>  for(; no>0; no--){ </p><p>  for(i=0; i<100; i++)</p><p>  for(j=0; j<100; j++);</p><p><b>  }</b></p><p>  return 0; </p&

124、gt;<p><b>  }</b></p><p>  unsigned char delay_eep(unsigned char j){</p><p>  unsigned char k,l;</p><p>  for(l=0;l<=j;l++)</p><p>  for(k=0;k&

125、lt;=250;k++);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void t0_init() { </p><p>  TMOD=0x01; </p><p><b>  TL0=0xb

126、0;</b></p><p>  TH0=0x3c; </p><p><b>  TR0=0; </b></p><p><b>  EA=1; </b></p><p><b>  ET0=1;</b></p><p><b>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論