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

下載本文檔

版權(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>  </b></p><p> 題目電子密碼鎖的設(shè)計(jì)</p><p> 學(xué)生姓名</p><p> 學(xué)號(hào)</p><p> 指導(dǎo)教師</p><p> 系部名稱信息科學(xué)與

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

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

4、t;p>  若密碼輸入錯(cuò)誤,蜂鳴器將報(bào)警提示。</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è)計(jì)6</p><p>  2.1 設(shè)計(jì)目標(biāo)6</p><p>  2.2 設(shè)計(jì)方案7</p><p>  第三章 硬件設(shè)計(jì)

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

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

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

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

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

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

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

19、lt;p>  5.1 Proteus軟件簡(jiǎn)介................................................22</p><p>  5.2 系統(tǒng)電路仿真………………………………………………………………23</p><p>  第六章 結(jié)束語(yǔ)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>  我國(guó)鎖的發(fā)展已經(jīng)有數(shù)千年的歷史

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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í)才允許啟動(dòng)數(shù)據(jù)傳送 </p><p>  2 在數(shù)據(jù)傳送過(guò)程中當(dāng)時(shí)鐘線為高電平時(shí)數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許有跳變時(shí)鐘線為高電平時(shí)數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號(hào) </p><p><b>  起始信號(hào) </b><

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

49、;  圖3.1.3 LCD1602</p><p>  1602液晶也叫1602字符型液晶,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2

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

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

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

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

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

55、電路。該電路在最簡(jiǎn)單的復(fù)位電路下增加了手動(dòng)復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過(guò)程中RST端電壓逐漸下降,當(dāng)RST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時(shí)間大于24個(gè)振蕩周期,CPU能夠可靠復(fù)位。增加手動(dòng)復(fù)位按鍵是為了避免死機(jī)時(shí)無(wú)法可靠復(fù)位。當(dāng)復(fù)位按鍵按下后電容C1通過(guò)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)成了電容三點(diǎn)式振蕩器,振蕩信號(hào)頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定,范圍在0~33MHz之間,電容C2、C3取值范圍在5~30pF之間。根據(jù)實(shí)際情況,本設(shè)計(jì)中采用12MHZ做系統(tǒng)的外部晶振。電容取值為22pF。</p><p>  圖3.2.2 晶振電路 </p><p>  3.2.3 存儲(chǔ)

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

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

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

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

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

63、會(huì)顯示“ERROR”,亮紅色LED.</p><p>  1602LCD主要技術(shù)參數(shù):</p><p>  顯示容量:16×2個(gè)字符</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 報(bào)警電路</p><p>  報(bào)警部分由陶瓷壓電發(fā)聲裝置及外圍電路組成,加電后不發(fā)聲,當(dāng)有鍵按下時(shí),“?!甭?,每按一下,發(fā)聲一次,密碼正確時(shí),不發(fā)聲直接開(kāi)鎖,當(dāng)密碼輸入錯(cuò)誤時(shí),單片機(jī)的P2.1引腳為低電平,發(fā)出噪鳴聲報(bào)</p><p>  圖2.2.6 報(bào)警電路 </p>

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

66、上輸入密碼,此系統(tǒng)進(jìn)行鍵盤掃描,密碼正確,開(kāi)鎖成功,綠燈亮。密碼錯(cuò)誤則出錯(cuò)報(bào)警,蜂鳴器響。選擇是否修改密碼,若要修改密碼,先輸入舊密碼密碼,密碼正確后設(shè)置新密碼,確認(rèn)后,密碼修改成功,否則結(jié)束最終返回。然后啟動(dòng)程序,進(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ào)警子程序</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 定時(shí)中斷服務(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è)計(jì)</p>

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

109、者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持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é)束語(yǔ)</b></p><p>  以上為畢業(yè)期間所作的畢業(yè)論文---基于

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

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

113、機(jī)知識(shí)。無(wú)論從選題到定稿,從理論到實(shí)踐都使我學(xué)到了很多東西,它不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。同時(shí)也明白了理論與實(shí)踐相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。</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)開(kāi)發(fā)[M]. 清華大學(xué)出版社, 2008 [4] Khan A, </p><p>  [4]

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

116、J] 成都信息工程學(xué)院學(xué)報(bào). 2009,(08)</p><p>  [8] 寧愛(ài)民. 應(yīng)用AT89C2051 單片機(jī)設(shè)計(jì)電子密碼鎖[J]. 淮海工學(xué)院學(xué)報(bào)2003 ,6</p><p>  [9]郭惠,吳迅. 單片機(jī)C語(yǔ)言程序設(shè)計(jì)完全自學(xué)手冊(cè)[J].電子工業(yè)出版社 2008-10-1</p><p>  [10]趙亮,侯國(guó)瑞. 單片機(jī)C語(yǔ)言編程與實(shí)例[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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論