基于單片機(jī)的電子密碼鎖課程設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
基于單片機(jī)的電子密碼鎖課程設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
基于單片機(jī)的電子密碼鎖課程設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
基于單片機(jī)的電子密碼鎖課程設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
基于單片機(jī)的電子密碼鎖課程設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(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、 單片機(jī)技術(shù)課程設(shè)計(jì)說(shuō)明書(shū) 密碼鎖 系 、 部: 學(xué)生姓名: 指導(dǎo)教師: 職稱 專 業(yè): 通信工程 班 級(jí): 完成時(shí)間: 2013年12月 摘 要隨著電子技術(shù)的發(fā)展,具有防盜報(bào)警等功能的電子密碼鎖代替密碼量少、安全性差的機(jī)械式密碼鎖已是必然趨勢(shì)。電子密碼鎖與普通機(jī)械鎖相比,具有許多獨(dú)特的優(yōu)點(diǎn):保密性好,防盜性強(qiáng),可以不用鑰匙,記住密碼即可開(kāi)鎖等。目前使用的電子密碼鎖大部分是基于單片機(jī)技術(shù),以單片機(jī)為主要器件,其編碼器與解碼器的生成為軟件方式。本次設(shè)計(jì)使用AT89S52實(shí)現(xiàn)-基于單片機(jī)的電子密碼鎖。本系統(tǒng)由單片機(jī)系統(tǒng)、矩陣鍵盤(pán)、LCD12864顯示、EEPROM掉電保護(hù)模塊和報(bào)警系統(tǒng)組成。系統(tǒng)能

2、完成開(kāi)鎖、超次鎖定、修改用戶密碼等基本的密碼鎖的功能,系統(tǒng)具有掉電不消失的管理員密碼。除上述基本的密碼鎖功能外,依據(jù)實(shí)際的情況還可以添加擴(kuò)展功能。本系統(tǒng)成本低廉,功能實(shí)用。 關(guān)鍵詞:密碼鎖;單片機(jī);LCDABSTRACTWith the development of electronic technology, which has the function of anti-theft alarm and other electronic combination lock instead of password quantity is little, security, poor mechani

3、cal combination lock is inevitable trend. Electronic combination lock compared with ordinary mechanical lock, has many unique advantages: good secrecy, anti-theft sex is strong, can need not the key, remember password lock, etc. Currently use electronic combination lock is mostly based on single chi

4、p microcomputer technology, single chip microcomputer as the main device, the encoder and decoder for software.This design uses AT89S52 to realize the electronic password lock based on MCU.This system consists of SCM system,matrix keyboard,LCD12864 display,EEPROM power down protection module and ala

5、rm system.The system can complete the lock,super lock,modify user passwords and other basic password lock function,the system has the electricity does not disappear administrator password.In addition to the above basic password lock function,based on the actual situation can also add the extension f

6、unction.This system has the advantages of low cost,practical function.Key words password lock;mcu;lcd44 / 49文檔可自由編輯打印目 錄1 設(shè)計(jì)課題任務(wù)、功能要求說(shuō)明及總體方案介紹11.1 設(shè)計(jì)課題任務(wù)11.2 功能要求說(shuō)明11.3 設(shè)計(jì)課題總體方案介紹及工作原理說(shuō)明12 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)22.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹22.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖32.3 設(shè)計(jì)課題元器件清單33 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)43.1 設(shè)計(jì)課題使用單片機(jī)資源的情況43.2

7、設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡(jiǎn)要介紹43.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖53.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單104 設(shè)計(jì)結(jié)論、運(yùn)行結(jié)果、誤差分析及體會(huì)114.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說(shuō)明114.2 設(shè)計(jì)課題的仿真結(jié)果114.3 設(shè)計(jì)課題的誤差分析134.4 設(shè)計(jì)體會(huì)14結(jié)束語(yǔ)15致 謝16參考文獻(xiàn)17附 錄18附錄A: PROTEL原理圖18附錄B: CAD原理圖19附錄C: 電路頂層PCB圖19附錄D: 電路底層PCB圖21附錄E: 元器件布局圖22附錄F: 元器件清單23附錄G: 液晶函數(shù)25附錄H: 24C02函數(shù)28附錄L: 鍵盤(pán)掃描函數(shù)32附錄M: 基礎(chǔ)函數(shù)34附錄N: 密碼鎖主函

8、數(shù)431 設(shè)計(jì)課題任務(wù)、功能要求說(shuō)明及總體方案介紹1.1 設(shè)計(jì)課題任務(wù)課題:密碼鎖任務(wù):設(shè)計(jì)一個(gè)具有特定功能的密碼鎖。該密碼鎖上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示界面,進(jìn)入準(zhǔn)備工作狀態(tài),能完成開(kāi)鎖、超次鎖定、修改用戶密碼等基本的密碼鎖的功能。1.2 功能要求說(shuō)明該密碼鎖上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。該密碼鎖具有系統(tǒng)原始密碼888888,用戶可以設(shè)定并存儲(chǔ)用戶密碼,密碼輸入時(shí)應(yīng)處于保密顯示狀態(tài),密碼輸入正確時(shí)應(yīng)顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯(cuò)誤提示信息。1.3 設(shè)計(jì)課題總體方案介紹及工作原理說(shuō)明本系統(tǒng)使用以單片機(jī)為核心元件的控制方案。選用AT89S

9、52單片機(jī),通過(guò)4×4矩陣鍵盤(pán)輸入密碼及確認(rèn)、取消操作,用蜂鳴器報(bào)警,外接LCD12864液晶顯示器用于操作狀態(tài)顯示,并使用I2C總線串行EEPROM數(shù)據(jù)存儲(chǔ)器AT24C02實(shí)現(xiàn)掉電密碼不消失功能。其系統(tǒng)控制原理圖如圖1所示。圖1 系統(tǒng)控制原理圖2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)2.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹2.1.1 單片機(jī)最小系統(tǒng)此次設(shè)計(jì)中電路的控制部分選擇以單片機(jī)AT89S52為核心的最小系統(tǒng)板,該系統(tǒng)由單片機(jī)、時(shí)鐘電路、復(fù)位電路等組成。這三部分是單片機(jī)正常工作的前提。AT89S52采用+5V直流電源供電。時(shí)鐘電路采用外部時(shí)鐘源,由外部提供晶振。復(fù)位電路的基本功能是為系統(tǒng)上

10、電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。單片機(jī)工作的時(shí)間基準(zhǔn)是由時(shí)鐘電路提供的。外接晶振和電容組成單片機(jī)內(nèi)部的振蕩器。在單片機(jī)的XTAL1和XTAL2兩個(gè)引腳間,接一個(gè)晶振及兩只電容就構(gòu)成了單片機(jī)的時(shí)鐘電路。晶振選取12MHZ,電容取33Pf。單片機(jī)的復(fù)位通常分為自動(dòng)復(fù)位,手動(dòng)復(fù)位等幾種。復(fù)位是單片機(jī)的初始化操作,只要給引腳RESET加上2個(gè)機(jī)器周期以上的高電平信號(hào),就可使單片機(jī)AT89S52復(fù)位。復(fù)位的主要功能是初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài),為擺脫死鎖狀態(tài),也需按復(fù)位鍵重新啟

11、動(dòng)。在本設(shè)計(jì)中采用手動(dòng)復(fù)位。 對(duì)于單片機(jī)下載口電路,采用 P1.5、P1.6、P1.7和RESET與VCC、GND連接到程序下載接口,構(gòu)成其下載口電路,供程序下載使用。2.1.2 4×4行列式鍵盤(pán)輸入模塊根據(jù)系統(tǒng)的基本要求,采用由16個(gè)鍵構(gòu)成的行列式鍵盤(pán)接在AT89S52單片機(jī)的P1口,相對(duì)于獨(dú)立式鍵盤(pán)節(jié)省了大量口線和空間,給電路設(shè)計(jì)帶來(lái)極大的方便,不過(guò)也相應(yīng)的增加了程序的設(shè)計(jì)難度。采用矩陣式連接方法,組成4×4式16個(gè)按鍵,分別代表數(shù)字密碼鍵“09”、取消功能鍵“C”、確定功能鍵“P.”、改密功能鍵“*”、開(kāi)鎖功能鍵“#”,其余未定義按鍵為新功能預(yù)留鍵。2.1.3 128

12、64液晶顯示模塊J12864液晶是一種具有8位并行,2線或3線串行多種接口方式,內(nèi)含國(guó)家一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16×16點(diǎn)漢字,和128個(gè)16×8點(diǎn)ASC字符集。利用該模塊靈活的接口和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。12864液晶的控制口線主要接在AT89S52單片機(jī)的P0口線上,可以顯示8×4行,16×16點(diǎn)陣的漢字。低壓低功耗是其又一顯著特點(diǎn)。與同類液晶模塊相比,無(wú)論硬件電路或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的液晶模塊。 2.1.4 2

13、4C02掉電保護(hù)模塊24CXX系列是最為常見(jiàn)的I2C總線串行EEPROM數(shù)據(jù)存儲(chǔ)器,該芯片具有體積小,功耗低,工作電壓允許范圍寬,型號(hào)多,容量大,讀寫(xiě)操作方便等特點(diǎn)。其中,本設(shè)計(jì)中使用的24C02存儲(chǔ)容量為2K位(256×8位,256字節(jié))。2.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖2.2.1 電路原理圖PROTEL原理圖(見(jiàn)附錄A)、CAD原理圖(見(jiàn)附錄B)2.2.2 電路PCB圖 電路頂層PCB圖(見(jiàn)附錄C)、電路底層PCB圖(見(jiàn)附錄D)2.2.3 元器件布局圖元器件布局圖(見(jiàn)附錄E)2.3 設(shè)計(jì)課題元器件清單元器件清單(見(jiàn)附錄F)3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)3.1 設(shè)計(jì)課

14、題使用單片機(jī)資源的情況AT89S52的片外資源:P0、P1、P2:基本輸入輸出口;P3.0:en(12864液晶);P3.1:rs(12864液晶);P3.2:rw(12864液晶);P3.3:BEEP(蜂鳴器);P3.6:SDA(24C02存儲(chǔ)器);P3.7:SCL(24C02存儲(chǔ)器);XTAL1、XTAL2:晶振輸入; RST:復(fù)位輸入;AT89S52的片內(nèi)資源:通用寄存器區(qū);專用寄存器SFR:A、PSW、SP、P0、P1、P2、P3等。3.2 設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡(jiǎn)要介紹3.2.1 主函數(shù)模塊主函數(shù) void main(),用于設(shè)置初始化界面,調(diào)用各個(gè)主要模塊,實(shí)現(xiàn)簡(jiǎn)單密碼鎖的整體

15、功能。3.2.2 液晶顯示模塊液晶顯示是通過(guò)在主程序中調(diào)用相關(guān)的液晶功能函數(shù)來(lái)執(zhí)行相應(yīng)功能,經(jīng)過(guò)液晶接在單片機(jī)上的P0及P3部分管腳,通過(guò)液晶功能函數(shù)lcd12864()的調(diào)用對(duì)液晶進(jìn)行操作,將各類指令寫(xiě)入液晶模塊,用來(lái)驅(qū)動(dòng)液晶以實(shí)現(xiàn)不同的顯示功能,達(dá)到界面顯示的要求。3.2.3 掉電保護(hù)模塊掉電保護(hù)軟件設(shè)計(jì)主要通過(guò)在主程序中調(diào)用相關(guān)的24c02功能函數(shù)來(lái)執(zhí)行相應(yīng)功能,經(jīng)過(guò)串行數(shù)據(jù)線SDA接在單片機(jī)上的P3.6管腳、串行時(shí)鐘線SCL接在單片機(jī)上的P3.7管腳,通過(guò)24c02存儲(chǔ)器功能函數(shù)24c02()的調(diào)用對(duì)24c02進(jìn)行操作,將密碼實(shí)時(shí)保護(hù)起來(lái)。3.2.4 行列式鍵盤(pán)模塊矩陣式鍵盤(pán)軟件設(shè)計(jì)主

16、要通過(guò)在主程序中調(diào)用鍵掃函數(shù)keyscan()來(lái)執(zhí)行相應(yīng)的功能,單片機(jī)P1口在復(fù)位之后保持高電平,當(dāng)鍵按下相應(yīng)口線為低電平,經(jīng)過(guò)相應(yīng)判別過(guò)程判斷鍵松開(kāi)后,執(zhí)行相關(guān)鍵功能程序,完成相應(yīng)操作。3.2.5 基礎(chǔ)函數(shù)模塊通過(guò)調(diào)用guanliyuan(void);yonghu(void);void shuru();shezhi();void baojing()等函數(shù),實(shí)現(xiàn)不同用戶身份用戶的登錄、輸入密碼、修改密碼、報(bào)警、開(kāi)鎖等功能。3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖3.3.1 主函數(shù)圖2 主函數(shù)流程框圖3.3.2 液晶顯示 圖3 液晶顯示函數(shù)流程框圖3.3.3 掉電保護(hù)圖4 掉電保護(hù)模塊流程框圖3.3

17、.4 行列式鍵盤(pán)圖5 鍵掃函數(shù)流程框圖3.3.5 基礎(chǔ)函數(shù)圖6 管理員開(kāi)鎖函數(shù)流程框圖圖7 用戶開(kāi)鎖函數(shù)流程框圖 圖8 用戶修改密碼函數(shù)流程框圖3.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單液晶函數(shù)見(jiàn)附錄G24C02函數(shù)見(jiàn)附錄H鍵盤(pán)掃描函數(shù)見(jiàn)附錄L基礎(chǔ)函數(shù)見(jiàn)附錄M主函數(shù)見(jiàn)附錄N4 設(shè)計(jì)結(jié)論、運(yùn)行結(jié)果、誤差分析及體會(huì)4.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說(shuō)明程序編寫(xiě)完成后,用keil4調(diào)試后顯示程序0錯(cuò)誤0警告,表明程序無(wú)語(yǔ)法錯(cuò)誤。下載程序到系統(tǒng)后,按編寫(xiě)思路操作,系統(tǒng)正常工作,表明程序設(shè)計(jì)成功。4.2 設(shè)計(jì)課題的仿真結(jié)果調(diào)試主要是針對(duì)行列式鍵盤(pán)、液晶顯示器和24C02存儲(chǔ)器,在不同身份用戶登錄時(shí),進(jìn)入不同的操作界

18、面,各操作界面的調(diào)試結(jié)果如圖所示:圖9 初始化界面 圖10 開(kāi)機(jī)界面 圖11 管理員登錄界面 圖12 用戶登錄界面 圖13 管理員登錄密碼錯(cuò)誤界面 圖14 用戶登錄密碼錯(cuò)誤界面 圖15 管理員輸入密碼正確開(kāi)鎖界面 圖16 用戶輸入密碼正確開(kāi)鎖界面 圖17 用戶設(shè)置新密碼界面 圖18 設(shè)置密碼二次確認(rèn)界面 圖19 密碼修改不成功界面 圖20 密碼修改成功界面 4.3 設(shè)計(jì)課題的誤差分析該密碼鎖功能的實(shí)現(xiàn)基于一些機(jī)械裝置的協(xié)助。不同功能模塊會(huì)存在不同的誤差問(wèn)題。液晶顯示模塊:本設(shè)計(jì)使用12864液晶顯示,打開(kāi)電源后液晶進(jìn)入待機(jī)界面緩慢。分析原因是當(dāng)打開(kāi)電源后,加到液晶上的電壓必須滿足一定的時(shí)序變化

19、,才能正常啟動(dòng)液晶,本設(shè)計(jì)中未對(duì)液晶執(zhí)行熱啟動(dòng)而是通過(guò)延時(shí)一段較長(zhǎng)時(shí)間的方法確保其進(jìn)入正常工作狀態(tài)。工作過(guò)程中界面切換較緩慢。分析是由于單片機(jī)處理一個(gè)指令只需要幾u(yù)s,液晶需要40us1.64ms,為了保證單片機(jī)發(fā)指令時(shí)液晶當(dāng)前為空閑狀態(tài),在設(shè)計(jì)的過(guò)程中多處用延時(shí)的方法等待前一個(gè)指令確定執(zhí)行完成,使得單片機(jī)運(yùn)行效率大打折扣,而且周邊外設(shè)器件可能運(yùn)作異常。因此在等待液晶判斷是否空閑程序設(shè)計(jì)中,可以改用液晶判忙函數(shù)來(lái)判斷液晶狀態(tài)是否空閑。行列式鍵盤(pán)模塊:本設(shè)計(jì)使用4×4行列式鍵盤(pán)輸入,按鍵過(guò)程中偶爾有按鍵失靈。這是由于在按鍵的掃描中,單片機(jī)的資源全部用來(lái)作按鍵的掃描,特別是當(dāng)中的延時(shí)程序

20、,對(duì)單片機(jī)來(lái)說(shuō)是一個(gè)漫長(zhǎng)的過(guò)程。當(dāng)按鍵持續(xù)按下的過(guò)程中,由于延時(shí)程序?qū)纹瑱C(jī)資源的占用,單片機(jī)此時(shí)就不能進(jìn)行執(zhí)行其他任務(wù),這期間周邊外設(shè)器件有可能運(yùn)作異常。最理想的辦法是搭載實(shí)時(shí)操作系統(tǒng),遺憾的是8051系列單片機(jī)資源有限,不能滿足搭建實(shí)時(shí)操作系統(tǒng)的要求,而且搭載實(shí)時(shí)操作系統(tǒng)將大大的增加額外的成本,故而本設(shè)計(jì)中采用軟件延時(shí)的方法使系統(tǒng)產(chǎn)生了一些誤差。斷電保護(hù)模塊:本設(shè)計(jì)使用24C02作為斷電保護(hù)電路,第一次將設(shè)計(jì)程序下載到實(shí)物上時(shí)輸入原始密碼不能開(kāi)鎖,讀出數(shù)據(jù)在液晶上顯示為亂碼。分析原因是24C04首次上電后,讀出來(lái)的數(shù)據(jù)我們無(wú)法知道,從而引起亂碼。所以在第一次上電應(yīng)先將24C02初始化,使其

21、狀態(tài)為設(shè)計(jì)者可知。 4.4 設(shè)計(jì)體會(huì)本設(shè)計(jì)的靈感主要來(lái)自于工作實(shí)踐,之前的寒暑假期我分別在長(zhǎng)沙移動(dòng)分公司、上海西聯(lián)信息科技有限公司進(jìn)行了為期一周到一月不等的實(shí)習(xí),在實(shí)習(xí)工作中我了解到辦公自動(dòng)化(OA)應(yīng)用系統(tǒng)。本設(shè)計(jì)模擬OA系統(tǒng)登錄平臺(tái),對(duì)用戶身份進(jìn)行識(shí)別并賦予不同身份用戶不同的工作權(quán)限,以滿足不同身份用戶的使用要求。本設(shè)計(jì)中,管理員就像后臺(tái)管理者的身份,管理員通過(guò)輸入管理員密碼進(jìn)入系統(tǒng)后臺(tái)進(jìn)行操作,并在用戶不能登錄系統(tǒng)的情況下給用戶提供解決方案;而用戶則可以通過(guò)用戶密碼使用本密碼鎖,就像我們使用手機(jī),我們給它上鎖、開(kāi)鎖,然后我們就可以進(jìn)行上網(wǎng)、玩游戲等操作一樣。本次密碼鎖課程設(shè)計(jì)中液晶模塊函

22、數(shù)、24C02掉電保護(hù)模塊函數(shù)等均采用模塊化編程,這種設(shè)計(jì)給代碼的修改和移植帶來(lái)了極大的方便。本課程設(shè)計(jì)的難點(diǎn)在于編程的思路以及程序的實(shí)現(xiàn)。思路來(lái)自于學(xué)習(xí)與思考,想法的實(shí)現(xiàn)要求我們掌握解決問(wèn)題的方法,而學(xué)習(xí)正是一個(gè)不斷鍛煉我們的思維,提高我們解決問(wèn)題的能力的過(guò)程。所以我們必須不斷地學(xué)習(xí)新的知識(shí),鞏固舊的知識(shí),從而更好的解決問(wèn)題。通過(guò)一個(gè)學(xué)期的單片機(jī)課程的學(xué)習(xí),我掌握了一些基本的編程方法,在老師的指導(dǎo)下,我的編程思路更加的清晰,分析和解決問(wèn)題的能力得到了加強(qiáng),實(shí)踐操作能力也得到了一定的提高。隨著本次單片機(jī)課程設(shè)計(jì)的結(jié)束,一個(gè)學(xué)期的單片機(jī)課程的學(xué)習(xí)也進(jìn)入了尾聲,但是我對(duì)于單片機(jī)的學(xué)習(xí)還遠(yuǎn)沒(méi)有結(jié)束。

23、結(jié)束語(yǔ)此次課程設(shè)計(jì)雖然滿足了本次課程設(shè)計(jì)的基本要求,但是還存在許多的不足。例如沒(méi)有設(shè)置清除功能鍵,用戶忘記密碼或誤操作輸入密碼錯(cuò)誤累計(jì)達(dá)到三次,則需重啟系統(tǒng)才能再次登錄。這樣的設(shè)計(jì)可能會(huì)給用戶帶來(lái)不好的用戶體驗(yàn),但是考慮到密碼鎖的保密性以及編程的易于實(shí)現(xiàn),我還是保留了原設(shè)計(jì)而未設(shè)置清除按鍵。本次課程設(shè)計(jì)使我將本學(xué)期所學(xué)的單片機(jī)理論知識(shí)運(yùn)用到了實(shí)踐中來(lái),并且通過(guò)自學(xué)12864液晶、數(shù)據(jù)存儲(chǔ)器24C02、行列式鍵盤(pán)等方面的知識(shí),進(jìn)一步提高了獨(dú)立思考、分析問(wèn)題、解決問(wèn)題以及編程和硬件制作、調(diào)試的能力,同時(shí)懂得了理論與實(shí)際相結(jié)合十分重要,在實(shí)踐中我們需要理論知識(shí)的指導(dǎo),然而只有理論知識(shí)遠(yuǎn)遠(yuǎn)不夠,我們只

24、有學(xué)會(huì)把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論與實(shí)踐中得出結(jié)論,才能真正學(xué)以致用,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。致 謝對(duì)于這次課程設(shè)計(jì)的順利完成,我首先要感謝王韌副教授,教學(xué)過(guò)程中是他細(xì)心的給我講解了許多關(guān)于單片機(jī)的知識(shí),王老師授課十分富有激情,他生動(dòng)而清晰的給學(xué)生分析、解決問(wèn)題,引導(dǎo)學(xué)生積極思考,他一步一步的教會(huì)了我怎么讓一個(gè)個(gè)的想法在單片機(jī)上實(shí)現(xiàn),并使得對(duì)我單片機(jī)有了一個(gè)更加深刻的了解。由于有了數(shù)碼管系統(tǒng)原理圖、PCB圖以及焊接制作的基礎(chǔ),學(xué)期初我向王老師提出了制作液晶系統(tǒng)的想法,得到了老師的大力支持,老師不僅給我提供了大量的參考資料還提供了許多器件,并且多次詢問(wèn)我學(xué)習(xí)的進(jìn)展

25、。王老師的熱心與支持給了我莫大的鼓舞,使我在學(xué)習(xí)的道路上更加的堅(jiān)定。同時(shí),在我的實(shí)際作品的制作過(guò)程之中,得到的學(xué)校許多的老師和同學(xué)熱情的指導(dǎo)和幫助,此外,在實(shí)際程序的編寫(xiě)的過(guò)程遇到許多的不解困難的時(shí)候,周圍的同學(xué)也給我提供的最詳細(xì)的解答,在此,我對(duì)在我的設(shè)計(jì)和制作的過(guò)程中給予我?guī)椭拿恳粋€(gè)人表示感謝。參考文獻(xiàn)1 馬忠梅.單片機(jī)C程序設(shè)計(jì)M,北京:北京航空航天大學(xué)出版社,2007 Ma Zhongmei. microcontroller C programming M, Beijing: Beijing Aerospace University Press, 20072 李廣弟.單片機(jī)基礎(chǔ)M,北

26、京:北京航空航天大學(xué)出版社,2007 Li Guangdi. microcontroller based on M, Beijing: Beijing Aerospace University Press, 20073 曹巧媛.單片機(jī)原理及應(yīng)用M,北京:電子工業(yè)出版社,1997.7.Cao QiaoYuan.Microcontroller Theory and Applications M, Beijing: Electronic Industry Press, 1997.7.4 張洪潤(rùn).蘭清華,單片機(jī)應(yīng)用技術(shù)教程M,北京:清華大學(xué)出版社,1997.11.Zhang Hongrun ,Lan

27、Qinghua, MCU application technology tutorial M, Beijing: Tsinghua University Press, 1997.11.5 康華光.電子技術(shù)基礎(chǔ) 模擬部分(第五版) M.北京:高等教育出版社,2006kang uh guano. Electronic technology foundation simulation part (fifth edition) M. Beijing: higher education press, 20066 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版) M.北京:高等教育出版社,2006YanShi, digi

28、tal electronic technology foundation (fifth edition) M. Beijing: higher education press, 20067 邱光源.電路(第五版) M.北京:高等教育出版社,2006QiuGuangYuan. Circuit (fifth edition) M. Beijing: higher education press, 2006附 錄附錄A: PROTEL原理圖附錄B: CAD原理圖附錄C: 電路頂層PCB圖附錄D: 電路底層PCB圖附錄E: 元器件布局圖附錄F: 元器件清單序號(hào)元器件名稱規(guī) 格數(shù)量1瓷片電容33pF22

29、發(fā)光二極管LED93大按鍵奧姆龍 帶方形帽子174存儲(chǔ)芯片24C0215ISP下載口16USB電源線公對(duì)公 USB轉(zhuǎn)接線17液晶LCD1286418三極管901219蜂鳴器110單片機(jī)AT89S52111電阻1K112電阻2K113排阻470114排阻10K515藍(lán)白電位器50K116小按鍵917六角開(kāi)關(guān)118無(wú)源晶振12MHz119單排插針40P220單排插槽40P221單排圓孔插母40P222USB下載線1238P芯片插座8P124單片機(jī)鎖緊座40P125雙頭1P杜邦線8P226雙壓頭8P杜邦線8P127銅柱3mm(M3x8mm+6 (配螺母)428焊錫絲0.8mm(100g)0.529松

30、香5g130PCB板1附錄G: 液晶函數(shù)/*項(xiàng)目名稱:密碼鎖編程作者:謝萍指導(dǎo)老師:王韌完成時(shí)間:2013年12月項(xiàng)目功能:密碼鎖上電或按鍵復(fù)位后能顯示初始化界面 具有不可修改的管理員密碼123456 具有系統(tǒng)原始用戶密碼888888 用戶可以設(shè)定并存儲(chǔ)用戶密碼 密碼輸入時(shí)處于保密顯示狀態(tài) 密碼輸入錯(cuò)誤累計(jì)不到3次時(shí)報(bào)錯(cuò) 密碼輸入錯(cuò)誤累計(jì)達(dá)到3次時(shí)報(bào)警 密碼輸入正確時(shí)顯示密碼輸入正確提示信息*/ /* 函數(shù)庫(kù)名稱:液晶相關(guān)的函數(shù) */ #include <reg52.h>#include <intrins.h>#define uint unsigned int#defi

31、ne uchar unsigned charsbit en = P30;sbit rw = P31;sbit rs = P32;/*延時(shí)函數(shù)*/void delay(uint m) while(-m);/*液晶寫(xiě)命令函數(shù)*/void writecommand(uchar command) delay(100); rs=0; rw=0; en=1; P0=command; /液晶數(shù)據(jù)線P0 en=0;/*液晶寫(xiě)數(shù)據(jù)函數(shù)*/void writedata(uchar date) delay(100); rs=1; rw=0; en=1; P0=date; en=0;/*液晶設(shè)置函數(shù)*/void lc

32、dset(void) writecommand(0x30); /基本指令集 writecommand(0x01); /清屏,DDRAM的地址歸零 writecommand(0x02); /地址歸位 writecommand(0x0c); /顯示開(kāi),光標(biāo)關(guān),反白關(guān) writecommand(0x06); /DDRAM地址加1/*液晶顯示函數(shù)*/void display(uchar y, uchar x, uchar *p) switch (y) case 1:writecommand(0x7f+x); break; /液晶第一行 case 2:writecommand(0x8f+x); brea

33、k; /0x90+(x-1) case 3:writecommand(0x87+x);break; case 4:writecommand(0x97+x);break; default:break; while(*p) writedata(*p+); 附錄H: 24C02函數(shù)/* 函數(shù)庫(kù)名稱:24C02相關(guān)的函數(shù) */ #include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char#defineOP_READ0xa1/ 器件地址以及讀取操作#define

34、OP_WRITE 0xa0/ 器件地址以及寫(xiě)入操作#defineMAX_ADDR 0x7f/ AT24C02最大地址sbit SDA = P36;sbit SCL = P37;/*延時(shí)1ms子程序*/void delayms(uchar ms) uchar i;while(ms-)for(i = 0; i < 120; i+);/*開(kāi)始位*/void start()SDA = 1;SCL = 1;_nop_();_nop_();SDA = 0;_nop_();_nop_();_nop_();_nop_();SCL = 0;/*停止位*/void stop()SDA = 0;_nop_()

35、;_nop_();SCL = 1;_nop_();_nop_();_nop_();_nop_();SDA = 1;/*從AT24C02移入數(shù)據(jù)到單片機(jī)*/uchar read() uchar i,read_data;for(i = 0; i < 8; i+)SCL = 1;read_data <<= 1;read_data |= (uchar)SDA;SCL = 0;return(read_data);/*從單片機(jī)移出數(shù)據(jù)到AT24C02*/bit send(uchar write_data)uchar i;bit ack_bit;for(i = 0; i < 8; i

36、+) / 循環(huán)移入8個(gè)位SDA = (bit)(write_data & 0x80);_nop_();SCL = 1;_nop_();_nop_();SCL = 0;write_data <<= 1;SDA = 1; / 讀取應(yīng)答_nop_();_nop_();SCL = 1;_nop_();_nop_();_nop_();_nop_();ack_bit = SDA;SCL = 0;return ack_bit;/ 返回AT24C02應(yīng)答位/*在指定地址addr處寫(xiě)入數(shù)據(jù)write_data*/void write_byte(uchar addr, uchar write_

37、data)start();send(OP_WRITE);send(addr);send(write_data);stop();delayms(10);/*在當(dāng)前地址讀取*/uchar read_current()unsigned char read_data;start();send(OP_READ);read_data = read();stop();return read_data;/*在指定地址讀取*/uchar read_random(uchar random_addr)start();send(OP_WRITE);send(random_addr);return(read_curre

38、nt();/*填充數(shù)據(jù)fill_data到EEPROM內(nèi)*/void fill_byte(uchar fill_data)uchar i;for(i = 0; i < MAX_ADDR; i+)write_byte(i, fill_data); /*將24c02初始化*/void init_i2c() SCL=1;SDA=1;附錄L: 鍵盤(pán)掃描函數(shù)/* 函數(shù)庫(kù)名稱:鍵掃描函數(shù) */ #include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuc

39、har key;/*行列式鍵盤(pán)掃描程序*/uchar keyscan(void)uchar scan,tmp; /列號(hào),行號(hào)P1=0xf0; /發(fā)全行0掃描碼if(P1&0xf0)!=0xf0) /若有鍵按下delay(1000); / 延時(shí)去抖if(P1&0xf0)!=0xf0) /判鍵是否還按下scan=0xfe; while(scan&0x10)!=0) /逐行掃描 P1=scan; /輸出行掃描碼 if(P1&0xf0)!=0xf0) /本行有鍵按下 tmp=(P1&0xf0)|0x0f; delay(50000); /按鍵判釋放 return

40、(scan)|(tmp); /還回鍵值 else scan=(scan<<1)|0x01; /行掃描碼左移1位return (0); /無(wú)鍵按下,還回0 附錄M: 基礎(chǔ)函數(shù)/*輸入密碼子程序*/void shuru() char a,b,c,d,e,f,r=0;do key=keyscan();if(r=0&&(key=0x28|key=0x11|key=0x21|key=0x41|key=0x12|key=0x22|key=0x42|key=0x14|key=0x24|key=0x44) switch(key)case 0x28:a=0x30;break;case

41、 0x11:a=0x31;break;case 0x21:a=0x32;break;case 0x41:a=0x33;break;case 0x12:a=0x34;break;case 0x22:a=0x35;break;case 0x42:a=0x36;break;case 0x14:a=0x37;break;case 0x24:a=0x38;break;case 0x44:a=0x39;break;r+;tab0=a;writecommand(0x8a);writedata(0x2a);key=keyscan();if(r=1&&(key=0x28|key=0x11|key

42、=0x21|key=0x41|key=0x12|key=0x22|key=0x42|key=0x14|key=0x24|key=0x44) switch(key) case 0x28:b=0x30;break; case 0x11:b=0x31;break; case 0x21:b=0x32;break; case 0x41:b=0x33;break; case 0x12:b=0x34;break; case 0x22:b=0x35;break; case 0x42:b=0x36;break; case 0x14:b=0x37;break; case 0x24:b=0x38;break; ca

43、se 0x44:b=0x39;break; r+; tab1=b; writedata(0x2a); key=keyscan();if(r=2&&(key=0x28|key=0x11|key=0x21|key=0x41|key=0x12|key=0x22|key=0x42|key=0x14|key=0x24|key=0x44) switch(key)case 0x28:c=0x30;break;case 0x11:c=0x31;break;case 0x21:c=0x32;break;case 0x41:c=0x33;break;case 0x12:c=0x34;break;c

44、ase 0x22:c=0x35;break;case 0x42:c=0x36;break;case 0x14:c=0x37;break;case 0x24:c=0x38;break;case 0x44:c=0x39;break;r+;tab2= c;writedata(0x2a);key=keyscan();if(r=3&&(key=0x28|key=0x11|key=0x21|key=0x41|key=0x12|key=0x22|key=0x42|key=0x14|key=0x24|key=0x44) switch(key) case 0x28:d=0x30;break; c

45、ase 0x11:d=0x31;break; case 0x21:d=0x32;break; case 0x41:d=0x33;break; case 0x12:d=0x34;break; case 0x22:d=0x35;break; case 0x42:d=0x36;break; case 0x14:d=0x37;break; case 0x24:d=0x38;break; case 0x44:d=0x39;break; r+; tab3= d; writedata(0x2a); key=keyscan();if(r=4&&(key=0x28|key=0x11|key=0x21|key=0x41|key=0x12|key=0x22|key=0x42|key=0x14|key=0x24|key=0x44) switch(key)case 0x28:e=0x30;break;case 0x11:e=0x31;break;case 0x21:e=0x32;break;case 0x41:e=0x33;break;case 0x12:e=0x34;break;case 0x22:e=0x35;brea

溫馨提示

  • 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ù)網(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)論