電子密碼鎖單片機(jī)課程設(shè)計(jì)報(bào)告_第1頁
電子密碼鎖單片機(jī)課程設(shè)計(jì)報(bào)告_第2頁
電子密碼鎖單片機(jī)課程設(shè)計(jì)報(bào)告_第3頁
電子密碼鎖單片機(jī)課程設(shè)計(jì)報(bào)告_第4頁
電子密碼鎖單片機(jī)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.z**工程學(xué)院課程設(shè)計(jì)課程名稱微機(jī)原理與應(yīng)用課題名稱電子密碼鎖設(shè)計(jì)專業(yè)測控技術(shù)與儀器班級0601**4**李貴賓指導(dǎo)教師汪超、趙葵銀、李世軍2009年4月13日**工程學(xué)院課程設(shè)計(jì)任務(wù)書課程名稱微機(jī)原理與應(yīng)用課題電子密碼鎖設(shè)計(jì)專業(yè)班級測控技術(shù)與儀器0601班學(xué)生**李貴賓學(xué)號4指導(dǎo)教師汪超、趙葵銀、李世軍審批任務(wù)書下達(dá)日期2009年4月13日任務(wù)完成日期2009年4月24日設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求設(shè)計(jì)內(nèi)容:密碼的設(shè)定,此密碼是固定在程序存儲(chǔ)器ROM中,假設(shè)預(yù)設(shè)的密碼為“12345”共5位密碼。密碼的輸入:采用兩個(gè)按鍵來完成密碼的輸入,其中一個(gè)按鍵為功能鍵,另一個(gè)按鍵為數(shù)字鍵。在密碼都已經(jīng)輸入完畢并且確認(rèn)功能鍵之后,才能完成密碼的輸入過程。然后進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過程。按鍵制止功能:初始化時(shí),允許按鍵輸入密碼,當(dāng)有按鍵按下并開場進(jìn)入按鍵識別狀態(tài)時(shí),按鍵制止功能被激活,但啟動(dòng)的狀態(tài)是在3次密碼輸入不正確的情況下發(fā)生的。設(shè)計(jì)要求:設(shè)計(jì)方案要合理、正確;系統(tǒng)硬件設(shè)計(jì)及焊接制作;系統(tǒng)軟件設(shè)計(jì)及調(diào)試;系統(tǒng)聯(lián)調(diào);寫出設(shè)計(jì)報(bào)告。主要設(shè)計(jì)條件MCS-51單片機(jī)實(shí)驗(yàn)操作臺1臺;PC機(jī)及單片機(jī)調(diào)試軟件;單片機(jī)應(yīng)用系統(tǒng)板1套;制作工具1套;系統(tǒng)設(shè)計(jì)所需的元器件。說明書格式封面課程設(shè)計(jì)任務(wù)書目錄系統(tǒng)總體方案設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)軟件設(shè)計(jì)〔包括流程圖〕系統(tǒng)的安裝調(diào)試說明8、總結(jié)9、參考文獻(xiàn)10、附錄〔源程序清單及硬件原理圖等〕;11、課程設(shè)計(jì)成績評分表。進(jìn)度安排設(shè)計(jì)時(shí)間為兩周第一周星期一、上午:布置課題任務(wù),講課及課題介紹下午:借閱有關(guān)資料,總體方案討論星期二、確定總體設(shè)計(jì)方案星期三、硬件模塊方案設(shè)計(jì)星期四、軟件模塊方案設(shè)計(jì)星期五、設(shè)計(jì)及調(diào)試第二周星期一、設(shè)計(jì)及調(diào)試星期二、設(shè)計(jì)及調(diào)試星期三、總調(diào)星期四、寫說明書星期五、上午:寫說明書,整理資料下午:交設(shè)計(jì)資料,辯論參考文獻(xiàn)[1]、?微型計(jì)算機(jī)原理及應(yīng)用?許立梓編機(jī)械工業(yè)2002[2]、?微型計(jì)算機(jī)接口技術(shù)及應(yīng)用?*樂善編華中理工大學(xué)2000[3]、?計(jì)算機(jī)硬件技術(shù)根底試驗(yàn)教程?鄒逢興編高等教育2000[4]、?16位微型計(jì)算機(jī)原理接口及其應(yīng)用?周佩玲編中國科學(xué)技術(shù)大學(xué)2000[5]、?微型計(jì)算機(jī)原理與接口技術(shù)?吳秀清編中國科學(xué)技術(shù)2001[6]、?微型計(jì)算機(jī)接口技術(shù)?鄧亞平編清華大學(xué)2001[7]、?單片機(jī)原理及及應(yīng)用?王迎旭編機(jī)械工業(yè)2001[8]、?單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)?周航慈著航空航天大學(xué)2002[9]、?單片機(jī)實(shí)用技術(shù)問答?謝宜仁主編人民郵電2002目錄第1章系統(tǒng)概述1.1系統(tǒng)功能……….……71.2設(shè)計(jì)內(nèi)容及要求……………….……7第2章系統(tǒng)方案設(shè)計(jì)2.1總體方案……………82.2系統(tǒng)組成………….…8第3章硬件設(shè)計(jì)3.1按鍵電路設(shè)計(jì)……………….………93.2指示燈及報(bào)警蜂鳴器的電路設(shè)計(jì)………….………93.3顯示電路設(shè)計(jì)……….…………….………10第4章軟件設(shè)計(jì)4.1主程序設(shè)計(jì)…………114.2按鍵識別與編碼設(shè)計(jì)………..……..114.3顯示程序設(shè)計(jì)………134.4密碼修改程序設(shè)計(jì)……………….….……..15第5章系統(tǒng)調(diào)試5.1軟件模擬調(diào)試………165.2硬件接線及調(diào)試………………….………17第6章總結(jié)6.1課程設(shè)計(jì)總結(jié) ……………………18.附:A、硬件圖B、主程序流程圖C、程序清單第1章系統(tǒng)概述1.1系統(tǒng)功能本次設(shè)計(jì)使用ATMEL公司的AT80C51實(shí)現(xiàn)一基于單片機(jī)的電子密碼鎖的設(shè)計(jì),其主要具有如下功能:〔1〕設(shè)置6位密碼,密碼通過鍵盤輸入,假設(shè)密碼正確,則將鎖翻開。〔2〕密碼可以由用戶自己修改設(shè)定〔只支持6位密碼〕,鎖翻開后才能修改密碼?!?〕狀態(tài)指示、報(bào)警、鎖定鍵盤功能。密碼輸入正確時(shí)有GOOD提示信息、密碼輸入錯(cuò)誤數(shù)碼顯示器會(huì)出現(xiàn)錯(cuò)誤提示,假設(shè)密碼輸入錯(cuò)誤次數(shù)超過3次,蜂鳴器報(bào)警并且鎖定鍵盤,并且相應(yīng)的有指示燈指明狀態(tài)。電子密碼鎖的設(shè)計(jì)主要由三局部組成:4×4矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路。另外系統(tǒng)還有LED提示燈,報(bào)警蜂鳴器等。1.2設(shè)計(jì)內(nèi)容及要求〔1〕密碼的設(shè)定,此密碼是固定在程序存儲(chǔ)器ROM中,假設(shè)預(yù)設(shè)的密為“12345”共5位密碼?!?〕密碼的輸入:采用兩個(gè)按鍵來完成密碼的輸入,其中一個(gè)按鍵為功能鍵另一個(gè)按鍵為數(shù)字鍵。在密碼都已經(jīng)輸入完畢并且確認(rèn)功能鍵之后,才能完成密碼的輸入過程。然后進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過程。〔3〕按鍵制止功能:初始化時(shí),允許按鍵輸入密碼,當(dāng)有按鍵按下并開場進(jìn)按鍵識別狀態(tài)時(shí),按鍵制止功能被激活,但啟動(dòng)的狀態(tài)是在3次密碼輸入不正確的情況下發(fā)生的。第2章系統(tǒng)方案設(shè)計(jì)2.1總體方案本密碼鎖系統(tǒng)采用80C51做主控制器,控制密碼的輸入、判斷密碼的正確與否。首先,系統(tǒng)將允許用戶輸入密碼,用存儲(chǔ)單元把輸入的密碼進(jìn)展動(dòng)態(tài)的保存,當(dāng)用戶輸入完后可以按下“=〞表示確定,系統(tǒng)將進(jìn)展密確實(shí)認(rèn),如果密碼正確,則顯示GOOD,并且有紅燈亮,如果不正確,則用戶可以再次進(jìn)展輸入密碼,綠燈亮,當(dāng)用戶連續(xù)三次輸入錯(cuò)誤時(shí),系統(tǒng)將顯示BAD,和有報(bào)警的聲音發(fā)出,藍(lán)、綠燈同時(shí)亮,并且把鍵盤進(jìn)展鎖定,制止用戶進(jìn)展輸入,擴(kuò)展功能的實(shí)現(xiàn)可以外加一個(gè)開關(guān),當(dāng)將開關(guān)按下時(shí),在輸入了正確的密碼之后,就可以對默認(rèn)密碼進(jìn)展修改,按下“ON/C〞鍵之后,將修改的密碼保存到存儲(chǔ)默認(rèn)密碼的單元,即修改功能得以實(shí)現(xiàn),修改成功之后紅綠藍(lán)都亮。2.2系統(tǒng)組成本系統(tǒng)由單片機(jī)80C51系統(tǒng)、矩陣鍵盤、開關(guān)、LED顯示和報(bào)警系統(tǒng)組成。系統(tǒng)組成原理框圖如圖2-1所示80C80C51單片機(jī)輸入錯(cuò)誤鎖定鍵盤輸入錯(cuò)誤鎖定鍵盤矩陣矩陣鍵盤控制一個(gè)蜂鳴器報(bào)警一個(gè)蜂鳴器報(bào)警狀態(tài)指示燈狀態(tài)指示燈LCD六位顯示器LCD六位顯示器2-1系統(tǒng)組成原理框圖第3章硬件設(shè)計(jì)3.1按鍵電路設(shè)計(jì)由于設(shè)計(jì)要求使用矩陣鍵盤,所以本設(shè)計(jì)就采用行列式鍵盤,同時(shí)也能減少鍵盤單片機(jī)接口時(shí)所占用的I/O線的數(shù)目,在按鍵比較多的時(shí)候,通常采用這樣方法。其原理如圖3-1所示。3-1單片機(jī)的鍵盤接口電路3.2指示燈及報(bào)警蜂鳴器的電路設(shè)計(jì)指示燈及報(bào)警蜂鳴器的電路如以下圖所示,當(dāng)輸入的密碼正確時(shí),紅燈亮;當(dāng)輸入的密碼錯(cuò)誤時(shí),綠燈亮;當(dāng)三次錯(cuò)誤輸入時(shí),綠燈和藍(lán)燈同時(shí)亮并且報(bào)警法名器發(fā)出報(bào)警;當(dāng)開關(guān)按下后,在輸入正確的密碼后可以修改密碼。原理如圖2-1所示。圖2-2指示燈及報(bào)警蜂鳴器的連接電路3.3顯示電路設(shè)計(jì)將P1與顯示的數(shù)據(jù)端相連,使其它能動(dòng)態(tài)的傳輸要顯示的數(shù)據(jù),將p3的第六位與位選通端相連,選通相應(yīng)的位。接線如圖2-3所示圖2-3顯示電路的連接電路第4章軟件設(shè)計(jì)4.1主程序設(shè)計(jì)主程序主要完成初始化、檢查有無按鍵按下、以及調(diào)用顯示、指示燈、密碼修改等等。具體模塊包括:1、按鍵識別與編碼設(shè)計(jì)2、顯示程序設(shè)計(jì)3、密碼修改程序設(shè)計(jì)主程序的流程圖見附表B.4.2按鍵識別與編碼設(shè)計(jì)當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理完畢再返回。每一條水平〔行線〕與垂直線〔列線〕的穿插處不相通,而是通過一個(gè)按鍵來連通,利用這種行列式矩陣構(gòu)造只需要N條行線和M條列線,即可組成具有N×M個(gè)按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。當(dāng)確認(rèn)有按鍵按下后,下一步就要識別哪一個(gè)按鍵按下。對鍵的識別通常有兩種方法:一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉(zhuǎn)法。

對照圖4.2所示的44鍵盤,說明掃描法原理。首先區(qū)分鍵盤中有無鍵按下,有單片機(jī)I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。把每個(gè)鍵都分成水平和垂直的兩端接入,比方說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)bit,而讀入掃描碼的則是水平,掃描的動(dòng)作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個(gè)鍵被按下。比方說掃描碼送入01111111,前面的0111是代表此時(shí)掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設(shè)高,假設(shè)此時(shí)第一行的第三列按鍵被按下,那讀取的結(jié)果就會(huì)變成01111101〔注意1111變成1101〕,其中LSB的第三個(gè)bit會(huì)由1變成0,這是因?yàn)檫@個(gè)按鍵被按下之后,會(huì)被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。

由于這種按鍵是機(jī)械式的開關(guān),當(dāng)按鍵被按下時(shí),鍵會(huì)震動(dòng)一小段時(shí)間才穩(wěn)定,我們必須在偵測到有按鍵被按下,就Delay一小段時(shí)間,使鍵盤以達(dá)穩(wěn)定狀態(tài),再去判讀所按下的鍵,防抖動(dòng);為了防止讓8051誤判為屢次輸入同一按鍵,要參加按鍵是否松開,就可以讓鍵盤的輸入穩(wěn)定。按鍵的操作面板如圖圖4.2所示。共計(jì)數(shù)字鍵10個(gè),功能鍵6個(gè)。如圖,10個(gè)數(shù)字鍵用來輸入密碼,0N/C用來修改密碼,=用來進(jìn)展輸入密碼確實(shí)認(rèn).圖4.2按鍵操作面板示意圖流程圖如下:開場開場是否鍵下?是否鍵下?NYP2.4為低?P2.4為低?NYP2.5為低?P2.5為低?NYP2.6為低?P2.6為低?NYP2.7為低?P2.7為低?NY得出編碼RET得出編碼RETRETRET圖4.3按鍵識別與編碼流程圖4.3顯示程序設(shè)計(jì)顯示設(shè)計(jì)采用動(dòng)態(tài)掃描。數(shù)碼顯示板上一共有8個(gè)數(shù)碼管,如果按照傳統(tǒng)的數(shù)碼管驅(qū)動(dòng)方式〔靜態(tài)掃描方式〕,則需要8個(gè)七段譯碼器進(jìn)展驅(qū)動(dòng),這樣既浪費(fèi)資源,有時(shí)電路工作也不可靠。所以現(xiàn)在最常見的數(shù)碼管驅(qū)動(dòng)電路已經(jīng)不用上述的靜態(tài)掃描方式了,而是采用動(dòng)態(tài)掃描顯示的方式,這種方式只需一個(gè)譯碼器就可以實(shí)現(xiàn)電路正常、可靠的工作,這樣大大節(jié)省資源。動(dòng)態(tài)數(shù)碼掃描顯示方式是利用了人眼的視覺暫留效應(yīng),把八個(gè)數(shù)碼管按一定順序〔從左至右或從右至左〕進(jìn)展點(diǎn)亮,當(dāng)點(diǎn)亮的頻率〔即掃描頻率〕不大時(shí),我們看到的是數(shù)碼管一個(gè)個(gè)的點(diǎn)亮,然而,當(dāng)點(diǎn)亮頻率足夠大時(shí),我們看到的不再是一個(gè)一個(gè)的點(diǎn)亮,而是全部同時(shí)顯示〔點(diǎn)亮〕,與傳統(tǒng)方式得到的視覺效果完全一樣。因此我們只要給數(shù)碼管這樣一個(gè)掃描頻率,則就可以實(shí)現(xiàn)兩個(gè)以上的數(shù)碼管同時(shí)點(diǎn)亮。而這個(gè)頻率我們可以通過一個(gè)計(jì)數(shù)器來產(chǎn)生,只要計(jì)數(shù)頻率足夠大,就可以實(shí)現(xiàn)我們的要求。事實(shí)上,因?yàn)閿?shù)碼管點(diǎn)亮不是瞬間就可以的,它也需要一定的時(shí)間,該時(shí)間與數(shù)碼管的選擇有關(guān)系。為了折中這一對矛盾,實(shí)驗(yàn)中一般可將計(jì)數(shù)頻率選擇在100Hz左右肯定可以滿足上述兩個(gè)要求。動(dòng)態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個(gè)LED點(diǎn)亮的時(shí)間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個(gè)ms左右為宜,這就要求在編寫程序時(shí),選通*一位LED使其點(diǎn)亮并保持一定的時(shí)間,程序上常采用的是調(diào)用延時(shí)子程序。在C51指令中,延時(shí)子程序是相當(dāng)簡單的,并且延時(shí)時(shí)間也很容易更改,可參見程序清單中的DELAY延時(shí)子程序。為了顯示數(shù)字,要為LED顯示器提供字型代碼。我用的是共陰極的顯示器。LED顯示器的字形代碼如下表所示:LED顯示器共陰極十六進(jìn)制數(shù)的字型代碼01234567893FH06H5BH4FH66H6DH7DH07H7FH90H主要有三個(gè)顯示程序組成,分別為輸入的密碼值顯示程序和按鍵后的密碼正確的提示程序,密碼輸入錯(cuò)誤后的提示子程序。密碼在規(guī)定的時(shí)間內(nèi)輸入錯(cuò)誤次數(shù)超過3次后的鎖定狀態(tài)顯示子程序.圖4-3a等待密碼輸入及修改顯示狀態(tài)DOGODOGO圖4-3b輸入密碼正確的顯示狀態(tài)圖4-3c輸入密碼錯(cuò)誤的顯示狀態(tài)DABDAB圖4-4d輸入錯(cuò)誤次數(shù)超過3次后的鎖定狀態(tài)及關(guān)閉狀態(tài)圖4-4顯示狀態(tài)4.4密碼修改程序設(shè)計(jì)修改密碼的功能,是自己擴(kuò)展的功能,在開關(guān)K1被按下時(shí),輸入了正確的密碼之后,就可以進(jìn)展密碼的修改了,用ON/C來充當(dāng)確定鍵,密碼修改成功之后就有三指示燈提示亮,可以檢驗(yàn)?zāi)闶欠裾嬲男薷某晒Γ恍栎斎肽銊倓傂薷牡拿艽a,如果有紅燈亮并且在屏幕上顯示GOOD信息,則已經(jīng)修改成功了啊!密碼修改子程序流程圖4.4所示:開關(guān)按下?開關(guān)按下?NY有無鍵按下有無鍵按下YN按鍵識別按鍵識別鍵碼保存鍵碼保存密碼正確?密碼正確?NY修改密碼修改密碼主函數(shù)主函數(shù)按ON/C按ON/C修改完成修改完成圖4.4密碼修改子程序流程第5章系統(tǒng)調(diào)試5.1軟件模擬調(diào)試首先,在wawe里面寫的程序進(jìn)展編譯,唉,編譯通不過,不過這也是意料之中的事,把一個(gè)一個(gè)提示的錯(cuò)誤給改正過來,重新進(jìn)展編譯,終于沒有錯(cuò)誤提示信息了,接著,進(jìn)展軟件仿真,在proteus里面把硬件原理圖畫好,把在wawe里面寫的程序裝進(jìn)80C51,進(jìn)展仿真,唉,命途多坎?。“聪氯魏蔚逆I都沒有反響,只好回到程序上進(jìn)展修改了,把程序分成各個(gè)小的子程序逐一進(jìn)展調(diào)試。對顯示子程序進(jìn)展調(diào)試,發(fā)現(xiàn)能夠正確的顯示,則表此程序一切都OK。在把鍵盤識別和編碼的子程序添加進(jìn)去,發(fā)現(xiàn)不能顯示了,說明是這個(gè)子程序存在問題,接下來重點(diǎn)就是鍵盤編碼局部了,由于我用的是順序的判斷是否有鍵按下和具體到底是哪個(gè)鍵被按下,思路特別的清晰,所以查找起來比較的方便。由于沒有任何的反響,最有可能的就是進(jìn)入了死循環(huán)。所以,先檢查一下編碼識別后面的程序,果真是進(jìn)入了死循環(huán),本來是應(yīng)該編碼之后就根據(jù)R7的值相應(yīng)進(jìn)展查表,進(jìn)展顯示。但由于我的粗心把一個(gè)變量沒有歸零所以一直在里面循環(huán),把所有類似的錯(cuò)誤改正來,發(fā)現(xiàn)就能夠正確的顯示了〔按下哪個(gè)數(shù)字鍵就相應(yīng)的顯示它的值〕。當(dāng)我把顯示子程序改為掃描方式,讓其動(dòng)態(tài)的顯示多位,按鍵之后卻發(fā)現(xiàn)全屏幕顯示一樣的數(shù),看到如此的現(xiàn)象,心應(yīng)該是按一次鍵卻執(zhí)行了很多的次數(shù),所以最后全屏幕上都上一樣的數(shù),如此一來就應(yīng)該加一個(gè)判斷是否已經(jīng)放下鍵了,但是需要在每個(gè)判斷是否有鍵按下后面都要加一個(gè)判斷,這樣太麻煩,但是我們也可以在每次判斷之后把相應(yīng)的編碼用完,立即清零也可以到達(dá)如此的效果,按照思路對程序進(jìn)展相應(yīng)的修改,在進(jìn)展仿真,真的問題就迎刃而解了〔按下哪個(gè)數(shù)就在屏幕上顯示哪個(gè)值,按幾個(gè)就顯示幾個(gè)〔小于6〕〕。接下來要做的就是,對所輸入的密碼進(jìn)展比較,把CHECK子程序添加進(jìn)去,如果不出現(xiàn)意外的話,屏幕上會(huì)有GOOD的提示信息,并且紅色的指示燈亮,密碼的比較有兩個(gè)方面,一是對輸入密碼的個(gè)數(shù)進(jìn)展比較,二是對密碼的數(shù)值依次進(jìn)展比較,只有全部通過猜是密碼正確。在PROTEUS里面進(jìn)展仿真,發(fā)現(xiàn)不管你輸入的密碼是正確還是錯(cuò)誤的密碼都錯(cuò)誤的提示信息,真有想放棄的感覺,其實(shí)真的要有耐心和毅力的,心想這么容易的話,還有學(xué)的必要嗎,呵呵,慢慢的心又平靜下來了啊,投入到了程序之中,首先我把對密碼的每一位進(jìn)展比較的一段去掉,只剩下對密碼個(gè)數(shù)的比較,發(fā)現(xiàn)結(jié)果還是不正確,存密碼個(gè)數(shù)的是R7,對R7進(jìn)展查看,發(fā)現(xiàn)我在輸入六個(gè)密碼之后在案“=〞〔確定〕之后R7里面的值是7,而我是用R7與6進(jìn)展比較,把“=〞〔確定〕鍵忽略了,則只需要把R7與7進(jìn)展比較即可,再次仿真,令人欣慰的是,如我鎖思考的,問題解決了,再把對密碼的每一位進(jìn)展比較加去,打擊人的是,又不對了啊,呵呵,真的是可笑我居然把一個(gè)編碼鍵值與直接的顯示數(shù)值相比較,那肯定是不會(huì)相等的啊,對此做了相應(yīng)的改動(dòng)之后,一切都正確了。接著就是如果輸入的密碼錯(cuò)誤次數(shù)連續(xù)超過三次,則應(yīng)該顯示BAD的錯(cuò)誤提示信息,前兩次只有綠燈亮,三次錯(cuò)誤之后,綠燈和藍(lán)燈都亮,呵呵,這次還好,一拭就成功了,感覺這個(gè)模塊是我做的最理想的一個(gè)模塊了啊。工夫不負(fù)有心人,至此,教師分配給我們的根本任務(wù)就完成了,心里感覺特別的爽?。∥易约哼€想再里面加上修改密碼的功能,用ON/C來充當(dāng)確定鍵。到此軟件的調(diào)試就完畢了!5.2硬件接線及調(diào)試雖然軟件設(shè)計(jì)是非常重要的,但是還是紙上談兵啊,真正要到了調(diào)試的時(shí)候,這又是一個(gè)另一個(gè)比設(shè)計(jì)還頭痛的事,我們說它令人頭痛事有原因的,按理是通的,但調(diào)試不一定可以出來,甚至于設(shè)計(jì)是錯(cuò)誤的,調(diào)試是設(shè)計(jì)的試金石啊!對單片機(jī)系統(tǒng)的實(shí)驗(yàn)室,我們在之前已經(jīng)做了幾個(gè)實(shí)驗(yàn),對它有了初步的了解,使我們在這次做單片機(jī)課程設(shè)計(jì)不至于對單片機(jī)試驗(yàn)臺太陌生。我們大概發(fā)了不到兩天的時(shí)間就把源程序?qū)懗鰜砹?,并且調(diào)試成功了,但由于教師不方便,所以推遲到了第二個(gè)星期才到實(shí)驗(yàn)室正式調(diào)試了,到了實(shí)驗(yàn)室,真的是頭暈,一看實(shí)驗(yàn)臺的元器件,與我們設(shè)計(jì)的完全的不同,最突出的兩點(diǎn)是鍵盤和I/O端口,我們在寢室摩擬反真用的是4*4的鍵盤,而學(xué)校是不規(guī)則的3*8的鍵盤,另外,在I/O的問題也比較的嚴(yán)俊,只能用p1口,所以只能用8255的芯片來擴(kuò)展了,算以在之前的程序根底之上進(jìn)展改動(dòng).還好,算是比較的順利,只是稍微做了一下調(diào)試,功能就根本上對了.呵呵,付出了努力,還是有回報(bào)的,最終所有的功能都能在試驗(yàn)臺上操作成功!設(shè)計(jì)總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)開展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活潑的領(lǐng)域,在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。回憶起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,確實(shí),從選題到定稿,從理論到實(shí)踐,在接近四星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以穩(wěn)固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)效勞,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的缺乏之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠結(jié)實(shí),比方說不懂一些元器件的使用方法,對單片機(jī)匯編語言掌握得不好,通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識重新溫故。通過這次單片機(jī)課程設(shè)計(jì),我不僅加深了對單片機(jī)理論的理解,將理論好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的根底上進(jìn)展改進(jìn)之功能不斷完善,成為真己的東西。

設(shè)計(jì)結(jié)果能夠符合題意,成功完成了此次實(shí)習(xí)要求,我們不只在乎這一結(jié)果,更加在乎的,是這個(gè)過程。這個(gè)過程中,我們花費(fèi)了大量的時(shí)間和精力,更重要的是,我們在學(xué)會(huì)創(chuàng)新的根底上,同時(shí)還懂得合作精神的重要性,學(xué)會(huì)了與他人合作。

俗話說“好的開場是成功的一半〞。說起課程設(shè)計(jì),我認(rèn)為最重要的就是做好設(shè)計(jì)的預(yù)習(xí),認(rèn)真的研究教師給的題目,選一個(gè)自己有興趣的題目。其次,教師對實(shí)驗(yàn)的講解要一絲不茍的去聽去想,因?yàn)橹挥卸济靼琢?,做起設(shè)計(jì)就會(huì)事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設(shè)計(jì),到頭來一點(diǎn)收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調(diào)試,掌握其方法。

軟件的編程也要我們不斷的調(diào)試,最終一個(gè)能完成課程設(shè)計(jì)的勞動(dòng)成果出來了,很快樂它能按著設(shè)計(jì)的思想與要求運(yùn)動(dòng)起來。當(dāng)然,這其中也有很多問題,第一、不夠細(xì)心比方由于粗心大意錯(cuò)了線,由于對課本理論的不熟悉導(dǎo)致編程出現(xiàn)錯(cuò)誤。第二,是在學(xué)習(xí)態(tài)度上,這次課設(shè)是對我的學(xué)習(xí)態(tài)度的一次檢驗(yàn)。對于這次單片機(jī)綜合課程實(shí)習(xí),我的第一大心得體會(huì)就是作為一名工程技術(shù)人員,要求具備的首要素質(zhì)絕對應(yīng)該是嚴(yán)謹(jǐn)。我們這次實(shí)習(xí)所遇到的多半問題多數(shù)都是由于我們不夠嚴(yán)謹(jǐn)。第三,在做人上,我認(rèn)識到,無論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力與決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在教師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在教師那里我學(xué)得到很多實(shí)用的知識,在次我表示感謝!同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)教師再次表示忠心的感謝!附錄A:系統(tǒng)硬件電路原理圖附錄B、系統(tǒng)程序流程圖上電開場上電開場初始化初始化有無鍵按下有無鍵按下按鍵識別按鍵識別鍵碼保存鍵碼保存顯示輸出顯示輸出是否鍵完是否鍵完NY判斷密碼?判斷密碼?YN超過3次?哦.?顯示超過3次?哦.?顯示GOODN密碼修改Y密碼修改NY鍵盤鎖定顯示鍵盤鎖定顯示GOOD附錄C:源程序清單ORG0000HSTART:MOV2AH,*08H;顯示的初始化〔開機(jī)顯示;一;〕MOV2BH,*08HMOV2CH,*08HMOV2DH,*08HMOV2EH,*08HMOV2FH,*08HMOV7AH,*06HMOV7BH,*06H;默認(rèn)的密碼為六個(gè)一MOV7CH,*06HMOV7DH,*06HMOV7EH,*06HMOV7FH,*06HMOVR5,*0H;記錄按下=的個(gè)數(shù)MOVR7,*00H;記錄按下鍵的個(gè)數(shù)MOV3AH,*0DFH;定義掃描的值MOV3BH,*0EFHMOV3CH,*0F7HMOV3DH,*0FBHMOV3EH,*0FDHMOV3FH,*0FEHMAIN:LCALLKEYLCALLDISPLAYJMPMAIN;******************鍵盤識別子程序********************KEY:;按鍵識別MOVP2,*0FFHMOVP2,*0BFHACC.0,Y1LCALLDELAY;防抖動(dòng)ACC.0,Y1B1:MOVA,P2;按鍵是否松開JNBACC.0,B1INCR7LJMPM1Y1:ACC.1,Y2LCALLDELAY;防抖動(dòng)ACC.1,Y2B2:MOVA,P2;按鍵是否松開JNBACC.1,B2INCR7LJMPM2Y2:ACC.2,Y3LCALLDELAY;防抖動(dòng)ACC.2,Y3B3:MOVA,P2;按鍵是否松開JNBACC.2,B3INCR7LJMPM3Y3:ACC.3,Y4LCALLDELAY;防抖動(dòng)ACC.3,Y4B4:MOVA,P2;按鍵是否松開JNBACC.3,B4INCR7LJMPM4Y4:MOVP2,*0FFHMOVP2,*0DFHACC.0,Y5LCALLDELAY;防抖動(dòng)ACC.0,Y5B5:MOVA,P2;按鍵是否松開JNBACC.0,B5INCR7LJMPM5Y5:ACC.1,Y6LCALLDELAY;防抖動(dòng)ACC.1,Y6B6:MOVA,P2;按鍵是否松開JNBACC.1,B6INCR7LJMPM6Y6:ACC.2,Y7LCALLDELAY;防抖動(dòng)ACC.2,Y7B7:MOVA,P2;按鍵是否松開JNBACC.2,B7INCR7LJMPM7Y7:ACC.3,Y8LCALLDELAY;防抖動(dòng)ACC.3,Y8B8:MOVA,P2;按鍵是否松開JNBACC.3,B8INCR7LJMPM8Y8:MOVP2,*0FFHMOVP2,*0EFHACC.0,Y9LCALLDELAY;防抖動(dòng)ACC.0,Y9B9:MOVA,P2;按鍵是否松開JNBACC.0,B9INCR7LJMPM9Y9:ACC.1,Y10LCALLDELAY;防抖動(dòng)ACC.1,Y10B10:MOVA,P2;按鍵是否松開JNBACC.1,B10INCR7LJMPM10Y10:ACC.2,Y11LCALLDELAY;防抖動(dòng)ACC.2,Y11B11:MOVA,P2;按鍵是否松開JNBACC.2,B11INCR7LJMPM11Y11:ACC.3,Y12;防抖動(dòng)LCALLDELAYACC.3,Y12B12:MOVA,P2;按鍵是否松開JNBACC.3,B12INCR7LJMPM12Y12:RET;***************按鍵處理子程序**********************M1:MOV70H,*9H;對相應(yīng)的鍵進(jìn)展處理或賦值LJMPD1M2:MOV70H,*6HLJMPD1M3:MOV70H,*3HLJMPD1M4:INCR5;確認(rèn)鍵的處理LCALLCHECKM5:MOV70H,*8HLJMPD1M6:MOV70H,*5HLJMPD1M7:MOV70H,*2HLJMPD1M8:MOV70H,*0HLJMPD1M9:MOV70H,*7HLJMPD1M10:MOV70H,*4HLJMPD1M11:MOV70H,*1HLJMPD1M12:;修改鍵的處理MOVR7,*0HMOVR5,*0HMOV7AH,5AHMOV7BH,5BHMOV7CH,5CHMOV7DH,5DHMOV7EH,5EHMOV7FH,5FHMOV2AH,*08HMOV2BH,*08HMOV2CH,*08HMOV2DH,*08HMOV2EH,*08HMOV2FH,*08HMOVDPTR,*0CFA1HSETBACC.5SETBACC.6SETBACC.7MOV*DPTR,ALJMPMAIND1:MOVA,70H;對處理的值進(jìn)展相應(yīng)的保存MOVDPTR,*TABMOVCA,A+DPTRCJNER7,*01H,J1MOV2AH,AMOV5AH,ALJMPDISPLAYJ1:CJNER7,*02H,J2MOV2BH,AMOV5BH,ALJMPDISPLAYJ2:CJNER7,*03H,J3MOV2CH,AMOV5CH,ALJMPDISPLAYJ3:CJNER7,*04H,J4MOV2DH,AMOV5DH,ALJMPDISPLAYJ4:CJNER7,*05H,J5MOV2EH,AMOV5EH,ALJMPDISPLAYJ5:CJNER7,*06H,DISPLAYMOV2FH,AMOV5FH,A;****************顯示子程序*****************DISPLAY:MOVR1,*3AHMOVR0,*2AHMOVR3,*06LOOP:MOVA,R0MOVP1,AMOVA,R1MOVP3,AMOVR6,*0FHDJNZR6,$MOVP3,*0FFHINCR0INCR1DJNZR3,LOOPRET;****************檢驗(yàn)密碼子程序*****************CHECK:CJNER7,*7,WORMOVA,5AHCJNEA,4AH,WORMOVA,5BHCJNEA,4BH,WORMOVA,5CHCJNEA,4CH,WORMOVA,5DHCJNEA,4DH,WORMOVA,5EHCJNEA,4EH,WORMOVA,5FHCJNEA,4FH,WORMOVR5,*0HCLRP0.7SETBP0.6SETBP0.5JNBP3.7,MORDFY;判斷開關(guān)的狀態(tài)LJMPGOOD;***************修改密碼子程序********************MORDFY:MOV2AH,*08HMOV2BH,*08HMOV2CH,*08HMOV2DH,*08HMOV2EH,*08HMOV2FH,*08HMOVR7,*0HLJMPKEYWOR:CJNER5,*3,DDD;密碼錯(cuò)誤后處理程序SETBP0.7CLRP0.6CLRP0.5BAD:CPLP3.6;密碼錯(cuò)誤后的BAD處理程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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

提交評論