




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.z**工程學院課程設計課程名稱微機原理與應用課題名稱電子密碼鎖設計專業(yè)測控技術與儀器班級0601**4**李貴賓指導教師汪超、趙葵銀、李世軍2009年4月13日**工程學院課程設計任務書課程名稱微機原理與應用課題電子密碼鎖設計專業(yè)班級測控技術與儀器0601班學生**李貴賓學號4指導教師汪超、趙葵銀、李世軍審批任務書下達日期2009年4月13日任務完成日期2009年4月24日設計內容與設計要求設計內容:密碼的設定,此密碼是固定在程序存儲器ROM中,假設預設的密碼為“12345”共5位密碼。密碼的輸入:采用兩個按鍵來完成密碼的輸入,其中一個按鍵為功能鍵,另一個按鍵為數(shù)字鍵。在密碼都已經(jīng)輸入完畢并且確認功能鍵之后,才能完成密碼的輸入過程。然后進入密碼的判斷比較處理狀態(tài)并給出相應的處理過程。按鍵制止功能:初始化時,允許按鍵輸入密碼,當有按鍵按下并開場進入按鍵識別狀態(tài)時,按鍵制止功能被激活,但啟動的狀態(tài)是在3次密碼輸入不正確的情況下發(fā)生的。設計要求:設計方案要合理、正確;系統(tǒng)硬件設計及焊接制作;系統(tǒng)軟件設計及調試;系統(tǒng)聯(lián)調;寫出設計報告。主要設計條件MCS-51單片機實驗操作臺1臺;PC機及單片機調試軟件;單片機應用系統(tǒng)板1套;制作工具1套;系統(tǒng)設計所需的元器件。說明書格式封面課程設計任務書目錄系統(tǒng)總體方案設計系統(tǒng)硬件設計軟件設計〔包括流程圖〕系統(tǒng)的安裝調試說明8、總結9、參考文獻10、附錄〔源程序清單及硬件原理圖等〕;11、課程設計成績評分表。進度安排設計時間為兩周第一周星期一、上午:布置課題任務,講課及課題介紹下午:借閱有關資料,總體方案討論星期二、確定總體設計方案星期三、硬件模塊方案設計星期四、軟件模塊方案設計星期五、設計及調試第二周星期一、設計及調試星期二、設計及調試星期三、總調星期四、寫說明書星期五、上午:寫說明書,整理資料下午:交設計資料,辯論參考文獻[1]、?微型計算機原理及應用?許立梓編機械工業(yè)2002[2]、?微型計算機接口技術及應用?*樂善編華中理工大學2000[3]、?計算機硬件技術根底試驗教程?鄒逢興編高等教育2000[4]、?16位微型計算機原理接口及其應用?周佩玲編中國科學技術大學2000[5]、?微型計算機原理與接口技術?吳秀清編中國科學技術2001[6]、?微型計算機接口技術?鄧亞平編清華大學2001[7]、?單片機原理及及應用?王迎旭編機械工業(yè)2001[8]、?單片機應用程序設計技術?周航慈著航空航天大學2002[9]、?單片機實用技術問答?謝宜仁主編人民郵電2002目錄第1章系統(tǒng)概述1.1系統(tǒng)功能……….……71.2設計內容及要求……………….……7第2章系統(tǒng)方案設計2.1總體方案……………82.2系統(tǒng)組成………….…8第3章硬件設計3.1按鍵電路設計……………….………93.2指示燈及報警蜂鳴器的電路設計………….………93.3顯示電路設計……….…………….………10第4章軟件設計4.1主程序設計…………114.2按鍵識別與編碼設計………..……..114.3顯示程序設計………134.4密碼修改程序設計……………….….……..15第5章系統(tǒng)調試5.1軟件模擬調試………165.2硬件接線及調試………………….………17第6章總結6.1課程設計總結 ……………………18.附:A、硬件圖B、主程序流程圖C、程序清單第1章系統(tǒng)概述1.1系統(tǒng)功能本次設計使用ATMEL公司的AT80C51實現(xiàn)一基于單片機的電子密碼鎖的設計,其主要具有如下功能:〔1〕設置6位密碼,密碼通過鍵盤輸入,假設密碼正確,則將鎖翻開?!?〕密碼可以由用戶自己修改設定〔只支持6位密碼〕,鎖翻開后才能修改密碼。〔3〕狀態(tài)指示、報警、鎖定鍵盤功能。密碼輸入正確時有GOOD提示信息、密碼輸入錯誤數(shù)碼顯示器會出現(xiàn)錯誤提示,假設密碼輸入錯誤次數(shù)超過3次,蜂鳴器報警并且鎖定鍵盤,并且相應的有指示燈指明狀態(tài)。電子密碼鎖的設計主要由三局部組成:4×4矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路。另外系統(tǒng)還有LED提示燈,報警蜂鳴器等。1.2設計內容及要求〔1〕密碼的設定,此密碼是固定在程序存儲器ROM中,假設預設的密為“12345”共5位密碼?!?〕密碼的輸入:采用兩個按鍵來完成密碼的輸入,其中一個按鍵為功能鍵另一個按鍵為數(shù)字鍵。在密碼都已經(jīng)輸入完畢并且確認功能鍵之后,才能完成密碼的輸入過程。然后進入密碼的判斷比較處理狀態(tài)并給出相應的處理過程?!?〕按鍵制止功能:初始化時,允許按鍵輸入密碼,當有按鍵按下并開場進按鍵識別狀態(tài)時,按鍵制止功能被激活,但啟動的狀態(tài)是在3次密碼輸入不正確的情況下發(fā)生的。第2章系統(tǒng)方案設計2.1總體方案本密碼鎖系統(tǒng)采用80C51做主控制器,控制密碼的輸入、判斷密碼的正確與否。首先,系統(tǒng)將允許用戶輸入密碼,用存儲單元把輸入的密碼進展動態(tài)的保存,當用戶輸入完后可以按下“=〞表示確定,系統(tǒng)將進展密確實認,如果密碼正確,則顯示GOOD,并且有紅燈亮,如果不正確,則用戶可以再次進展輸入密碼,綠燈亮,當用戶連續(xù)三次輸入錯誤時,系統(tǒng)將顯示BAD,和有報警的聲音發(fā)出,藍、綠燈同時亮,并且把鍵盤進展鎖定,制止用戶進展輸入,擴展功能的實現(xiàn)可以外加一個開關,當將開關按下時,在輸入了正確的密碼之后,就可以對默認密碼進展修改,按下“ON/C〞鍵之后,將修改的密碼保存到存儲默認密碼的單元,即修改功能得以實現(xiàn),修改成功之后紅綠藍都亮。2.2系統(tǒng)組成本系統(tǒng)由單片機80C51系統(tǒng)、矩陣鍵盤、開關、LED顯示和報警系統(tǒng)組成。系統(tǒng)組成原理框圖如圖2-1所示80C80C51單片機輸入錯誤鎖定鍵盤輸入錯誤鎖定鍵盤矩陣矩陣鍵盤控制一個蜂鳴器報警一個蜂鳴器報警狀態(tài)指示燈狀態(tài)指示燈LCD六位顯示器LCD六位顯示器2-1系統(tǒng)組成原理框圖第3章硬件設計3.1按鍵電路設計由于設計要求使用矩陣鍵盤,所以本設計就采用行列式鍵盤,同時也能減少鍵盤單片機接口時所占用的I/O線的數(shù)目,在按鍵比較多的時候,通常采用這樣方法。其原理如圖3-1所示。3-1單片機的鍵盤接口電路3.2指示燈及報警蜂鳴器的電路設計指示燈及報警蜂鳴器的電路如以下圖所示,當輸入的密碼正確時,紅燈亮;當輸入的密碼錯誤時,綠燈亮;當三次錯誤輸入時,綠燈和藍燈同時亮并且報警法名器發(fā)出報警;當開關按下后,在輸入正確的密碼后可以修改密碼。原理如圖2-1所示。圖2-2指示燈及報警蜂鳴器的連接電路3.3顯示電路設計將P1與顯示的數(shù)據(jù)端相連,使其它能動態(tài)的傳輸要顯示的數(shù)據(jù),將p3的第六位與位選通端相連,選通相應的位。接線如圖2-3所示圖2-3顯示電路的連接電路第4章軟件設計4.1主程序設計主程序主要完成初始化、檢查有無按鍵按下、以及調用顯示、指示燈、密碼修改等等。具體模塊包括:1、按鍵識別與編碼設計2、顯示程序設計3、密碼修改程序設計主程序的流程圖見附表B.4.2按鍵識別與編碼設計當沒有按鍵按下的時候,單片機循環(huán)主程序,一旦有按鍵按下,便轉向相應的子程序處理,處理完畢再返回。每一條水平〔行線〕與垂直線〔列線〕的穿插處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣構造只需要N條行線和M條列線,即可組成具有N×M個按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。當確認有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方法:一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉法。
對照圖4.2所示的44鍵盤,說明掃描法原理。首先區(qū)分鍵盤中有無鍵按下,有單片機I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。把每個鍵都分成水平和垂直的兩端接入,比方說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個bit,而讀入掃描碼的則是水平,掃描的動作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個鍵被按下。比方說掃描碼送入01111111,前面的0111是代表此時掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設高,假設此時第一行的第三列按鍵被按下,那讀取的結果就會變成01111101〔注意1111變成1101〕,其中LSB的第三個bit會由1變成0,這是因為這個按鍵被按下之后,會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。
由于這種按鍵是機械式的開關,當按鍵被按下時,鍵會震動一小段時間才穩(wěn)定,我們必須在偵測到有按鍵被按下,就Delay一小段時間,使鍵盤以達穩(wěn)定狀態(tài),再去判讀所按下的鍵,防抖動;為了防止讓8051誤判為屢次輸入同一按鍵,要參加按鍵是否松開,就可以讓鍵盤的輸入穩(wěn)定。按鍵的操作面板如圖圖4.2所示。共計數(shù)字鍵10個,功能鍵6個。如圖,10個數(shù)字鍵用來輸入密碼,0N/C用來修改密碼,=用來進展輸入密碼確實認.圖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顯示程序設計顯示設計采用動態(tài)掃描。數(shù)碼顯示板上一共有8個數(shù)碼管,如果按照傳統(tǒng)的數(shù)碼管驅動方式〔靜態(tài)掃描方式〕,則需要8個七段譯碼器進展驅動,這樣既浪費資源,有時電路工作也不可靠。所以現(xiàn)在最常見的數(shù)碼管驅動電路已經(jīng)不用上述的靜態(tài)掃描方式了,而是采用動態(tài)掃描顯示的方式,這種方式只需一個譯碼器就可以實現(xiàn)電路正常、可靠的工作,這樣大大節(jié)省資源。動態(tài)數(shù)碼掃描顯示方式是利用了人眼的視覺暫留效應,把八個數(shù)碼管按一定順序〔從左至右或從右至左〕進展點亮,當點亮的頻率〔即掃描頻率〕不大時,我們看到的是數(shù)碼管一個個的點亮,然而,當點亮頻率足夠大時,我們看到的不再是一個一個的點亮,而是全部同時顯示〔點亮〕,與傳統(tǒng)方式得到的視覺效果完全一樣。因此我們只要給數(shù)碼管這樣一個掃描頻率,則就可以實現(xiàn)兩個以上的數(shù)碼管同時點亮。而這個頻率我們可以通過一個計數(shù)器來產(chǎn)生,只要計數(shù)頻率足夠大,就可以實現(xiàn)我們的要求。事實上,因為數(shù)碼管點亮不是瞬間就可以的,它也需要一定的時間,該時間與數(shù)碼管的選擇有關系。為了折中這一對矛盾,實驗中一般可將計數(shù)頻率選擇在100Hz左右肯定可以滿足上述兩個要求。動態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個LED點亮的時間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個ms左右為宜,這就要求在編寫程序時,選通*一位LED使其點亮并保持一定的時間,程序上常采用的是調用延時子程序。在C51指令中,延時子程序是相當簡單的,并且延時時間也很容易更改,可參見程序清單中的DELAY延時子程序。為了顯示數(shù)字,要為LED顯示器提供字型代碼。我用的是共陰極的顯示器。LED顯示器的字形代碼如下表所示:LED顯示器共陰極十六進制數(shù)的字型代碼01234567893FH06H5BH4FH66H6DH7DH07H7FH90H主要有三個顯示程序組成,分別為輸入的密碼值顯示程序和按鍵后的密碼正確的提示程序,密碼輸入錯誤后的提示子程序。密碼在規(guī)定的時間內輸入錯誤次數(shù)超過3次后的鎖定狀態(tài)顯示子程序.圖4-3a等待密碼輸入及修改顯示狀態(tài)DOGODOGO圖4-3b輸入密碼正確的顯示狀態(tài)圖4-3c輸入密碼錯誤的顯示狀態(tài)DABDAB圖4-4d輸入錯誤次數(shù)超過3次后的鎖定狀態(tài)及關閉狀態(tài)圖4-4顯示狀態(tài)4.4密碼修改程序設計修改密碼的功能,是自己擴展的功能,在開關K1被按下時,輸入了正確的密碼之后,就可以進展密碼的修改了,用ON/C來充當確定鍵,密碼修改成功之后就有三指示燈提示亮,可以檢驗你是否真正的修改成功,只需輸入你剛剛修改的密碼,如果有紅燈亮并且在屏幕上顯示GOOD信息,則已經(jīng)修改成功了??!密碼修改子程序流程圖4.4所示:開關按下?開關按下?NY有無鍵按下有無鍵按下YN按鍵識別按鍵識別鍵碼保存鍵碼保存密碼正確?密碼正確?NY修改密碼修改密碼主函數(shù)主函數(shù)按ON/C按ON/C修改完成修改完成圖4.4密碼修改子程序流程第5章系統(tǒng)調試5.1軟件模擬調試首先,在wawe里面寫的程序進展編譯,唉,編譯通不過,不過這也是意料之中的事,把一個一個提示的錯誤給改正過來,重新進展編譯,終于沒有錯誤提示信息了,接著,進展軟件仿真,在proteus里面把硬件原理圖畫好,把在wawe里面寫的程序裝進80C51,進展仿真,唉,命途多坎??!按下任何的鍵都沒有反響,只好回到程序上進展修改了,把程序分成各個小的子程序逐一進展調試。對顯示子程序進展調試,發(fā)現(xiàn)能夠正確的顯示,則表此程序一切都OK。在把鍵盤識別和編碼的子程序添加進去,發(fā)現(xiàn)不能顯示了,說明是這個子程序存在問題,接下來重點就是鍵盤編碼局部了,由于我用的是順序的判斷是否有鍵按下和具體到底是哪個鍵被按下,思路特別的清晰,所以查找起來比較的方便。由于沒有任何的反響,最有可能的就是進入了死循環(huán)。所以,先檢查一下編碼識別后面的程序,果真是進入了死循環(huán),本來是應該編碼之后就根據(jù)R7的值相應進展查表,進展顯示。但由于我的粗心把一個變量沒有歸零所以一直在里面循環(huán),把所有類似的錯誤改正來,發(fā)現(xiàn)就能夠正確的顯示了〔按下哪個數(shù)字鍵就相應的顯示它的值〕。當我把顯示子程序改為掃描方式,讓其動態(tài)的顯示多位,按鍵之后卻發(fā)現(xiàn)全屏幕顯示一樣的數(shù),看到如此的現(xiàn)象,心應該是按一次鍵卻執(zhí)行了很多的次數(shù),所以最后全屏幕上都上一樣的數(shù),如此一來就應該加一個判斷是否已經(jīng)放下鍵了,但是需要在每個判斷是否有鍵按下后面都要加一個判斷,這樣太麻煩,但是我們也可以在每次判斷之后把相應的編碼用完,立即清零也可以到達如此的效果,按照思路對程序進展相應的修改,在進展仿真,真的問題就迎刃而解了〔按下哪個數(shù)就在屏幕上顯示哪個值,按幾個就顯示幾個〔小于6〕〕。接下來要做的就是,對所輸入的密碼進展比較,把CHECK子程序添加進去,如果不出現(xiàn)意外的話,屏幕上會有GOOD的提示信息,并且紅色的指示燈亮,密碼的比較有兩個方面,一是對輸入密碼的個數(shù)進展比較,二是對密碼的數(shù)值依次進展比較,只有全部通過猜是密碼正確。在PROTEUS里面進展仿真,發(fā)現(xiàn)不管你輸入的密碼是正確還是錯誤的密碼都錯誤的提示信息,真有想放棄的感覺,其實真的要有耐心和毅力的,心想這么容易的話,還有學的必要嗎,呵呵,慢慢的心又平靜下來了啊,投入到了程序之中,首先我把對密碼的每一位進展比較的一段去掉,只剩下對密碼個數(shù)的比較,發(fā)現(xiàn)結果還是不正確,存密碼個數(shù)的是R7,對R7進展查看,發(fā)現(xiàn)我在輸入六個密碼之后在案“=〞〔確定〕之后R7里面的值是7,而我是用R7與6進展比較,把“=〞〔確定〕鍵忽略了,則只需要把R7與7進展比較即可,再次仿真,令人欣慰的是,如我鎖思考的,問題解決了,再把對密碼的每一位進展比較加去,打擊人的是,又不對了啊,呵呵,真的是可笑我居然把一個編碼鍵值與直接的顯示數(shù)值相比較,那肯定是不會相等的啊,對此做了相應的改動之后,一切都正確了。接著就是如果輸入的密碼錯誤次數(shù)連續(xù)超過三次,則應該顯示BAD的錯誤提示信息,前兩次只有綠燈亮,三次錯誤之后,綠燈和藍燈都亮,呵呵,這次還好,一拭就成功了,感覺這個模塊是我做的最理想的一個模塊了啊。工夫不負有心人,至此,教師分配給我們的根本任務就完成了,心里感覺特別的爽??!我自己還想再里面加上修改密碼的功能,用ON/C來充當確定鍵。到此軟件的調試就完畢了!5.2硬件接線及調試雖然軟件設計是非常重要的,但是還是紙上談兵啊,真正要到了調試的時候,這又是一個另一個比設計還頭痛的事,我們說它令人頭痛事有原因的,按理是通的,但調試不一定可以出來,甚至于設計是錯誤的,調試是設計的試金石??!對單片機系統(tǒng)的實驗室,我們在之前已經(jīng)做了幾個實驗,對它有了初步的了解,使我們在這次做單片機課程設計不至于對單片機試驗臺太陌生。我們大概發(fā)了不到兩天的時間就把源程序寫出來了,并且調試成功了,但由于教師不方便,所以推遲到了第二個星期才到實驗室正式調試了,到了實驗室,真的是頭暈,一看實驗臺的元器件,與我們設計的完全的不同,最突出的兩點是鍵盤和I/O端口,我們在寢室摩擬反真用的是4*4的鍵盤,而學校是不規(guī)則的3*8的鍵盤,另外,在I/O的問題也比較的嚴俊,只能用p1口,所以只能用8255的芯片來擴展了,算以在之前的程序根底之上進展改動.還好,算是比較的順利,只是稍微做了一下調試,功能就根本上對了.呵呵,付出了努力,還是有回報的,最終所有的功能都能在試驗臺上操作成功!設計總結課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術開展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活潑的領域,在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術是十分重要的。回憶起此次單片機課程設計,我仍感慨頗多,確實,從選題到定稿,從理論到實踐,在接近四星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西,同時不僅可以穩(wěn)固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會效勞,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的缺乏之處,對以前所學過的知識理解得不夠深刻,掌握得不夠結實,比方說不懂一些元器件的使用方法,對單片機匯編語言掌握得不好,通過這次課程設計之后,一定把以前所學過的知識重新溫故。通過這次單片機課程設計,我不僅加深了對單片機理論的理解,將理論好地應用到實際當中去,而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神,而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的根底上進展改進之功能不斷完善,成為真己的東西。
設計結果能夠符合題意,成功完成了此次實習要求,我們不只在乎這一結果,更加在乎的,是這個過程。這個過程中,我們花費了大量的時間和精力,更重要的是,我們在學會創(chuàng)新的根底上,同時還懂得合作精神的重要性,學會了與他人合作。
俗話說“好的開場是成功的一半〞。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究教師給的題目,選一個自己有興趣的題目。其次,教師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。
軟件的編程也要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很快樂它能按著設計的思想與要求運動起來。當然,這其中也有很多問題,第一、不夠細心比方由于粗心大意錯了線,由于對課本理論的不熟悉導致編程出現(xiàn)錯誤。第二,是在學習態(tài)度上,這次課設是對我的學習態(tài)度的一次檢驗。對于這次單片機綜合課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數(shù)都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。這次課程設計終于順利完成了,在設計中遇到了很多編程問題,最后在教師的辛勤指導下,終于游逆而解。同時,在教師那里我學得到很多實用的知識,在次我表示感謝!同時,對給過我?guī)椭乃型瑢W和各位指導教師再次表示忠心的感謝!附錄A:系統(tǒng)硬件電路原理圖附錄B、系統(tǒng)程序流程圖上電開場上電開場初始化初始化有無鍵按下有無鍵按下按鍵識別按鍵識別鍵碼保存鍵碼保存顯示輸出顯示輸出是否鍵完是否鍵完NY判斷密碼?判斷密碼?YN超過3次?哦.?顯示超過3次?哦.?顯示GOODN密碼修改Y密碼修改NY鍵盤鎖定顯示鍵盤鎖定顯示GOOD附錄C:源程序清單ORG0000HSTART:MOV2AH,*08H;顯示的初始化〔開機顯示;一;〕MOV2BH,*08HMOV2CH,*08HMOV2DH,*08HMOV2EH,*08HMOV2FH,*08HMOV7AH,*06HMOV7BH,*06H;默認的密碼為六個一MOV7CH,*06HMOV7DH,*06HMOV7EH,*06HMOV7FH,*06HMOVR5,*0H;記錄按下=的個數(shù)MOVR7,*00H;記錄按下鍵的個數(shù)MOV3AH,*0DFH;定義掃描的值MOV3BH,*0EFHMOV3CH,*0F7HMOV3DH,*0FBHMOV3EH,*0FDHMOV3FH,*0FEHMAIN:LCALLKEYLCALLDISPLAYJMPMAIN;******************鍵盤識別子程序********************KEY:;按鍵識別MOVP2,*0FFHMOVP2,*0BFHACC.0,Y1LCALLDELAY;防抖動ACC.0,Y1B1:MOVA,P2;按鍵是否松開JNBACC.0,B1INCR7LJMPM1Y1:ACC.1,Y2LCALLDELAY;防抖動ACC.1,Y2B2:MOVA,P2;按鍵是否松開JNBACC.1,B2INCR7LJMPM2Y2:ACC.2,Y3LCALLDELAY;防抖動ACC.2,Y3B3:MOVA,P2;按鍵是否松開JNBACC.2,B3INCR7LJMPM3Y3:ACC.3,Y4LCALLDELAY;防抖動ACC.3,Y4B4:MOVA,P2;按鍵是否松開JNBACC.3,B4INCR7LJMPM4Y4:MOVP2,*0FFHMOVP2,*0DFHACC.0,Y5LCALLDELAY;防抖動ACC.0,Y5B5:MOVA,P2;按鍵是否松開JNBACC.0,B5INCR7LJMPM5Y5:ACC.1,Y6LCALLDELAY;防抖動ACC.1,Y6B6:MOVA,P2;按鍵是否松開JNBACC.1,B6INCR7LJMPM6Y6:ACC.2,Y7LCALLDELAY;防抖動ACC.2,Y7B7:MOVA,P2;按鍵是否松開JNBACC.2,B7INCR7LJMPM7Y7:ACC.3,Y8LCALLDELAY;防抖動ACC.3,Y8B8:MOVA,P2;按鍵是否松開JNBACC.3,B8INCR7LJMPM8Y8:MOVP2,*0FFHMOVP2,*0EFHACC.0,Y9LCALLDELAY;防抖動ACC.0,Y9B9:MOVA,P2;按鍵是否松開JNBACC.0,B9INCR7LJMPM9Y9:ACC.1,Y10LCALLDELAY;防抖動ACC.1,Y10B10:MOVA,P2;按鍵是否松開JNBACC.1,B10INCR7LJMPM10Y10:ACC.2,Y11LCALLDELAY;防抖動ACC.2,Y11B11:MOVA,P2;按鍵是否松開JNBACC.2,B11INCR7LJMPM11Y11:ACC.3,Y12;防抖動LCALLDELAYACC.3,Y12B12:MOVA,P2;按鍵是否松開JNBACC.3,B12INCR7LJMPM12Y12:RET;***************按鍵處理子程序**********************M1:MOV70H,*9H;對相應的鍵進展處理或賦值LJMPD1M2:MOV70H,*6HLJMPD1M3:MOV70H,*3HLJMPD1M4:INCR5;確認鍵的處理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;對處理的值進展相應的保存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;****************檢驗密碼子程序*****************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;判斷開關的狀態(tài)LJMPGOOD;***************修改密碼子程序********************MORDFY:MOV2AH,*08HMOV2BH,*08HMOV2CH,*08HMOV2DH,*08HMOV2EH,*08HMOV2FH,*08HMOVR7,*0HLJMPKEYWOR:CJNER5,*3,DDD;密碼錯誤后處理程序SETBP0.7CLRP0.6CLRP0.5BAD:CPLP3.6;密碼錯誤后的BAD處理程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省吉安市新干縣第二中學2025年高三第一次模擬考試化學試卷含解析
- 慢性腎病患者教育
- 寧夏回族自治區(qū)銀川市長慶高級中學2025年高三一診考試化學試卷含解析
- 2025年理線器合作協(xié)議書
- 2025屆山東省濟南市歷城區(qū)濟鋼高級中學高三考前熱身化學試卷含解析
- 護理品管圈的心得
- 河南省信陽市光山縣第二高級中學2024-2025學年高一下學期3月第一次月考生物學試題(含答案)
- 2025年海南省省直轄縣級行政單位瓊中黎族苗族自治縣中考一模歷史試題(含答案)
- 2025年HITECOAT高耐蝕耐磨化學鍍鎳磷合金鋼板材項目發(fā)展計劃
- SYB甜品店創(chuàng)業(yè)計劃書
- 掌握重點中職電子商務教師資格證試題與答案
- 5.3基本經(jīng)濟制度 課件 2024-2025學年統(tǒng)編版道德與法治八年級下冊
- 河南省鄭州市管城區(qū)2024-2025學年級九年級下學期第一次模擬數(shù)學試題(原卷版+解析版)
- 隔音涂料施工方案
- 甘肅卷2024年高考真題化學試題(含答案)
- T-CCTAS 61-2023 橋梁承重纜索抗火密封綜合防護技術規(guī)程
- 消防員職業(yè)技能鑒定中級技能題庫大全
- 鐵路行車組織 課件 項目4 調車工作
- 2024年浙江郵電職業(yè)技術學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- (一模)2024-2025學年佛山市普通高中教學質量檢測(一)數(shù)學試卷(含答案)
- 招標代理機構選取突發(fā)情況應急處理預案
評論
0/150
提交評論