《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第1頁
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第2頁
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第3頁
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第4頁
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 自動(dòng)化學(xué)院 題 目: 密碼小鍵盤 課程設(shè)計(jì)的目的:本課程設(shè)計(jì)教學(xué)所要達(dá)到的目的是:1、培養(yǎng)學(xué)生理論聯(lián)系實(shí)際的設(shè)計(jì)思想,提高學(xué)生綜合運(yùn)用匯編語言課程的理論分析問題、解決問題的能力。2、通過查找、運(yùn)用設(shè)計(jì)資料,完成工程設(shè)計(jì)所必備的基本訓(xùn)練。3、使同學(xué)們更深入的了解計(jì)算機(jī)系統(tǒng)內(nèi)部的有關(guān)知識(shí),為以后的學(xué)習(xí)和系統(tǒng)開發(fā)奠定良好的基礎(chǔ)。課程設(shè)計(jì)的內(nèi)容和要求: 本次課程設(shè)計(jì)要求是建立在可編程并行接口芯片8255人機(jī)交互接口之“鍵盤接口”技術(shù)電路基礎(chǔ)之上的,通過8255的三個(gè)并行輸入/輸出端口、以及利用82

2、55的三種工作方式,來擴(kuò)展一個(gè)外接小鍵盤,并且能通過此外接鍵盤輸入數(shù)字進(jìn)行紅綠燈校驗(yàn),整個(gè)電路能夠?qū)崿F(xiàn)的功能就是:鍵盤包括數(shù)字鍵“09”和功能鍵“確認(rèn)、取消”;程序設(shè)定初始密碼,當(dāng)輸入的密碼同初始密碼相同時(shí)綠燈亮,當(dāng)輸入的密碼錯(cuò)誤時(shí)紅燈亮。時(shí)間安排:1、 課程設(shè)計(jì)任務(wù)書的布置,講解 (一天)2、 根據(jù)任務(wù)書的要求進(jìn)行設(shè)計(jì)構(gòu)思(一天)3、 編程調(diào)試(兩天)4、 撰寫說明書 (兩天)5、 課程設(shè)計(jì)答辯(一天)指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄摘要31 設(shè)計(jì)要求及其簡明思路41.1 設(shè)計(jì)說明41.2 設(shè)計(jì)思路42 密碼輸入鍵盤具體設(shè)計(jì)方法52.1 可編程并行接口芯片

3、8255a基本簡介52.1.1 8255a的內(nèi)部結(jié)構(gòu)及功能簡介52.1.2 8255a的管腳分配62.1.3 8255a工作方式及其編程簡介62.2 硬件接口電路原理82.2.1 鍵盤接口原理電路圖82.2.2 鍵盤掃描法及程序處理的任務(wù)82.2.3 紅綠燈顯示電路部分92.2.4 硬件連接電路圖112.3 軟件設(shè)計(jì)112.3.1 軟件設(shè)計(jì)思路112.3.2 程序流程圖12結(jié)束語13參考文獻(xiàn)14附錄15附錄1、設(shè)計(jì)程序15摘要微機(jī)原理與接口技術(shù)作為計(jì)算機(jī)科學(xué)領(lǐng)域的基礎(chǔ)知識(shí),盡管計(jì)算機(jī)科學(xué)高速發(fā)展,但基本原理依然不變,即是遵循馮諾依曼基本思想的。學(xué)習(xí)并能掌握好微機(jī)原理與接口技術(shù)這門知識(shí)是非常重要

4、的,通過對這門知識(shí)的了解可以簡單的編寫一些日常中經(jīng)典的控制程序。本文主要是針對接口技術(shù)方面問題的一種設(shè)計(jì)方法,通過對8255a這個(gè)可編程并行接口芯片的所學(xué)知識(shí),來擴(kuò)展一個(gè)外接小鍵盤,并能夠通過此鍵盤輸入數(shù)據(jù)進(jìn)行密碼校正并有紅綠燈顯示的功能。本設(shè)計(jì)主要是通過軟硬件結(jié)合的方法來加以實(shí)現(xiàn)所要求的功能,利用8255a端口單獨(dú)作為輸入/輸出的功能同時(shí)實(shí)現(xiàn)擴(kuò)展鍵盤和外接紅綠燈顯示的功能。其中,鍵盤鍵值的掃描是一個(gè)主要的問題,另外,密碼比較和防抖延時(shí)等子程序也是一個(gè)應(yīng)該關(guān)心的問題,解決了這部分關(guān)鍵點(diǎn)也就能很好的解決本設(shè)計(jì)要求。關(guān)鍵字:8255a 鍵盤 密碼校驗(yàn) 紅綠燈顯示19密碼輸入鍵盤1 設(shè)計(jì)要求及其簡明

5、思路1.1 設(shè)計(jì)說明本文設(shè)計(jì)要求是建立在可編程并行接口芯片8255人機(jī)交互接口之“鍵盤接口”技術(shù)電路基礎(chǔ)之上的,通過8255的三個(gè)并行輸入/輸出端口以及利用8255的三種工作方式,來擴(kuò)展一個(gè)外接小鍵盤,并且能通過此外接鍵盤輸入數(shù)字進(jìn)行紅綠燈校驗(yàn),整個(gè)電路能夠?qū)崿F(xiàn)的功能就是:鍵盤包括數(shù)字鍵“09”和功能鍵“確認(rèn)、取消”;程序設(shè)定初始密碼,當(dāng)輸入的密碼同初始密碼相同時(shí)綠燈亮,當(dāng)輸入的密碼錯(cuò)誤時(shí)紅燈亮。1.2 設(shè)計(jì)思路本文設(shè)計(jì)的思路也就能夠圍繞題目要求以及所學(xué)關(guān)于8255可編程并行接口芯片的知識(shí)得出解決此題的基本方法,簡明介紹如下:通過8255基本輸入輸出端口c口七根i/o接口線分成34行列形式外接

6、12個(gè)鍵的矩陣式鍵盤電路,12個(gè)鍵的功能通過相應(yīng)的程序進(jìn)行控制,最終實(shí)現(xiàn)有09等10個(gè)數(shù)字鍵和確認(rèn)、取消等2個(gè)功能鍵;另外,設(shè)定一個(gè)四位數(shù)字的初始密碼,同初始密碼進(jìn)行比較的過程即為:從擴(kuò)展的外接鍵盤輸入數(shù)字直到按確認(rèn)鍵后才使輸入完畢輸入的數(shù)據(jù)存入緩沖區(qū)、按取消即可清除之前輸入的數(shù)字還可以重新輸入數(shù)字直到按確認(rèn)為止;輸入的數(shù)據(jù)通過8255傳送到cpu,再由cpu通過程序同初始密碼確認(rèn)比較,如果比較正確則8255通過b口輸出使綠燈亮,否則紅燈亮。本設(shè)計(jì)要完成的任務(wù)需要通過軟、硬件設(shè)計(jì)來完成。軟件設(shè)計(jì)需要實(shí)現(xiàn)鍵盤鍵值的讀取、密碼判斷程序以及l(fā)ed顯示程序;硬件設(shè)計(jì)則需要硬件實(shí)驗(yàn)平臺(tái)上相應(yīng)的硬件電路模

7、塊,包括鍵盤模塊、led發(fā)光二極管顯示模塊。2 密碼輸入鍵盤具體設(shè)計(jì)方法 2.1 可編程并行接口芯片8255a基本簡介8255a是一種通用的可編程并行i/o接口芯片,具有3個(gè)帶鎖存或緩沖的數(shù)據(jù)端口,可與外設(shè)并行進(jìn)行數(shù)據(jù)交換。用戶可用程序來選擇多種操作方式,它的各端口內(nèi)具有中斷控制邏輯,為外設(shè)與cpu之間的信息交換提供了方便。2.1.1 8255a的內(nèi)部結(jié)構(gòu)及功能簡介8255a芯片內(nèi)部結(jié)構(gòu)圖如圖2.1.1所示,我們可以看到該芯片含有3個(gè)8位的控制端口,即a口、b口和c口,這三個(gè)端口可以作為cpu與外設(shè)通信時(shí)的緩沖器或鎖存器,其中,一般情況下,作為緩沖器使用時(shí)就是輸入接口,作為鎖存器使用時(shí)是輸出接

8、口。圖2.1.1 8255a的內(nèi)部結(jié)構(gòu)圖其實(shí),8255a的三個(gè)端口實(shí)際上只有兩組控制部件,其中將c口的八位分成高低各四位分別同a口、b口組合形成a組、b組兩種獨(dú)立的控制部件,它們可以同時(shí)接收來自讀/寫控制電路的命令和cpu送來的控制字。另外,8255a的數(shù)據(jù)總線緩沖器和讀/寫控制電路分別實(shí)現(xiàn)了8255a與cpu之間的聯(lián)系,具體功能將在以下各節(jié)指出。2.1.2 8255a的管腳分配8255a是一個(gè)標(biāo)準(zhǔn)的40管腳芯片如圖2.2.1所示,可以分為三個(gè)部分:與外設(shè)連接的i/o線,與cpu連接的總線,以及電源線。本設(shè)計(jì)中需要使用到與外設(shè)連接的各個(gè)端口,用于連接小鍵盤的c口和pb0端的紅綠顯示燈。其中與c

9、pu連接的8、9管腳決定了8255a的工作方式,本設(shè)計(jì)中采用的8255端口地址是奇地址即8255的a0、a1的管腳連接cpu的a0、a1管腳,cpu通過對8255a管腳的控制來控制其各個(gè)端口的工作方式。圖2.1.2 8255a的管腳分布圖2.1.3 8255a工作方式及其編程簡介8255a有三種工作方式:方式0基本輸入輸出,方式1選通輸入輸出,方式2雙向傳輸方式。本設(shè)計(jì)要使用該芯片來擴(kuò)展小鍵盤,并實(shí)現(xiàn)密碼校驗(yàn)的功能,為此,我們必須掌握8255a該芯片的編程方式,因?yàn)橹挥型ㄟ^相應(yīng)的軟件來定義端口的工作方式,選擇所需要的功能,硬件電路才能得以實(shí)現(xiàn)。首先對8255a的源程序初始化及其程序編程應(yīng)該有所

10、了解,然而對其的初始化就必須使用到8255a的各種工作方式及其端口的地址,以便進(jìn)行程序的控制。為此須要了解8255a的控制命令即其方式控制字,關(guān)乎8255a的端口工作情況。其基本規(guī)格如下各表所示: 表2.1方式控制字 表2 a口工作方式選擇 表3 a口i/o選擇d7 d6 d5 d4 d3 d2 d1 d01 a組控制 b組控制d4輸入/輸出選擇0a口為輸出1a口為輸入d6d5 a口工作方式 00 方式0 01 方式1 1 方式2 表4 c口上半部i/o選擇 表5 b口工作方式選擇 表6 b口i/o選擇 表7 c口上半部i/o選擇d2b口工作方式0工作方式01工作方式1d3輸入、輸出選擇0c口

11、高4位輸出1c口高4位輸入d0輸入、輸出選擇0c口低4位輸出1c口低4位輸入d1輸入/輸出選擇0b口為輸出1b口為輸入 本設(shè)計(jì)采用b口pb0端口輸出外接顯示燈,當(dāng)管腳信號(hào)為低電平時(shí)綠燈亮,表示輸入的數(shù)據(jù)同初始設(shè)置的值相同,相反當(dāng)其管腳輸出為高電平時(shí)紅燈亮,表示輸入的數(shù)據(jù)同初始設(shè)置的值不同。c口外接矩陣式鍵盤并且采用掃描法進(jìn)行鍵盤信息的讀取,通過使用的方式不同可以得出8255a可編程并行接口芯片的控制方式,在8255a的初始化及其編程當(dāng)中需要用到。2.2 硬件接口電路原理2.2.1 鍵盤接口原理電路圖由于本題設(shè)計(jì)要求要用戶擴(kuò)展的鍵盤按鍵有數(shù)字鍵09和功能鍵等共12個(gè),因此鍵盤電路采用獨(dú)立式鍵盤將

12、會(huì)占用很多的i/o線從而不實(shí)用。故采用矩陣式鍵盤電路來擴(kuò)展帶有12個(gè)按鍵的小鍵盤比較合適,根據(jù)本題要求只需34方式的矩陣即可,故其原理電路圖如下圖3所示: +5v 8255 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 0 1 2 3 4 5 6 7 8 9 10 11 圖2.2.1 矩陣式鍵盤電路原理圖矩陣式鍵盤電路其特點(diǎn)是由按鍵組成一個(gè)矩陣,矩陣的行線和列線分別作為兩個(gè)傳輸方向相反的i/o接口信號(hào)線,如行線作為輸入接口信號(hào)線,列線作為輸出接口信號(hào)線,或反之。用獨(dú)立式鍵盤相比這種電路所需要的i/o線很少,但鍵盤容量很大,按題目設(shè)計(jì)要求,本設(shè)計(jì)題只需用到c口的七根輸入/輸出線

13、,組成34式的矩陣即可達(dá)到要求組成帶有12個(gè)按鍵的小鍵盤。2.2.2 鍵盤掃描法及程序處理的任務(wù)雖然矩陣式鍵盤對cpu的硬件資源要求不多,但相應(yīng)的軟件要復(fù)雜,目前掃描鍵盤的方法有兩種,即掃描法和翻轉(zhuǎn)法。其實(shí)現(xiàn)思想基本簡介如下:掃描法是設(shè)定行線輸出、列線輸入,行線逐行輸出0,如果某列有按鍵則列線輸入為0;若無鍵按下列線輸入全部為1,這樣根據(jù)行線和列線提供的信息就可以確定是哪個(gè)鍵被按下。翻轉(zhuǎn)法的實(shí)現(xiàn)思想是行、列線交換輸入、輸出,先輸出一組所有為0的行值,讀取列值并判斷是否有0的位,然后輸出所有為0的列值,讀取行值并判斷是否有0的位,從而兩步進(jìn)行確定獲取鍵位置信息。因此,這種方法要比掃描法效率高,本

14、設(shè)計(jì)中采用的也是翻轉(zhuǎn)法進(jìn)行鍵盤信息的讀取。其中,鍵盤的掃描同鍵位的確定有如下表2.2.2(a)所示的關(guān)系,掃描的程序?qū)⒃诟戒浿薪o出。表2.2.2(a) 34行列式鍵盤的按鍵編碼表 按鍵 鍵 碼 按鍵 鍵 碼 行值 列值 行值 列值 011101110 611011011 111101101 711010111 211101011 810111110 311100111 910111101 411011110 10(確認(rèn))10111011 511011101 11(取消)10110111其中,功能按鍵只需要通過相應(yīng)的程序進(jìn)行調(diào)用說明其功能即可,其功能如下表2.2.2(b)所示:表2.2.2(b)

15、 按鍵對應(yīng)的鍵名及其功能 按 鍵 鍵 名 功能說明 09鍵 數(shù)字鍵用于輸入密碼 10鍵 確認(rèn)鍵當(dāng)掃描到此鍵時(shí)結(jié)束掃描,即輸入結(jié)束 11鍵 取消鍵當(dāng)掃描到此鍵時(shí)重新掃描,即重新輸入密碼鍵盤處理程序的任務(wù)主要包括以下步驟:鍵輸入、鍵譯碼和鍵處理三步。其中,鍵輸入是鍵盤處理程序最主要的工作,由于鍵盤的機(jī)械結(jié)構(gòu),當(dāng)鍵按下或松開時(shí),鍵將有一個(gè)抖動(dòng)過程,因此鍵輸入的首要工作就是檢查鍵盤是否有鍵被按下,消除按鍵抖動(dòng)。然后再確定被按的鍵在矩陣中的位置,獲取鍵號(hào)。消除抖動(dòng)的方法可以采用軟件延時(shí)。延時(shí)程序?qū)⒃诟戒浿薪o出。2.2.3 紅綠燈顯示電路部分由于設(shè)計(jì)的要求,需要通過擴(kuò)展小鍵盤來輸入數(shù)據(jù)并且與初始密碼進(jìn)行比

16、較,要求相同時(shí)綠燈亮,不同時(shí)紅燈亮。故可以通過8255a端口輸入/輸出的功能加上相應(yīng)的程序來實(shí)現(xiàn),本設(shè)計(jì)采用b端口的一個(gè)輸出端口通過非門的選擇來實(shí)現(xiàn)紅綠燈的亮滅,其部分接口電路如圖2.2.3所示:圖2.2.3 紅綠燈顯示電路部分電路圖其中,紅綠燈顯示的原理是:當(dāng)密碼比較正確時(shí)綠燈d1亮,即b口pb0輸出應(yīng)該為0,所以b口輸出為00h;當(dāng)密碼比較錯(cuò)誤時(shí)紅燈d2亮,即b口即pb0輸出應(yīng)該為1,所以b口輸出為01h。其實(shí)現(xiàn)紅綠燈亮的部分程序段如下: mov al,00h ;綠燈亮 mov dx,b_port out dx,al mov al,01h ;紅燈亮 mov dx,b_port out dx

17、,al2.2.4 硬件連接電路圖由以上分析可以知道,整體電路設(shè)計(jì)圖如圖2.2.4所示,由于protel仿真軟件中沒有8086cpu,因此使用了z80cpu來代替。另外,由于所學(xué)知識(shí)的有限只能連接出部分的電路原理圖如圖2.2.4所示。8255a圖2.2.4 輸入接口電路2.3 軟件設(shè)計(jì)2.3.1 軟件設(shè)計(jì)思路密碼輸入鍵盤的主要功能是實(shí)現(xiàn)8255a擴(kuò)展的小鍵盤,通過輸入數(shù)據(jù)同初始設(shè)置的密碼比較,若密碼比較的相同則綠燈亮,否則紅燈亮。其中,初始設(shè)置為四位數(shù)字的密碼,數(shù)據(jù)的鍵入通過擴(kuò)展的小鍵盤來實(shí)現(xiàn),當(dāng)輸入的數(shù)據(jù)在09之間時(shí),輸入正常并把數(shù)據(jù)寄存在緩沖區(qū)buff2中。當(dāng)掃描到的數(shù)據(jù)為10時(shí),則執(zhí)行確認(rèn)

18、功能即退出掃描讀數(shù);當(dāng)掃描到的數(shù)據(jù)為11時(shí),則執(zhí)行取消功能即重新掃描讀取輸入的數(shù)據(jù)。其中,主程序?yàn)殒I盤掃描讀取從鍵盤輸入的數(shù)據(jù),即通過擴(kuò)展矩陣式鍵盤翻轉(zhuǎn)法將掃描的鍵碼值轉(zhuǎn)化為相應(yīng)的鍵號(hào)值,數(shù)據(jù)鍵為09,功能鍵有10確認(rèn)鍵、11取消鍵。子程序有消除抖動(dòng)的延時(shí)程序和密碼比較同時(shí)調(diào)用紅綠燈顯示輸出的程序;消除抖動(dòng)的延時(shí)程序,主要利用軟件延時(shí)的方法即通過循環(huán)方式的控制來實(shí)現(xiàn)延時(shí)以消除按鍵的抖動(dòng)。2.3.2 程序流程圖由以上分析知該設(shè)計(jì)分為主、子程序兩部分,故主、子程序流程圖分別如下圖2.3.2(a)、圖2.3.2(b)所示:鍵值存入buff2調(diào)用密碼比較子程序結(jié)束 開始8255初始化 讀鍵盤有鍵按下否

19、調(diào)用延時(shí)子程序 讀取鍵值鍵值是否為11鍵值是否為10ny 紅燈亮結(jié)束開始取存密碼緩沖區(qū)的偏移地址si設(shè)置循環(huán)次數(shù)cx=4與初密碼相等否 cx是否為0 或者si為4否綠燈亮nnyy ynyn 圖2.3.2(b) 密碼比較及紅綠燈顯示子程序流程圖 圖2.3.2(a) 主程序流程圖結(jié)束語在本次的課程設(shè)計(jì)中,整體思路比較明確、設(shè)計(jì)的步驟也比較順暢,由于曾有課程設(shè)計(jì)的基礎(chǔ),對說明書的書寫格式也方便了許多,沒有第一次時(shí)的那種種麻煩以及困難,同時(shí)通過這次的課程設(shè)計(jì)也讓我對微機(jī)接口方面的知識(shí)有了進(jìn)一步的了解,而且也更加熟悉了匯編語言所運(yùn)行的軟件環(huán)境,同時(shí)通過軟件環(huán)境的調(diào)式運(yùn)行可以檢驗(yàn)自己的程序是否正確,由于本

20、次設(shè)計(jì)涉及到硬件方面的知識(shí),需要對硬件電路進(jìn)行檢驗(yàn),因此促使自己學(xué)習(xí)仿真軟件,本次設(shè)計(jì)中我使用的仿真軟件為protel。通過本次課程設(shè)計(jì),給我最大的收獲也就在于此了,了解到更多的軟件知識(shí)以及對所學(xué)的軟件編程知識(shí)進(jìn)行了鞏固。同時(shí),通過本次課程設(shè)計(jì)讓自己明白了自己的不足以及急需加強(qiáng)練習(xí)的地方。首先,拿到設(shè)計(jì)要求的第一個(gè)問題就是不知道如何編寫鍵盤讀鍵的程序,雖然通過看書能夠明白8255a是如何掃描鍵盤并讀取鍵號(hào)信息的,但是,其中遇到很多小問題無法想明白,思維進(jìn)入了死胡同。但是,隨著不斷的查找資料以及翻閱書籍慢慢明白了過來。之后,一個(gè)問題解決了另一個(gè)問題又隨之而來,能夠掃描也能夠讀取鍵號(hào)信息了,可是8

21、255a所讀取的鍵號(hào)信息又存儲(chǔ)在哪里?后一次掃描的數(shù)據(jù)會(huì)把前一次掃描的數(shù)據(jù)覆蓋,應(yīng)該用什么樣的程序?qū)呙璧降臄?shù)據(jù)截取出來并且存入自己設(shè)置的緩沖空間當(dāng)中,最后,通過各種學(xué)習(xí)的手段問題也逐一得到解決。參考文獻(xiàn)1周佩玲,彭虎,傅忠謙.微機(jī)原理與接口技術(shù)(基于16位機(jī)).北京:電子工業(yè)出版社,2005.42湯書森.微機(jī)原理接口實(shí)驗(yàn)與實(shí)踐教程.北京:清華大學(xué)出版社,2008.73 楊文武.微機(jī)原理與接口技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì).城都:西南交通大學(xué)出版社,2005.104王為青、邱文勛.51單片機(jī)應(yīng)用開發(fā)案例精選.北京:人民郵電出版社,2007.85 朱定華.微機(jī)原理、匯編與接口技術(shù).北京:清華大學(xué)出版社,20

22、05.86 7 附錄附錄1、設(shè)計(jì)程序a_port equ 80hb_port equ 81hc_port equ 82hctrl_port equ 83hdata segment buff1 db 0,7,1,2 buff2 db 4 dup(0)data endscode segment assume ds:data,cs:codestart:mov ax,data mov ds,ax lea si,buff2 mov al,88h ;設(shè)定行(c口低四位)輸出,列(c高四位)輸入 out ctrl_port,al mov al,8 ;行輸出為零即低四位1000,列輸入信號(hào)j out c_po

23、rt,al mov cx,200 ;設(shè)定掃描鍵盤讀入數(shù)據(jù)的次數(shù),可為200次no_key:in al,c_port ;鍵盤部分程序,判斷是否有鍵按下 and al,0f0h cmp al,0f0h ;列信號(hào)全為1,無鍵按下并返回掃描;不全為1有鍵按下 jz no_key call delay10ms ;有鍵按下調(diào)延時(shí) in al,c_port shr al,1 ;把列信息移到低四位,邏輯右移空位補(bǔ)0 shr al,1 shr al,1 shr al,1 mov dl,0 ;設(shè)置初始變量dl為0,用于計(jì)數(shù)列為0的信號(hào)即dlj mov cx,4loop1:shr al,1 ;此循環(huán)為逐列檢查,找出

24、輸出為0的列信號(hào)j jnc loop2 ; cf=0即移出的位為0,則跳 inc dl loop loop1loop2:mov al,81h ;設(shè)定列為輸出,行為輸入 out ctrl_port,al mov al,0 ;列輸出為0,輸入行信號(hào)i out c_port,al in al,c_port and al,0fh cmp al,0fh ;檢查行信號(hào)是否全為1,是返回,否繼續(xù)下步 jz loop2 ;若行信號(hào)全為1,則重新掃描行信號(hào) mov dh,0 ;設(shè)置初始行變量dh為0,用于計(jì)數(shù)行為0的信號(hào)即dhi mov cx,3loop3:shr al,1 ;該循環(huán)為逐行檢查,找出0的行信號(hào)i

25、 jnc loop4 inc dh loop loop3loop4:shl dh,1 ;計(jì)算鍵號(hào)4ij shl dh,1 add dh,dl ;dh為鍵號(hào) cmp dh,0ah ;鍵號(hào)為10則結(jié)束輸入 jz finish cmp dh,0bh ;鍵號(hào)為11取消重新輸入 jz no_key mov buff2si,dh ;鍵號(hào)為09的鍵則存入緩沖區(qū)buff2 inc si loop no_key ;再次掃描輸入第二個(gè)數(shù) call mmbj ;調(diào)用密碼比較程序 delay10ms proc ;調(diào)用10毫秒延時(shí)子程序delay:mov cx,2801wait:loop wait retdelay10

26、ms endpmmbj proc ;調(diào)用密碼比較子程序 mov di,offset buff1 mov si,offset buff2 mov cx,4a1: mov al,di cmp al,buff2si jnz a2 ;密碼不同比較結(jié)束且紅燈亮,否則繼續(xù)比較全部相同綠燈亮 inc di inc bx loop a1 mov al,00h ;pb0為低電平,綠燈亮 mov dx,b_port out dx,ala2: mov al,01h ;pb0為高電平,紅燈亮 mov dx,b_port out dx,al retmmbj endpfinish:mov ah,4ch int 21hco

27、de ends end start附錄2、成績評(píng)定表本科生課程設(shè)計(jì)成績評(píng)定表姓 名性 別專業(yè)、班級(jí)課程設(shè)計(jì)題目: 密碼輸入鍵盤課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績評(píng)定依據(jù):評(píng) 分 項(xiàng) 目分值評(píng)分1選題合理、目的明確102設(shè)計(jì)方案正確,具有可行性、創(chuàng)新性203設(shè)計(jì)結(jié)果(例如:硬件成果、軟件程序)254態(tài)度認(rèn)真、學(xué)習(xí)刻苦、獨(dú)立完成任務(wù)155設(shè)計(jì)報(bào)告規(guī)范化、參考文獻(xiàn)充分(不少于5篇)106答辯20總分最終評(píng)定成績(以優(yōu)、良、中、及格、不及格評(píng)定)指導(dǎo)教師簽字: 年 月 日ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3

28、bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn

29、7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqkusvnxbppfuxyq1fjskfs

30、ubkgs2duvqc9sz4jkbgn4qqv66pyoarjurnfj3txyfclzieeptwfjthpheipdfnqnr2hjqkv2dzwtmpdjqkbcxmovdsjqctjagjmdlskpgad2s0h0vmzgaht36gyuez7umank1ndreubeqdgrx0venqgnsyib2ilq3siqrnl4m56t7z8y8da5k0kupn5nzg4jvjdtffhyt82aogqkxo4vblmleiy2p7hthbho07rcfttxodydppdtqso7wxd0j6fkklgm4wodzplhtrr2xgqn13hqy59zu1gegdyqnihntavsieuefqcyfucjwd3vk5i7ykmhundm

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論