《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤
《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)密碼小鍵盤(19頁珍藏版)》請(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é)們
2、更深入的了解計(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è)并行輸入/輸出端口、以及利用8255的三種工作方式,來擴(kuò)展一個(gè)外接小鍵盤,并且能通過此外接鍵盤輸入數(shù)字進(jìn)行紅綠燈校驗(yàn),整個(gè)電路能夠?qū)崿F(xiàn)的功能就是:鍵盤包括數(shù)字鍵“0-9”和功能鍵“確認(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、 3、 編程調(diào)試(兩天) 4、 撰寫說明書 (兩天) 5、 課程設(shè)計(jì)答辯(一天) 指導(dǎo)教師簽名: 年 月 日 系主任(或責(zé)任教師)簽名: 年 月 日 目錄 摘要 3 1 設(shè)計(jì)要求及其簡明思路 4 1.1 設(shè)計(jì)說明 4 1.2 設(shè)計(jì)思路 4 2 密碼輸入鍵盤具體設(shè)計(jì)方法 5 2.1 可編程并行接口芯片8255A基本簡介 5 2.1.1 8255A的內(nèi)部結(jié)構(gòu)及功能簡介 5 2.1.2 8255A的管腳分配 6 2.1.3 8255A工作方式及其編程簡介 6 2.2 硬件接口電路
4、原理 8 2.2.1 鍵盤接口原理電路圖 8 2.2.2 鍵盤掃描法及程序處理的任務(wù) 8 2.2.3 紅綠燈顯示電路部分 9 2.2.4 硬件連接電路圖 11 2.3 軟件設(shè)計(jì) 11 2.3.1 軟件設(shè)計(jì)思路 11 2.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í)是非常重要的,通過對(duì)這門知識(shí)的了解可以簡單的編寫一些日常中經(jīng)典的控制程序。本文主要是針對(duì)接口技
5、術(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ì)要求及其簡明思路 1.1 設(shè)計(jì)說
6、明 本文設(shè)計(jì)要求是建立在可編程并行接口芯片8255人機(jī)交互接口之“鍵盤接口”技術(shù)電路基礎(chǔ)之上的,通過8255的三個(gè)并行輸入/輸出端口以及利用8255的三種工作方式,來擴(kuò)展一個(gè)外接小鍵盤,并且能通過此外接鍵盤輸入數(shù)字進(jìn)行紅綠燈校驗(yàn),整個(gè)電路能夠?qū)崿F(xiàn)的功能就是:鍵盤包括數(shù)字鍵“0-9”和功能鍵“確認(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行列形式外接12
7、個(gè)鍵的矩陣式鍵盤電路,12個(gè)鍵的功能通過相應(yīng)的程序進(jìn)行控制,最終實(shí)現(xiàn)有0-9等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)的硬件電路
8、模塊,包括鍵盤模塊、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í)就是輸入接口
9、,作為鎖存器使用時(shí)是輸出接口。 圖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è)端口,用于連
10、接小鍵盤的C口和PB0端的紅綠顯示燈。其中與CPU連接的8、9管腳決定了8255A的工作方式,本設(shè)計(jì)中采用的8255端口地址是奇地址即8255的A0、A1的管腳連接CPU的A0、A1管腳,CPU通過對(duì)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)的軟件來定義端口的工作方式,選擇所需要的
11、功能,硬件電路才能得以實(shí)現(xiàn)。首先對(duì)8255A的源程序初始化及其程序編程應(yīng)該有所了解,然而對(duì)其的初始化就必須使用到8255A的各種工作方式及其端口的地址,以便進(jìn)行程序的控制。為此須要了解8255A的控制命令即其方式控制字,關(guān)乎8255A的端口工作情況。其基本規(guī)格如下各表所示: 表2.1方式控制字 表2 A口工作方式選擇 表3 A口I/O選擇 D7 D6 D5 D4 D3 D2 D1 D0 1 A組控制 B組控制 D4 輸入/輸出選擇 0 A口為輸出 1 A口為輸入
12、 D6D5 A口工作方式 00 方式0 01 方式1 1 方式2 表4 C口上半部I/O選擇 表5 B口工作方式選擇 表6 B口I/O選擇 表7 C口上半部I/O選擇 D2 B口工作方式 0 工作方式0 1 工作方式1 D3 輸入、輸出選擇 0 C口高4位輸出 1 C口高4位輸入 D0 輸入、輸出選擇 0 C口低4位輸出 1 C口低4位輸
13、入 D1 輸入/輸出選擇 0 B口為輸出 1 B口為輸入 本設(shè)計(jì)采用B口PB0端口輸出外接顯示燈,當(dāng)管腳信號(hào)為低電平時(shí)綠燈亮,表示輸入的數(shù)據(jù)同初始設(shè)置的值相同,相反當(dāng)其管腳輸出為高電平時(shí)紅燈亮,
14、表示輸入的數(shù)據(jù)同初始設(shè)置的值不同。C口外接矩陣式鍵盤并且采用掃描法進(jìn)行鍵盤信息的讀取,通過使用的方式不同可以得出8255A可編程并行接口芯片的控制方式,在8255A的初始化及其編程當(dāng)中需要用到。2.2 硬件接口電路原理 2.2.1 鍵盤接口原理電路圖 由于本題設(shè)計(jì)要求要用戶擴(kuò)展的鍵盤按鍵有數(shù)字鍵0-9和功能鍵等共12個(gè),因此鍵盤電路采用獨(dú)立式鍵盤將會(huì)占用很多的I/O線從而不實(shí)用。故采用矩陣式鍵盤電路來擴(kuò)展帶有12個(gè)按鍵的小鍵盤比較合適,根據(jù)本題要求只需34方式的矩陣即可,故其原理電路圖如下圖3所示: +5
15、V 8255 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 0 1 2 3 4 5 6 7 8 9
16、 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口的七根輸入/輸出線,組成34式的矩陣即可達(dá)到要求組成帶有12個(gè)按鍵的小鍵盤。 2.2.2 鍵盤掃描法及程序處理的任務(wù) 雖然矩陣式鍵盤對(duì)CPU的硬件
17、資源要求不多,但相應(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)行確定獲取鍵位置信息。因此,這種方法要比掃描法效率高,本設(shè)計(jì)中采用的也是翻轉(zhuǎn)法進(jìn)行鍵盤信息的讀取。其中,鍵盤的掃描同鍵位的確定有如下表2.2.2(a)所示的關(guān)系,掃描的程序?qū)⒃诟戒?/p>
18、中給出。 表2.2.2(a) 34行列式鍵盤的按鍵編碼表 按鍵 鍵 碼 按鍵 鍵 碼 行值 列值 行值 列值 0 1110 1110 6 1101 1011 1 1110 1101 7 1101 0111 2 1110 1011 8 1011 1110 3 1110 0111 9 1011 1101 4 1101 1
19、110 10(確認(rèn)) 1011 1011 5 1101 1101 11(取消) 1011 0111 其中,功能按鍵只需要通過相應(yīng)的程序進(jìn)行調(diào)用說明其功能即可,其功能如下表2.2.2(b)所示: 表2.2.2(b) 按鍵對(duì)應(yīng)的鍵名及其功能 按 鍵 鍵 名 功能說明 0-9鍵 數(shù)字鍵 用于輸入密碼 10鍵 確認(rèn)鍵 當(dāng)掃描到此鍵時(shí)結(jié)束掃描,即輸入結(jié)束 11鍵 取消鍵 當(dāng)掃描到此鍵時(shí)重新掃描,即重新輸入密碼 鍵盤處
20、理程序的任務(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)行比較,要求相同時(shí)綠燈亮,不同時(shí)紅燈亮。故可以通過8255A端口輸入/輸出的功能加上相應(yīng)的程序來實(shí)現(xiàn),本設(shè)計(jì)采用B端口的一個(gè)輸出端口通過非門的選擇來實(shí)現(xiàn)紅綠燈的亮滅,其部分接口電路如圖
21、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,AL 2.2.4 硬件連接電路圖 由以上分析可以知道,整體電路設(shè)
22、計(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ù)在0-9之間時(shí),輸入正常并把數(shù)據(jù)寄存在緩沖區(qū)BUFF2中。當(dāng)掃描到的數(shù)據(jù)為10時(shí),則執(zhí)行確認(rèn)功能即退出掃描讀數(shù);當(dāng)掃描到的數(shù)據(jù)為
23、11時(shí),則執(zhí)行取消功能即重新掃描讀取輸入的數(shù)據(jù)。 其中,主程序?yàn)殒I盤掃描讀取從鍵盤輸入的數(shù)據(jù),即通過擴(kuò)展矩陣式鍵盤翻轉(zhuǎn)法將掃描的鍵碼值轉(zhuǎn)化為相應(yīng)的鍵號(hào)值,數(shù)據(jù)鍵為0-9,功能鍵有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初始化 讀鍵盤
24、有鍵按下否 調(diào)用延時(shí)子程序 讀取鍵值 鍵值是否為11 鍵值是否為10 N Y 紅燈亮 結(jié)束 開始 取存密碼緩沖區(qū)的偏移地址SI 設(shè)置循環(huán)次數(shù)CX=4 與初密碼相等否 CX是否為0 或者SI為4否 綠燈亮 N N Y Y
25、 Y N Y N 圖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)行可以檢
26、驗(yàn)自己的程序是否正確,由于本次設(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è)問題又隨之而來,能夠
27、掃描也能夠讀取鍵號(hào)信息了,可是8255A所讀取的鍵號(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.4 [2]湯書森.微機(jī)原理接口實(shí)驗(yàn)與實(shí)踐教程.北京:清華大學(xué)出版社,2008.7 [3] 楊文武.微機(jī)原理與接口技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì).城都:西南交通大學(xué)出版社,2005.10 [4]王為青、邱文勛.51單片機(jī)應(yīng)用開發(fā)案例精選.北京:人民郵電出版社,200
28、7.8 [5] 朱定華.微機(jī)原理、匯編與接口技術(shù).北京:清華大學(xué)出版社,2005.8 [6] [7] 附錄 附錄1、設(shè)計(jì)程序 A_PORT EQU 80H B_PORT EQU 81H C_PORT EQU 82H CTRL_PORT EQU 83H DATA SEGMENT BUFF1 DB 0,7,1,2 BUFF2 DB 4 DUP(0) DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX LEA
29、SI,BUFF2 MOV AL,88H ;設(shè)定行(C口低四位)輸出,列(C高四位)輸入 OUT CTRL_PORT,AL MOV AL,8 ;行輸出為零即低四位1000,列輸入信號(hào)j OUT C_PORT,AL MOV CX,200 ;設(shè)定掃描鍵盤讀入數(shù)據(jù)的次數(shù),可為200次 NO_KEY:IN AL,C_PORT ;鍵盤部分程序,判斷是否有鍵按下 AND AL,0F0H CMP AL,0F0H ;列信號(hào)全為
30、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)即DL=j(luò) MOV CX,4 LOOP1:SHR AL,1 ;此循環(huán)為
31、逐列檢查,找出輸出為0的列信號(hào)j JNC LOOP2 ; CF=0即移出的位為0,則跳 INC DL LOOP LOOP1 LOOP2: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,
32、是返回,否繼續(xù)下步 JZ LOOP2 ;若行信號(hào)全為1,則重新掃描行信號(hào) MOV DH,0 ;設(shè)置初始行變量DH為0,用于計(jì)數(shù)行為0的信號(hào)即DH=i MOV CX,3 LOOP3:SHR AL,1 ;該循環(huán)為逐行檢查,找出0的行信號(hào)i JNC LOOP4 INC DH LOOP LOOP3 LOOP4:SHL DH,1 ;計(jì)算鍵號(hào)=4i+j SHL DH,1 ADD DH,DL
33、 ;DH為鍵號(hào) CMP DH,0AH ;鍵號(hào)為10則結(jié)束輸入 JZ FINISH CMP DH,0BH ;鍵號(hào)為11取消重新輸入 JZ NO_KEY MOV BUFF2[SI],DH ;鍵號(hào)為0-9的鍵則存入緩沖區(qū)BUFF2 INC SI LOOP NO_KEY ;再次掃描輸入第二個(gè)數(shù) CALL MMBJ ;調(diào)用密碼比較程序 DELAY1
34、0MS PROC ;調(diào)用10毫秒延時(shí)子程序 DELAY:MOV CX,2801 WAIT:LOOP WAIT RET DELAY10MS ENDP MMBJ PROC ;調(diào)用密碼比較子程序 MOV DI,OFFSET BUFF1 MOV SI,OFFSET BUFF2 MOV CX,4 A1: MOV AL,[DI] CMP AL,BUFF2[SI] JNZ A2 ;密碼不同比較結(jié)束且紅燈亮,否則繼續(xù)比較全部相同綠燈亮 INC D
35、I INC BX LOOP A1 MOV AL,00H ;PB0為低電平,綠燈亮 MOV DX,B_PORT OUT DX,AL A2: MOV AL,01H ;PB0為高電平,紅燈亮 MOV DX,B_PORT OUT DX,AL RET MMBJ ENDP FINISH:MOV AH,4CH INT 21H CODE ENDS END START附錄2、成績評(píng)定表 本科生課程設(shè)計(jì)成績評(píng)定表 姓 名 性
36、 別 專業(yè)、班級(jí) 課程設(shè)計(jì)題目: 密碼輸入鍵盤 課程設(shè)計(jì)答辯或質(zhì)疑記錄: 成績評(píng)定依據(jù): 評(píng) 分 項(xiàng) 目 分值 評(píng)分 1.選題合理、目的明確 10 2.設(shè)計(jì)方案正確,具有可行性、創(chuàng)新性 20 3.設(shè)計(jì)結(jié)果(例如:硬件成果、軟件程序) 25 4.態(tài)度認(rèn)真、學(xué)習(xí)刻苦、獨(dú)立完成任務(wù) 15 5.設(shè)計(jì)報(bào)告規(guī)范化、參考文獻(xiàn)充分(不少于5篇) 10 6.答辯 20 總分 最終評(píng)定成績(以優(yōu)、良、中、及格、不及格評(píng)定) 指導(dǎo)教師簽字:
37、 年 月 日ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08gVS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzu
38、hRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1
39、LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoARjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmA
40、Nk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ ut2ApOdfXXc02GyBKsKCWw97MrqqWhoj5TL15Zt6jIPYytYCummtARp3v1N5luizi3xh3BhWYreKO8d9g7nmZQoWPJeTLDrw08g
41、VS8DsDQQYGC3cE7moO2tLF0Jf1gK74IUXyBmtIVR97CkrfVqULT5fn2t6MpJR6rbzVPSortZvIj5NB5ndVvSr4iWr1TwLFKgLSPzuhRjQ3CmZU98eUOuijdLSZqPmvrw9zKupxf8WFUG9l2G9277g2rTipa1YpCZEuqxpKBhtVDCooQOzxUz3vJrZmOcijyM62zchmeooTYes8EBMm932tbz2Yo09RtsZEYS8Zrd2Yktj8l6jEAzVAjnfbtryLvsm6oFbfToXVRFFn7OwIYgJlamkUNXJYbz5Rrb7r4VsuR9
42、zpfZFMfsjhcfCA37lNW2VVLRKN7R8psz1BN6oRic5hU5Z6HCxAYqyNPOG8duYbAwqSl20CSg06Dh2sM8HLtgPkIcSkrgOPDpuHBj1LmPk7lYdvC6NNMwL3fwhZFTFVYAARY7lHSSxJ10V3pH3Y19BxYR77Ib7CpZSu2tijqe3hKqkKAu9KSkCpHKXUIKvvyJZpg2YijRkqfbGgOvyqKuxNWI9oMnJtt6QilZxtyrF7d20FbmabcfiixrQKUsVNXBPPFUXyQ1fJSKFSUbkgs2DUVQC9sz4JkbgN4Qqv66pyoA
43、RjurNFJ3TxyfclZiEePtwFJthphEipDFNqnR2HjQKV2DzWtMPDJQkBcXmovdsjqCTJagjMdLsKPgaD2s0H0vmZGAHt36gyUEZ7UmANk1ndREuBeqdgrx0venqGnsyIB2ilq3SIQrNL4m56t7Z8Y8da5K0KUpn5Nzg4JvjdtfFHyt82AoGQkXo4VBLmLEiy2P7HtHBho07rCfttxodYDPPdtQsO7wxD0J6fKKlGm4woDzplhtRr2XgqN13hqy59zU1GegDyQniHNTaVSieueFQcYfUCJwd3vk5I7YKmhunDmIZ
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025《增值稅法》高質(zhì)量發(fā)展的增值稅制度規(guī)范增值稅的征收和繳納
- 深入學(xué)習(xí)《中華人民共和國科學(xué)技術(shù)普及法》推進(jìn)實(shí)現(xiàn)高水平科技自立自強(qiáng)推動(dòng)經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步
- 激揚(yáng)正氣淬煉本色踐行使命廉潔從政黨課
- 加強(qiáng)廉潔文化建設(shè)夯實(shí)廉政思想根基培育風(fēng)清氣正的政治生態(tài)
- 深入學(xué)習(xí)2024《突發(fā)事件應(yīng)對(duì)法》全文提高突發(fā)事件預(yù)防和應(yīng)對(duì)能力規(guī)范突發(fā)事件應(yīng)對(duì)活動(dòng)保護(hù)人民生命財(cái)產(chǎn)安全
- 2023年四年級(jí)數(shù)學(xué)上冊第一輪單元滾動(dòng)復(fù)習(xí)第10天平行四邊形和梯形作業(yè)課件新人教版
- 2023年四年級(jí)數(shù)學(xué)上冊第14單元階段性綜合復(fù)習(xí)作業(yè)課件新人教版
- 2023年四年級(jí)數(shù)學(xué)上冊易錯(cuò)清單十五課件新人教版
- 2023年四年級(jí)數(shù)學(xué)上冊易錯(cuò)清單七課件西師大版
- 2023年五年級(jí)數(shù)學(xué)下冊易錯(cuò)清單六作業(yè)課件北師大版
- 2023年五年級(jí)數(shù)學(xué)下冊易錯(cuò)清單二作業(yè)課件北師大版
- 2023年五年級(jí)數(shù)學(xué)下冊四分?jǐn)?shù)的意義和性質(zhì)第10課時(shí)異分母分?jǐn)?shù)的大小比較作業(yè)課件蘇教版
- 2023年五年級(jí)數(shù)學(xué)下冊周周練四作業(yè)課件北師大版
- 2023年五年級(jí)數(shù)學(xué)下冊六折線統(tǒng)計(jì)圖單元復(fù)習(xí)卡作業(yè)課件西師大版
- 2023年四年級(jí)數(shù)學(xué)上冊6除數(shù)是兩位數(shù)的除法單元易錯(cuò)集錦一作業(yè)課件新人教版