《微型計(jì)算機(jī)原理與接口技術(shù)》課程設(shè)計(jì)一種由微機(jī)實(shí)現(xiàn)的多功能密碼鎖設(shè)計(jì)1
學(xué)號(hào)微型計(jì)算機(jī)原理與接口技術(shù)微型計(jì)算機(jī)原理與接口技術(shù)課程設(shè)計(jì)課程設(shè)計(jì)( 2008 級(jí)本科)級(jí)本科)題題 目:目:一一種種由由微微機(jī)機(jī)實(shí)實(shí)現(xiàn)現(xiàn)的的多多功功能能密密碼碼鎖鎖設(shè)設(shè)計(jì)計(jì) 系(部)院:系(部)院: 物理與機(jī)電工程學(xué)院物理與機(jī)電工程學(xué)院 專專 業(yè):業(yè): 電電氣氣工工程程及及其其自自動(dòng)動(dòng)化化 作者姓名:作者姓名: 指導(dǎo)教師:指導(dǎo)教師: 職稱:職稱: 副教授副教授 完成日期:完成日期: 2011 年年 6 月月 29 日日河西學(xué)院本科生課程設(shè)計(jì)任務(wù)書2011_學(xué)年第_2_學(xué)期學(xué)生姓名學(xué)號(hào)專業(yè)方向自動(dòng)化班級(jí)08 級(jí) 1 班題目名稱一種由微機(jī)實(shí)現(xiàn)的多功能密碼鎖一、設(shè)計(jì)內(nèi)容及技術(shù)要求:一、設(shè)計(jì)內(nèi)容及技術(shù)要求:1密碼鎖在輸入密碼正確時(shí)輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示00 字樣;2當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示 FF 字樣;3當(dāng)六次誤碼輸入的條件下,產(chǎn)生報(bào)警電平報(bào)警;4還可以實(shí)現(xiàn)對(duì)密碼的修改,修改成功后,蜂鳴器發(fā)出確認(rèn)音。二、課程設(shè)計(jì)總結(jié)報(bào)告要求:二、課程設(shè)計(jì)總結(jié)報(bào)告要求:1選用 8086 和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能。2用 LED 顯示器顯示電子鎖的當(dāng)前狀態(tài)。3畫出詳細(xì)的硬件連接圖。4給出程序設(shè)計(jì)思路、畫出軟件流程圖。5給出所有程序清單并加上必要注釋。6完成設(shè)計(jì)說明書(包括封面、目錄、設(shè)計(jì)任務(wù)書、硬件設(shè)計(jì)思路、硬件原理圖、軟件設(shè)計(jì)思路、程序流程框圖、程序清單、所用器件型號(hào)、總結(jié)體會(huì)、參考文獻(xiàn)等) 。三、設(shè)計(jì)進(jìn)度三、設(shè)計(jì)進(jìn)度第一周:星期一上午 討論設(shè)計(jì)題目星期一下午 查資料星期二至星期五 完成對(duì)硬件電路的基本設(shè)計(jì)第二周:星期一至星期二 完成軟件流程圖及軟件設(shè)計(jì)星期三至星期四 軟硬件統(tǒng)調(diào),寫說明書,畫圖星期五 答辯指導(dǎo)教師簽字:目錄一、設(shè)計(jì)目的 1二、設(shè)計(jì)任務(wù)與要求 1三、整體功能描述 1四、總體設(shè)計(jì)方案論證 1 4.1 方案一 14.2 方案二 2五、硬件設(shè)計(jì) 2 5.1 鍵盤 3 5.2 中斷控制 3 5.3 計(jì)時(shí) 4 5.4 輸入輸出接口 4 5.5 儲(chǔ)存器及片選 5 5.6 整機(jī)電路圖 5六、軟件設(shè)計(jì) 66.1 程序流程圖 6 6.2 程序清單 76.3 程序調(diào)試運(yùn)行 7七、設(shè)計(jì)總結(jié) 9八、參考資料 10九、附錄 11微機(jī)原理與接口技術(shù)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表 21第 1 頁一、設(shè)計(jì)目的一、設(shè)計(jì)目的通過課程設(shè)計(jì)掌握控制系統(tǒng)設(shè)計(jì)的一般步驟,掌握系統(tǒng)總體控制方案的設(shè)計(jì)方法、8086 微型計(jì)算機(jī)的應(yīng)用方法、控制算法的設(shè)計(jì)及硬件設(shè)計(jì)方法。復(fù)習(xí)并學(xué)習(xí)用軟件編程控制硬件。了解和掌握 8086 微機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過程、方法及實(shí)現(xiàn),為以后設(shè)計(jì)實(shí)現(xiàn) 8086 微機(jī)應(yīng)用系統(tǒng)打下良好的基礎(chǔ)。二、設(shè)計(jì)任務(wù)與要求二、設(shè)計(jì)任務(wù)與要求(1) 密碼鎖在輸入密碼正確時(shí)控制電控鎖開啟,同時(shí)顯示 00 字樣;當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告,并顯示 FF 字樣;當(dāng)六次誤碼輸入時(shí),產(chǎn)生報(bào)警;具有密碼修改的功能。(2) 選用 8086 和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能,用 LED 顯示器顯示電子鎖的當(dāng)前狀態(tài);畫出詳細(xì)的硬件連接圖;給出程序設(shè)計(jì)思路、畫出軟件流程圖;給出所有程序清單并加上必要注釋;完成設(shè)計(jì)說明書(包括封面、目錄、設(shè)計(jì)任務(wù)書、硬件設(shè)計(jì)思路、硬件原理圖、軟件設(shè)計(jì)思路、程序流程框圖、程序清單、所用器件型號(hào)、總結(jié)體會(huì)、參考文獻(xiàn)等) 。三、三、 整體功能描述整體功能描述本設(shè)計(jì)為多功能密碼鎖,使用存儲(chǔ)器保存密碼防止斷電后密碼丟失。工作時(shí)按下按鍵蜂鳴器會(huì)發(fā)出聲音提示按鍵有效并在數(shù)碼管有“- -”閃爍字樣,若相隔 1 分鐘無按鍵按下,則清零。在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示 OPEN 字樣。開鎖后可按下“復(fù)位/修改密碼鍵”實(shí)現(xiàn)修改密碼功能的轉(zhuǎn)入,之后先輸入密碼再輸入同樣的密碼確認(rèn)才可成功修改,修改成功后蜂鳴器會(huì)發(fā)出三聲,數(shù)碼管“00”閃爍三次提示修改密碼成功。當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示 CLOSE 字樣,當(dāng)輸入密碼錯(cuò)誤次數(shù)累積夠 6 次后,蜂鳴器會(huì)產(chǎn)生 90 秒的報(bào)警聲響進(jìn)行報(bào)警。 四、總體設(shè)計(jì)方案四、總體設(shè)計(jì)方案根據(jù)本次設(shè)計(jì)的設(shè)計(jì)目的及設(shè)計(jì)要求,可有下列兩種方案:4.14.1 方案一方案一第 2 頁在本次設(shè)計(jì)中,因?yàn)槊艽a鎖的基本功能使可以判斷密碼是否正確,以及完成對(duì)密碼的修改,所以需要用到輸入設(shè)備以及 CPU 的接口電路以及相關(guān)存儲(chǔ)設(shè)備;因?yàn)橛袌?bào)警提示功能,所以要用到相關(guān)的輸出設(shè)備以及接口電路。因?yàn)橐瓿蛇壿嬤\(yùn)算功能,所以必須要有 CPU,CPU 就選用我們最常用也最熟悉的8086,考慮到 8255 的端口兼具輸入輸出功能,靈活方便,所以選用一片 8255作為輸入輸出設(shè)備與 8086 間的借口;采用 0 到 9 數(shù)字按鍵以及相關(guān)功能選擇的輸入;輸出設(shè)備方面,采用兩位數(shù)碼管實(shí)現(xiàn)題目的狀態(tài)提示要求,用一個(gè)蜂鳴器作為相關(guān)的警報(bào),提示的聲音輸出。另外,為簡(jiǎn)化編程,采用 8259 中斷控制器來觸發(fā)中斷實(shí)現(xiàn)密碼鎖工作模式的轉(zhuǎn)換,其中的密碼輸入及判斷功能與密碼修改功能分別用兩個(gè)外部中斷來觸發(fā)中斷服務(wù)程序來實(shí)現(xiàn)。本設(shè)計(jì)的密碼位數(shù)為 6 位。4.24.2 方案二方案二用匯編語言編寫程序?qū)崿F(xiàn)應(yīng)用程序的功能,從而實(shí)現(xiàn)簡(jiǎn)易計(jì)算器匯編程序的設(shè)計(jì)與實(shí)現(xiàn)。4.2.1 使用設(shè)備含有 Windows 匯編編譯環(huán)境的 MASM 軟件及 Office 2003 軟件的計(jì)算機(jī)一臺(tái)。4.2.2 匯編程序編寫匯編程序編寫,根據(jù)設(shè)計(jì)要求編寫實(shí)現(xiàn)該功能的源程序代碼。4.2.3 使用方法在 masm 環(huán)境下運(yùn)行本程序,按提示輸入正確密碼,則在屏幕上顯示 00 字樣,否則顯示 FF 字樣。五、硬件設(shè)計(jì)五、硬件設(shè)計(jì)本設(shè)計(jì)使用了 8086、8259A、8255、8253、2764、74LS138、74LS148、地址鎖存器、數(shù)碼管以及 74 系列邏輯門、蜂鳴器、開關(guān)等芯片與元器件,實(shí)現(xiàn)了鍵盤輸入、中斷控制、計(jì)時(shí)、按鍵響應(yīng)、開鎖及報(bào)警等功能模塊,其硬件連接框圖如圖 1 所示。第 3 頁圖圖 1 1 硬件連接框圖硬件連接框圖5.15.1 鍵盤鍵盤本設(shè)計(jì) 8255A 的 A 口與兩片級(jí)聯(lián)的 74LS148 組合接用于輸入鍵盤,實(shí)現(xiàn)對(duì)輸入鍵號(hào)的讀入。工作時(shí),8086 通過程序掃描鍵盤,當(dāng)無鍵盤按下時(shí),74LS148 工作于無輸入狀態(tài),GS 口輸出高電平,接到 PA4 作為識(shí)別有無按鍵按下信號(hào),PA 口輸入為 10H;當(dāng)有按鍵輸入時(shí),74LS148 輸入口接到低電平,輸入有效,經(jīng)編碼后鍵號(hào)轉(zhuǎn)換為相應(yīng)二進(jìn)制編碼送到 PA 口,成為能為 CPU 識(shí)別的代表鍵值的有效信號(hào)。讀入的按鍵信號(hào)經(jīng) 8086 判斷后,根據(jù)不同的功能,輸出不同的按鍵響應(yīng),并轉(zhuǎn)移到相對(duì)應(yīng)的功能服務(wù)程序。本設(shè)計(jì)總共用到 11 位按鍵,包括 10 位數(shù)碼輸入按鍵及一位“復(fù)位/修改密碼”按鍵,電路設(shè)計(jì)總共可用按鍵有 16 位,供升級(jí)功能使用。鍵盤電路如下圖2 所示:5.25.2 中斷控制中斷控制用一片 8259A 芯片作為中斷控制接口電路。其中 IR0 與 IR1 中斷開放,單片工作于非緩沖方式,電平觸發(fā),優(yōu)先級(jí)是普通全嵌套方式??赏ㄟ^編程開中斷,通過編程或者 8253 計(jì)時(shí)器關(guān)中斷。電路連接如圖 3 所示:第 4 頁圖圖 2 2 鍵盤連接圖鍵盤連接圖5.35.3 計(jì)時(shí)計(jì)時(shí)采用 8253 計(jì)時(shí)器控制中斷的關(guān)斷,實(shí)現(xiàn)單次輸入密碼超時(shí)則退出輸入密碼中斷子程序、報(bào)警器響鈴時(shí)間控制等功能。電路如圖 3 所示。圖圖 3 3 中斷控制器連接圖中斷控制器連接圖5.45.4 輸入輸出接口輸入輸出接口輸入輸出接口采用可編程的 8255A,8255A 是 Intel 系列的并行接口芯片,常作為微機(jī)系統(tǒng)與外部設(shè)備接口。在連接電路時(shí) 8255 的 PC0、PC1 接到數(shù)碼管片選,電路連接如圖 3 所示。同時(shí)用 8255A 的 B 口控制數(shù)碼管的顯示,C 口片第 5 頁P(yáng)C0、PC1 選數(shù)碼管,PC2 用來驅(qū)動(dòng) SPEAK 發(fā)出報(bào)警電路如圖 4 所示。圖圖 4 4 按鍵響應(yīng)、報(bào)警、開鎖功能電路按鍵響應(yīng)、報(bào)警、開鎖功能電路5.55.5儲(chǔ)存器及片選電路儲(chǔ)存器及片選電路存儲(chǔ)器及片選電路采用一片 2764 存儲(chǔ)器和一片 74LS138,連接電路如圖 5 所示:圖圖 5 5 片選及存儲(chǔ)器電路片選及存儲(chǔ)器電路第 6 頁5.65.6 整機(jī)電路圖:見附錄一整機(jī)電路圖:見附錄一六、軟件設(shè)計(jì)六、軟件設(shè)計(jì)6.16.1 程序流程圖程序流程圖開始程序初始化8255.8259初始化從RAM存儲(chǔ)器中讀出密碼 定義DI.SI指針開中斷data2與data3數(shù)據(jù)串比較相等?開鎖,并顯示00掃描鍵盤,有修改密碼鍵?定義SI,DI指針開中斷,實(shí)現(xiàn)密碼輸入轉(zhuǎn)存到data2有修改密碼鍵輸入?開中斷,重新輸入密碼比較是否為首次輸入密碼?轉(zhuǎn)存密碼到RAM 鈴聲確認(rèn)修改密碼成功掃描鍵盤是否有修改密碼鍵輸入保持開鎖狀態(tài)結(jié)束錯(cuò)誤計(jì)數(shù)器加1錯(cuò)誤累積超過6次?保持關(guān)鎖結(jié)束NN報(bào)警響鈴,輸出顯示FFYYNYNY圖圖 6 程序流程圖程序流程圖第 7 頁6.26.2 程序清單:見附錄二程序清單:見附錄二 6.36.3 程序調(diào)試運(yùn)行程序調(diào)試運(yùn)行63.1 程序編寫第一步:對(duì)要實(shí)現(xiàn)的功能進(jìn)行大體分析,畫出程序的總流程圖,如圖 6 所示:第二步:將這些功能的實(shí)現(xiàn)分別編寫程序來實(shí)現(xiàn)。第三步;編寫代碼,上機(jī)調(diào)試和運(yùn)行程序。6.3.2 上機(jī)編譯與調(diào)試第一步:編輯源程序:即建立.ASM 文件。第二步:匯編源程序。源文件建立后,要用匯編程序?qū)υ次募M(jìn)行匯編,以便產(chǎn)生二進(jìn)制的目標(biāo)文件(.OBJ 文件),如圖 7 所示:第三步: 用 LINK 程序產(chǎn)生.EXE 文件。匯編程序已產(chǎn)生出二進(jìn)制的代碼文件(.OBJ),但.OBJ 文件并不是可執(zhí)行文件,還必須使用(LINK)把.OBJ 文件轉(zhuǎn)換為可執(zhí)行的.EXE 文件。用 LINK.EXE 連接為可執(zhí)行文件界面如圖 8 所示。第四步: 程序的調(diào)試及運(yùn)行圖圖 7 7 程序匯編程序匯編第 8 頁圖圖 8 8 生成可執(zhí)行文件生成可執(zhí)行文件圖圖 9 9 程序運(yùn)行程序運(yùn)行第 9 頁七、設(shè)計(jì)總結(jié)與體會(huì)七、設(shè)計(jì)總結(jié)與體會(huì)通過本次課程設(shè)計(jì),我對(duì) 8255,8253,8259等芯片的各引腳的功能、名稱、工作方式、內(nèi)部結(jié)構(gòu)有了更深層次的掌握,對(duì)這三種芯片的編程從陌生轉(zhuǎn)向熟練。通過這次的微機(jī)課程設(shè)計(jì),對(duì)書本所學(xué)的知識(shí)有了進(jìn)一步的鞏固,并且對(duì)三種芯片各自的功能、工作方式有了明確性的區(qū)分。在設(shè)計(jì)過程中遇到問題時(shí),遇到含糊不清或者看不懂的地方及時(shí)翻閱相關(guān)課本知識(shí)。有時(shí)看課本也沒有結(jié)果時(shí)就和組員互相探討。在設(shè)計(jì)過程中,才發(fā)現(xiàn)自己遺漏許多課本的相關(guān)知識(shí),對(duì)各芯片的功能及其工作方式掌握的不夠清楚。這說明在實(shí)踐中才能真正的掌握從課本中所學(xué)的知識(shí)。這次的課程設(shè)計(jì)讓我為一年后的畢業(yè)設(shè)計(jì)打下了基礎(chǔ)。第 10 頁八、參考資料八、參考資料1 馮博琴,吳寧. 微型計(jì)算機(jī)原理與接口技術(shù). 北京 清華大學(xué)出版社(第二版) ,2007.2 趙國相等. 微型計(jì)算機(jī)原理與匯編語言程序設(shè)計(jì). 北京 科學(xué)出版社,2004.3 吳榮光,呂鈞星.微型計(jì)算機(jī)原理及應(yīng)用廣州 華南理工大學(xué)出版社,2006.4 張睿,趙艷華,劉志剛. 精通 Protel DXP 2004 電路設(shè)計(jì). 北京 電子工業(yè)出版社 2005.5耿丹,梁佑斌32 位微型計(jì)算機(jī)原理及應(yīng)用實(shí)驗(yàn)指導(dǎo)書廣州 華南理工大學(xué)教材供應(yīng)中心,2001.6王爽.匯編語言(第 2 版).北京 清華大學(xué)出版社,2008.7康華光等 .電子技術(shù)基礎(chǔ)(數(shù)字部分)第五版. 華中科技大學(xué)電子技術(shù)課程組編. 北京 高等教育出版社,2006第 11 頁九、附錄九、附錄附錄一:電路基本連接圖第 12 頁附錄二:程序清單(一)DATA SEGMENT ;以下代碼寫入 RAMCODEIN DB 6 DUP(?) ;輸入的密碼保存的地址CODECH DB 6 DUP(?) ;修改后的密碼的保存地址CODEOR DB 0,0,0,0,0,0 ;初始密碼ORG 01000H ;下面的代碼寫入 ROMDTABLE DB 80H,02H,10H,3FH,79H,71H,60H,5BHDATA ENDSSTACKS SEGMENTSTA DB 20 DUP(?)STACKS ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSSTART:MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORMOV BP,OFFSET DTABLEMOV AL,09H ;(鍵盤輸入中斷)設(shè)定密碼輸入的中斷向量(即 IR0 的中斷向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG INPUTMOV DS,DXMOV DX,OFFSET INPUTINT 21HMOV AL,09H ;(鍵盤輸入中斷)設(shè)定密碼修改的中斷向量(即 IR1 的中斷向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG CHANGEMOV DS,DXMOV DX,OFFSET CHANGEINT 21HMOV AL,1BH ;初始化 8259OUT 10H,AL ;單片工作,高電平有效MOV AL,08H第 13 頁OUT 11H,ALMOV AL,03HOUT 11H,ALMOV AL,0FCHOUT 11H,AL ;開放 IR0,IR1MOV AL,20HOUT 10H,ALMOV AL,68HOUT 10H,ALMOV AL,82H ;初始化 8255 A 口方式 0 輸出,B 口方式 0 輸入,C 口輸出OUT 06H,ALAA:STIMOV AL,00HOUT 04H,AL ;輸出低電平使數(shù)碼管熄滅INPUT: ;密碼輸入程序CLIMOV DL,00HIN1:CMP DL,06H ;判斷是否連續(xù) 6 次輸入錯(cuò)誤密碼JNZ IN2 ;若不是這繼續(xù)輸入MOV CX,03FFH ;使蜂鳴器長(zhǎng)鳴報(bào)警(通過延時(shí)實(shí)現(xiàn))R1:MOV DH,3FHMOV AL,02HOUT 00H,AL ;輸出高電平使蜂鳴器發(fā)聲R2:DEC DHCMP DH,00HJNZ R2LOOP R1JMP IN4 ;報(bào)警完畢,跳至中斷返回IN2: ;輸入密碼MOV AL,BP+4OUT 04H,AL ;數(shù)碼管顯示-提示輸入密碼MOV BX,0HMOV CX,03H ;設(shè)置循環(huán)次數(shù)第 14 頁IN3:MOV BP,OFFSET DTABLEMOV AL,BPOUT 04H,AL ;數(shù)碼管提示輸入位數(shù)CALL CCSCAN ;調(diào)用鍵盤掃描程序CMP AL,0BH ;判斷是否按下返回鍵JZ IN4MOV BX+SI,AL ;保存輸入密碼INC BXINC BPLOOP IN3MOV BP,OFFSET DTABLE ;判斷密碼是否正確CLDMOV CX,03MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORREPZ CMPSB ;判斷密碼是否正確JNZ WRO ;若錯(cuò)誤就報(bào)警MOV AL,BP+3OUT 04H,AL ;若正確數(shù)碼管就顯示00MOV AL,04HOUT 00H,AL ;且給 LED 高電平使其點(diǎn)亮XOR DL,ALJMP IN4WRO: ;出錯(cuò)報(bào)警部分INC DLMOV AL,BP+5 ;數(shù)碼管顯示FF提示錯(cuò)誤OUT 04H,ALMOV CX,03H ;設(shè)定蜂鳴器響的次數(shù)W1:MOV AL,02H ;使蜂鳴器發(fā)聲OUT 00H,ALW2: ;延時(shí)MOV BL,3FHDEC BLCMP BL,00HJNZ W2XOR AL,AL ;輸出低電平關(guān)蜂鳴器OUT 00H,ALW3: ;延時(shí)第 15 頁MOV BL,3FHDEC BLCMP BL,00HJNZ W3LOOP W1JMP IN1 ;中斷返回IN4:STIIRETCHANGE: ;密碼修改程序CLIMOV DL,00HINP1:CMP DL,06HJNZ INP2MOV CX,03FFHRR1:MOV DH,3FHMOV AL,02HOUT 00H,ALRR2:DEC DHCMP DH,00HJNZ RR2LOOP RR1JMP C4INP2:MOV AL,BP+4OUT 04H,ALMOV BX,0000HMOV CX,03HINP3:MOV BP,OFFSET DTABLEMOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ IN4MOV BX+SI,ALINC BXINC BP第 16 頁LOOP INP3MOV BP,OFFSET DTABLECLDMOV CX,03MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORREPZ CMPSBJNZ WRROMOV AL,BP+3OUT 04H,ALXOR DL,DLJMP CHANGEWRRO:INC DLMOV AL,BP+5OUT 04H,ALMOV CX,03HWW1:MOV AL,02HOUT 00H,ALWW2:MOV BL,3FHDEC BLCMP BL,00HJNZ WW2XOR AL,ALOUT 00H,ALWW3:MOV BL,3FHDEC BLCMP BL,00HJNZ WW3LOOP WW1JMP INP1 ;當(dāng)密碼輸入正確時(shí),轉(zhuǎn)入密碼修改部分CHAN: ;修改密碼部分MOV SI,OFFSET CODEINMOV DI,OFFSET CODECHMOV AL,BP+6 ;數(shù)碼管提示第一次輸入OUT 04H,ALMOV CX,03FFHY1:第 17 頁LOOP Y1MOV BP,OFFSET DTABLEMOV BX,0HMOV CX,03HC1:MOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ C4MOV BX+SI,AL ;存放在輸入密碼緩沖區(qū)INC BXINC BPLOOP C1MOV BP,OFFSET DTABLEMOV AL,BP+7OUT 04H,AL ;數(shù)碼管提示第二次輸入MOV CX,03FFHY2:LOOP Y2MOV BP,OFFSET DTABLEMOV BX,0HMOV CX,03HC2:MOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ C4MOV BX+DI,AL ;存放在修改密碼緩沖區(qū)INC BXINC BPLOOP C2MOV BP,OFFSET DTABLEREPZ CMPSBJNZ CHAN ;判斷兩次輸入的密碼是否一致MOV DI,OFFSET CODEORMOV CX,03HCLDREP MOVSB ; 若是相等那就保存密碼MOV AL,02H ;且蜂鳴器響一下提示修改成功第 18 頁OUT 00H,ALMOV CX,03FFHC3: LOOP C3XOR AL,ALOUT 00H,AL ;中斷返回C4:STIIRETCCSCAN PROC NEAR ;鍵盤掃描子程序MOV AL,00HOUT 00H,ALIN AL,02HNOT ALAND AL,0FHCMP AL,00H ;判斷是否有鍵按下JNZ K1JMP CCSCANK1:MOV CX,0EFFH ;延時(shí)LOOP K1IN AL,02HCMP AL,00HJZ CCSCANMOV AH,60H ;掃描第一列K2:MOV AL,AHOUT 00H,ALIN AL,02HNOT ALAND AL,0FHCMP AL,00H ;判斷是否有鍵按下JNZ K3OR AH,01HROR AH,1 ;掃描下一列AND AH,0FHJMP K2K3:ADD AL,AHRETCCSCAN ENDPCODE ENDS第 19 頁END START程序清單(二)利用 DOS 調(diào)用顯示DATA SEGMENTTABLE DB 888STRING1 DB Please enter a passward:,0DH,0AH,$STRING2 DB Wrong!,0DH,0AH,$STRING3 DB OPEN!,$STRING4 DB CLOSE!,$BUFFER DB 40,?,40 DUP(0)TAB_LEN EQU 26DATA ENDS;STACK SEGMENT DB 100 DUP(0)STACK ENDS;CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,STRING1 MOV AH,09H INT 21H LEA DX,BUFFER MOV AH,0AH INT 21H MOV SI,DX INC SI MOV BL,SI MOV BH,0 INC SI LEA DI,TABLE MOV CX,TAB_LEN CMP CX,BX JNC GOON LEA DX,STRING2 JMP EXITGOON: CLD MOV AL,SISCAN:REPNZ SCASB第 20 頁 JZ MATCHERROR: LEA DX,STRING4 JMP EXIT MATCH: INC CX CMP CX,BX JC ERROR PUSH CX PUSH SI PUSH DI MOV CX,BX DEC DI REPZ CMPSB POP DI POP SI POP CX JZ FOUND JCXZ ERROR JMP SCAN FOUND: DEC DI LEA DX,STRING3EXIT:MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDS END START第 21 頁微機(jī)原理與接口技術(shù)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表微機(jī)原理與接口技術(shù)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表姓姓 名名馬馬 健健學(xué)學(xué) 號(hào)號(hào)0814119專業(yè)班級(jí)專業(yè)班級(jí)電氣工程電氣工程 08 及及 1 班班課程設(shè)計(jì)題目:課程設(shè)計(jì)題目: 一種由微機(jī)實(shí)現(xiàn)的多功能密碼鎖設(shè)計(jì)一種由微機(jī)實(shí)現(xiàn)的多功能密碼鎖設(shè)計(jì)課程設(shè)計(jì)答辯或質(zhì)疑記錄:課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績(jī)?cè)u(píng)定依據(jù):成績(jī)?cè)u(píng)定依據(jù):評(píng)評(píng) 定定 項(xiàng)項(xiàng) 目目評(píng)評(píng) 分分 成成 績(jī)績(jī)1.選題合理、目的明確(10 分)2.設(shè)計(jì)方案可行性、創(chuàng)新性(20 分)3.設(shè)計(jì)結(jié)果(系統(tǒng)原理圖、源程序、調(diào)試運(yùn)行結(jié)果) (30 分)4.平時(shí)成績(jī)(態(tài)度認(rèn)真、遵守紀(jì)律) (10 分)5.設(shè)計(jì)報(bào)告的規(guī)范性、參考文獻(xiàn)充分(不少于 5 篇) (10 分)6.答辯(20 分)總總 分分最終評(píng)定成績(jī)(以優(yōu)、良、中、及格、不及格評(píng)定)最終評(píng)定成績(jī)(以優(yōu)、良、中、及格、不及格評(píng)定) 指導(dǎo)教師簽字:指導(dǎo)教師簽字: 年 月 日