PIC單片機(jī)電子密碼鎖實(shí)驗(yàn)_第1頁
PIC單片機(jī)電子密碼鎖實(shí)驗(yàn)_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

1、2018 年小學(xué)期單片機(jī)設(shè)計(jì)實(shí)驗(yàn)報(bào)告題目:電子密碼鎖班級(jí):2018211123班學(xué)號(hào):10211048班內(nèi)序號(hào):33學(xué)生姓名:鄭威指導(dǎo)老師:葛老師電子密碼鎖實(shí)驗(yàn)摘要在日常的生活和工作中,住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù) 報(bào)表以及一些個(gè)人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機(jī)械式鑰 匙開鎖,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打 折扣。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)日常生活中的安全保險(xiǎn)器件的要求越 來越高。為滿足人們對(duì)鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼 鎖應(yīng)運(yùn)而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點(diǎn)。本次我 們制作的電子密碼鎖僅

2、當(dāng)用戶輸入正確的密碼后才能進(jìn)行下一步操作,達(dá)到了 保密的要求。除此之外,這款可以多次修改密碼而且具有報(bào)警功能的電子密碼 鎖還有一個(gè)附加功能:測(cè)溫計(jì)基于以上思路,本次設(shè)計(jì)使用Microchip公司的PIC32實(shí)現(xiàn)一基于單片 機(jī)的電子密碼鎖的設(shè)計(jì),其主要具有如下功能:1)密碼通過鍵盤輸入,若密碼正確,則將鎖打開。2)報(bào)警、鎖定鍵盤功能。密碼輸入錯(cuò)誤數(shù)碼顯示器會(huì)出現(xiàn)錯(cuò)誤提示,若 密碼輸入錯(cuò)誤次數(shù)超過3次,蜂鳴器報(bào)警并且鎖定鍵盤。第第一行為低第二行為低第一行為低第二行為低return15.returnll第四行為低行線列線拉高Telsereturn14第列線設(shè)為輸出tui行線設(shè)為輸入re_turn10

3、第四行為低return3 i檢測(cè)是否有按鍵液晶屏按下臺(tái)化測(cè)溫模塊按下C芒*Readtemperature(3.判斷按下的鍵值Set_code(按下II. .I-.1%USDIS_iCOde(fX else第一列拉低,其他苑為高return13第三行為低returnreturn。第四行為低retur檢測(cè)行線電第四列拉低,其他列為高第一行為低第二行為低第二列拉低,其他列為高else(4開鎖子程序user_code(流returnm=0第一行為低return12第三行為低return5第二行為低return9第四行為低return12)LCD顯示模塊流程圖廠m=1(3DS18B20測(cè)溫模塊流程圖:(

4、5修改密碼子程序(6密碼識(shí)別子程序按下確定鍵密碼識(shí)別子程m=identify(復(fù)位84占 ( 流 程圖:Re按下退出鍵云輸入 0-9 數(shù)字鍵(6密碼設(shè)置子函數(shù)流程圖:按下刪除鍵If right=2討討If right=1再次輸入一遍1設(shè)判斷密性鍵盤扌輸入密正確按下退岀鍵 Ereturn序刪除鍵復(fù)位顯示屏輸出F5return *蜂鳴器報(bào)警Xright=0timesrs=0。DB0=(com%2。DB1=(com/2%2。DB2=(com/2/2%2。DB3=(com/2/2/2%2。DB4=(com/2/2/2/2%2。DB5=(com/2/2/2/2/2%2。DB6=(com/2/2/2/2/

5、2/2%2DB7=(com/2/2/2/2/2/2/2%2 delay_ms(150。E=1。delay_ms(150。E=0。/*LCD寫數(shù)據(jù)*/void write_date(uchar daters=1。DB0=(date%2。DB1=(date/2%2。DB2=(date/2/2%2。DB3=(date/2/2/2%2。DB4=(date/2/2/2/2%2。DB5=(date/2/2/2/2/2%2。DB6=(date/2/2/2/2/2/2%2DB7=(date/2/2/2/2/2/2/2%2 delay_ms(150。E=1。delay_ms( 1 50。E=0。delay_ms

6、(150。/*LCD初始化*/。/顯示模式設(shè)置。/關(guān)閉顯示。/顯示清屏。/顯示光標(biāo)移動(dòng)設(shè)置。/顯示清屏:數(shù)據(jù)指針清零;所有顯。/數(shù)據(jù)指針初始化二矩陣式鍵盤 用行列掃描法判斷鍵盤是否有按鍵按下以及按鍵的位置,具體掃描過程為:四 根列線外部拉高,然后將第一根列線拉低為低電平,其他三根列線還為高電 平,然后分別檢測(cè)四根行線的電平狀態(tài),若第一行為低電平說明按下了F鍵, 若第二行為低電平說明按下了B鍵,若第三行為低電平說明按下了8鍵,若第 四行為低電平說明按下了4鍵,然后將四根列線拉高,然后只將第二根列線拉 低,同理掃描四根行線,這樣就能把所有鍵都掃描出來。以下是掃描第一列四個(gè)鍵的代碼。line1=0。

7、line2=1。line3=1。line4=1。delay_ms(100。if(row1=0delay_ms(50。if(row1=0while(!(row1。return 15。if(row2=0delay_ms(50。if(row2=0while(!(row2。return 11。if(row3=0delay_ms(50。if(row3=0while(!(row30return 80voidInit_LCD(E=0。write_com(0 x38delay_ms(150。write_com(0 x08delay_ms(150。write_com(0 x01delay_ms(150。writ

8、e_com(0 x06delay_ms(150。write_com(0 x0c示清零 if(row4=0delay_ms(50。if(row4=0 while(!(row4。return 4。三.DS18B20測(cè)溫模塊DS18B20模塊測(cè)溫功能的實(shí)現(xiàn)主要通過向其讀寫一些指令來完成溫度轉(zhuǎn) 換,溫度讀取等功能來實(shí)現(xiàn)的。而要實(shí)現(xiàn)這些功能,主要包括初始化,以及讀寫操作來完成。(1)初始化18B20的初始化操作的時(shí)序圖如下諛!1直:rl2- Mt ILL PJ W U帕-TDS18B20初始化時(shí)序主機(jī)首先發(fā)出一個(gè)480-960微秒的低電平脈沖, 然后釋放總線變?yōu)楦唠娖剑?并 在隨后的480微秒時(shí)間內(nèi)對(duì)總

9、線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說明總線上有器 件已做出應(yīng)答,若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答。作為從器件的DS18B20在一上電后就一直在檢測(cè)總線上是否有480-960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備,若沒有檢測(cè) 到就一直在檢測(cè)等待。對(duì)DS18B20的寫和讀操作 接下來就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫0和寫1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20賣取0或1的過程,因此首先 要搞清楚主機(jī)是如何進(jìn)行寫0、寫1、讀0和讀1的。寫周期最少為60微秒

10、,最長不超過120微秒,寫周期一開始作為主機(jī)先把 總線拉低1微秒表示寫周期開始,隨后若主機(jī)想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束,然后釋放總線為高電平;若主機(jī)想寫1,在一開始拉低宅制需DflilMnun7 存在的沖刖。 m總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而作為從機(jī)的DS18B20則在檢測(cè)到總線被拉低后等待15微秒然后從15卩s到45卩s開始對(duì)總 線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。DS18B20寫 操作對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程,讀時(shí)序是從主機(jī)把 單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS

11、18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測(cè)到總線被拉低1微秒后,便開始送出數(shù) 據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束;若要送出1則釋放總線為高電平。主機(jī)在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總 線為低電平則確認(rèn)為0,采樣期內(nèi)總線為高電平則確認(rèn)為1,完成一個(gè)讀時(shí)序過 程,至少需要60卩s才能完成。i J瑾封JSii時(shí)畫甩站瞬進(jìn)”廣削*關(guān)DS18B20讀操作四.調(diào)試過程及相關(guān)問題一.硬件調(diào)試硬件調(diào)試在初期我們主要是在面包板上完成的,在面包板上實(shí)現(xiàn)之后才開始焊 板子,但是后面發(fā)現(xiàn)焊完板子之后又出現(xiàn)新

12、的問題,于是又要重新開始調(diào)試。 以下是硬件調(diào)試過程中出現(xiàn)的一些問題:(1在調(diào)節(jié)LCD的時(shí)候,在將程序正確的燒入實(shí)驗(yàn)板后,發(fā)現(xiàn)LCD顯示字符時(shí)出現(xiàn)了問題,顯示屏本來該顯示B,卻顯示的是C,本來該顯示D,卻顯示成E,發(fā)現(xiàn) 每隔一個(gè)字符就顯示錯(cuò)誤一個(gè)字符。后來經(jīng)過仔細(xì)分析,查找字符碼和字符關(guān) 系對(duì)照表,發(fā)現(xiàn)字符碼的最后一位始終是1,即本來是0的也變成了1,DBO線 上的信號(hào)沒有給到液晶屏上。于是發(fā)現(xiàn)時(shí)連接顯示屏DBO和單片機(jī)的連線斷了,導(dǎo)致顯示屏DBO上懸空始終為高電平。最后換了一根線后顯示正常。(2在初期我們是用插面包板的方式調(diào)節(jié)顯示屏的,在面包板上我們把顯示屏和 鍵盤模塊調(diào)好之后,我們將其焊到板

13、子上,發(fā)現(xiàn)顯示屏顯示字符又不正常了, 開始以為又是連線的問題,在反復(fù)拆連了電路之后還是沒用,最后發(fā)現(xiàn)是LCD插座有一個(gè)引腳虛焊,沒有焊牢,重焊了之后才正常(3到最后快做完的時(shí)候,發(fā)現(xiàn)顯示屏總是不穩(wěn)定,有時(shí)候稍微一碰它就顯示亂 碼,必須要用力壓著單片機(jī)才能穩(wěn)定下來。最后發(fā)現(xiàn)這是因?yàn)榕c單片機(jī)相連的 針座與單片機(jī)接觸不良,換了一個(gè)針座后才穩(wěn)定了。我想針座在一開始做實(shí)驗(yàn) 時(shí)沒有接觸不良,到最后為什么會(huì)接觸不良?后來覺得應(yīng)該是電路拆連了太多 遍,才會(huì)出現(xiàn)這種情況。這也提醒我下次做實(shí)驗(yàn)時(shí)不要盲目的拆電路,要找到 原因后對(duì)癥下藥,否則會(huì)對(duì)電路產(chǎn)生不好的影響(4在調(diào)試18B20時(shí),一開始連好電路之后,發(fā)現(xiàn)卻始

14、終顯示的溫度是0度,開始以為是程序的問題,修改了一天程序后,發(fā)現(xiàn)還是沒有改觀,后來搭檔在 檢查電路的時(shí)候發(fā)現(xiàn)測(cè)溫電路沒有外接電源,接上后就正確顯示了溫度。這也 更加告訴我以后一定要注意一些細(xì)節(jié)問題,否則會(huì)給實(shí)驗(yàn)造成一些不必要的困 難,費(fèi)時(shí)費(fèi)力。二.軟件調(diào)試軟件調(diào)試主要是通過設(shè)置斷點(diǎn),結(jié)合硬件一起進(jìn)行調(diào)試。有時(shí)候也會(huì)運(yùn)用一些 小技巧來幫助調(diào)試,比如要看一個(gè)語句有沒有執(zhí)行,可以在語句后面加一句讓 單片機(jī)上的RD0亮的語句,這樣可以通過看燈亮了沒有就可以判斷語句執(zhí)行了 沒有,以下是軟件調(diào)試時(shí)遇到的問題1)調(diào)鍵盤時(shí),一開始鍵盤調(diào)出來之后,發(fā)現(xiàn)存在一點(diǎn)問題,就是如果按一個(gè) 鍵的時(shí)間太久了會(huì)顯示出來好多個(gè)

15、字符,后來在程序里加了一個(gè)防抖動(dòng)的程 序,問題得到了解決。2)鍵盤一開始出不來,后來改來改去發(fā)現(xiàn)改哪都不管用,最后發(fā)現(xiàn)在檢測(cè)按 鍵函數(shù)之間的延時(shí)函數(shù)沒有改動(dòng)過,就嘗試去改動(dòng)了延時(shí)的時(shí)間,驚喜的發(fā)現(xiàn) 竟然好了,后面調(diào)18B20時(shí)候也是如果延時(shí)時(shí)間有的不對(duì)的話也出不來,時(shí)間 合適才能出來?,F(xiàn)在覺得延時(shí)這個(gè)東西其實(shí)真的很重要,剛開始的時(shí)候覺得延 時(shí)可有可無,現(xiàn)在才知道任何一個(gè)細(xì)節(jié)都是很重要的3)一開始寫程序沒有仔細(xì)考慮,把所有模塊的代碼都寫在一個(gè)程序里,因此 看起來很擁擠,很不清晰,于是到后來我們把各個(gè)模塊分別各自寫在一個(gè)頭文 件里,把代碼模塊化,這樣顯得清晰了很多五實(shí)驗(yàn)總結(jié)及心得體會(huì)這次實(shí)驗(yàn)是我第

16、一次接觸單片機(jī),最初剛選好題目時(shí),我們感覺無從下手。因 為之前完全沒有學(xué)過單片機(jī)方面的知識(shí)。在和搭檔討論了之后,我們決定先借 幾本有關(guān)單片機(jī)的書籍仔細(xì)研讀,熟悉了單片機(jī)編程和硬件結(jié)構(gòu)方面的知識(shí), 并且查閱了大量的資料,終于對(duì)單片機(jī)有了一個(gè)大概的認(rèn)識(shí)。然后我們按照老 師的指導(dǎo)開始最基礎(chǔ)的LCD模塊和鍵盤模塊。每天一步一步的邊學(xué)習(xí)單片機(jī)的 知識(shí),邊進(jìn)行程序的編寫,慢慢的對(duì)整個(gè)過程熟悉起來,對(duì)軟硬件的調(diào)試也慢 慢開始得心應(yīng)手。心里也沒有剛開始的那種茫然不知所措和恐懼感。這次實(shí)驗(yàn) 也進(jìn)一步的讓我們體會(huì)到做任何事情一定要一步一步腳踏實(shí)地的慢慢來,雖然這幾周天天都泡在實(shí)驗(yàn)室里,到最后確實(shí)感覺有點(diǎn)疲勞,但總算功夫不負(fù)有心 人,到最后總算有所斬獲。通過這次實(shí)驗(yàn)也讓自己對(duì)單片機(jī)有了一個(gè)直觀深入 的了解,也算是完成了單片機(jī)的入門工作。我發(fā)現(xiàn)如果光看書的話,好多東西 看完之后就會(huì)忘記,但是通過實(shí)驗(yàn)之后就會(huì)記得很牢固,所以有時(shí)候?qū)嶒?yàn)其實(shí) 是一個(gè)很好的老師。在實(shí)驗(yàn)過程中說實(shí)話會(huì)碰到很多問題,很多時(shí)候因?yàn)橐稽c(diǎn)小問題,比如說連線 斷了,或者是沒接電源,或者是改了代碼之后忘了改引腳,從而導(dǎo)致出現(xiàn)問題 而浪費(fèi)很多時(shí)間,很多其實(shí)是可以避免的。這也從側(cè)面映襯出了細(xì)心的重要 性。其次,在實(shí)驗(yàn)中經(jīng)常出現(xiàn)反復(fù),比如LCD在調(diào)好之后又出現(xiàn)異常,需要耐 心

溫馨提示

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

評(píng)論

0/150

提交評(píng)論