《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤

上傳人:仙*** 文檔編號(hào):28579324 上傳時(shí)間:2021-09-01 格式:DOC 頁(yè)數(shù):19 大?。?60.54KB
收藏 版權(quán)申訴 舉報(bào) 下載
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第1頁(yè)
第1頁(yè) / 共19頁(yè)
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第2頁(yè)
第2頁(yè) / 共19頁(yè)
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤_第3頁(yè)
第3頁(yè) / 共19頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎ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ì)要求及其簡(jiǎn)明思路41.1 設(shè)計(jì)說明41.2 設(shè)計(jì)思路42 密碼輸入鍵盤具體設(shè)計(jì)方法52.1 可編程并行接口芯片

3、8255A基本簡(jiǎn)介52.1.1 8255A的內(nèi)部結(jié)構(gòu)及功能簡(jiǎn)介52.1.2 8255A的管腳分配62.1.3 8255A工作方式及其編程簡(jiǎn)介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、的,通過對(duì)這門知識(shí)的了解可以簡(jiǎn)單的編寫一些日常中經(jīng)典的控制程序。本文主要是針對(duì)接口技術(shù)方面問題的一種設(shè)計(jì)方法,通過對(duì)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ì)要求及其簡(jiǎn)明

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í)得出解決此題的基本方法,簡(jiǎn)明介紹如下:通過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)鍵盤鍵值的讀取、密碼判斷程序以及LED顯示程序;硬件設(shè)計(jì)則需要硬件實(shí)驗(yàn)平臺(tái)上相應(yīng)的硬件電路模

7、塊,包括鍵盤模塊、LED發(fā)光二極管顯示模塊。2 密碼輸入鍵盤具體設(shè)計(jì)方法 2.1 可編程并行接口芯片8255A基本簡(jiǎn)介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)及功能簡(jiǎn)介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通過對(duì)8255A管腳的控制來控制其各個(gè)端口的工作方式。圖2.1.2 8255A的管腳分布圖2.1.3 8255A工作方式及其編程簡(jiǎn)介8255A有三種工作方式:方式0基本輸入輸出,方式1選通輸入輸出,方式2雙向傳輸方式。本設(shè)計(jì)要使用該芯片來擴(kuò)展小鍵盤,并實(shí)現(xiàn)密碼校驗(yàn)的功能,為此,我們必須掌握8255A該芯片的編程方式,因?yàn)橹挥型ㄟ^相應(yīng)的軟件來定義端口的工作方式,選擇所需要的功能,硬件電路才能得以實(shí)現(xiàn)。首先對(duì)8255A的源程序初始化及其程序編程應(yīng)該有所

10、了解,然而對(duì)其的初始化就必須使用到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ù)雖然矩陣式鍵盤對(duì)CPU的硬件資源要求不多,但相應(yīng)的軟件要復(fù)雜,目前掃描鍵盤的方法有兩種,即掃描法和翻轉(zhuǎn)法。其實(shí)現(xiàn)思想基本簡(jiǎ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、 按鍵對(duì)應(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ǔ),對(duì)說明書的書寫格式也方便了許多,沒有第一次時(shí)的那種種麻煩以及困難,同時(shí)通過這次的課程設(shè)計(jì)也讓我對(duì)微機(jī)接口方面的知識(shí)有了進(jìn)一步的了解,而且也更加熟悉了匯編語言所運(yùn)行的軟件環(huán)境,同時(shí)通過軟件環(huán)境的調(diào)式運(yùn)行可以檢驗(yàn)自己的程序是否正確,由于本

20、次設(shè)計(jì)涉及到硬件方面的知識(shí),需要對(duì)硬件電路進(jìn)行檢驗(yàn),因此促使自己學(xué)習(xí)仿真軟件,本次設(shè)計(jì)中我使用的仿真軟件為protel。通過本次課程設(shè)計(jì),給我最大的收獲也就在于此了,了解到更多的軟件知識(shí)以及對(duì)所學(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、成績(jī)?cè)u(píng)定表本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表姓 名性 別專業(yè)、班級(jí)課程設(shè)計(jì)題目: 密碼輸入鍵盤課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績(jī)?cè)u(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)定成績(jī)(以優(yōu)、良、中、及格、不及格評(píng)定)指導(dǎo)教師簽字: 年 月 日ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3

28、BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn

29、7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFS

30、Ubkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaV

31、SieueFQcYfUCJwd3vk5I7YKmhunDmIZ ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBht

32、VDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3

33、hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!