基于單片機的電子密碼鎖的設計與制作_第1頁
基于單片機的電子密碼鎖的設計與制作_第2頁
基于單片機的電子密碼鎖的設計與制作_第3頁
基于單片機的電子密碼鎖的設計與制作_第4頁
基于單片機的電子密碼鎖的設計與制作_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ThedesignofmatrixkeyboardandLCDdisplaybasedonMCUAbstractThedevelopmentofmicroelectronicstechnologyandindustrialmeasurerequirementbringagoodopportunityfordevelopmentandresearchsystem,whichmakesitabroadprospects.Theequipmenthastheadvantagesofsmallsize,singlepowersupplyandavarietyofoutputvoltageleadsithasaspecialmodule.Throughtheanalysisofthehardwarestructure,wecansummarizeseachmoduleneeds.Forexample,weoftengothroughthekeystorealizethecontroloftheelectronicdevice.Smalltowatchmobilephone,totheTVcomputer,toavarietyofcomplexinstruments,allneedtorealizevariousoperationsthroughthebuttons.Thisdesignisanimportantpartofstepforthefurtherresearch,usingbuttonstocontrolthedisplay,includesomemoduleslikeLCD1602liquidcrystaldisplay,4*4matrixkeyboard,STC89C52single-chipmicrocomputerandotherchips.CombinewiththeProteussoftware,thesimulationresultsaredisplayedontheLCDin1602typeofdata.KEYWORDS:AT89C52single-chip;LCD1602liquidcrystaldisplay;4*4matrixkeyboard;Integratedinfraredemittingandreceiving基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第5頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第5頁。1緒論1.1課題設計背景及其意義近些年來,隨著改革開放的不斷深入,科研教育事業的不斷進步,使得電子行業得到了快速發展,人們的精神生活得到很大滿足,許多家庭中也已購置各種各樣昂貴的家電產品、首飾等。然而對于這些價值不菲的東西,給了我們很大的擔憂,除了增強平時的防盜意識外,我們又該如何采取一些手段或運用科技技術來防止物品被盜呢?就拿我們生活中的一部分,比如門禁,保險柜等等方面。是的,傳統的機械鎖靠用鑰匙或靠轉動數字的方式已不能滿足需求,軟硬件結合的有報警功能的電子密碼鎖解決了我們的需求。技術層面已能解決一些問題,但是電子密碼鎖相對昂貴的制造價格,使其在市場上的推廣受阻,人們無法接觸到這類產品。假若再設計生產一種價格低廉、安全系數高、穩定可靠的電子類密碼鎖,則其推廣度必然會提升,在防盜和保證安全領域必然會發揮更加有效的作用。電子密碼鎖采用軟件硬件相結合的方式進行設計,通過軟件的編程,確定每個按鍵所代表的功能,鍵入正確的密碼后通過信號的傳遞來控制機械動作,從而完成系統預設的功能。伴隨著國民生活水平的不斷提高,對科技的要求也越來越高,小到錢包、保險柜,大到安全門鎖以及其他一些安全防范的東西,追求科技先進的同時,也追求其物美價廉,如何均衡這些既能滿足民眾要求,使其普遍被人們認可又物美價廉呢,芯片技術的發展很好的解答了這個問題。隨著大規模集成電路技術的發展與進步,尤其是單片機的問世,結合硬件電路的設計,出現了帶微處理器的智能化電子密碼鎖,它除了具有電子密碼鎖的功能外,還可以引入智能化管理、模擬分析系統等功能,從而使密碼鎖具有很高的安全性、可靠性,且其成本低廉、功耗小、美觀上檔次、易學易操作等優點,可被人們廣泛認可,歡迎度日益增加。目前這一技術普遍被人們接受的同時,其技術還在不斷更新優化,功能不斷強大,可滿足不同需求[6]。1.2紅外遙控技術的發展與現狀基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第6頁。自1800年英國天文學家F·W·赫歇爾首次發現紅外輻射后,世人對紅外技術的研究從沒有停止過,也正是他們在這一領域不斷的深入研究,才使得紅外技術運用于各行各業,我們的生活也變得多姿多彩!紅外元件種類繁多,每一種還有各個型號的器件,如紅外焦平面器件有短波MCT焦平面、Insb紅外焦平面列陣器件、量子阱光導體焦平面列陣,紅外探測器件有光電導探測器、光伏導探測器,紅外發射與接收器件1838T、IR928-6C等,紅外熱敏元件有NTC熱敏電阻、熱敏傳感器,紅外光學系統等等廣泛步入了商業化,使其在工業化工,軍事航空航天,通信領域,科技實驗,醫療衛生,生活交通與生活學習等領域普遍運用。到了60年代初,發達國家逐漸開始探索,想把遙控技術運用在人們的生活周圍中,但科研實驗與技術環境等還沒有達到條件,其進度受到了很大限制。到了70年代后,大規模的集成電路產品被推廣,具有一定功能的芯片被開發了出來,此時的遙控技術慢慢的完善,實現了從有線到無線,從振動到一體化紅外線,其無線裝置也由電磁波傳輸信號到紅外媒介傳輸信號,信息干擾情況得到了良好的解決,傳輸的信息量也大幅度的增加。隨著技術的日益更新與成熟,多功能遙控器已成為當今時代的主流[8]。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第6頁。紅外遙控技術是一種非接觸且通過特定的電路實現遠程自動控制,具有獨立性、遠距離穿越障礙、抗電磁干擾、信息傳輸穩定可靠,功耗低,成本低等顯著優點,其模塊簡單技術成熟,與計算機結合后,實現微機自動識別和現代安全管理措施為一體,涉及電子,機械,光學,計算機技術,通訊技術等諸多新技術,是解決重要部門出入口實現安全防范管理的有效措施。近幾年,紅外遙控技術得到了迅猛發展,人們在追求精神生活同時需要物質水平的提高,人們在紅外遙控技術領域的要求的是更加智能化,功能強大化,更加穩定化、小型化[13]。目前紅外遙控技術的進步,使得一些項目在一些極其惡劣環境下,也能滿足作業,而人們可避免受到傷害。1.3課題設計目標基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第7頁。20世紀80年代后,隨著電子密碼鎖專用集成電路的出現,電子密碼鎖的體積得到了大幅度到的縮小,穩定性及可靠性能得到了很大的提高,成本方面也得到了減幅,使其被廣大普通人民所接受,推廣度日益提高。但在我國電子密碼鎖的技術整體水平尚處于國際上70年代左右,市場上還是普遍使用傳統機械鎖,分析原因不外乎電子密碼鎖的成本遠高于傳統機械鎖,人們對安全防范的需求是很高,我國的現代化建設也需要科技革新替代傳統鎖,如何實現電子密碼鎖的成本更低,技術更優,使用更加普遍,老百姓也用得起成為我這次設計的動力與目的。希望通過我以及以后更多人的不斷努力,使電子密碼鎖在我國也能得到廣泛應用。主要實現功能如下:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第7頁。1.初始化,LCD1602會提醒顯示“Welcometouse!”,此時按下輸入鍵,LCD1602會提醒“ControlPassword”,要求你輸入設定密碼;2.密碼通過鍵盤輸入,若密碼輸入正確,則將鎖打開,LCD1602會提醒顯示“DataEntryOK”,通過REDLED燈亮以及繼電器的動斷辨別,此時按下停駐/關閉,按一下會停止,按兩下立即停止;3.報警、鎖定鍵盤功能,密碼輸入錯誤或單次輸入密碼時間超過30S后,LCD1602會提醒錯誤顯示“DataEntryError”,蜂鳴器報警三聲,若連續三次鍵入密碼錯誤或輸入密碼時間超時,蜂鳴器報警并且鎖定鍵盤;4.紅外遙控部分,0-9數字鍵:用于數字輸入,CH-用來輸入:輸入密碼,CH鍵用來確認:用于確認輸入完成,》||鍵用來表示停駐/關閉:用于在開鎖后長時間停止上鎖,和快速關鎖,》》鍵用來表示改密:用于修改密碼,《《鍵用來表示刪除:用于在輸入數字的時候刪除前一位數據,CH+鍵用來表示退出:退出當前狀態回到初始界;基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第8頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第8頁。2系統方案論證與選擇2.1核心電路設計方案的論證與選擇方案一:利用單片機為核心的軟硬結合電路設計方案選用單片機芯片作為系統的核心部件,實現控制與處理的功能。單片機具有功能強大、容易使用、速度快、編程容易等優點。利用單片機內部的隨機存儲器(RAM)和只讀存儲器(ROM)及其引腳資源[2],外接液晶顯示LCD1602實現各部分功能的顯示,鍵盤和紅外遙控實現數據的傳輸與處理功能,密碼錯誤模塊實現數據的處理傳輸與比對,基本上能實現設計指標;方案二:利用數字電路為核心的設計方案采用兩個74LS112JK觸發器構成雙JK觸發器的數字邏輯電路作為密碼的檢測電路,執行電路是一塊555單穩態電路實現,將密碼保存在JK觸發器中,然后與輸入密碼利用比較器比對,判定兩次輸入數據是否相同。采用數字電路設計的方案好處就是設計簡單,但控制的準確性和靈活性差[14]。綜合比較方案一與方案二后,方案一難度較大,但其準確性較高,推廣性潛力較大,方案二準確性與靈活性普遍較差,因此我采用了以STC89C52單片機為核心的軟硬件結合的電路,實現這次電子密碼鎖的設計方案[7]。2.2密碼輸入方式的選擇方案一:矩陣鍵盤輸入識別由各按鍵組成的矩陣鍵盤每條行線和列線都對應一條I/O口線,鍵位設在行線和列線的交叉點,當一個鍵按下就會有某一條行線與某一條列線接觸,只要確定接觸的是哪兩條線,即哪兩個I/O口線,就可以確定哪一個鍵被觸動。行線設計成上拉口線,初始時被置高電位,列線懸空,初始置低。通過不斷讀行線口線,或者中斷方式觸發鍵位掃描。當發現有鍵按下,將列線逐一置低,其他列線置高,讀行線口線。當某條列線置低時,某條行線也被拉低,則確定這兩條線的交點處的按鈕被按下。每個按鍵都可通過程序賦予功能,從而完成密碼識別,簡單易行的硬件電路使其成本的費用得到降低。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第9頁。方案二:指紋輸入識別基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第9頁。由于人體的身體特征具有不可復制的特點,這給了科研人員一個靈感,如果能夠設計出來,那安保就絕對的安全。其實指紋識別技術主要包含了一下幾個功能:采集指紋圖像、識別整體特征、存儲數據和對比判定。通過采集指紋圖像設備采集特定指紋的圖像,再對原始圖像進行初步的處理整合,使之輪廓清晰,使用軟件建立這一區域的坐標,對指紋的輪廓取點建立指紋的特征數據。一般手指上約具有70個節點,所以在這種情況下會產生大約490個數據。然后我們通過計算機模糊比較的方法,把采集識別的指紋與特征數據存儲的指紋進行對比,計算它們的相近程度,可能一次會失敗,需要再次比較,最終得到兩個指紋的匹配結果,再由系統判定出輸入的指紋是否是本人。由于在實際生活中,人們不可避免的受傷,使得指紋經過一些創傷或手術后改變或者破壞,不是最穩定可靠的判定身份手段。綜合比較方案一與方案二,還有考慮其成本的費用,成本太高難以被人們接受,使其難以得到推廣,故本設計采用方案一。2.3紅外編碼和發射模塊方案一:專用芯片解決方案。專用紅外編碼芯片目前生產廠商較多,如飛利浦、NEC、三洋、日本三菱公司等,專用紅外編碼芯片如SAA3010、M50426AP、PT2262、BL9148、ZD6631等等,其技術成熟,編碼多,電壓低,性能好,無需自己編制編碼,與接收單片機解碼配合也很容易,性能穩定,一般集載波振蕩、編碼、發射于一體,具有很強的抗干擾能力,外圍電路簡單,使用很方便,而且價格低廉,但其應用靈活性較差,其內部編碼出廠后已經固化,無法修改內部的數據,不適用于經常需要變更數據的場合;專用芯片幾乎都是面向指令型的編碼遙控方式,傳輸效率較低;大多數的專用芯片的內部編碼及技術數據已經被廣泛傳播。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第10頁。方案二:微處理器與專用芯片組合解決方案,如圖2.1所示。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第10頁。圖2.1PT2262紅外編碼發射電路該方案由微處理器與專用編碼芯片PT2262組合完成編碼工作,載波產生由MC4011與38KHZ晶振一起構成,振蕩產生38KHZ方波[15]。PT2262的功能是讓待發射數據以6位為一體的方式并行發出。PT2262把6位并行數據轉換成串行數據,減輕編程負擔,使傳輸速度更快。PT2262的A6/D0~A11/D5共6個復用端口全用作數據口,PT2262自動把微處理器送出的6位數據變成串行數據從Dout口發出。該方案可由微處理器任意制定密碼位數、編碼解碼算法和同步信號,大大提高了數據保密度。其缺點是由于使用了PT2262,增加了硬件成本和電路復雜性。方案三:微處理器單獨解決方案。電路如圖2.2所示:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第11頁。圖2.2軟件編碼發射電路基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第11頁。該方案使用微處理器的I/O口直接產生38KHZ已調波,驅動紅外發光二極管,發射紅外數據。38KHZ方波由CPU的定時器產生或由軟件編程產生。紅外編碼工作由軟件完成,因此,紅外編碼方案可以任意設計,外部只需配接非常簡單的硬件電路,大大降低了了電路的復雜性,有利于降低成本,減小遙控器的體積。由于使用軟件編碼方案,占用了CPU的一定的時間,CPU處理速度受到一定的影響,但是,對于遙控器這一類功能比較單一的系統來說,處理任務比較少,根本影響不了CPU的處理效率,僅僅是增加了軟件編程的負擔[3]。綜合比較方案一、方案二和方案三,方案三既可滿足題目要求,電路又非常簡單,硬件成本又很低,僅僅是增加了軟件的編程負擔,使得紅外編碼非常靈活,故本設計采用方案三。2.4紅外解碼與接收模塊方案一:分立元件解決方案,電路如圖2.3所示。圖中RD1為紅外接收管;R3、R4,VT1構成反相放大器;VT2、R5、C2構成濾波器,濾掉38KHZ的高頻載波;R6、R7、VT3構成整形電路[1],電路如圖:圖2.3低電壓紅外接收電路將濾波后的波形處理為較好的方波;C1、C3為耦合電容;R2為限流電阻,當接收到較強的信號是保護VT1。該方案最大的優點是供電電壓比較低,可用兩節電池3V電壓供電。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第12頁。但是,由于電路使用分立元件構成,其穩定性和抗干擾能力不高,影響紅外數據傳輸的準確性。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第12頁。方案二:集成電路解決方案,電路如圖2.4所示。該方案使用一體化紅外接收器,集紅外接收和放大于一體,不需任何外接元件,就能完成從紅外接收到輸出與TTL電平兼容的所有工作,而體積和普通的塑封三極管大小一樣。圖2.41838T接收電路當紅外線發射器發出的信號經空間傳送到1838T時,它內部的PIN紅外線接收管將紅外線轉換為電信號,該信號經選頻放大、解調后由1腳輸出與TTL電平兼容的電信號,該信號可以直接送入微處理器進行處理。1838T的輸出波形如圖2.5所示。當接收到頻帶內的紅外信號時,1838T接收器會輸出低電平,否則數據高電平,從而“將時斷時續”的紅外信號解調成原來的連續方波信號。圖2.5(a)已調制紅外信號(b)1838T輸出信號1838T的優點是穩定性好,抗干擾能力很強,外圍電路非常簡潔,成本又不高,適用于各種紅外遙控和紅外數據傳輸,是替代其它紅外接收放大器的理想元件。而且它的工作電壓是2.7~5.5V,有效傳輸距離可達15M,是一款性價比較高的紅外一體化接收頭。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第13頁。綜合比較方案一與方案二,方案二采用集成電路的方式比較簡單,容易實現且硬件成本很低,通過軟件編程使得紅外編碼非常靈活,滿足本設計的要求,故采用方案方案二。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第13頁。3系統總體設計與實現3.1系統總體設計系統總體設計框圖如圖3.1所示:AT24C02掉電存儲AT24C02掉電存儲串口顯示電路矩陣鍵盤控制STC89C52單片機輸入錯誤鎖定鍵盤延時報警控制電路指示電路開鎖控制電路修改密碼子程序退出子程序紅外發射與接收模塊 圖3.1系統總體設計框圖3.2系統總體原理圖系統總體原理圖如圖圖3.2所示。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第14頁。圖3.2系統總體原理圖基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第14頁。4系統硬件構成4.1電源輸入模塊密碼鎖主控制部分電源需要用5V直流電源供電,把頻率為50HZ、有效值為220V的單相交流電壓轉換為幅值穩定的5V直流電壓。其主要原理是把單相電經過電源變壓器、整流電路、濾波電路、穩壓電路轉換成穩定的直流電壓。由于輸入電壓為電網電壓,一般情況下所需直流電壓的數值和電網電壓的有效值相差較大,因而電源變壓器的作用顯現出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉換成直流電壓。由于經橋式整流電路整流后的電壓含有較大的交流分量,會影響到負載電路的正常工作。需通過低通濾波電路進行濾波,使輸出電壓平滑穩定。穩壓電路的功能是使輸出直流電壓基本不受電網電壓波動和負載電阻變化的影響,從而獲得穩定性足夠高的直流壓[12]。本電路使用充電器解決電源穩壓問題。內部電路如圖4.1所示:圖4.1電源輸入模塊內部電路圖4.2單片機最小系統模塊基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第15頁。由STC89C52復位電路、時鐘產生電路組成[16],原理圖如4.2所示:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第15頁。圖4.2單片機最小系統電路原理圖4.3LCD1602顯示模塊為了使得本次設計的顯示效果得到提高,本設計的顯示部分使用液晶顯示器LCD1602代替普通的數碼管來完成[4]。顯示器開始時處于初始化狀態,LCD1602液晶顯示屏上顯示“Welcometouse!”,當需要對密碼鎖進行開鎖時,按下鍵盤上的輸入按鍵后利用鍵盤上的數字鍵0-9輸入密碼,每按下一個數字鍵后在顯示器上顯示一個“*”,輸入不超過6位就顯示多少個“*”。當密碼輸入完成時,按下確認鍵,如果輸入的密碼正確的話,LCD1602液晶屏顯示“DataEntryOK”,否則LCD1602液晶顯示屏會顯示“DataEntryERROR”,通過LCD1602液晶顯示屏的顯示以及一些外部電路LED亮滅顯示,繼電器的動斷聲音提示,使得我們可以清楚的判斷出電子密碼鎖所處的狀態。顯示部分部分引腳接口如下圖4.3所示:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第16頁。圖4.3顯示電路原理圖基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第16頁。4.4AT24C02數據存儲模塊用E2PROM芯片AT24C02來存儲密碼,特性如下:(1)寫保護功能當WP為高電平時進入寫保護狀態(2)8腳DIPSOIC或TSSOP封裝(3)低功耗CMOS技術(4)與400KHZI2C總線兼容(5)2.5V到5.5V工作電壓范圍(6)頁寫緩沖器(7)自定時擦寫周期(8)1,000編程/擦除周期AT24C02數據存儲芯片是一個串行CMOS電可擦可編程只讀存儲器,內部含有256*8位字節,具有2.5~5.5V的寬工作電壓、可以在電腦上或專用設備上進行大于10000次的擦除已有信息,重新編程,具有小于10ms的寫入速度、數據不易丟失、體積小,較強的抗干擾能力等特點[9]。AT24C02有一個16字節頁寫緩沖器。該器件通過IC總線接口進行操作,有一個專門的寫保護功能。其管腳功能如下:1.AT24C02串行時鐘(SCL)輸入管腳用于產生器件所有數據發送或接收的時鐘;2.AT24C02雙向串行數據/地址(SDA)管腳用于器件所有數據的發送或接收,SDA是一個開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進行線或;3.A0、A1、A2輸入引腳用于單個或多個器件級聯時設置器件地址,主器件和從器件都可以作為發送器或接收器,每個A0、A1、A2都有兩種電平狀態,既高電平或低電平狀態,當這些腳都是地電位時默認值為0,此時級聯數為0,單個AT24C02進行工作,當這些引腳都是高電位時可以級聯2*2*2個AT24C02器件,這時也是處于最大器件可級聯狀態;基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第17頁。4.如果WP引腳連接到Vss或懸空此時只允許器件進行正常的讀/寫操作,當WP管腳連接到Vcc(1.8~6.0V)時,所有的內容此時不能寫操作只允許讀操作;基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第17頁。圖4.4密碼存儲電路原理圖4.5矩陣鍵盤輸入模塊由于STC89C52單片機芯片只有32個I/O接口[5],其他的模塊已占用較多的I/O口,很難再安排16個I/O接口供按鍵所用,考慮到這次設計按鍵數量較多,不適宜用獨立式鍵盤。此時我采用了4*4矩陣鍵盤的輸入方法,只占用8個I/O接口的使用,將按鍵的排列形式定為矩陣形式,每條水平與垂直線交叉但不直接連通,再每一行每一列安排4個按鍵進行連接。軟件設計進行時,先把全部的行線置一個高電平,檢測列線的電位狀態,只要有一列的電平為低電位,則表示該行有按鍵按下,既在某一時刻只讓一列為低電平,通過坐標定位到按下的按鍵,按這一方法依次循環進行掃描。在確定好按鍵位置后,通過軟件的設計編程賦值,使每個按鍵有著自己的功能。除了0-9十個數字鍵外,其余的6個鍵賦予其擴展功能分別為:退出、刪除、關閉、輸入、確認。單片機引腳接法按總線如圖4.5所示:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第18頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第18頁。圖4.5鍵盤輸入原理圖4.6紅外遙控鍵盤輸入模塊模塊接口說明

a.VCC外接3.3V-5V電壓(可以直接與5V單片機和3.3V單片機相連)

b.GND外接GND

c.IN外接單片機I/O口,I/O接口外接10K上拉電阻對紅外遙控器進行理論測試距離在5-8米左右,但實際應用時取決于你使用時的周圍環境因素以及中間阻擋物(例如隔膜、玻璃、阻礙物或其他材料阻擋),接收頭采用1838T,帶電源工作指示燈,可接收38KHZ頻率任何遙控編碼的數據,實物圖如圖4.6所示:圖4.6紅外遙控鍵盤輸入模塊4.7紅外接收與發射模塊4.7.1紅外接收模塊基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第19頁。紅外信號收發系統的管腳分布如圖4.7所示,紅外接收與發射電路通常被廠家集成設計在一個元件中既一體化紅外接收頭。它包含了紅外線信號的接收、整形、放大,在沒有其他外接元件時,就能很好的實現信號無論從接收到輸出,與外部電路相匹配的電平,例如在沒有接收到紅外信號時為高電平,收到紅外信號基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第19頁。時為低電平,它適合于各種紅外線遙控和紅外線數據傳輸。1腳是輸出,其電平與TTL兼容,2腳、3腳分別為接地和電源紅外接收頭1838T的主要參數如下:工作電壓:4.8~5.3V

工作電流:0.6~1.5mA

距離:5-8M接收頻率:38KHZ

角度:±35°峰值波長:980nm靜態輸出:高電平(接近工作電壓)輸出低電平:≤0.4V

圖4.71838T引腳圖1838T紅外接收模塊內部電路包括高速高靈敏度紅外監測PIN光電二極管,放大器,限副器,帶通濾波器,積分電路,比較器等。當紅外監測PIN光電二極管收到紅外信號時經放大器和限幅器進行整合,把信號加載到38KHZ的負載波上。后續再通過解調電路與積分電路后進入比較器,比較器通過高低電平的輸出,使得發射端的信號進行還原。為了使得接收端接收的信號沒有其他干擾,紅外線接收器借助一種內部金屬屏蔽和智能自動增益控制電路,對太陽或其他光源設備發出的光源信號的干擾作用進行抑制,從而達到這種靈敏度。注意輸出的高低電平和發射端是反相的,這樣的目的是為了提高信號接收的靈敏度。1838T紅外接收頭內部電路如圖4.8所示。圖4.81838T紅外接收頭內部電路4.7.2紅外發射模塊紅外線遙控發射模塊一般由一下幾個部分組成,如圖4.9所示:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第20頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第20頁。RRD鍵盤編碼器(調制信號)38KHZ振蕩器(載波信號)圖4.9紅外線遙控發射電路框圖紅外遙控電路被廣泛運用在我們生活中的方方面面,其紅外線遙控發射模塊大體上集鍵盤、編碼器、振蕩器、發光二極管等模塊,包含了選通開關、驅動電路、選頻網絡、分頻電路、振蕩電路、微控制器輸入接口等等,其編碼使用的是脈寬調制的串行碼方式,采用周期為1.125ms、脈寬為0.565ms、間隔0.56ms的組合表示二進制的“0”;采用周期為2.25ms、脈寬為0.565ms、間隔1.685ms的組合表示二進制的“1”。用38KHZ的載頻“0”和“1”組成的42位二進制碼,來使電源功耗降低提高發射的效率。再通過紅外發射二極管產生紅外線向空間發射。發射部分的主要元件為紅外發光二極管,接通電源后不斷將電能轉化為不可見光,不斷向空間中發射紅外線,紅外線的輻射范圍隨距離變遠而降低。通過改變紅外發光二極管兩個腳上的電壓形式,產生不同的信號。4.8報警模塊報警部分由喇叭電路組成,當有鍵按下時,每按一下,喇叭koi響一次,當密碼輸入錯誤時,單片機的P3.4引腳為低電平,喇叭發出噪鳴聲報警[11]。如圖4.10所示:基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第21頁。圖4-10報警電路原理圖基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第21頁。5系統軟件設計與實現5.1主程序流程圖否是報警子程序否是報警子程序顯示子程序結束開始密碼輸入子程序密碼比較子程序判斷兩次密碼是否正確圖5.1系統主程序流程圖5.2軟件設計原理基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第22頁。通過參閱各方面的資料,確定我的這次設計硬件電路主要模塊有:電源輸入模塊,單片機最小系統模塊,LCD1602顯示模塊,AT24C02數據存儲模塊,矩陣鍵盤輸入模塊,紅外遙控鍵盤輸入模塊,報警模塊等模塊組成,軟件模塊主要有:主程序、E2PROM讀寫程序、初始化子程序、LCD1602顯示子程序、矩陣鍵盤掃描子程序、數據掉電存儲子程序,關閉程序、、密碼修改子程序、延時子程序[10]等。矩陣鍵盤輸入模塊與紅外遙控鍵盤輸入模塊都可以實現鍵入密碼和其他系統功能。由用戶通過連接單片機的矩陣鍵盤輸入密碼后,經過單片機的處理對比用戶輸入的密碼與保存的密碼,如果對比的結果相同,則單片機會改變部分引腳的電位,從而使得發光二極管點亮,且繼電器的常開觸點控制電磁鐵吸合線圈,以顯示密碼輸入正確,否則密碼輸入錯誤,需進行再次輸入(不大于2次)密碼,且每次輸入密碼不大于30S,總體錯誤超過3次后蜂鳴器報警并鎖死鍵盤,需進行初始化才可以消除報警。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第22頁。6結論紅外遙控電子密碼鎖易于操作,給用戶提供了友好的操作界面,用戶不需學習特殊,就能夠簡單、快捷地完成操作,做到即買即用。此產品還有其它優點比如功耗低,價格適中,體積小,可以進行近距離遙控,低耗很低,可以使用普通堿性電池供電,使用十分方便。經過進一步軟件程序革新,硬件電路集成優化設計,功能不斷地增強的同時成本可以進一步降低,從而使紅外遙控電子密碼鎖能夠走進千家萬戶,獲得更廣闊的銷售市場。在這次的畢業設計過程中,鞏固了我在大學4年內學過的知識,尤其是單片機和模擬電子方面的知識,同時通過這次畢業設計提高了我的單片機編程的能力,尤其是獲得的軟件調試經驗,加強了我的實際編程能力,同時也讓自己更加的知道了自己知識領域里的不足和缺陷。由于時間太倉促,理論方面也相應的存在不足,加上條件有限,仍存在著一些設計方面的問題,一些想到的功能還不能夠展示出來。現在的我雖然已走到工作崗位,但這并不代表我學習的終止,希望在以后的生活中多找機會提高自己的技能,發揮自己的專長,進一步鞏固自己在各方面的知識。隨著高新技術的不斷發展,電子產品的微型化和小型化已得到了實現。而作為單片機領域的各種新技術,新方法,新產品的發展趨勢和顯著標志—智能話是今后發展的動向之一。對單片機矩陣鍵盤與液晶顯示模塊的設計,使我們了解到了這一技術的革新,通過對這一技術的不斷深入研究,我們可熟練的掌握運用于其他領域,如電子密碼鎖的設計,室內溫濕度的調節與控制,門禁系統的設計等等領域。科技進步和經濟的發展是當今時代的主題,人們生活水平的提高必然對電子類產品的要求增加,任何一個小系統的設計都是對于大系統設計的一個鋪墊,技術革新,采用硬件軟化,軟件集成,虛擬顯示和軟測量等人工智能的方法和技術,我堅信我們的生活會變得更美好!基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第23頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第23頁。致謝光陰荏苒,四年的大學生活已經臨近尾聲,每每回憶起這段生活中的人和事,我都情不自禁的想要對您們說一聲“謝謝您們,您們辛苦了!”。是啊,我要感謝我的父母,是他們的任勞任怨,他們的勤勞善良,他們的那份對我百分之百的信任以及對生活積極向上的態度使我終生受益,讓我無論走在那里都感覺有支持相隨!您們是偉大的,我摯愛的親人!感謝我的指導老師,是他幫助我無論是在論文的選題、課題的研究、論文的撰寫與論文的修改,都有李老師耐心的指導和熱情的幫助,我感謝您,您那如春雨般淵博的知識,點點滴滴滋潤著我,激勵著我向更遠走去;您那對治學的嚴謹,一絲不茍給我樹立了一個好的榜樣,讓我時刻反省,超越自己!您那對我時刻的關懷,溫暖著我的心!謝謝您,有您耐心的指導使我的畢業設計才順利完成。感謝學校,感謝學校圖書館和自修室為我提供了良好的學習環境,為我不斷吸取新知識提供了很好的源泉。感謝在學校的四年中各位老師的諄諄教導,現在的我已在工作崗位,深知老師們在課堂上教導的知識有多么的重要!時光不返,我只有帶著自己學到的一點知識,在自己的工作中積累經驗,為社會做出我的貢獻,實現自己的價值,從而回饋學校,回饋父母!基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第24頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第24頁。參考文獻[1]童詩白.模擬電子技術基礎.北京:高等教育出版社,2006.235-278.[2]沈德金,陳粵初.單片機接口電路與應用程序設計[M].北京:航空航天大學出版社,1990.25-28.[3]張毅剛.單片機原理及應用.北京:高等教育出版社,2003.65-78.[4]沙占友,王彥朋,孟志永.單片機外圍電路設計[M].北京:電子工業出版社,2003.64-69.[5]何立民.單片機應用技術選編[M].北京:航空航天大學出版社,1999.77-84.[6]MahirK.Mahmood.Improvingthesettingtimeofadigitalphase-lockfrequencysynthesizer.17-24.[7]吳國經等.單片機應用技術[M].北京:中國電力出版社,2004.1.55-57.[8]陳進超.新型無線遙控電子密碼鎖系統的研究,華中師范大學,發表時間:2006年.77-84.[9]馬全利.單片機原理及接口技術[M].北京:高等教育出版社,2004.1.22-34.[10]石建華.單片機原理與應用技術[M].北京:北京郵電大學出版社,2008.31-35.[11]Chenchangzhou.VoiceofElectronicPassword-lockDesign,Beijingaviationuniversitypress,2003.69-84.[12]鐘富昭.《8051單片機典型模塊設計與應用》.北京:人民郵電出版社,2007[13]董繼成.一種新型安全的單片機密碼鎖[J].電子技術,2004,(03).168-184.[14]閻石.數字電子技術基礎[M].北京高等教育出版社1998.10.71-80.[15]彭虎.微機原理與接口技術.北京:電子工業出版社,2008.57-64.[16]李廣弟.單片機基礎[M].北京航空航天大學出版社,2007.2.66-72.基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第25頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第25頁。附錄1實物照片基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第26頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第26頁。附錄2原理圖基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第27頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第27頁。附錄3整體PCB圖基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第28頁。基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第28頁。附錄4源程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitjdq=P3^3;sbitbeep=P3^4;sbitrs=P2^6;sbiten=P2^7;sbitscl=P2^0;sbitsda=P2^1;ucharcodetable[16]="Welcometouse!";ucharcodetable1[16]="ControlPassword";ucharcodetable2[6]="Enter:";ucharcodetable3[13]="DataEntryOK";ucharcodetable4[16]="DataEntryError";ucharcodetable5[15]="ChangePassword";ucharcodetable6[12]="Pleaseenter";ucharcodetable7[15]="ModifyComplete";ucharma10,ma11,ma12,ma13,ma14,ma15;ucharma20,ma21,ma22,ma23,ma24,ma25;ucharnum,temp;ucharwflag;bitajflag;bitshu_ru_flag=0;bitgai_flag=0;ucharirdate[33];ucharirbyte[4];ucharirtime,irflag,bitnum,irdateok;bittui_chu,shan_chu,gai_mi;guan_bi,que_ren,shu_ru;uintnum1;voiddelay(uintms){ uchary; { for(ms;ms>0;ms--) for(y=110;y>0;y--); }}//AT24C02讀寫操作時序voiddelay_us(){;;}voidiic_init()//初始化基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第29頁。{基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第29頁。 sda=1;delay_us(); scl=1;delay_us();}voidstart()//開始{ sda=1;delay_us(); scl=1;delay_us(); sda=0;delay_us();}voidresponse()//應答{ uchari=0; scl=1;delay_us(); while((sda==1)&&(i<250))i++; scl=0;delay_us();}voidstop()//停止{ sda=0;delay_us(); scl=1;delay_us(); sda=1;delay_us();}ucharread_byte()//讀字節{ uchari,date; scl=0;delay_us(); sda=1;delay_us(); for(i=0;i<8;i++) { scl=1;delay_us(); date=(date<<1)|sda; scl=0;delay_us(); } returndate;}voidwrite_byte(uchardate)//寫字節{ uchari; for(i=0;i<8;i++) { date=date<<1; scl=0;delay_us(); sda=CY;delay_us();基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第30頁。 scl=1;delay_us();基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第30頁。 } scl=0;delay_us(); sda=1;delay_us();}voidwrite_add(ucharadd,uchardate)//寫數據{ start(); write_byte(0xa0); response(); write_byte(add); response(); write_byte(date); response(); stop();} ucharread_add(ucharadd)//讀數據{ uchardate; start(); write_byte(0xa0); response(); write_byte(add); response(); start(); write_byte(0xa1); response(); date=read_byte(); stop(); returndate;}voidyj1602_write_com(ucharcom)//液晶寫地址{ en=0;delay(1); en=1;delay(1); rs=0;delay(1); P0=com; en=0;delay(1);}voidyj1602_write_date(uchardate)//液晶寫數據{ en=0;delay(1); en=1;delay(1);基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第31頁。 rs=1;delay(1);基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第31頁。 P0=date; en=0;delay(1);}voidyj1602_init()//液晶初始化{ yj1602_write_com(0x38); yj1602_write_com(0x0c); yj1602_write_com(0x06); yj1602_write_com(0x01);}voiddeal_with()//數據接收成功處理{ uchari,j,k,temp1; k=1; for(j=0;j<4;j++) { for(i=0;i<8;i++) { temp1=temp1>>1; if(irdate[k]>7) { temp1=temp1|0x80; } k++; } irbyte[j]=temp1; }}voidqing_ling()//清空數據位下一次接收{ uchari; for(i=0;i<33;i++) irdate[i]=0; for(i=0;i<4;i++) irbyte[i]=0;}voiddidi()//滴滴聲{ beep=0;delay(500); beep=1;delay(500);}voidkeyscan()基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第32頁。{基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第32頁。 deal_with();//數據接收成功處理 if(irbyte[2]==0x45){qing_ling();didi();shu_ru=1;}//CH- if(irbyte[2]==0x46){qing_ling();didi();que_ren=1;}//CH if(irbyte[2]==0x47){qing_ling();didi();tui_chu=1;}//CH+ if(irbyte[2]==0x44){qing_ling();didi();shan_chu=1;}//<< if(irbyte[2]==0x40){qing_ling();didi();gai_mi=1;}//>> if(irbyte[2]==0x43){qing_ling();didi();guan_bi=1;}//>|| if(irbyte[2]==0x16){qing_ling();wflag++;num=1;didi();ajflag=1;}//0 if(irbyte[2]==0x0c){qing_ling();wflag++;num=1;didi();ajflag=1;}//1 if(irbyte[2]==0x18){qing_ling();wflag++;num=2;didi();ajflag=1;}//2 if(irbyte[2]==0x5e){qing_ling();wflag++;num=3;didi();ajflag=1;}//3 if(irbyte[2]==0x08){qing_ling();wflag++;num=4;didi();ajflag=1;}//4 if(irbyte[2]==0x1c){qing_ling();wflag++;num=5;didi();ajflag=1;}//5 if(irbyte[2]==0x5a){qing_ling();wflag++;num=6;didi();ajflag=1;}//6 if(irbyte[2]==0x42){qing_ling();wflag++;num=7;didi();ajflag=1;}//7 if(irbyte[2]==0x52){qing_ling();wflag++;num=8;didi();ajflag=1;}//8 if(irbyte[2]==0x4a){qing_ling();wflag++;num=9;didi();ajflag=1;}//9 P1=0xfe; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp&=0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case0xee:wflag++;num=1;ajflag=1;didi();break; case0xde:wflag++;num=4;ajflag=1;didi();break; case0xbe:wflag++;num=7;ajflag=1;didi();break; case0x7e:shu_ru=1;didi();break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } }基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第33頁。 }基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第33頁。 P1=0xfd; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp&=0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case0xed:wflag++;num=2;ajflag=1;didi();break; case0xdd:wflag++;num=5;ajflag=1;didi();break; case0xbd:wflag++;num=8;ajflag=1;didi();break; case0x7d:wflag++;num=0;ajflag=1;didi();break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } } P1=0xfb; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp&=0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case0xeb:wflag++;num=3;ajflag=1;didi();break; case0xdb:wflag++;num=6;ajflag=1;didi();break; case0xbb:wflag++;num=9;ajflag=1;didi();break; case0x7b:que_ren=1;break; }基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第34頁。 while(temp!=0xf0)基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第34頁。 { temp=P1; temp=temp&0xf0; } } } P1=0xf7; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp&=0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case0xe7:tui_chu=1;didi();break; case0xd7:shan_chu=1;didi();break; case0xb7:gai_mi=1;didi();break; case0x77:guan_bi=1;didi();break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } }}voidkey_init(){ tui_chu=0; shu_ru=0; shan_chu=0; gai_mi=0; guan_bi=0; que_ren=0;}voidinput_data()//輸入密碼{基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第35頁。 if(ajflag==1)基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第35頁。 { while(ajflag==1) { ajflag=0; keyscan(); } if(wflag==1)ma10=num; if(wflag==2)ma11=num; if(wflag==3)ma12=num; if(wflag==4)ma13=num; if(wflag==5)ma14=num; if(wflag==6)ma15=num; } if(shan_chu==1)//刪除輸入的密碼前一位 { while(shan_chu==1) { shan_chu=0; keyscan(); } if(wflag>0) { if(wflag==1)ma10=0; if(wflag==2)ma11=0; if(wflag==3)ma12=0; if(wflag==4)ma13=0; if(wflag==5)ma14=0; if(wflag==6)ma15=0; wflag--; } } if(tui_chu==1) { while(tui_chu==1) { tui_chu=0; keyscan(); } key_init(); shu_ru_flag=0; wflag=0; yj1602_init();//液晶初始化 }基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第36頁。} 基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第36頁。voiddeal_with1()//按鍵處理函數{ uchari; uintj; ucharerror;//輸入錯誤的次數,超過三次報警,鎖死鍵盤 bitgai_ok1,gai_ok2;//可以改密碼 keyscan(); if(shu_ru==1)//輸入密碼開鎖 { while(shu_ru==1) { shu_ru=0; keyscan(); } TR1=1; key_init(); wflag=0; ajflag=0; shu_ru_flag=1; yj1602_init();//液晶初始化 } if(gai_mi==1)//修改密碼 { while(gai_mi==1) { gai_mi=0; keyscan(); } key_init(); wflag=0; ajflag=0; gai_flag=1;//修改密碼按鍵按下標志位 yj1602_init();//液晶初始化 } while(gai_flag==1) { keyscan(); //修改密碼界面 yj1602_write_com(0x80); for(i=0;i<15;i++) //"ChangePassword";//修改密碼 { yj1602_write_date(table5[i]); }基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第37頁。 yj1602_write_com(0x80+0x40);基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第37頁。 for(i=0;i<6;i++) //"input:";//輸入 { yj1602_write_date(table2[i]); } //輸入正確的密碼 if(wflag<1)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<2)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<3)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<4)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<5)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<6)yj1602_write_date('-'); elseyj1602_write_date('*'); input_data();//輸入密碼 if(que_ren==1) { while(que_ren==1) { que_ren=0; keyscan(); } if(wflag==6) { wflag=0; if((ma10==ma20)&&(ma11==ma21)&&(ma12==ma22)&&(ma13==ma23)&&(ma14==ma24)&&(ma15==ma25)) { beep=0;delay(300);beep=1; gai_ok1=1; gai_flag=0; error=0; yj1602_init();//液晶初始化 } else gotolp; } else//數據輸入錯誤 {基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第38頁。 lp: error++;基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第38頁。 if(error>=3) { for(i=0;i<50;i++) { beep=~beep; delay(1000); } } wflag=0; beep=0;delay(300);beep=1;delay(300); beep=0;delay(300);beep=1; yj1602_init();//液晶初始化 yj1602_write_com(0x80); for(i=0;i<16;i++) { yj1602_write_date(table4[i]);//DataEntryError數據輸入錯誤 } delay(10000);//延時5秒可重新出入 yj1602_init();//液晶初始化 } }lop: while(gai_ok1==1)//輸入第一遍要更改的密碼 { keyscan(); yj1602_write_com(0x80); for(i=0;i<12;i++) { yj1602_write_date(table6[i]);//"Pleaseenter";//請輸入 } yj1602_write_date('1'); yj1602_write_com(0x80+0x40); for(i=0;i<6;i++) //"input:";//輸入 { yj1602_write_date(table2[i]); } if(wflag<1)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<2)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<3)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<4)yj1602_write_date('-'); elseyj1602_write_date('*');基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第39頁。 if(wflag<5)yj1602_write_date('-');基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第39頁。 elseyj1602_write_date('*'); if(wflag<6)yj1602_write_date('-'); elseyj1602_write_date('*'); input_data();//輸入密碼 if(que_ren==1) { while(que_ren==1) { que_ren=0; keyscan(); } wflag=0; gai_ok1=0; gai_ok2=1; } while(gai_ok2==1)//輸入第二遍要更改的密碼 { keyscan(); yj1602_write_com(0x80); for(i=0;i<12;i++) { yj1602_write_date(table6[i]);//"Pleaseenter";//請輸入 } yj1602_write_date('2'); yj1602_write_com(0x80+0x40); for(i=0;i<6;i++) //"input:";//輸入 { yj1602_write_date(table2[i]); } if(wflag<1)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<2)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<3)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<4)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<5)yj1602_write_date('-'); elseyj1602_write_date('*'); if(wflag<6)yj1602_write_date('-'); elseyj1602_write_date('*'); if(ajflag==1) {基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第40頁。 基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第40頁。 { ajflag=0; keyscan(); } if(wflag==1)ma20=num; if(wflag==2)ma21=num; if(wflag==3)ma22=num; if(wflag==4)ma23=num; if(wflag==5)ma24=num; if(wflag==6)ma25=num; } if(que_ren==1) { while(que_ren==1) { que_ren=0; keyscan(); } if(wflag==6) { wflag=0; if((ma10==ma20)&&(ma11==ma21)&&(ma12==ma22)&&(ma13==ma23)&&(ma14==ma24)&&(ma15==ma25)) { beep=0;delay(300);beep=1; gai_ok2=0; gai_flag=0; write_add(0,ma20);delay(5); write_add(1,ma21);delay(5); write_add(2,ma22);delay(5); write_add(3,ma23);delay(5); write_add(4,ma24);delay(5); write_add(5,ma25);delay(5); yj1602_init();//液晶初始化 yj1602_write_com(0x80); for(i=0;i<15;i++) { yj1602_write_date(table7[i]);//顯示修改完成 } delay(10000);//等待一會恢復正常顯示 //讀出存儲器當中的密碼值 ma20=read_add(0);基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第41頁。 ma21=read_add(1);基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第41頁。 ma22=read_add(2); ma23=read_add(3); ma24=read_add(4); ma25=read_add(5); yj1602_init();//液晶初始化 } else gotolp1; } else//數據輸入錯誤 { lp1: wflag=0; beep=0;delay(300);beep=1;delay(300); beep=0;delay(300);beep=1; yj1602_init();//液晶初始化 yj1602_write_com(0x80); for(i=0;i<16;i++) { yj1602_write_date(table4[i]);//DataEntryError數據輸入錯誤 } delay(10000);//延時5秒可重新出入 yj1602_init();//液晶初始化 gai_ok1=1; gai_ok2=0; gotolop; } } if(shan_chu==1)//刪除輸入的密碼前一位 { while(shan_chu==1) { shan_chu=0; keyscan(); } if(wflag>0) { if(wflag==1)ma20=0; if(wflag==2)ma21=0; if(wflag==3)ma22=0; if(wflag==4)ma23=0; if(wflag==5)ma24=0; if(wflag==6)ma25=0;基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第42頁。 wflag--;基于單片機的電子密碼鎖的設計與制作全文共49頁,當前為第42頁。 } } if(tui_chu==1) { while(tui_chu==1) { tui_chu=0; keyscan(); } key_init(); shu_ru_flag=0; wflag=0; yj1602_init();//液晶初始化 } } } } while(shu_ru_flag==1)//輸入密碼開鎖 { keyscan(); if(num1==400)//20秒時間到 { TR1=0;//關閉定時器 num1=0; gotolp2; } //密碼輸入界面 yj1602_write_c

溫馨提示

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

評論

0/150

提交評論