畢業(yè)設(shè)計(論文)-超市存物柜密碼鎖設(shè)計_第1頁
畢業(yè)設(shè)計(論文)-超市存物柜密碼鎖設(shè)計_第2頁
畢業(yè)設(shè)計(論文)-超市存物柜密碼鎖設(shè)計_第3頁
畢業(yè)設(shè)計(論文)-超市存物柜密碼鎖設(shè)計_第4頁
畢業(yè)設(shè)計(論文)-超市存物柜密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)摘要在日常的生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機械式鑰匙開鎖,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。在安全技術(shù)防范領(lǐng)域,具有防盜報警功能的電子密碼鎖逐漸代替了傳統(tǒng)的機械式密碼鎖,電子密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點。本文從經(jīng)濟實用的角度出發(fā),采用美國Atmel公司的單片機AT89S51作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的矩陣鍵盤輸入、12864液晶顯示、報警、開鎖等,用C語言編寫的主控芯片控制程序與EEPROMAT24C02讀寫程序相結(jié)合,并用Keil軟件進行編譯,設(shè)計了一款可以多次更改密碼,具有報警功能的電子密碼控制系統(tǒng)。這種密碼鎖的電路設(shè)計具有防試探按鍵輸入、智能控制上鎖、開鎖、報警、修改密碼等多種功能。密碼長度可變、保密性強、靈活性高、應(yīng)用日益廣泛。關(guān)鍵字:AT89S52;24C02;12864;繼電器

AbstractInthedailylifeandthework,thewaytothehouse'sanddepartment'ssafeguard,unit'sdocumentfile,thefinancialreportingaswellassomeindividualmaterialpreservationalmostneedmanylocks.Ifweusetraditionmechanicalkeytoopen,thepeopleoftenmustcarrymanykeys,butitisnotextremelyconvenient.Ifthekeylost,thesecuritywilldeclinegreatly.Inthesafetyworkguarddomain,thelockwithsecuritywarningfunctionelectroniccombinationhavereplacedthetraditionalmechanicalcombinationlockgradually,theelectroniccombinationlockhavethehighlysecurity,thelowlycost,thelowlypowerwastage,easytooperateandsoonmerits.Thisarticleisbasedontheeconomicalandpracticalpointofview,usestheUnitedStatesAtmelCorporationAT89S51microcontrollerasamasterchipandthedatamemoryunit,itcombineswiththeexternalmatrixkeyboardinput,LCDdigitaldisplay,alarm,unlockandsooncircuits,dominatesbytheCprogramminglanguagechipEEPROMofthecontrolproceduresandcarriesonthetranslationwithKeilsoftware,thepasswordcanbechangedmanytimes,theelectronicthepasswordcontrolalsohasthealarmingfunction.Thispasswordlockcircuitdesignhasanti-testbuttoninput,intelligentcontrollock,unlock,alarmandchangethepasswordmultiplefunctions.Passwordlengthcanbechanged,greatsecurityandhighflexiblethanothers,itiswidelyused.Keyword:AT89S52devices;24C02;12864;relay長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)目錄摘要 I目錄 I第一章緒論 11.1電子密碼鎖簡介 11.2電子密碼鎖的發(fā)展趨勢 11.3本設(shè)計所要實現(xiàn)的目標(biāo) 2第二章總體設(shè)計方案 32.1設(shè)計要求 32.2密碼鎖的論證與選擇 32.2.1方案一:采用數(shù)字電路控制 32.2.2方案二:采用以單片機為核心的控制方案 32.3系統(tǒng)總體設(shè)計 4第三章硬件單元模塊設(shè)計 53.1微處理模塊 53.1.1主要元件介紹 53.1.2微處理模塊電路 63.2存儲模塊 63.2.1主要元件介紹 63.2.224c08管腳功能: 73.2.3時序圖 73.2.4存儲模塊電路 83.3輸入模塊 93.4電源模塊 103.5開關(guān)鎖模塊 103.6報警模塊 113.7顯示模塊 113.8紅外模塊電路原理圖 12第四章軟件設(shè)計 144.1軟件工作流程 144.2密碼修改流程 16第五章調(diào)試與實現(xiàn) 175.1硬件調(diào)試 175.2軟件調(diào)試 175.3軟件調(diào)試心得 185.4結(jié)果分析 195.5Proteus仿真 195.6PCB板制作 20第六章總結(jié)與展望 22致謝 23參考文獻 24附錄1元器件清單 25附錄2程序清單 26附錄3成品實物圖 40長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)第一章緒論1.1電子密碼鎖簡介電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。現(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下:1.保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機開鎖成功率幾乎為零。

2.密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。

3.誤碼輸入保護,當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。4.無活動零件,不會磨損,壽命長。5.使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。6.電子密碼鎖操作簡單易行,一學(xué)即會。1.2電子密碼鎖的發(fā)展趨勢日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運而生。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引角的2051系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越來越多的電子密碼鎖。出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠(yuǎn)程控制,只能適用于保密要求高且供個人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子防盜鎖獲得高度的保密性,如防范森嚴(yán)的金庫,需要使用復(fù)合信息密碼的電子防盜鎖,組合使用信息也能夠使電子防盜鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。可以看出組合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。1.3本設(shè)計所要實現(xiàn)的目標(biāo)本設(shè)計采用單片機為主控芯片,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為了提高安全性,當(dāng)密碼輸入錯誤將報警。密碼可以有用戶自己修改設(shè)定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入就的密碼,在輸入新密碼的時候要二次確認(rèn),以防止誤操作。

第二章總體設(shè)計方案2.1設(shè)計要求1.能檢測柜中有無物品。2.密碼錯誤自鎖。3.液晶在線顯示。4.按鍵操作。5.具有開鎖功能。2.2密碼鎖的論證與選擇2.2.1方案一:采用數(shù)字電路控制用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單但控制的準(zhǔn)確性和靈活性差。故不采用。2.2.2方案二:采用以單片機為核心的控制方案由于單片機種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較,合理選擇,以期獲得最佳的性價比。一般來說在選取單片機時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機內(nèi)有無時鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素?;谝陨弦蛩乇驹O(shè)計選用單片機AT89S52作為本設(shè)計的核心元件,利用單片機靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接12864液晶顯示器用于顯示作用。當(dāng)用戶需要開鎖時,先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密碼輸入正確則開鎖,不正確顯示密碼錯誤重新輸入密碼,當(dāng)三次密碼錯誤則發(fā)出報警;當(dāng)用戶需要修改密碼時,先按下鍵盤設(shè)置鍵后輸入原來的密碼,只有當(dāng)輸入的原密碼正確后才能設(shè)置新密碼。新密碼輸入無誤后按確認(rèn)鍵使新密碼將得到存儲,密碼修改成功。可以看出方案二控制靈活準(zhǔn)確性好且保密性強還具有擴展功能,根據(jù)現(xiàn)實生活的需要此次設(shè)計采用此方案。2.3系統(tǒng)總體設(shè)計本設(shè)計主要由單片機、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與自己保存的密碼進行對比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實際使用時只要將單片機的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈。本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部分、晶振部分、顯示部分、報警部分、開鎖部分、紅外部分組成,軟件部分對應(yīng)的由主程序、初始化程序、12864顯示程序、鍵盤掃描程序、啟動程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時程序,紅外線程序等組成。其總體框架如圖2-1所示。AT89C52紅外電路復(fù)位電路密碼存儲電路晶振電路輸入AT89C52紅外電路復(fù)位電路密碼存儲電路晶振電路輸入電路顯示電路報警電路開鎖電路

第三章硬件單元模塊設(shè)計3.1微處理模塊3.1.1主要元件介紹AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止,如圖3.1所示。圖3.1AT89S52單片機引腳排列圖長沙航空職業(yè)技專科畢業(yè)設(shè)計(論文)3.1.2微處理模塊電路單片機系統(tǒng)由AT89S51芯片、時鐘電路和復(fù)位電路三部分組成,主要是控制和處理各模塊電路的數(shù)據(jù)輸入、數(shù)據(jù)輸出、顯示、報警,紅外檢測等,如圖3.2所示。圖3.2微處理模塊電路3.2存儲模塊AT24C02是一個I2C總線接口E2PROM存儲器,用于存儲電子密碼鎖的密碼數(shù)據(jù)。3.2.1主要元件介紹AT24C02是美國ATEML公司生產(chǎn)的低功耗COMS型,I2C總線接口的E2PROM存儲器,其內(nèi)含256x8為存儲空間,具有工作電壓寬(2.5V~5.5V)、擦寫次數(shù)多(大于1000次)、寫入速度快(小于10mS)、抗干擾能力強、數(shù)據(jù)不易丟失、體積小等特點。采用了I2C總線進行數(shù)據(jù)讀寫的串行器件,占用很少的資源和I/O線,而且支持在線編程,實時存取數(shù)據(jù)十分方便,如圖3.3所示。圖3.324C02引腳排列圖3.2.224c08管腳功能:管腳描述:SCL:串口時鐘24c08串口時鐘輸入管腳用于產(chǎn)生機器件所有數(shù)據(jù)發(fā)送或接收的時鐘,這是一個輸入管腳。SDA:串口數(shù)據(jù)地址24C08雙向串行數(shù)據(jù)地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA是一個開路輸出管腳,可與其他開路輸出或集電極開路輸出進行或(wire-OR)。A0、A1、A2、A3:器件地址輸入端這些輸入腳用于多個器件級聯(lián)時設(shè)置器件地址,當(dāng)這些腳懸空時默認(rèn)值為0,(24C01除外)。使用24C08時最多只可以連接2個器件,所有地址管腳A0、A1、A3都未使用,管腳可以連接到VSS或懸空,如果只用到一個24C08A2管腳可以連接到VSS或懸空。WP:寫保護如果WP管腳連接到VCC所有內(nèi)容都被寫保護(只能讀?。.?dāng)WP連接到VSS或被懸空,允許器件進行正常的讀/寫操作。表3.424C02引腳說明引腳說明功能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時鐘WP寫保護VCC+1.8~6.0VVSS地端3.2.3時序圖II2C總線協(xié)議定義:1.只有在總線空閑時候才允許啟動數(shù)據(jù)傳送。2.在數(shù)據(jù)傳送過程中,當(dāng)時鐘線為高電平是,數(shù)據(jù)線必須保持穩(wěn)定狀態(tài),不允許有跳變。時鐘線為高電平時,數(shù)據(jù)線的任意電平變化將被看作總顯的起始或停止信號。起始信號:時鐘線保持高電平期間,數(shù)據(jù)線電平從高到底的跳變作為IIC總線的起始信號。停止信號:時鐘線保持高電平期間,數(shù)據(jù)線電平從低電平到高電平的跳變作為IIC總線的停止信號。 圖3.524C02時序圖3.2.4存儲模塊電路圖中上拉電阻的作用是減少AT24C02的靜態(tài)功耗,由于AT24C02的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機傳送數(shù)。每當(dāng)成功修改一次密碼,系統(tǒng)就自動調(diào)用存儲程序,將新密碼保存在芯片內(nèi);當(dāng)系統(tǒng)需要進行密碼識別時,通過程序讀取存儲器中的密碼值存入緩沖區(qū),與所輸入密碼進行比較,完成密碼鎖的開鎖控制,如圖3.6所示。圖3.6AT24C02模塊電路3.3輸入模塊鍵盤可以分為獨立連接式和行列式(矩陣式)兩類。根據(jù)設(shè)計要求,本電路設(shè)計采用4×4行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O線的數(shù)目。矩陣式鍵盤又叫行列式鍵盤。用I/O口線組成行列結(jié)構(gòu),按鍵設(shè)置在行列的交叉點上。本電路采用4條行線和4條列線,即可組成具有4×4個按鍵的鍵盤。其電路圖如下圖2.4所示。對鍵的識別通常用逐行掃描查詢法。首先判別鍵盤中有無按鍵按下,由單片機I/O口向鍵盤送(輸出)全掃描字,然后讀入(輸入)列線狀態(tài)來判斷。方法是:向行線輸出全掃描字00H,把全部行線置為低電平,然后將列線的電平狀態(tài)讀入累加器A中。如果有鍵按下,總會有一根列線電平拉至低電平,從而使列輸入不全為1。鍵盤中哪一個鍵按下,是由行線逐行置低電平后,檢查列輸入狀態(tài)實現(xiàn)的,其方法是:依次給行線送低電平,然后查所有列線狀態(tài),如果全為1,則所按下的鍵不在此行,如果不全為1,則所按下的鍵必在此行,而且是在與零電平列線相交的交點上的那個鍵,矩陣鍵盤如圖3.7所示。圖3.7矩陣鍵盤3.4電源模塊給整個電路模塊提供所需的能量,使電路能夠正常工作。我們采用性能穩(wěn)定可靠、價格低廉的LM78系列穩(wěn)壓塊如圖3.8所示,由于它內(nèi)部有電流的限制以及過熱保護和安全工作區(qū)的保護使得它不會輕易損壞,電源模塊如圖3.9所示。圖3.87805引腳排列圖圖3.9電源模塊模塊電路3.5開關(guān)鎖模塊通過單片機P3.7控制三極管的工作狀態(tài)來決定繼電器的斷開與吸合,從而達到開關(guān)鎖的目的。當(dāng)用戶輸入的密碼正確而且是在規(guī)定的時間輸入的話,單片機便輸出開門信號,送到開鎖驅(qū)動電路,然后驅(qū)動電磁鎖,達到開門的目的。在本次設(shè)計中,基于節(jié)省材料的原則,暫時用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示鎖開;滅,表示鎖合,如圖3.10所示。圖3.10開關(guān)鎖模塊長沙航空職業(yè)技專科畢業(yè)設(shè)計(論文)3.6報警模塊報警部分由蜂鳴器發(fā)聲裝置及外圍電路組成,高電平不發(fā)聲,當(dāng)輸入三次密碼錯誤時,單片機的P3.6引腳為低電平,三極管Q1導(dǎo)通蜂鳴器發(fā)聲報警,如圖3.11所示。圖3.11報警模塊電路3.7顯示模塊本系統(tǒng)采用LCD12864液晶顯示,用于直觀地提示用戶輸入開鎖密碼、密碼信息的正誤提示、開鎖信息的顯示等,顯示整個電子密碼鎖的工作狀態(tài),如圖3.12所示。 圖3.1212864液晶顯示模塊電路長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)圖3.1312864液晶顯示引腳功能表管腳號管腳名稱電平管教功能描述1GND0地2VDD+5V±%10電源電壓+5V3VO0~-10液晶顯示驅(qū)動電壓4RSHLRS=“H”表示DB7~DB0為顯示數(shù)據(jù)RS=“L”表示DB7~DB0為指令數(shù)據(jù)5R/WHLRW=“H”數(shù)據(jù)被讀到DB77~DB0RW=“L”DB7~DB0的數(shù)據(jù)寫到IR或DR6EHL數(shù)據(jù)線7DB0HL數(shù)據(jù)線8DB1HL數(shù)據(jù)線9DB2HL數(shù)據(jù)線10DB3HL數(shù)據(jù)線11DB4HL數(shù)據(jù)線12DB5HL數(shù)據(jù)線13DB6HL數(shù)據(jù)線14DB7HL數(shù)據(jù)線15FSBHL并串/行接口選擇H并行L串行16N.CHL空腳17RSTHL復(fù)位信號18VEE-10LCD驅(qū)動負(fù)電壓輸入19LEDK+5背光電源20LEDA0背光3.8紅外模塊電路原理圖1、紅外模塊電路如圖3.14。圖3.14紅外模塊電路如上所示,左圖為紅外輸入,其中P3是紅外接收頭,“1”腳為信號輸出端,連接到單片機。“2”腳為接地端,“3”腳為電源端,其中C5起電源濾波作用,R9為信號端提供上拉電平。紅外線的光譜位于紅色光之外,波長是0.76~1.5μm,比紅光的波長還長。紅外檢測是利用紅外線進行傳遞信息的一種控制方式,紅外檢測具有抗干擾,電路簡單,容易編碼和解碼,功耗小,成本低的優(yōu)點。紅外遙控幾乎適用所有家電的控制。紅外通信的基本原理是發(fā)送端將基帶二進制信號調(diào)制為一系列的脈沖串信號(載波信號),通過紅外發(fā)射管發(fā)射紅外信號。常用的有通過脈沖寬度來實現(xiàn)信號調(diào)制的脈寬調(diào)制(PWM)和通過脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制的脈時調(diào)制(PPM)兩種方法。脈時調(diào)制(PPM)是紅外數(shù)據(jù)協(xié)會(IrDA)和國際電子電工委員會(IEEE)都推薦的調(diào)制方式,本設(shè)計采用脈時調(diào)制方法,即用兩個脈沖串之間的時間間隔來表示二進制信息,數(shù)據(jù)比特的傳送仿照不帶奇偶校驗的RS232[8]通信,首先產(chǎn)生一個同步頭,然后接著8位數(shù)據(jù)比特。

第四章軟件設(shè)計4.1軟件工作流程軟件工作流程包括7個部分:系統(tǒng)的初始化、調(diào)用顯示、24C08的讀寫操作、校對開鎖、出錯報警處理、數(shù)據(jù)顯示、紅外檢測。初始化主要包括:中斷和定時器的初始化,以及系統(tǒng)參數(shù)等的初始化;對24C08的讀寫操作主要完成對原先密碼進行更改或相關(guān)設(shè)置的目的,然后將更新后的密碼保存到其中。校對開鎖是要對輸入的密碼和保存在存儲器中的密碼相比較,相同就通過,否則要進入出錯報警階段。3次都輸入的是錯誤密碼,系統(tǒng)將長時間報警并自鎖,輸入管理員密碼解鎖。其它子模塊均為各個芯片的具體讀寫操作,通過單片機模擬讀寫時序。長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)開始程序流程圖開始初始化初始化調(diào)用顯示調(diào)用顯示NN有鍵下?有鍵下?YY鍵值識別鍵值識別N數(shù)字鍵?N數(shù)字鍵?YY存儲鍵值存儲鍵值N確定鍵?N確定鍵?密碼錯誤顯密碼錯誤顯示NYNY密碼正確?密碼正確?Y記錄錯誤次數(shù)Y記錄錯誤次數(shù)N驅(qū)動開鎖程序N驅(qū)動開鎖程序>3次?>3次?Y開鎖Y開鎖鎖定鎖定報警延時報警延時延時復(fù)位延時復(fù)位管理員密碼解鎖管理員密碼解鎖圖4.1流程圖其余子模塊均為單片機模擬各芯片的讀寫時序,此處不做仔細(xì)闡述。4.2密碼修改流程提示輸入舊密碼舊密碼驗證提示輸入舊密碼舊密碼驗證按鍵掃描OK鍵按下密碼錯誤記錄錯誤次數(shù)≥3次?鎖定報警延時解鎖密碼正確提示輸入新密碼OK鍵按下提示再次輸入新密碼OK鍵按下是否一致?是否密碼修改成功改密鍵再次按下退出改密模式密碼修改流程圖NY改密鍵按下圖4.2密碼修改流程圖長沙航空職業(yè)技專科畢業(yè)設(shè)計(論文)第五章調(diào)試與實現(xiàn)5.1硬件調(diào)試單片機應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的.許多硬件故障只有通過軟、硬件聯(lián)調(diào)才能發(fā)現(xiàn),但一般是先排除系統(tǒng)中比較明顯的硬件故障后才和軟件一起聯(lián)調(diào)。

常見的硬件故障:

(1)邏輯錯誤

硬件的邏輯錯誤是由于設(shè)計錯誤和焊接過程中的工藝錯誤而造成的,包括錯線、開路、短路等,其中最常見的是短路故障。

(2)元器件錯誤

元器件錯誤的原因有器件損壞或性能不符合要求,電解電容、二極管的極性接反或集成塊裝反等。

(3)可靠性差

應(yīng)用系統(tǒng)可靠性差的原因很多,如內(nèi)部和外部的干擾、電壓紋波系數(shù)過大、器件負(fù)載過重等均會造成系統(tǒng)的可靠性差。另外,走線和布置的不合理也會造成系統(tǒng)可靠性差。

(4)電源故障電源故障包括:電壓值不符合設(shè)計要求、電源功率不足、負(fù)載能力差、紋波太重等。

硬件調(diào)試辦法

脫機調(diào)試是在加電前,先用萬用表等工具,按圖紙仔細(xì)核對線路是否正確,并對元器件的安裝、型號、規(guī)格等進行仔細(xì)檢查,特別焊接時有無走線之間相互短路等。5.2軟件調(diào)試程序在KEILC51上調(diào)試,采用模塊程序設(shè)計技術(shù),則逐個模塊調(diào)好后再進行系統(tǒng)程序總調(diào)。

對于模塊結(jié)構(gòu)程序.要一個個子程序分別調(diào)試。調(diào)試時,一定要符合入口條件和出口條件,調(diào)試可用單步運行和斷點運行方式,通過檢查用者系統(tǒng)的CPU現(xiàn)場情況、RAM的內(nèi)容和I/O口的狀態(tài),檢測程序執(zhí)行結(jié)果是否符合設(shè)計要求,有無循環(huán)錯誤、有無機器碼錯誤以及轉(zhuǎn)移地址的錯誤,同時,還可以發(fā)現(xiàn)系統(tǒng)中存在的硬件設(shè)計錯誤和軟件算法錯誤。

各程序模塊通過后,則可以把相關(guān)功能塊連在一起進行總調(diào)。這個階段若有故障,可以考慮各子程序運行時是否破壞了現(xiàn)場,緩沖單元、工作寄存器是否發(fā)生沖突,標(biāo)志位的建立和清除是否有誤,堆棧區(qū)是否有溢出,輸入設(shè)備的狀態(tài)是否正常等等,若用者系統(tǒng)是在開發(fā)機的監(jiān)控程序下運行時,還要考慮用者緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。

單步和斷點調(diào)試后,還應(yīng)進行連續(xù)調(diào)試,用以確定定時精度、CPU的實時響應(yīng)等問題。當(dāng)全部調(diào)試和修改完成后,將程序固化到AT89S51中。進行整機調(diào)試。各功能實現(xiàn)則調(diào)試完成。5.3軟件調(diào)試心得1.由于KeilC對中文支持不太好,因而會出現(xiàn)顯示的光標(biāo)與光標(biāo)實際所在不一致的現(xiàn)象,這會對修改中文注釋造成影響。在電腦界面下面,我們可以把字體設(shè)置為Courier,這樣就可以顯示正常。2.當(dāng)使用有片外內(nèi)存的MCU(如W77E58,它有1K片外內(nèi)存)的時候,肯定要設(shè)置標(biāo)志位,并且編譯方式要選擇大模式,否則會出錯。3.當(dāng)使用KeilC跟蹤程序運行狀態(tài)的時候,要把引起Warning的語句屏蔽,否則有可能跟蹤語句的時候會出錯。4.在調(diào)用數(shù)組的時候,KeilC是首先把數(shù)組Load進內(nèi)存。如果要在C中使用長數(shù)組的時候,我們可以使用code關(guān)鍵字,這樣就實現(xiàn)了匯編的DB的功能,KeilC是不會把標(biāo)志code的數(shù)組Load入內(nèi)存的,它會直接讀取Rom。5.當(dāng)編程涉及到有關(guān)通信,時序是很重要的。拉高管腳的執(zhí)行速度遠(yuǎn)遠(yuǎn)比檢查管腳電平的要快。6.在等待管腳電平變化的時候,我們需要設(shè)置好超時處理,否則程序就會因為一個沒有預(yù)計的錯誤而死鎖。7.能用C語言實現(xiàn)的地方,盡量不要用匯編,尤其在算法的實現(xiàn),用匯編是晦澀難懂。8.程序的幾個參數(shù)數(shù)組所占篇幅很大,其中液晶背景數(shù)組最長,有四千個Byte,因而把那些初始化數(shù)組都放在另外一個C文件,在主文件使用使用關(guān)鍵字extern定義,這樣就不會對主文件的編寫造成干擾。9.所有函數(shù)之間的相關(guān)性越低越有利于以后功能的擴展。5.4結(jié)果分析通過以上的測試分析,超市存物柜密碼鎖能夠?qū)崿F(xiàn)密碼開關(guān)鎖功能,在沒有輸入密碼前12864液晶顯示界面模式,當(dāng)有人隨意按某個鍵后,系統(tǒng)退出界面模式進入輸入密碼模式,輸入三次密碼仍然錯誤系統(tǒng)報警,按鍵進入恢復(fù)出廠模式,輸入管理員密碼解鎖后蜂鳴器停止報警,恢復(fù)了出廠設(shè)置。如果要更改原密碼,在輸入原密碼后,按鍵進入密碼修改模式,鍵入兩次新密碼無誤后,按確認(rèn)鍵后密碼修改成功。5.5Proteus仿真在硬件和軟件都能實現(xiàn)的條件下,利用Proteus進行仿真,通過不停的調(diào)試與改正,最后終于實現(xiàn)了密碼鎖的功能,Proteus仿真結(jié)果如圖5-1所示。當(dāng)連好各個模塊電路的導(dǎo)線后,導(dǎo)入芯片程序,運行該密碼鎖仿真電路,通過按鍵可以進行密碼鎖的開鎖,修改密碼,錯誤密碼3次以上報警的操作,LCD顯示屏顯示相應(yīng)的操作現(xiàn)象,密碼正確可以開鎖,進而可以修改密碼,密碼錯誤三次以上由喇叭發(fā)出報警聲,如果系統(tǒng)出現(xiàn)錯誤還可以通過復(fù)位電路進行復(fù)位??傊?,在原有的理論基礎(chǔ)上,通過Proteus能夠成功的進行密碼鎖基本操作的仿真,實現(xiàn)了相關(guān)的功能。如圖5-1。圖5-15.6PCB板制作圖5-2長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)第六章總結(jié)與展望以上為畢業(yè)期間所作的畢業(yè)論文超市存物柜密碼鎖設(shè)計,它經(jīng)過多次修改和整理,可以滿足設(shè)計的基本要求。輸入密碼時,如三次輸入錯誤,則進行報警,在輸入時,12864顯示為“*”,在修改密碼時,則顯示數(shù)字。次設(shè)計還具有防盜功能,如對密碼控制系統(tǒng)進行破壞,有報警功能。通過對該課題的研究,加深對所學(xué)知識的理解,提高對課外知識的學(xué)習(xí)能力,增強知識的應(yīng)用能力,提高解決實際問題的能力,培養(yǎng)自我創(chuàng)新意識。積累實踐經(jīng)驗,為以后的發(fā)展打下基礎(chǔ),也為以后我們自己在這方面的發(fā)展打下基礎(chǔ),并能夠在這方面培養(yǎng)自己的興趣。畢業(yè)設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程,隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機的開發(fā)技術(shù)是十分重要的。通過這次畢業(yè)設(shè)計,無論從選題到定稿,從理論到實踐都使我學(xué)到了很多東西,它不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。同時也明白了理論與實踐相結(jié)合的重要性,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)致謝三年的大學(xué)生活不知不覺中就要結(jié)束了,在這段難忘的生活中,有許多美好的回憶,在畢業(yè)論文設(shè)計之中,我的老師和我的同學(xué)都不吝的指導(dǎo)我,我需要感謝的人太多太多,首先要感謝我的學(xué)校,感謝在這三年中讓我領(lǐng)悟到誠實做人,踏實做事,扎實做學(xué)問的深刻道理,讓我從一個懵懂得高中生變成一個成熟的大學(xué)生,其次我要感謝的是我的導(dǎo)師王老師。雖然王老師平日里工作繁多,但在我做畢業(yè)設(shè)計的每個階段,都給予我悉心的指導(dǎo)和幫助,關(guān)心我們每個階段所做的工作,當(dāng)然,還要感謝寢室的兄弟們在我完成論文的過程中給予我的幫助和鼓勵,也是他們陪我度過了這四年的生活,感謝能有這段美好的記憶。現(xiàn)在即將揮別我的學(xué)校、老師、同學(xué),還有我三年的大學(xué)生活,雖然依依不舍,但是對未來的路,我充滿了信心。最后,感謝在大學(xué)期間認(rèn)識我和我認(rèn)識的所有人,有你們的陪伴,才有我大學(xué)生活的絢麗多彩。長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)參考文獻[1]王文海,彭可,周歡喜,單片機應(yīng)用與實踐項目化教程.北京化學(xué)工業(yè)出版社,2010.6。[2]郭天祥,新概念51單片機C語言教程—入門、提高、開發(fā)、擴展全攻略.北京:電子工業(yè)出版社,2009.1。[3]祖龍起.一種新型可編程密碼鎖.大連輕工業(yè)學(xué)院學(xué)報,2002,(01)。;[4]李明喜.新型電子密碼鎖的設(shè)計.機電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03)。[5]王寬仁.可靠安全的智能密碼鎖.電子技術(shù)應(yīng)用.2001年第2期。[6]張毅剛,彭喜元,姜守達,喬立巖,新編MCS-51單片機應(yīng)用設(shè)計第三版,哈爾濱工業(yè)大學(xué)出版社,2009.8。

附錄1元器件清單元器件名稱型號/大小個數(shù)元器件名稱型號/大小個數(shù)12864液晶顯示器BJ12864M1二極管IN40071單片機AT89S521瓷片電容152E2PROM存儲器24C081瓷片電容10428針排座1電解電容25V/47uf2繼電器HRS4H-S-DC5V1電解電容10uf1三端穩(wěn)壓集成塊LM78051排阻10K1蜂鳴器1電阻10K4四針排座1電阻4701自鎖開關(guān)1電阻5101三極管85503電阻2K1晶振11.0592MHZ1電阻5.1K1發(fā)光二極管紅色1長沙航空職業(yè)技??飘厴I(yè)設(shè)計(論文)附錄2程序清單/*密碼鎖源程序**/#include<reg52.h>#include<INTRINS.H>#include<string.h>#include"iic.h"#include"keyscan.h"#include"LCD12864.h"#include"hongwai.h"#defineucharunsignedchar#defineuintunsignedintsbitshuchu=P3^2;sbitjieyong=P2^7;ucharcodelcd_table1[]={"--密碼鎖--"};ucharcodelcd_table2[]={"您好,請輸入密碼"};ucharcodelcd_table3[]={"******"};ucharcodelcd_table4[]={"☆★

◆◆

★☆"};ucharcodelcd_table5[]={"恭喜您密碼對了!"};ucharcodelcd_table6[]={"輸入錯誤?。?!"};ucharcodelcd_table7[]={"請輸入新的密碼"};ucharcodelcd_table8[]={"請再次輸入密碼"};ucharcodelcd_table9[]={"密碼修改成功!!"};ucharcodelcd_table10[]={"密碼修改失?。?!"};ucharcodelcd_table11[]={""};ucharcodelcd_table12[]={"B-->修改密碼"};ucharcodelcd_table13[]={"按任意鍵返回"};ucharcodelcd_table14[]={"已鎖定,輸入無效"};ucharcodelcd_table15[]={"如有必要,請聯(lián)系"};ucharcodelcd_table16[]={"開鎖公司,切勿強"};ucharcodelcd_table17[]={"行開鎖!"};ucharmima_table5[]={2,3,4,5,6,7};//原始密碼ucharmima_table2[]={10,10,10,10,10,10};//輸入密碼緩存ucharmima_table3[]={10,10,10,10,10,10};//改密輸入緩存ucharmima_table4[]={10,10,10,10,10,10};//改密確認(rèn)輸入緩存ucharmima_table1[]={10,10,10,10,10,10};//原始密碼uchariic_add;voiddelayms(){ uinti; for(i=0;i<300;i++);}voidmain(){ uintknum=16; uchari,k=0; uchargaimi=0,querengaimi=0,zisuo=0; jieyong=0; lcm_init(); SDA=1; SCL=1; /*iic_add=0x00; for(i=0;i<6;i++) { iic_write(iic_add,mima_table5[i]); iic_add++; delayms(); }*/ iic_add=0x00; for(i=0;i<6;i++) { mima_table1[i]=iic_readtoaddr(iic_add); iic_add++; delayms(); }//**************************** /** lcm_weizhi(0,0); i=0; while(i<6) { write_sj(mima_table1[i]+0x30); i++; } while(1); **///**************************** while(1) { knum=16; knum=keyscan(); //write_zl(0x01); do { knum=keyscan(); lcm_weizhi(0,0); i=0; while(lcd_table1[i]!='\0') { write_sj(lcd_table1[i]); i++; } lcm_weizhi(1,0); i=0; while(lcd_table2[i]!='\0') { write_sj(lcd_table2[i]); i++; } }while(knum==16); if(knum<=9) //密碼輸入 { mima_table2[k]=knum;//將鍵值賦到輸入緩存中 k++; lcm_weizhi(2,0); i=0; while(i<k) { write_sj(lcd_table3[i]); i++; } if(k>6) k=0; } lcm_weizhi(3,0); i=0; while(i<k) { write_sj(mima_table2[i]+0x30); i++; } if(knum==10)//確認(rèn)開鎖 { k=0; write_zl(0x01); if(mima_table2[0]==mima_table1[0]&&mima_table2[1]==mima_table1[1] &&mima_table2[2]==mima_table1[2]&&mima_table2[3]==mima_table1[3] &&mima_table2[4]==mima_table1[4]&&mima_table2[5]==mima_table1[5])//輸入正確 // if(strcmp(mima_table2,mima_table1)) { zisuo=0; gaimi=1; knum=keyscan(); while(knum==16) { knum=keyscan(); lcm_weizhi(0,0); i=0; while(lcd_table4[i]!='\0') { write_sj(lcd_table4[i]); i++; } lcm_weizhi(1,0); i=0; while(lcd_table5[i]!='\0') { write_sj(lcd_table5[i]); i++; } lcm_weizhi(2,0); i=0; while(lcd_table12[i]!='\0') { write_sj(lcd_table12[i]); i++; } lcm_weizhi(3,0); i=0; while(lcd_table13[i]!='\0') { write_sj(lcd_table13[i]); i++; } shuchu=0; } for(i=0;i<=6;i++) mima_table2[i]=10; } else//輸入錯誤 { zisuo++; gaimi=0; knum=keyscan(); while(knum==16) { knum=keyscan(); lcm_weizhi(1,0); i=0; while(lcd_table6[i]!='\0') { write_sj(lcd_table6[i]); i++; } lcm_weizhi(2,0); i=0; while(lcd_table13[i]!='\0') { write_sj(lcd_table13[i]); i++; } } } lcm_weizhi(2,0); i=0; while(lcd_table11[i]!='\0') { write_sj(lcd_table11[i]); i++; } lcm_weizhi(3,0); i=0; while(lcd_table11[i]!='\0') { write_sj(lcd_table11[i]); i++; } } ///*********************************** if(knum==11&&gaimi==1)//改密 { write_zl(0x01); knum=keyscan(); do { knum=keyscan(); lcm_weizhi(0,0); i=0; while(lcd_table1[i]!='\0') { write_sj(lcd_table1[i]); i++; } lcm_weizhi(1,0); i=0; while(lcd_table7[i]!='\0') { write_sj(lcd_table7[i]); i++; } if(knum<=9) //密碼輸入 { mima_table3[k]=knum;//將鍵值賦到輸入緩存中 k++; lcm_weizhi(2,0); i=0; while(i<k) { write_sj(lcd_table3[i]); i++; } if(k>6) k=0; } lcm_weizhi(3,0); i=0; while(i<k) { write_sj(mima_table3[i]+0x30); i++; } if(knum==10) { gaimi=0; querengaimi=1; } }while(gaimi==1); k=0; if(querengaimi) { write_zl(0x01); knum=keyscan(); do { knum=keyscan(); lcm_weizhi(0,0); i=0; while(lcd_table1[i]!='\0') { write_sj(lcd_table1[i]); i++; } lcm_weizhi(1,0); i=0; while(lcd_table8[i]!='\0') { write_sj(lcd_table8[i]); i++; } if(knum<=9) //密碼輸入 { mima_table4[k]=knum;//將鍵值賦到輸入緩存中 k++; lcm_weizhi(2,0); i=0; while(i<k) { write_sj(lcd_table3[i]); i++; } if(k>6) k=0; } lcm_weizhi(3,0); i=0; while(i<k) { write_sj(mima_table4[i]+0x30); i++; } if(knum==10) { querengaimi=0; if(mima_table4[0]==mima_table3[0]&&mima_table4[1]==mima_table3[1] &&mima_table4[2]==mima_table3[2]&&mima_table4[3]==mima_table3[3] &&mima_table4[4]==mima_table3[4]&&mima_table4[5]==mima_table3[5])//密碼修改成功 { write_zl(0x01); do { knum=keyscan(); lcm_weizhi(0,0); i=0

溫馨提示

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

最新文檔

評論

0/150

提交評論