基于單片機電子密碼鎖畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b> ?。?012屆)</b></p><p>  專科畢業(yè)設(shè)計(論文)資料</p><p><b>  2012屆</b></p><p>  ??飘厴I(yè)設(shè)計(論文)資料</p><p>  第一部分 過程管理資料</p><p><b> 

2、 目錄</b></p><p>  第一部分 過程管理資料</p><p>  一、2012屆畢業(yè)設(shè)計(論文)課題任務書(4)</p><p>  二、湖南工業(yè)大學專科畢業(yè)設(shè)計(論文)開題報告(6)</p><p>  三、專科畢業(yè)設(shè)計(論文)中期報告(11)</p><p>  四、畢業(yè)設(shè)計(論文

3、)指導教師評閱表(13)</p><p>  五、畢業(yè)設(shè)計(論文)評閱教師評閱表(14)</p><p>  六、畢業(yè)設(shè)計(論文)答辯及最終成績評定表(15)</p><p>  第二部分 設(shè)計說明書</p><p>  七、設(shè)計說明書(16)</p><p>  2012屆畢業(yè)設(shè)計(論文)課題任務書<

4、/p><p>  院(系): 電氣與信息工程學院 專業(yè): 應用電子 </p><p>  湖 南 工 業(yè) 大 學</p><p>  畢業(yè)設(shè)計(論文)開題報告</p><p><b> ?。?012屆)</b></p><p>  201

5、1年12月23日</p><p>  說明:開題報告作為畢業(yè)設(shè)計(論文)答辯委員會對學生答辯資格審查的依據(jù)材料之一,此報告應在導師指導下,由學生填寫,將作為畢業(yè)設(shè)計(論文)成績考查的重要依據(jù),經(jīng)導師審查后簽署意見生效。</p><p>  ??飘厴I(yè)設(shè)計(論文)中期報告</p><p>  填表日期:2012年5月8日</p><p>  畢業(yè)

6、設(shè)計(論文)指導教師評閱表</p><p>  學院(部):電氣與信息工程學院</p><p>  畢業(yè)設(shè)計(論文)評閱教師評閱表</p><p>  學院(部):電氣與信息工程學院 </p><p>  畢業(yè)設(shè)計(論文)答辯及最終成績評定表</p&

7、gt;<p>  學院(部)(公章): </p><p>  說明:最終評定成績=a+b+c,三個成績的百分比由各學院(部)自己確定。</p><p><b>  2012屆</b></p><p>  專科畢業(yè)設(shè)計(論文)資料</p><p>  第二部分 設(shè)計說明書<

8、/p><p><b> ?。?012屆)</b></p><p>  ??飘厴I(yè)設(shè)計(論文)</p><p>  基于單片機的電子密碼鎖設(shè)計</p><p><b>  摘 要</b></p><p>  隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變得尤其突出,傳統(tǒng)的機械

9、鎖由于其構(gòu)造簡單,安全性能低,無法滿足人們的需求。隨著電子產(chǎn)品向智能化和微型化的不斷發(fā)展,單片機已成為電子產(chǎn)品研制和開發(fā)中首選的控制器,所以具有防盜報警功能的電子密碼控制系統(tǒng)逐漸代替?zhèn)鹘y(tǒng)的機械式密碼控制系統(tǒng),克服了機械式密碼控制的密碼量少,安全性能差的缺點。通過單片機編寫密碼程序,并用74LS47和3-8譯碼器74LS138驅(qū)動的數(shù)碼管來顯示密碼。數(shù)碼管可以時時顯示當前輸入的四位數(shù)字。當輸入密碼正確時,對應的指示燈亮;當密碼不正確時,另

10、一個對應的指示燈亮且并且發(fā)出聲音報警。</p><p>  關(guān)鍵詞: 密碼鎖 ,單片機 ,報警</p><p><b>  ABSTRACT</b></p><p>  With the improvement of people's living standards, it has become particularly prom

11、inent about how to achieve Anti-theft family. The traditional mechanical lock has such shortcoming as simple structure , Low security ,it can't meet people's demands.As electronic products are developing towards

12、intelligence and minimization, single-chip computers(SCM) have become the first choice for controllers in the development of electronic products. Therefore, the electronic anti-theft alarm function password</p>&l

13、t;p>  Keywords: Combination lock, Single-chip microcomputer, alarm</p><p><b>  第1章 引 言</b></p><p>  1.1 電子密碼鎖簡介</p><p>  電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關(guān)的閉合,完成開

14、鎖、閉鎖任務的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。現(xiàn)在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下:</p><p>  1) 保密性好,編碼量多,遠遠大于彈子鎖。隨機開鎖成功率幾乎為零。2) 密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。3) 誤碼輸入保護,當輸入密碼多次錯

15、誤時,報警系統(tǒng)自動啟動。</p><p>  4) 無活動零件,不會磨損,壽命長。</p><p>  5) 使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。</p><p>  6) 電子密碼鎖操作簡單易行,一學即會 </p><p>  1.2 電子密碼鎖的發(fā)展趨勢</p><p>  在日常生活和工作中,住宅與部

16、門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機械密碼鎖,其結(jié)構(gòu)較為復雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前

17、景。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復雜,電子元件繁多,也有使用早先的20引角的2051系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應元件,實現(xiàn)了真真的電子加密,用戶

18、只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越</p><p>  出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠程控制,只能適用于保密要求高且供個人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子防盜鎖獲得高度的保密性,如防范

19、森嚴的金庫,需要使用復合信息密碼的電子防盜鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子防盜鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”??梢钥闯鼋M合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。</p><p>  1.3 本設(shè)計所要實現(xiàn)的目標</p><p>  本次設(shè)計使用 ATMEL公司的 AT89C51 實現(xiàn)一基于單片機的電子密碼鎖的設(shè)

20、計,其主要具有如下功能: </p><p> ?。?)密碼通過鍵盤輸入,若密碼正確,則將鎖打開。 </p><p> ?。?)報警、鎖定鍵盤功能。密碼輸入錯誤數(shù)碼顯示器會出現(xiàn)錯誤提示,若密碼輸入錯誤次數(shù)超過 3 次,蜂鳴器報警并且鎖定鍵盤。 </p><p>  電子密碼鎖的設(shè)計主要由三部分組成:4×4 矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路

21、。另外系統(tǒng)還有 LED 提示燈,報警蜂鳴器等。 </p><p>  密碼鎖設(shè)計的關(guān)鍵問題是實現(xiàn)密碼的輸入、清除、更改、開鎖等功能: </p><p> ?。?)密碼輸入功能:按下一個數(shù)字鍵,一個“-”就顯示在最右邊的數(shù)碼管上,同時將先前輸入的所有“-”向左移動一位。 </p><p> ?。?)密碼清除功能:當按下清除鍵時,清除前面輸入的所有值,并清除所有顯示。

22、</p><p>  (3)開鎖功能:當按下開鎖鍵,系統(tǒng)將輸入與密碼進行檢查核對,如果正確鎖打開,否則不打開。 </p><p>  主要的設(shè)計實施過程:首先,選用 ATMEL公司的單片機 AT89C51,以及選購其他電子元器件。第二步,使用 DXP 2004設(shè)計硬件電路原理圖,并設(shè)計 PCB圖完成人工布線(后因 PCB 板損壞決定采用萬能板焊接的方法)。第三步,使用 Keil uVisi

23、on3 軟件編寫單片機的 C 語言程序、仿真、軟件調(diào)試。第四部,使用 PROTEUS 軟件進行模擬軟、硬件調(diào)試。最后,聯(lián)合軟、硬件調(diào)試電路板,完成本次畢業(yè)設(shè)計。 </p><p><b>  2方案比較與論證</b></p><p>  方案一:采用數(shù)字電路控制。其原理方框圖如圖1所示。</p><p>  圖1 數(shù)字密碼鎖電路方案</p

24、><p>  采用數(shù)字密碼鎖電路的好處就是設(shè)計簡單。用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有6個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;若電路連續(xù)報警三次,電路將鎖定鍵盤10秒,防止他人的非法操作。</p><p>  電路由兩大部分組成:密碼鎖電路和備用電源(UPS

25、),其中設(shè)置UPS電源是為了防止因為停電造成的密碼鎖電路失效,使用戶免遭麻煩。</p><p>  密碼鎖電路包含:鍵盤輸入、密碼修改、密碼檢測、開鎖電路、執(zhí)行電路、報警電路、鍵盤輸入次數(shù)鎖定電路。</p><p>  方案二:以AT89C51為核心的單片機控制方案。利用單片機靈活的編程設(shè)計和豐富的IO端口,及其控制的準確性,不但能實現(xiàn)基本的密碼鎖功能,還能添加溫度顯示、時間顯示甚至添加遙

26、控控制功能。</p><p>  通過比較以上兩種方案,單片機方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統(tǒng)進行升級,所以我們采用后一種方案。</p><p>  3系統(tǒng)模塊電路的設(shè)計 </p><p><b>  3.1 系統(tǒng)總框圖</b></p><p><b&

27、gt;  圖2系統(tǒng)框圖</b></p><p>  3.2系統(tǒng)的模塊電路設(shè)計</p><p>  3.2.1 單片機最小系統(tǒng)模塊</p><p>  AT89C51是一種低功耗,高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存

28、儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和系統(tǒng)可編程Flash,使得AT89SC51為眾多嵌入式控制應用系統(tǒng)提供高靈活,超有效地解決方案。AT89C51是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL

29、的AT89C51是一種高效微控制器, AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  圖3 AT89C51管腳圖</p><p>  3.2.2時鐘電路模塊</p><p>  采用專用時鐘芯片DS1302,該芯片性能簡介如下:</p><p>  DS1302的結(jié)構(gòu)及工作原理 :</p&g

30、t;<p>  DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加

31、了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 (1) 引腳功能及結(jié)構(gòu) 圖1示出DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振

32、。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次</p><p>  圖4 DS1302的管腳圖</p><p> ?。?) DS1302的控制字節(jié) </p><p>  DS1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它

33、為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 </p><p>  圖5 DS1302的控制字節(jié)(3) 數(shù)據(jù)輸入輸出(I/O) 在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入D

34、S1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。 (4) DS1302的寄存器 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。 </p><p>  圖6 日歷,時間寄存器及其控制字此外,D

35、S1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)

36、。 (5) DS1302與單片機連接如圖7所示:</p><p>  圖7 DS1302與單片機連接圖</p><p><b>  3.2.3鍵盤模塊</b></p><p>  使用矩陣鍵盤,所以本設(shè)計就采用行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O線的數(shù)目,在按鍵比較多的時候,通常采用這樣的方法。其原理如圖8所示:</

37、p><p><b>  圖8 矩陣鍵盤</b></p><p>  每條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需N條行線和M條列線,即可組成具有N*M個按鍵的鍵盤。</p><p>  在這種行列式矩陣鍵盤非鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。<

38、/p><p>  當確認有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方法:一種是常用的逐行掃描法;另一種是速度較快的線反轉(zhuǎn)法。</p><p>  對照圖8所示的4*4鍵盤,說明線反轉(zhuǎn)個工作原理。</p><p>  首先辨別鍵盤中有無按鍵按下,由單片機I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。方法是:向列線輸出全掃描字00H,把全部列線置為

39、低電平,然后將行線的電平狀態(tài)讀入累加器A中。如果有按鍵按下,總會有一根行線電平被拉至低電平從而使行線不全為1。</p><p>  判斷哪個鍵被按下:將P1.0~P1.3都置低,檢測P1.4~P1.7是否有低的,若有,則證明有鍵按下,記下低的端口。然后,將P1.4~P1.7置低,檢測P1.0~P1.3是否有低的端口,如有,則證明端口與上次的一個為地的端口交叉位置的鍵被按下。</p><p>

40、;<b>  3.2.4顯示模塊</b></p><p>  電子密碼鎖系統(tǒng)中,需要現(xiàn)實的信息較少,因此采用七段LED數(shù)碼顯示管作為顯示器。數(shù)據(jù)傳輸采用串行方式,有單片機串行數(shù)據(jù)口P3.0發(fā)送,在經(jīng)過74HC164串行移位器把串行數(shù)據(jù)轉(zhuǎn)換成8位并行數(shù)據(jù),用以驅(qū)動七段LED數(shù)碼顯示管。由于74HC164芯片中,沒有數(shù)據(jù)鎖存器,串行數(shù)據(jù)每到達一位,都會直接送到七段顯示管中,造成所有數(shù)據(jù)都會經(jīng)過其

41、短線是數(shù)碼管的每一個LED燈,是數(shù)據(jù)顯示不穩(wěn)定。因此在74HC164串行移位寄存器和七段數(shù)碼顯示管之間,加入數(shù)據(jù)鎖存器(74273芯片),以穩(wěn)定數(shù)碼顯示管的數(shù)據(jù)顯示。</p><p>  在按下開啟按鍵后,顯示器處于開啟狀態(tài),同理只有按下關(guān)閉鍵后顯示器處于關(guān)閉狀態(tài),當需要對密碼鎖進行開鎖時,按下鍵盤上的開鎖鍵后利用鍵盤上的數(shù)字鍵0——9輸入密碼,每按下一個數(shù)字鍵后在顯示器上顯示一個“-”,輸入六個數(shù)有六個“-”出

42、現(xiàn)。當密碼輸入完成時,按下確認鍵。如果正確的話LED顯示“111111”,單片機其中P2.0出現(xiàn)低電平,使三極管T2導通,電磁鐵吸合,電子密碼鎖被打開,如果密碼錯誤,LED顯示”000000”,單片機P2.0輸出的是高電平,電子密碼鎖不能被打開。在LED屏上時間出錯時,可通過“#”鍵修改時間設(shè)定。</p><p><b>  圖9顯示電路</b></p><p>&l

43、t;b>  。</b></p><p>  3.2.5電源模塊 </p><p>  為了防止停電情況的發(fā)生,本電路后備了UPS電源,它包括市電供電電路,停電檢測電路,電子開關(guān)切換電路,蓄電池充電電路和蓄電池組成。電源電路圖如圖5所示。</p><p><b>  圖12供電電路</b></p><p&g

44、t;  220V市電通過變壓器降壓成12V的交流電,再經(jīng)過整流橋整流,7805穩(wěn)壓到5V送往電子切換電路,由于本電路功耗較少,所以選用10W的小型變壓器。</p><p>  由R8,R9,R6,R7及IC14構(gòu)成電壓比較器,正常情況下,V+<V- IC14輸出高電平,繼電器的常閉觸點和市電相連;當市電斷開,V+>V- IC14輸出高電平,由T3,T4構(gòu)成的達林頓管使繼電器J開啟,將其常開觸電將蓄電池

45、和電路相連,實現(xiàn)市電和蓄電池供電的切換,保證電子密碼鎖的正常工作(視電池容量而定持續(xù)時間)。其電路圖如下圖6所示:</p><p>  圖13 停電檢測及電子開關(guān)切換電路</p><p>  T1,T2構(gòu)成的蓄電池自動充電電路,它在電池充滿后自動停止充電,其中D1亮為正在充電,D2為工作指示。由R4,R5,T1構(gòu)成電壓檢測電路,蓄電池電壓低,則T1,T2導通,實現(xiàn)對其充電;充滿后,T1,T

46、2截止,停止充電,同時D1熄滅,電路中C4的作用是濾除干擾信號。其電路圖如圖7所示:</p><p>  圖14 蓄電池自動充電電路</p><p>  3.2.6 溫度檢測電路設(shè)計</p><p>  采用一線總線式溫度傳感器DS18B20,該傳感器性能如下:</p><p>  (1) DS18B20的主要特性:</p>&

47、lt;p> ?、龠m應電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電</p><p> ?、讵毺氐膯尉€接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊</p><p> ?、跠S18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫</p><p>  ④

48、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)</p><p> ?、轀胤秶?5℃~+125℃,在-10~+85℃時精度為±0.5℃</p><p> ?、蘅删幊痰姆直媛蕿?~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現(xiàn)高精度測溫</p><p> ?、咴?位分

49、辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快</p><p> ?、鄿y量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力</p><p> ?、嶝搲禾匦裕弘娫礃O性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。(2)DS18B20與單片機接口電路圖:&l

50、t;/p><p>  3.2.7開鎖電路與報警電路設(shè)計</p><p><b>  開鎖電路</b></p><p>  在本次設(shè)計中,基于節(jié)省材料的原則,暫時用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示開鎖;滅,表示沒有開鎖。電路圖如3.3所示。當P2.0口輸出低電平時,二極管發(fā)光,表示開鎖。</p><p><b>

51、  圖16 開鎖電路</b></p><p><b>  報警電路</b></p><p>  報警模塊由蜂鳴器和單片機組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時需要100mA驅(qū)動電流。當89c51的P2.1口輸出低電平時,蜂鳴器產(chǎn)生蜂音,</p><p>  89c51輸出高電平時,蜂鳴器不發(fā)聲。</p><

52、;p><b>  圖17 報警電路</b></p><p><b>  4 系統(tǒng)的軟件設(shè)計</b></p><p>  4.1 軟件設(shè)計思路</p><p>  電子密碼鎖工作的主要過程是LED數(shù)碼管提示開始輸入密碼,通過鍵盤輸入密碼,同時LED顯示密碼輸入狀況,接下來確認密碼的判斷,做出開鎖或報警處理。當輸入密

53、碼連續(xù)輸入錯誤3次時,系統(tǒng)報警。其中還有溫度和時間顯示。 </p><p>  多功能電子密碼鎖的基本要求:</p><p>  1、通過鍵盤修改、輸入密碼。</p><p>  2、連續(xù)三次輸入密碼錯誤后鎖定鍵盤10秒,并給出提示。</p><p>  3、具有日期時間設(shè)置(小時和分鐘)、顯示,環(huán)境溫度顯示功能。</p>&l

54、t;p>  4、220V供電下,設(shè)計系統(tǒng)所需電源,并考慮掉電后原始數(shù)據(jù)的保存。</p><p><b>  4.2系統(tǒng)主流程圖</b></p><p>  圖21報警流程圖 </p><p><b>  5 總結(jié)</b></p><p> 

55、 在沒有做畢業(yè)設(shè)計前覺得畢業(yè)設(shè)計只是對所學知識的單純總結(jié),但是通過這次做畢業(yè)設(shè)計發(fā)現(xiàn)自己的看法有點太片面。畢業(yè)設(shè)計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計使我明白了自己原來知識還比較欠缺。自己要學習的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。通過這次課程設(shè)計,我才明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己知識和綜合素質(zhì)。</p&

56、gt;<p>  在這次畢業(yè)設(shè)計中也使我們的同學關(guān)系更進一步了,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識。在多人做項目的時候,隊員的交流是非常重要的,是很關(guān)鍵的部分。這次的畢業(yè)設(shè)計也讓我看到了團隊的力量,我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結(jié)協(xié)作的精神。剛開始的時候,大家就分配好了各自的任務,大家有的繪制原理圖,進行仿真實驗,有的積極查詢相關(guān)資

57、料,并且經(jīng)常聚在一起討論各個方案的可行性。在畢業(yè)設(shè)計中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導致整個工作失敗。團結(jié)協(xié)作是我們成功的一項非常重要的保證。</p><p>  不管學會的還是學不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重負的感覺。此外,還得出一個結(jié)論:知識必須通過應用才能實現(xiàn)其價值!有些東西以為學會了,但真正到用的時候才發(fā)現(xiàn)

58、是兩回事,所以我認為只有到真正會用的時候才是真的學會了。程序的設(shè)計思想的精巧的重要性,是不管怎么說都不為過的,好的設(shè)計可以讓大家很快的明白你的思想,而且很方便的來實現(xiàn)它。良好的編程習慣,它可以使你的程序很方便的被別人閱讀,也很方便的被更改,所以可以的話,盡可能多的寫出注釋,沒有人會閑你寫的太多。 </p><p>  在設(shè)計過程中,通過查閱大量有關(guān)資料,與同學交流經(jīng)驗和自學,并向老師請教等方式,使自己學到了不少知

59、識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個設(shè)計中我懂得了許多東西,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設(shè)計做的也不太好,但是在設(shè)計過程中所學到的東西是這次畢業(yè)設(shè)計的最大收獲和財富,使我終身受益。</p><p>  對我而言,知識上的收獲重要,精神上的豐收更加可喜

60、。讓我知道了學無止境的道理。我們每一個人永遠不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。</p><p><b>  6 致謝</b></p><p>  本論文雖然凝聚著自己的汗水,但卻不是個人智慧的產(chǎn)品,沒有父母和朋友的幫助和支持,我在大學的學術(shù)成長肯定會大打折扣。當我打完畢業(yè)論文的最后一個字符,涌上

61、心頭的不是長途跋涉后抵達終點的欣喜,而是源自心底的誠摯謝意。我首先要感謝我的導師cc老師,對我的構(gòu)思以及論文的內(nèi)容不厭其煩的進行多次指導和悉心指點,c老師多次詢問進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。c老師一絲不茍的作風,嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,雖歷時三載,卻給以終生受益無窮之道。對xx老師的感激之情是無法用言語表達的,使我在完成論文的同時也深受啟發(fā)和教育。</p>

62、<p><b>  學生簽名:</b></p><p><b>  日 期:</b></p><p><b>  參考文獻</b></p><p>  [1]《MCS-51單片機原理及應用教程》 劉迎春等 清華大學出版社</p><p>  [2]《單片機

63、外圍電路設(shè)計》 沙占友等 電子工業(yè)出版社</p><p>  [3]《單片機原理機應用》 李念強等 機械工業(yè)出版社</p><p>  [5]《單片機應用技術(shù)教程》 張洪潤 北京:清華大學出版社,1997</p><p>  [6]《單片機應用程序設(shè)計技術(shù)》 周航慈 著 北京航空航天大學出版社 </p><p>  [7]《單片

64、機原理及及應用》王迎旭編 機械工業(yè)出版社 2001</p><p><b>  附錄1</b></p><p><b>  主電路圖</b></p><p><b>  圖20主電路圖</b></p><p><b>  原理圖</b></p&

65、gt;<p><b>  實物圖</b></p><p><b>  附錄2</b></p><p>  #include<reg52.h></p><p>  sbit led_lamp=P3^7;</p><p>  unsigned char display_cou

66、nt[17] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7f,0x39,0x3f,0x7b,0x71,0x3f};</p><p>  unsigned char display_bit[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p>  uns

67、igned char hang;</p><p>  unsigned char lie;</p><p>  unsigned char key_number;</p><p>  unsigned char password_number[4]={0x05,0x06,0x07,0x08};</p><p>  //unsigned cha

68、r display_number;</p><p>  unsigned char add_bit=0;</p><p>  unsigned char shumaguang_number[8];</p><p>  unsigned int led_count;</p><p>  unsigned char stop_flag;</

69、p><p>  unsigned char scanf_flag=0;</p><p>  unsigned char ret_password_bit;</p><p>  unsigned char password_ret_flag;</p><p>  void delay(unsigned int count) //延時子函數(shù)&

70、lt;/p><p><b>  {</b></p><p>  unsigned int k;</p><p>  while(count--)</p><p><b>  {</b></p><p>  for(k=0;k<125;k++)</p><

71、p><b>  ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void timr0_init()//定時中斷初始化子程序</p><p><b>  {</b></p>

72、<p>  TMOD = 0X01;</p><p><b>  TH0=0xd8;</b></p><p><b>  TL0=0xf0;</b></p><p><b>  TF0=0;</b></p><p><b>  ET0=1;</b&

73、gt;</p><p><b>  EA = 1;</b></p><p><b>  }</b></p><p>  void INT_timer0()interrupt 1//定時中斷服務函數(shù)</p><p><b>  {</b></p><p&g

74、t;<b>  TH0=0xd8;</b></p><p><b>  TL0=0xf0;</b></p><p>  led_lamp=0;</p><p>  led_count++;</p><p>  if(led_count > 199)</p><p>&l

75、t;b>  {</b></p><p>  led_count = 0;</p><p>  led_lamp=1;</p><p><b>  TR0=0;</b></p><p><b>  }</b></p><p><b>  }</

76、b></p><p>  void scankey() //鍵盤掃描子程序</p><p><b>  {</b></p><p><b>  P2=0xf0;</b></p><p>  if((P2&0xf0)!=0xf0)</p><p>&

77、lt;b>  {</b></p><p>  switch(P2)</p><p><b>  {</b></p><p>  case 0x70:hang=1;break;</p><p>  case 0xb0:hang=2;break;</p><p>  case 0xd

78、0:hang=3;break;</p><p>  case 0xe0:hang=4;break;</p><p>  default:break;</p><p><b>  }</b></p><p><b>  delay(5);</b></p><p>  P2 =

79、0x0f;</p><p>  if((P2&0x0f)!=0x0f)</p><p><b>  {</b></p><p>  switch(P2)</p><p><b>  {</b></p><p>  case 0x07:lie=1;break;</

80、p><p>  case 0x0b:lie=2;break;</p><p>  case 0x0d:lie=3;break;</p><p>  case 0x0e:lie=4;break;</p><p>  default:break;</p><p><b>  }</b></p>

81、;<p><b>  }</b></p><p>  key_number=((hang-1)*4+lie);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void key_password_compare(

82、)//密碼是否正確子程序</p><p><b>  {</b></p><p>  unsigned char kou_for;</p><p>  if(password_number[0]==shumaguang_number[0])</p><p><b>  {</b></p>

83、;<p>  if(password_number[1]==shumaguang_number[1])</p><p><b>  {</b></p><p>  if(password_number[2]==shumaguang_number[2])</p><p><b>  {</b></p>

84、;<p>  if(password_number[3]==shumaguang_number[3])</p><p><b>  {</b></p><p><b>  TR0=1;</b></p><p>  scanf_flag=0;</p><p>  stop_flag=0;

85、</p><p>  for(kou_for=0;kou_for<4;kou_for++)</p><p><b>  {</b></p><p>  shumaguang_number[kou_for]=0;</p><p><b>  }</b></p><p>&

86、lt;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void

87、 display(unsigned char display_strat_init) //初始化顯示子函數(shù)</p><p><b>  {</b></p><p>  unsigned char shaomiao_for;</p><p>  unsigned char bit_for;</p><p>  for(s

88、haomiao_for=0;shaomiao_for<10;shaomiao_for++)</p><p><b>  {</b></p><p>  P0 = display_count[display_strat_init];</p><p>  for(bit_for=0;bit_for<4;bit_for++)</p&

89、gt;<p><b>  {</b></p><p>  P1 = display_bit[bit_for];</p><p><b>  delay(1);</b></p><p><b>  }</b></p><p><b>  }</b&g

90、t;</p><p><b>  }</b></p><p>  void KEY_funcation()//密碼輸入子函數(shù)</p><p><b>  {</b></p><p>  if((P2&0xf0)!=0xf0)</p><p><b>  

91、{</b></p><p>  add_bit++;</p><p>  if(add_bit>5)</p><p><b>  {</b></p><p>  add_bit=0;</p><p>  stop_flag++;</p><p>  if(

92、stop_flag>2)</p><p><b>  {</b></p><p><b>  while(1);</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  de

93、lay(50);</p><p>  switch(add_bit)</p><p><b>  {</b></p><p>  case 1:scanf_flag=1;break;</p><p>  case 2:shumaguang_number[0]=key_number;break;</p>&l

94、t;p>  case 3:shumaguang_number[1]=key_number;break;</p><p>  case 4:shumaguang_number[2]=key_number;break;</p><p>  case 5:shumaguang_number[3]=key_number;break;</p><p>  case 6:

95、scanf_flag=1;break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void password_display()//密碼輸入顯示子函數(shù)</p>&

96、lt;p><b>  {</b></p><p>  unsigned char i;</p><p><b>  {</b></p><p>  for(i = 0; i < 50; i++)</p><p><b>  {</b></p><

97、p>  P0 = display_count[shumaguang_number[0]];</p><p>  P1 = display_bit[0];</p><p><b>  delay(1);</b></p><p>  P0 = display_count[shumaguang_number[1]];</p>

98、<p>  P1 = display_bit[1];</p><p><b>  delay(1);</b></p><p>  P0 = display_count[shumaguang_number[2]];</p><p>  P1 = display_bit[2];</p><p><b>

99、  delay(1);</b></p><p>  P0 = display_count[shumaguang_number[3]];</p><p>  P1 = display_bit[3];</p><p><b>  delay(1);</b></p><p>  //P0 = display_c

100、ount[shumaguang_number[4]];</p><p>  //P1 = display_bit[4];</p><p>  //delay(1);</p><p>  //P0 = display_count[shumaguang_number[5]];</p><p>  //P1 = display_bit[

101、5];</p><p>  //delay(1);</p><p>  //P0 = display_count[shumaguang_number[6]];</p><p>  //P1 = display_bit[6];</p><p>  //delay(1);</p><p>  //P0 = di

102、splay_count[shumaguang_number[7]];</p><p>  //P1 = display_bit[7];</p><p>  //delay(1);</p><p><b>  }</b></p><p><b>  }</b></p><p&

103、gt;<b>  }</b></p><p>  void password_ret_display() //密碼從設(shè)置顯示子函數(shù)</p><p><b>  {</b></p><p>  unsigned char k;</p><p>  for(k=0;k<10;k++)</p&

104、gt;<p><b>  {</b></p><p>  P0 = display_count[password_number[0]];</p><p>  P1 = display_bit[0];</p><p><b>  delay(1);</b></p><p>  P0 =

105、 display_count[password_number[1]];</p><p>  P1 = display_bit[1];</p><p><b>  delay(1);</b></p><p>  P0 = display_count[password_number[2]];</p><p>  P1 =

106、 display_bit[2];</p><p><b>  delay(1);</b></p><p>  P0 = display_count[password_number[3]];</p><p>  P1 = display_bit[3];</p><p>  delay(1);</p>&l

107、t;p><b>  }</b></p><p><b>  }</b></p><p>  void password_ret()//密碼從設(shè)子函數(shù)</p><p><b>  {</b></p><p>  //unsigned char password_ret

108、_flag;</p><p>  //if(key_number==0x0f)</p><p><b>  //{</b></p><p>  //password_ret_flag=1;</p><p>  //while(password_ret_flag)</p><p><

109、;b>  //{</b></p><p>  //password_ret_display();</p><p>  if((P2&0xf0)!=0xf0)</p><p><b>  {</b></p><p>  ret_password_bit++;</p><

110、;p>  if(ret_password_bit>6)</p><p><b>  {</b></p><p>  ret_password_bit=0;</p><p>  password_ret_flag=0;</p><p><b>  }</b></p><

111、p>  delay(100);</p><p>  switch(ret_password_bit)</p><p><b>  {</b></p><p>  case 1:password_ret_flag=1;break;</p><p>  case 2: password_number[0]=key_nu

112、mber;break;</p><p>  case 3:password_number[1]=key_number;break;</p><p>  case 4:password_number[2]=key_number;break;</p><p>  case 5:password_number[3]=key_number;break;</p>

113、<p>  case 6:password_ret_flag=0;break;</p><p>  default:break;</p><p><b>  }</b></p><p><b>  //}</b></p><p><b>  //}</b>

114、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main() //主函數(shù)</p><p><b>  {</b></p><p>  timr0_init();</p&g

115、t;<p><b>  while(1)</b></p><p><b>  {</b></p><p>  //led_lamp=0;</p><p>  display(0x08);</p><p>  scankey();</p><p>  if(ke

116、y_number==0x0f)</p><p><b>  {</b></p><p>  password_ret_flag=1;</p><p>  while(password_ret_flag)</p><p><b>  {</b></p><p>  scanke

117、y();</p><p>  password_ret();</p><p>  password_ret_display();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key_number==0x0e)<

118、;/p><p><b>  {</b></p><p>  scanf_flag=1;</p><p>  while(scanf_flag)</p><p><b>  {</b></p><p>  scankey();</p><p>  KEY_f

119、uncation();</p><p>  password_display();</p><p>  if(key_number==0x10)</p><p><b>  {</b></p><p>  key_password_compare();</p><p><b>  }&l

120、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  附錄三:系統(tǒng)使用說明書</p

121、><p>  在放置整個系統(tǒng)時不要把電路放置在潮濕的地方、有水的地方、放置在桌面時要把桌面清理干凈、保持桌面干燥,以上幾點均可以造成電路短路,影響到整個系統(tǒng)的工作,因此需要特別注意。</p><p>  整個系統(tǒng)只須要一組+5V 的直流穩(wěn)壓電源供電為整個系統(tǒng)工作。</p><p>  把鍵盤輸入模塊接到單片機的P1 口、數(shù)碼顯示模塊接到單片機的P2 口、報警模塊接到單片

122、機的P.0---P0.3 口即可。注意不要把電源接反。</p><p><b>  鍵盤如下圖所示:</b></p><p>  其中0----9 鍵代表數(shù)字0---9</p><p><b>  X 鍵為顯示密碼鍵</b></p><p><b>  K 鍵為開鎖鍵</b>&

123、lt;/p><p><b>  #鍵為修改密碼鍵</b></p><p><b>  G 鍵為關(guān)閉報警鍵</b></p><p>  D 鍵為清除最高位鍵</p><p><b>  C 鍵為退格健</b></p><p>  設(shè)計后的電路只要按以上方法接線

溫馨提示

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

評論

0/150

提交評論