大學(xué)電子密碼鎖設(shè)計(jì)畢業(yè)論文_第1頁
大學(xué)電子密碼鎖設(shè)計(jì)畢業(yè)論文_第2頁
大學(xué)電子密碼鎖設(shè)計(jì)畢業(yè)論文_第3頁
大學(xué)電子密碼鎖設(shè)計(jì)畢業(yè)論文_第4頁
大學(xué)電子密碼鎖設(shè)計(jì)畢業(yè)論文_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、江南 石 油 大 學(xué)課 程 設(shè) 計(jì)課 程 電子密碼鎖設(shè)計(jì) 題 目 院 系 專業(yè)班級 學(xué)生姓名 學(xué)生學(xué)號 指導(dǎo)教師 2011年3月 18 日東北石油大學(xué)課程設(shè)計(jì)任務(wù)書課程 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)題目 電子密碼鎖設(shè)計(jì)專業(yè)班級 電信07-5 姓名 高珊 學(xué)號 070901140506一、設(shè)計(jì)目的:訓(xùn)練學(xué)生綜合運(yùn)用己學(xué)課程的基本知識,獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)開發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試,應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測。二、設(shè)計(jì)要求:1. 應(yīng)用mcs-51單片機(jī)設(shè)計(jì)電子密碼鎖電路;2. 電子密碼鎖電路選用8位控制,連續(xù)三次輸入錯(cuò)誤密碼,密碼鎖輸出報(bào)警信號,輸入正確密碼解除報(bào)警;3. 硬件設(shè)計(jì)根據(jù)設(shè)計(jì)

2、的任務(wù)選定合適的單片機(jī),根據(jù)控制對象設(shè)計(jì)接口電路。設(shè)計(jì)的單元電路必須有工作原理,器件的作用,分析和計(jì)算過程;4. 軟件設(shè)計(jì)根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單;5. 原理圖設(shè)計(jì)根據(jù)所確定的設(shè)計(jì)電路,利用protel等有關(guān)工具軟件繪制電路原理圖、pcb板圖、提供元器件清單。三、參考資料:1 李朝青.單片機(jī)原理及接口技術(shù)(簡明修訂版)m.北京:北京航空航天大學(xué)出版社,19982 李全利.單片機(jī)原理及接口技術(shù)m.高等教育出版社,20033 protel99 se電路設(shè)計(jì)與制板m.機(jī)械工業(yè)出版社,20074 楊將新,李華軍,劉到駿等.單片機(jī)程序設(shè)計(jì)及應(yīng)用(

3、從基礎(chǔ)到實(shí)踐)j電子工業(yè)出版社,2006完成期限 2011.3.142011.3.18 指導(dǎo)教師 專業(yè)負(fù)責(zé)人 2011年 3 月 13 日目錄第一章 概述11.1 引言11.2 電子密碼鎖的背景21.3 電子鎖設(shè)計(jì)的意義的本設(shè)計(jì)特點(diǎn)2第二章系統(tǒng)硬件設(shè)計(jì)32.1系統(tǒng)總設(shè)計(jì)結(jié)構(gòu)圖32.2開鎖機(jī)構(gòu)設(shè)計(jì)42.2.1主控芯片at89c51單片機(jī)的簡介42.3鍵盤設(shè)計(jì)72.4系統(tǒng)電路設(shè)計(jì):82.4.1 晶振時(shí)鐘電路92.4.2復(fù)位電路設(shè)計(jì)92.4.3串口引腳功能介紹92.4.4 其它引腳92.5元器件采購10第三章 軟件設(shè)計(jì)流程及描述103.1 系統(tǒng)軟件設(shè)計(jì)整體思路103.2系統(tǒng)軟件設(shè)計(jì)流程圖113.3程

4、序調(diào)試123.3.1 程序調(diào)試用到的軟件及工具123.4 keil c51簡介123.5 調(diào)試過程13第四章源程序代碼154.1程序總體設(shè)計(jì)15總 結(jié)26參考文獻(xiàn)27致謝28附錄1 系統(tǒng)電路圖29第一章 概述1.1 引言隨著人們生活水平的提高,如何實(shí)現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的喜愛。鎖是置于可啟閉的器物上,用以關(guān)住某個(gè)確定的空間范圍或某種器具的,必須以鑰匙或暗碼打開的扣件。鎖具發(fā)展到現(xiàn)在已有若干年的歷史了,人們對它的結(jié)構(gòu)、機(jī)理也研究得很透徹,因此,不用鑰匙就能打開的方法和工

5、具也層出不窮?,F(xiàn)代人類文明社會里,由于社會中各種矛盾沖突十分劇烈,人們的思想道德觀念,價(jià)值觀念,文化修養(yǎng)水平等差異,群眾中良莠不齊,善良的人們能夠自覺規(guī)范自已的行為,“非禮不為”,雖無鑰匙亦不會亂闖。然而,那些毫無道德觀念的盜賊卻想方設(shè)法利用高科技手段撬門開鎖,使廣大居民防不勝防。為什么會出現(xiàn)這種情況呢?因?yàn)閭鹘y(tǒng)鎖具都存在致命的弱點(diǎn):第一、 鎖芯采用常見的銅、鋁、鋅等材料,抵抗不了強(qiáng)力破壞;第二、 鎖具制作工藝,技術(shù)落后,無法阻止技術(shù)手段的開啟。目前,市場上很多國內(nèi)外的鎖具,實(shí)際上都不具備真正的防盜功能。在慣偷面前,兩根鋼絲或幾件簡單的工具就可以把這些鎖打開,有的慣偷甚至公開揚(yáng)言:“沒有我打不

6、開的鎖。”其實(shí),不是他們多高明,而是一般鎖具技術(shù)原理太過簡單。面對這一殘酷的現(xiàn)狀,新時(shí)代提出了鎖具必須革命的迫切的要求。1.2 電子密碼鎖的背景隨著社會科技的進(jìn)步,鎖已發(fā)展到了密碼鎖、磁性鎖、電子鎖、激光鎖、聲控鎖等等。在傳統(tǒng)鑰匙的基礎(chǔ)上,加了一組或多組密碼,不同聲音,不同磁場,不同聲波,不同光束光波,不同圖像。(如指紋、眼底視網(wǎng)膜等)來控制鎖的開啟。從而大大提高了鎖的安全性,使不法之徒無從下手,人們也就能對自身財(cái)產(chǎn)安全有了更多的保障。當(dāng)今安全信息系統(tǒng)應(yīng)用越來越廣泛,特別在保護(hù)機(jī)密、維護(hù)隱私和財(cái)產(chǎn)保護(hù)方面起到重大作用,而基于電子密碼鎖的安全系統(tǒng)是其中的組成部分,因此研究它具有重大的現(xiàn)實(shí)意義。1

7、.3 電子鎖設(shè)計(jì)的意義的本設(shè)計(jì)特點(diǎn)單片機(jī),亦稱單片微電腦或單片微型計(jì)算機(jī)。它是把中央處理器(cpu)、隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、輸入/輸出端口 (i/0)等主要計(jì)算機(jī)功能部件都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。 計(jì)算機(jī)的產(chǎn)生加快了人類改造世界的步伐,但是它畢竟體積大。微計(jì)算機(jī)(單片機(jī))在這種情況下誕生了,它為我們改變了什么?縱觀我們現(xiàn)在生活的各個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能ic 卡、電子寵物等,這些都離不開單片機(jī)。以前沒有單片機(jī)時(shí),這些東西也能做,但

8、是只能使用復(fù)雜的模擬電路,然而這樣做出來的產(chǎn)品不僅體積大,而且成本高,并且由于長期使用,元器件不斷老化,控制的精度自然也會達(dá)不到標(biāo)準(zhǔn)。在單片機(jī)產(chǎn)生后,我們就將控制這些東西變?yōu)橹悄芑?,我們只需要在單片機(jī)外圍接一點(diǎn)簡單的接口電路,核心部分只是由人為的寫入程序來完成。這樣產(chǎn)品的體積變小了,成本也降低了,長期使用也不會擔(dān)心精度達(dá)不到了,且容易升級改善。 電子鎖可以在日常生活和現(xiàn)代辦公中,住宅與辦公室的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存等多種場合使用。大大提高了主人物資的安全性,安全可以代替老式機(jī)械鎖。目前使用的密碼鎖種類繁多,各具特色。本文從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用at89c2

9、051單機(jī),研制了一款具有防盜自動(dòng)報(bào)警功能的電子密碼鎖。該密碼鎖設(shè)計(jì)方法合理,簡單易行,成本低,符合住宅、辦公室用鎖要求,具有一定的推廣價(jià)值。(1)系統(tǒng)設(shè)置4位密碼,密碼通過鍵盤輸入,若密碼正確,則將鎖打開。(2)密碼由用戶自己設(shè)定,在開鎖狀態(tài)下,用戶可自行修改密碼。(3)具有自動(dòng)報(bào)警功能。自動(dòng)報(bào)警分現(xiàn)場報(bào)警和遠(yuǎn)程報(bào)警兩種?,F(xiàn)場報(bào)警由揚(yáng)聲器發(fā)出報(bào)警聲。(4)兩種情況下可報(bào)警:一是密碼輸入錯(cuò)誤3次,則報(bào)警;二是非正常開門,如破門而入的情況,可通過系統(tǒng)的紅外監(jiān)視裝置監(jiān)測,同時(shí)報(bào)警,保證了系統(tǒng)的安全性。系統(tǒng)工作時(shí),用戶通過按鍵輸入4位密碼,單片機(jī)將輸入密碼與設(shè)定密碼進(jìn)行比較,若密碼正確,則發(fā)出開鎖信

10、號,將門打開,系統(tǒng)不報(bào)警;若密碼不正確,則有相應(yīng)的指示燈閃動(dòng),并要求重新輸入密碼,重新輸入密碼的次數(shù)不能超過3次,若3次輸入的密碼都不正確,則發(fā)出報(bào)警信號。第二章 硬件電路設(shè)計(jì)及描述第二章系統(tǒng)硬件設(shè)計(jì)2.1系統(tǒng)總設(shè)計(jì)結(jié)構(gòu)圖數(shù)碼管及l(fā)ed燈顯示單片機(jī)時(shí)鐘電路密碼輸入設(shè)備單片機(jī)at89c51開鎖機(jī)構(gòu)本設(shè)計(jì)由主控芯片51單片機(jī),單片機(jī)時(shí)鐘電路,鍵盤,和開鎖電路組成。單片負(fù)責(zé)控制整個(gè)系統(tǒng)的執(zhí)行過程。2.2開鎖機(jī)構(gòu)設(shè)計(jì)通過單片機(jī)送給開鎖執(zhí)行機(jī)構(gòu),電路驅(qū)動(dòng)電磁鎖吸合,從而達(dá)到開鎖的目的。本設(shè)計(jì)通過p3.0接一個(gè)3極管驅(qū)動(dòng)繼電器打開電磁閥線圈實(shí)現(xiàn)開關(guān)門。電磁閥開鎖驅(qū)動(dòng)電路at89c51圖22 密碼鎖開鎖機(jī)構(gòu)

11、示意圖當(dāng)用戶輸入的密碼正確而且是在規(guī)定的時(shí)間及次數(shù)輸入之內(nèi),單片機(jī)便輸出開門信號,送到開鎖驅(qū)動(dòng)電路,然后驅(qū)動(dòng)電磁鎖,達(dá)到開門的目的。2.2.1主控芯片at89c51單片機(jī)的簡介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個(gè)芯片中,atme

12、l的at89c51是一種高效微控制器。主要特性: 與mcs-51 兼容 4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時(shí)間:10年 全靜態(tài)工作:0hz-24mhz 三級程序存儲器鎖定 1288位內(nèi)部ram 32可編程i/o線 兩個(gè)16位定時(shí)器/計(jì)數(shù)器 5個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路管腳說明: vcc:供電電壓。 gnd:接地。 p0口:p0口為一個(gè)8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。p1口:p1口是一個(gè)內(nèi)部提供上

13、拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存

14、器的內(nèi)容。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下表所示: p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時(shí)器0外部輸入) p3.5 t1(記時(shí)器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時(shí)為閃爍

15、編程和編程校驗(yàn)接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ale脈沖。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/psen有效。

16、但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/psen信號將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲器。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。圖2-3 at89c51芯片圖2.3鍵盤設(shè)計(jì)為了使本電路更加簡潔,本電子鎖的密碼鎖采用簡單易學(xué)但不為多數(shù)人知道的摩期碼作為電路的密碼輸入。鍵盤硬件設(shè)備只需要一個(gè)按即可實(shí)現(xiàn)密碼的輸入與更改。關(guān)于摩斯碼的介紹如下:摩斯密碼是20世紀(jì)使用

17、較為廣泛的電報(bào)傳輸使用的一種編碼。電報(bào)最早是由美國的摩爾斯在1844年發(fā)明的,故也被叫做摩爾斯電碼。它由一個(gè)輸入按鍵在輸入時(shí)按住的間隔時(shí)間長短組成來決定你的輸入:短促的點(diǎn)信號 ,讀 嘀 (di);保持一定時(shí)間的長信號,讀嗒 (da)。間隔時(shí)間:嘀1t;嗒3t;滴嗒間1t;字母間3t;字間5t。表21字符摩斯碼對照表字符摩斯碼字符摩斯碼字符摩斯碼a. _m_ _ y_ . _ _b_ . . .n_ .z _ _ . .c_ . _ .o_ _ _1 . _ _ _ _d_ . .p. _ _ .2 . . _ _ e.q_ _ . _ 3 . . . _ _f. . _ .r. _ .4 .

18、. . . _g_ _ .s. . .5 . . . . .h. . . .t_ 6_ . . . .i. .u. . _7_ _ . . .j. _ _ _v. . . _ 8_ _ _ . .k_ . _ w. _ _9_ _ _ _ .l. _ . .x_ . . _0_ _ _ _ _ 注:摩斯碼用在數(shù)字電路中“”表示1,“.”表示0,如0翻譯成二進(jìn)制數(shù)為11111h,十六進(jìn)制數(shù)為1fh。本電路設(shè)計(jì)只取09數(shù)字作密碼有效數(shù)字,如果輸入其它字符則無效。表32 本設(shè)計(jì)用到的數(shù)字的摩斯碼和二進(jìn)制對照數(shù)字0123456789摩斯碼11111011110011100011000010000010

19、0001100011100111102進(jìn)制111110111100111000110000100000100001100011100111102.4系統(tǒng)電路設(shè)計(jì):本系統(tǒng)電路主芯片at89c51,晶振和兩個(gè)電容組成的時(shí)鐘脈沖,一個(gè)電阻和一個(gè)電解電容和一個(gè)按鍵組成的復(fù)位電路,一個(gè)8段數(shù)碼管構(gòu)成的密碼顯示器,一個(gè)蜂鳴器,5個(gè)led,一個(gè)npn三極管加上一個(gè)繼電器組成的驅(qū)動(dòng)電路構(gòu)成了系統(tǒng)電路。2.4.1 晶振時(shí)鐘電路單片機(jī)xial1和xial2分別接30pf的電容,中間再并個(gè)12mhz的晶振,形成單片機(jī)的晶振電路。圖31 晶振電路2.4.2復(fù)位電路設(shè)計(jì)圖32 復(fù)位電路2.4.3串口引腳功能介紹 單片的

20、p1口外接1位8段數(shù)碼管,作為密碼輸入顯示器;int0外接蜂鳴器,當(dāng)int0被置0時(shí),蜂鳴器發(fā)出聲音;p0口外接發(fā)光二極管用作系統(tǒng)工作狀態(tài)提示。2.4.4 其它引腳 ale引腳懸空,復(fù)位引腳接到復(fù)位電路、vcc接電源、vss接地、ea接電源2.5元器件采購1.元器件清單表33 元器件清單原件名稱備注單片機(jī)at89c51電阻r1,r210k,100k各一只電解電容c3100f無極電容c1,c230vf數(shù)碼管一只5v蜂鳴器一只晶振12mhz三極管9014一個(gè)按健s1,s2各一個(gè)12v繼電器一個(gè)led d1,d2,d3,d4綠,黃,紅,藍(lán)各一個(gè)2極管40041只萬能電路板1塊經(jīng)采購繼電器沒有買到,所

21、以原電路的輸出電路3極管的繼電器改為led燈,只要電路ic經(jīng)密碼輸入后能點(diǎn)亮led燈則電路設(shè)計(jì)要求達(dá)到。第三章 軟件設(shè)計(jì)流程及描述3.1 系統(tǒng)軟件設(shè)計(jì)整體思路一個(gè)應(yīng)用系統(tǒng)要完成各項(xiàng)功能,首先必須有較完善的硬件作保證。同時(shí)還必須得到相應(yīng)設(shè)計(jì)合理的軟件的支持,尤其是微機(jī)應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時(shí)會變得很簡單,如數(shù)字濾波,信號處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與c51系列單片機(jī)相對應(yīng)的51匯編語言和結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行軟件編程。程序設(shè)計(jì)語言有三種:機(jī)器語言、匯編語言和高級語言

22、。機(jī)器語言是機(jī)器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語言的程序(成為目標(biāo)程序),計(jì)算機(jī)才能“看懂”,然后逐一執(zhí)行。高級語言是面向問題和計(jì)算過程的語言,它可通過于各種不同的計(jì)算機(jī),用戶編程時(shí)不必仔細(xì)了解所用的計(jì)算機(jī)的具體性能與指令系統(tǒng),而且語句的功能強(qiáng),常常一個(gè)語句已相當(dāng)于很多條計(jì)算機(jī)指令,于是用高級語言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統(tǒng)。3.2系統(tǒng)軟件設(shè)計(jì)流程圖開始糸統(tǒng)返

23、回否是密碼錯(cuò)誤主人是否要修改密碼開門輸入正確密碼保存后糸統(tǒng)返回輸入新密碼報(bào)警輸入錯(cuò)誤滿3次輸入錯(cuò)誤未滿3次密碼比較系統(tǒng)喚醒上電密碼輸入完畢系統(tǒng)等待密碼輸入 圖31 系統(tǒng)程序設(shè)計(jì)結(jié)構(gòu)圖3.3程序調(diào)試把也寫好的匯編語言程序的載入軟件調(diào)試工具,檢查軟件是否有設(shè)法錯(cuò)誤,再根據(jù)軟件提示對本程序進(jìn)行修改,直到?jīng)]有錯(cuò)誤再生成單片機(jī)能運(yùn)行的機(jī)器碼,再用51開發(fā)板或其它單怎機(jī)寫入工具把機(jī)器碼寫入單片機(jī)進(jìn)行實(shí)際的程序調(diào)試,根據(jù)實(shí)際情況再對程序的不足加以修改,直到滿足設(shè)計(jì)要求。3.3.1 程序調(diào)試用到的軟件及工具調(diào)試本程序需要用到keil c51,及51開發(fā)板一塊及其配套的下載燒錄軟件3.4 keil c51簡介k

24、eil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。 c51工具包的整體結(jié)構(gòu): uvision與ishell分別是c51 for windows和for dos的

25、集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如eprom中。3.5 調(diào)試過程 首先打開keil c51主程序,新建工程,新建文本框?qū)懭氤绦?,保存,檢查是否有語法錯(cuò)誤,經(jīng)反復(fù)檢查無誤

26、后匯編,生成51單片機(jī)可執(zhí)行的hex文件。然后用51開發(fā)板相匹配的燒錄軟件把hex文件寫入單片機(jī)。圖32 keil c51調(diào)試介面圖33 單片機(jī)燒錄軟件介面第四章 源程序代碼4.1程序總體設(shè)計(jì)本設(shè)計(jì)的程序:hc0 equ 4ah ;延時(shí)緩存區(qū)hc1 equ 4bhhc2 equ 4chhc3 equ 4dhhc4 equ 4ehxs_0 equ 50h ;顯示緩存區(qū)xs_1 equ 51hxs_2 equ 52hxs_3 equ 53hxs_4 equ 54hxs_5 equ 55hxs_6 equ 56hxs_7 equ 57hxs_8 equ 58hxs_9 equ 59hps1 equ

27、5ah ;設(shè)置密碼緩存區(qū)ps2 equ 5bhps3 equ 5chps4 equ 5dhmmbz equ 5fh ;密碼輸入次數(shù)at1 equ 60h ;輸入密碼緩存區(qū)at2 equ 61hat3 equ 62hat4 equ 63h ;初始化org 00hajmp main1org 30hmain1: mov ps1 ,#00h mov ps2 ,#00h mov ps3 ,#00h mov ps4 ,#00h mov at1 ,#00h mov at2 ,#00h mov at3 ,#00h mov at4 ,#00hmain:mov xs_0 ,#1fh ;顯示0的摩斯值 mov xs

28、_1 ,#0fh ;顯示1的摩斯值 mov xs_2 ,#07h ;顯示2的摩斯值 mov xs_3 ,#03h ;顯示3的摩斯值 mov xs_4 ,#01h ;顯示4的摩斯值 mov xs_5 ,#00h ;顯示5的摩斯值 mov xs_6 ,#10h ;顯示6的摩斯值 mov xs_7 ,#18h ;顯示7的摩斯值 mov xs_8 ,#1ch ;顯示8的摩斯值 mov xs_9 ,#1eh ;顯示9的摩斯值 clr p3.0 ;rxd置0 mov a ,#00h ;密碼緩存 mov r2 ,#04h ;四位密碼 mov r1 ,#00h mov r0 ,#ps1 mov r7 ,#05

29、h ;摩斯次數(shù),由于數(shù)字為5次 clr p2.7start:mov p0 ,#0ffh mov p1 ,#0ffh setb p2.4 ;按鍵位 jb p2.4 ,start ;2.4為1轉(zhuǎn)start lcall delay500ms jb p2.4 ,startok: ;嘀的音 clr p0.0 lcall delay500ms jnb p2.4 ,daa ;是否去嗒音cun: ; setb p0.2 setb p0.0 rl a add a ,r1 ;存入一位摩斯碼 djnz r7 ,yanshi ;是否夠五位摩斯碼 ajmp xianshiyanshi: ;輸入一位摩斯碼停頓1t lca

30、ll delay500ms jb p2.4 ,main ajmp okdaa: ;嗒的音 lcall delay500ms jb p2.4 ,stop setb p0.0 clr p0.2 lcall delay500ms setb p0.2 jnb p2.4 ,stop mov r1 ,#01h ajmp cunstop: ;摩斯輸入錯(cuò)誤 clr p0.4 lcall delay2s setb p0.4 ajmp maincunchu:mov r0 ,a inc r0 mov a ,#00h mov r1 ,#00h mov r7 ,#05h djnz r2 ,yanshi clr p0.6

31、 lcall delay2s setb p0.6 ajmp shuruxianshi:cjne a ,xs_0 ,next1 ;夠五位摩斯碼顯示0 mov p1 ,#0c0h clr p3.2 ;報(bào)警器 lcall delay1s setb p3.2 ;報(bào)警器 mov p1 ,#0ffh ajmp cunchunext1:cjne a ,xs_1 ,next2 ;夠五位摩斯碼顯示1 mov p1 ,#0f9h clr p3.2 lcall delay1s setb p3.2 mov p0 ,#0ffh ajmp cunchunext2:cjne a ,xs_2 ,next3 ;夠五位摩斯碼顯示

32、2 mov p1 ,#0a4h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchunext3: cjne a ,xs_3 ,next4 ;夠五位摩斯碼顯示3 mov p1 ,#0b0h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchunext4: cjne a ,xs_4 ,next5 ;夠五位摩斯碼顯示4 mov p1 ,#99h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchunext5:

33、cjne a ,xs_5 ,next6 ;夠五位摩斯碼顯示5 mov p1 ,#92h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchunext6: cjne a ,xs_6 ,next7 ;夠五位摩斯碼顯示6 mov p1 ,#7dh clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchunext7: cjne a ,xs_7 ,next8 ;夠五位摩斯碼顯示7 mov p1 ,#0f8h clr p3.2 lcall delay1s setb p3.2 mov

34、p1 ,#0ffh ajmp cunchunext8: cjne a ,xs_8 ,next9 ;夠五位摩斯碼顯示8 mov p1 ,#080h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchunext9: cjne a ,xs_9 ,cw ;夠五位摩斯碼顯示9 mov p1 ,#90h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchucw: clr p3.2 clr p0.4 lcall delay5s clr p0.4 setb p3.2 ajmp mai

35、n1shuru: ;開門復(fù)位 mov mmbz ,#03 ;錯(cuò)誤密碼次數(shù) mov at1 ,#00h mov at2 ,#00h mov at3 ,#00h mov at4 ,#00h shuru2: clr p0.6 mov a ,#00h ;密碼緩存 mov r2 ,#04h ;四位密碼 mov r1 ,#00h mov r0 ,#at1 mov r7 ,#05hstart1: jb p2.4 ,start1 lcall delay500ms jb p2.4 ,start1ok1: ;滴音 setb p3.0 ;開門后再按鍵1t以上關(guān)門 setb p0.6 clr p0.0 lcall d

36、elay500ms jnb p2.4 ,daaacun1: setb p0.2 setb p0.0 rl a add a ,r1 djnz r7 ,yanshi1 ajmp xianshi1yanshi1: ;每個(gè)摩斯碼之間延時(shí)1t lcall delay500ms jb p2.4 ,stop1 ajmp ok1daaa: ;嗒音 lcall delay500ms jb p2.4 ,stop1 setb p0.0 clr p0.2 lcall delay500ms setb p0.2 jnb p2.4 ,stop1 mov r1 ,#01h ajmp cun1stop1: ;摩斯碼錯(cuò)誤處理 c

37、lr p0.4 lcall delay2s setb p0.4 ajmp shuru2cunchu2: mov r0 ,a inc r0 mov a ,#00h mov r1 ,#00h mov r7 ,#05h djnz r2 ,yanshi1 ajmp bijiaoxianshi1: ;顯示處理 cjne a ,xs_0 ,next1_1 mov p1 ,#0c0h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next1_1: cjne a ,xs_1 ,next2_2 mov p1 ,#0f9h clr p3.2

38、lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next2_2: cjne a ,xs_2 ,next3_3 mov p1 ,#0a4h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next3_3: cjne a ,xs_3 ,next4_4 mov p1 ,#0b0h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next4_4: cjne a ,xs_4 ,next5_5 mov p1 ,#99

39、h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next5_5: cjne a ,xs_5 ,next6_6 mov p1 ,#92h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next6_6: cjne a ,xs_6 ,next7_7 mov p1 ,#82h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next7_7: cjne a ,xs_7 ,next8_8 mo

40、v p1 ,#0f8h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next8_8: cjne a ,xs_8 ,next9_9 mov p1 ,#80h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2next9_9: cjne a ,xs_9 ,cw2 mov p1 ,#90h clr p3.2 lcall delay1s setb p3.2 mov p1 ,#0ffh ajmp cunchu2bijiao: ;比較密碼 mov r6 ,#04 m

41、ov r1 ,#ps1 mov r0 ,#at1bj2: clr c mov a ,r0 subb a ,r1 cjne a ,#00h ,cw2 inc r1 inc r0 djnz r6 ,bj2 clr p3.2 ;密碼正確 clr p3.0 lcall delay5s setb p3.2 ajmp shurucw2: ;密碼錯(cuò)誤處理 djnz mmbz ,bjd mov p0 ,#00h clr p3.2 lcall delay5min setb p3.2 mov p0 ,#0ffh ajmp shuru2bjd: mov p0 ,#00h clr p3.2 lcall delay5s

42、 setb p3.2 mov p0 ,#0ffh ajmp shuru2delay500ms: mov hc0 ,#05ff1:mov hc1 ,#200fff1:mov hc2,#250 djnz hc2 ,$ djnz hc1 ,fff1 djnz hc0 ,ff1 retdelay1s: mov hc0 ,#10ff2: mov hc1 ,#200ff3: mov hc2 ,#250 djnz hc2 ,$ djnz hc1 ,ff3 djnz hc0 ,ff2 retdelay2s: mov hc0 ,#20ff4: mov hc1 ,#200ff5: mov hc2 ,#250 dj

43、nz hc2 ,$ djnz hc1 ,ff5 djnz hc0 ,ff4 retdelay5s: mov hc0 ,#50ff6: mov hc1 ,#200ff7: mov hc2 ,#250 djnz hc2 ,$ djnz hc1 ,ff7 djnz hc0 ,ff6 retdelay5min: mov hc0 ,#12qq1: mov hc1 ,#200qq2: mov hc2 ,#250qq3: mov hc3 ,#250 djnz hc3 ,$ djnz hc2,qq3 djnz hc1 ,qq2 djnz hc0 ,qq1 retend總 結(jié)實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),當(dāng)然也是檢

44、驗(yàn)學(xué)習(xí)成果的標(biāo)準(zhǔn)。在經(jīng)過一段時(shí)間的學(xué)習(xí)之后,我們需要了解自己的所學(xué)應(yīng)該如何應(yīng)用在實(shí)踐中,因?yàn)槿魏沃R都源于實(shí)踐,歸于實(shí)踐,所以要將所學(xué)的知識在實(shí)踐中來檢驗(yàn)。在做畢業(yè)設(shè)計(jì)期間,在老師的指導(dǎo)下,通過自身的不斷努力,無論是思想上,學(xué)習(xí)上,都取得了長足的發(fā)展和巨大的收獲,現(xiàn)將工作總結(jié)如下:思想上,學(xué)會了用科學(xué)的精神去解決問題。很多事情看起來是很簡單的問題,但實(shí)際做起來去會發(fā)現(xiàn)有許多奧妙!這是因?yàn)槠渲刑N(yùn)含著許多科學(xué)的問題。運(yùn)用科學(xué)的方法去解決問題,這是我這次實(shí)訓(xùn)給我?guī)淼乃枷肷系母淖儭W(xué)習(xí)上,使自已在大學(xué)所以的知識在這次得到實(shí)踐,學(xué)到一些書本上無法學(xué)到的經(jīng)驗(yàn),對電子元件有了進(jìn)一步的認(rèn)識。電子鎖是信息化時(shí)

45、代發(fā)展的產(chǎn)物,應(yīng)時(shí)而生,我相信隨著科技的不斷發(fā)展,將來的電子鎖一定更加完美,更加人性化,更加便宜,更加安全。參考文獻(xiàn)1 李朝青.單片機(jī)原理及接口技術(shù)(簡明修訂版)m.北京:北京航空航天大學(xué)出版社,19982 李全利.單片機(jī)原理及接口技術(shù)m.高等教育出版社,20033 protel99 se電路設(shè)計(jì)與制板m.機(jī)械工業(yè)出版社,20074 楊將新,李華軍,劉到駿等.單片機(jī)程序設(shè)計(jì)及應(yīng)用(從基礎(chǔ)到實(shí)踐)j電子工業(yè)出版社,20065 steven f.barrett.daneil j.pack.embedded systemm.北京:電子工業(yè)出版社,20066 周立功.lpc900系列flash單片機(jī)應(yīng)用技術(shù)j.北京航空航天大學(xué)出版社, 20047 黃智偉.全國大學(xué)生電子設(shè)計(jì)競賽訓(xùn)練教程m.北京:電子工業(yè)出版社, 2005致謝在本次論文設(shè)計(jì)過程中,劉老師對該論文從選題,構(gòu)思到最后定稿的各個(gè)環(huán)節(jié)給予細(xì)心指引與教導(dǎo),使

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論