




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六章可編程接口芯片可編程接口概術可編程并行輸入/輸出接口芯片8255A可編程接口概術一個簡單的具有輸入功能和輸出功能的可編程接口電路如下圖,它包括一個輸入接口,其組成主要是八位的三態門;一個輸出接口,其組成主要是八位的鎖存器;另外還有八位的多路轉換開關及控制這個開關的寄存器FF。用戶對寄存器FF寫入的內容稱為命令字或方式控制字,而寄存器FF稱為命令寄存器,相應的端口稱為命令端口或控制端口,對可編程芯片初始化過程實際上就是對芯片的控制端口寫入各種命令字的操作過程。并行接口電路:微處理器與I/O設備進行數據傳輸時均需經過接口電路實現系統與設備互連的匹配。并行接口電路中每個信息位有自己的傳輸線,一個數據字節各位可并行傳送,速度快,控制簡單。由于電氣特性的限制,傳輸距離不能太長。8255A是通用的可編程并行接口芯片,功能強,使用靈活。適合一些并行輸入/輸出設備的使用。6.1可編程并行輸入/輸出接口芯片8255A一、功能8255A(8155A)是一種通用的可編程并行I/O接口芯片,廣泛用于幾乎所有系列的微型機系統中,如8086、MCS51、Z80CPU系統等。8255A具有3個帶鎖存或緩沖的數據端口,可與外設并行進行數據交換。用戶可用程序來選擇多種操作方式,通用性強。使用靈活,可為CPU與外設之間提供并行輸入/輸出通道。二、8255引腳及內部結構
1、8255A的引腳
8255有40個引腳,采用雙列直插式封裝形式。其引腳如圖所示。二、8255A的內部結構
數據總線緩沖器內部控制線內部數據線D0~D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部讀寫控制邏輯PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET1、與外設連接的管腳
我們已經知道8255A有三個數據端口,每個端口是8位的,由此可推算與外設相連接的管腳共有24位。其中A口有PA7—PA0八個I/O引腳,B口有PB7—PB0八個I/O引腳,C口有PC7—PC0八個I/O引腳。特別地對于PC7—PC0,其中可有若干根復用線可用于“聯絡”信號或狀態信號,其具體定義與端口的工作方式有關。
PA0…PA7PB0…PB7PC0…PC7端口A:PA0~PA7A組,支持工作方式0、1、2端口B:PB0~PB7B組,支持工作方式0、1端口C:PC0~PC7僅支持工作方式0A組控制高4位PC4~PC7B組控制低4位PC0~PC3端口A:PA0~PA7常作數據端口,功能最強大端口B:PB0~PB7常作數據端口端口C:PC0~PC7可作數據、狀態和控制端口分兩個4位,每位可獨立操作控制最靈活,最難掌握2、與CPU連接的管腳
包括數據線D7—D0,讀寫控制線和,復位線RESET,以及和CPU地址線相連接的片選信號、端口地址控制線A0和A1。CS*A1A0I/O地址讀操作RD*寫操作WR*00000101001160H61H62H63H讀端口A讀端口B讀端口C非法寫端口A寫端口B寫端口C寫控制字D0~D7數據線 A0~A1地址線RD*讀信號 WR*寫信號CS*片選信號 RESET復位信號8255A端口選擇及操作功能表D0…D7A0A1/CS/WR/RDRESET三、8255A的控制字8255A可以通過指令在控制端口中設置控制字來決定它的工作。8255A的控制字有兩個,共用一個地址,根據D7位的值來區分。控制字分為兩類:1.方式選擇控制字2.C口置位/復位控制字1D6D5D4D3D2D1D0方式選擇控制字標識位A組方式選擇00方式001方式11x方式2端口A1輸入0輸出PC3~PC0:1輸入(方式0時)0輸出端口B:1輸入0輸出B組方式選擇:0方式01方式1PC7~PC4:1輸入(方式0時)0輸出8255A的工作方式可由CPU寫一個工作方式選擇控制字到8255A的控制寄存器來選擇。其格式如上圖所示,可以分別選擇端口A、端口B和端口C上下兩部分的工作方式。端口A有方式0、方式1和方式2三種工作方式,端口B只能工作于方式0和方式1,而端口C僅工作于方式0。注意8255A工作方式選擇控制字的最高位D7(特征位)應為1。0D6D5D4D3D2D1D0xxx無關1:置10:置000001111端口C按位置1/置0控制字標識位位選擇PC0PC1PC2PC3PC4PC5PC6PC700110011010101018255A的C口按位置位/復位控制字8255A的C口具有位控功能,即端口C的8位中的任一位都可通過CPU向8255A的控制寄存器寫入一個按位置位/復位控制字來置1或清0,而C口中其他位的狀態不變。其格式如上圖所示,注意8255A的C口按位置位/復位控制字的最高位D7(特征位)應為0。例如:設有一片8255A的口地址為60H-63H,PC5平時為低電平,要求從PC5的引腳輸出一個正脈沖。可使用程序先將PC5置1,輸出一個高電平,再把PC5清零,輸出一個低電平,結果PC5引腳輸出一個正脈沖。程序如下:MOVAL,00001011BOUT63H,ALMOVAL,000001010BOUT63H,AL四、8255A的工作方式及編程8255A端口功能表工作方式方式0A口B口C口方式1方式2基本輸入輸出端口輸入不鎖存,輸出鎖存同A口同A口應答式輸入輸出端口輸入輸出均可鎖存雙向應答式輸入輸出,輸入輸出均可鎖存同A口不用上C口作為應答式A口的應答線;下C口作為應答式B口的應答線用作A口的雙向應答控制線★三種可編程的工作方式:方式0——基本的字節輸入/輸出方式方式1——選通的字節輸入/輸出方式方式2——帶選通的雙向字節輸入/輸出方式
8255A有三種工作方式:方式0——基本輸入/輸出方式方式1——選通輸入/輸出方式方式2——雙向傳輸方式可以通過往控制寄存器中寫入控制字來選擇其工作方式。方式0:基本輸入輸出方式適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數據的外設適用于查詢和中斷方式的接口電路1、8255A工作在方式0方式0也叫基本輸入/輸出方式。在這種方式下,端口A和端口B可以通過方式選擇控制字規定為輸入口或者輸出口;端口C分為高4位(PC7~PC4)和低4位(PC3~PC0)兩個4位端口,這兩個4位端口也可由方式選擇控制字分別規定為輸入口或輸出口。這四個并行口共可構成16種不同的使用組態。利用8255A的方式0進行數據傳輸時,由于沒有規定專門的應答信號,所以這種方式常用于與簡單外設之間的數據傳送,如向LED顯示器的輸出,從二進制開關裝置的輸入等。需要說明的是,這里所說的輸入或輸出是相對于8255A芯片而言的。當數據從外設送往8255A時為輸入,反之,數據從8255A送往外設則為輸出。方式0也可以用于查詢方式的輸入或輸出接口電路,此時端口A和B分別作為一個數據端口,而用端口C的某些位作為這兩個數據端口的控制和狀態信息。下圖是一個A口和B口工作在方式0時利用C口某些位作為聯絡信號的接口電路。在此例中將8255A設置為:A口輸出,B口輸入,C口高4位輸入(現僅用PC7、PC6兩位輸入外設的狀態),C口低4位輸出(現僅用PC1、PC0兩位輸出選通及清除信號)。此時8255A的工作方式控制字為10001010B(8AH)。方式0查詢方式的接口電路其工作原理如下:在向輸出設備送數據前,先通過PC7查詢設備狀態,若設備準備好則從A口送出數據,然后通過PC1發選通信號使輸出設備接收數據。從輸入設備取數據前,先通過PC6查詢設備狀態,設備準備好后,再從B口讀入數據,然后通過PC0發清除信號,以便輸入后續字節。2.方式1——選通的輸入輸出方式特點:(1)兩組端口A和B都可以工作在方式1,每一組包含一個8位的數據端口和一個3位的控制端口。(2)8位數據端口可以是輸入或者輸出,輸入/出均帶鎖存。(3)C口有6位固定作為A口、B口的狀態和控制信號,剩下2位可由程序指定為輸入和輸出。在方式1輸入情況下,C口被定義的狀態和控制信號有、IBF和INTR,其含義如下::選通信號,低電平有效,由外設提供。有效時,外設把數據送入8255A的A口或B口。
IBF:輸入緩沖器滿,高電平有效,由8255A輸出給外設。當該信號有效時表明數據選通信號表示外設已經準備好數據輸入緩沖器滿信號表示A口已經接收數據中斷請求信號請求CPU接收數據PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中斷允許觸發器外設已將數據送到A口或B口的輸入緩沖器。IBF由置位,的上升沿使它復位。IBF可作為8255A與外設的聯絡信號。當IBF=0時,允許外設向8255A傳送一個數據;當IBF=1時,表示外設送來的數據還未被CPU取走,這時禁止外設向8255A傳送數據。IBF也可作為CPU的查詢信號,當IBF=1時,告訴CPU應該從8255A的端口讀取數據。INTR:中斷請求信號,高電平有效,由8255A發出。在程序設置的中斷允許信號INTE=1的條件下,當=1和IBF=1時,INTR被置為1,的上升沿使它復位。INTE是端口內部的中斷允許信號,是內部中斷允許觸發器的狀態,由C口的位控字來設置。若位控字使PC4=1,則A口的中斷允許信號INTEA=1;若位控字PC2=1,則B口的中斷允許信號INTB=1。這一點對于PC4和PC2兩引的、功能并無影響。方式1輸入引腳:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB數據選通信號表示外設已經準備好數據輸入緩沖器滿信號表示A口已經接收數據中斷請求信號請求CPU接收數據中斷允許觸發器方式1需借用端口C用做聯絡信號同時還具有中斷請求和屏蔽功能方式1輸入聯絡信號STB*——選通信號,低電平有效由外設提供的輸入信號,當其有效時,將輸入設備送來的數據鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號,高電平有效8255A輸出的聯絡信號。當其有效時,表示數據已鎖存在輸入鎖存器INTR——中斷請求信號,高電平有效8255A輸出的信號,可用于向CPU提出中斷請求,要求CPU讀取外設數據方式1輸入的時序方式1輸出時,各個控制信號的意義OBF(OutputBufferFull):輸出緩沖器滿信號,輸出,低電平有效。當CPU把數據寫入端口A或B的輸出緩沖器時,寫信號WR的上升沿把OBF置成低電平,通知外設到端口A或B來取走數據,當外設取走數據時向8255A發應答信號ACK,ACK的下降沿使OBF恢復為高電平。ACK(Acknowledge):外設應答信號,輸入,低電平有效。當ACK有效時,表示CPU輸出到8255A的數據已被外設取走。INTR(InterruptRequest):中斷請求信號,輸出,高電平有效。該信號由ACK的后沿(上升沿)在INTE=1且OBF=1的條件下產生,該信號使8255A向CPU發出中斷請求。若CPU響應此中斷請求,則向數據口寫入一方式1輸出時,各個控制信號的意義新的數據,寫信號WR上升沿(后沿)使INTR復位,變為低電平。INTE(InterruptEnable):中斷允許信號,與方式1輸入類似,端口A的輸出中斷請求INTRA可以通過對PC6的置位或復位來加以允許或禁止。端口B的輸出中斷請求信號INTRB可以通過對PC2的置位或復位來加以允許或禁止。方式1輸出時,各個控制信號的意義方式1輸出引腳:A端口外設響應信號表示外設已經接收到數據輸出緩沖器滿信號表示CPU已經輸出了數據中斷請求信號請求CPU再次輸出數據PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發器PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外設響應信號表示外設已經接收到數據輸出緩沖器滿信號表示CPU已經輸出了數據中斷請求信號請求CPU再次輸出數據中斷允許觸發器方式1輸出引腳:B端口
方式1輸出的時序
3.方式2——雙向傳輸方式此方式只適用于端口A。這時,在PA0~PA7的8位數據線上,外設既可以從8255A獲取數據;也可以向8255A發送數據。傳輸過程既可以工作于查詢方式,也可以工作于中斷方式。方式2的主要特點(1)僅限于端口A。(2)一個雙向8位數據總線端口A和一個5位的控制/狀態端口C。(3)輸入/輸出均鎖存。方式2將方式1的選通輸入輸出功能組合成一個雙向數據端口,可以發送數據和接收數據只有端口A可以工作于方式2,需要利用端口C的5個信號線,其作用與方式1相同方式2的數據輸入過程與方式1的輸入方式一樣方式2的數據輸出過程與方式1的輸出方式有一點不同:數據輸出時8255A不是在OBF*有效時向外設輸出數據,而是在外設提供響應信號ACK*時才送出數據
方式2的控制和狀態信息
D711/01/01/01×××工作方式控制字D6D5D4D3D2D1D0
方式2的控制和狀態信息
8255A工作于方式2的狀態字當A口工作于方式2時,允許中斷,此時若B口工作于方式1,則也允許中斷。這時就有三個中斷源(A口的輸入和輸出、B口)、兩個中斷請求信號(INTRA、INTRB)。CPU在響應8255A的中斷請求時,先要查詢PC3(INTRA)和PC0(INTRB),以判斷中斷源是A口還是B口。如果中斷源是A口,還要進一步查詢PC5(IBFA)和PC7(),以確定是輸入中斷還是輸出中斷。8255A的工作方式2是A口方式1輸出和方式1輸入兩種操作的組合,所以方式2的工作過程也同上述工作方式1的輸出和輸入過程。INTRWROBFAACKA送外設的數據數據有效1234STBA97IBFARD方式2的時序
8255A的編程初始化編程:一個方式控制字采用控制I/O地址:A1A0=11工作過程中:通過數據端口對外設數據進行讀寫數據讀寫利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBMPC/XT機上,端口A、B、C和控制端口的I/O地址為60H、61H、62H和63H1.寫入方式控制字:控制字格式1.寫入方式控制字:示例要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:movdx,0fffeh ;假設控制端口為FFFEHmoval,0b1h ;方式控制字outdx,al ;送到控制端口2.讀寫數據端口初始化編程后:當數據端口作為輸入接口時,執行輸入IN指令將從輸入設備得到外設數據當數據端口作為輸出接口時,執行輸出OUT指令將把CPU的數據送給輸出設備8255A具有鎖存輸出數據的能力對輸出方式的端口同樣可以輸入不是讀取外設數據讀取的是上次CPU給外設的數據2.讀寫數據端口:示例利用8255A的輸出鎖存能力,可實現按位輸出控制對輸出端口B的PB7位置位的程序段:movdx,0fffah ;B端口假設為FFFAHinal,dx ;讀出B端口原輸出內容oral,80h ;使PB7=1outdx,al ;輸出新的內容3.讀寫端口C:歸納1C端口被分成兩個4位端口,兩個端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組3.讀寫端口C:歸納2當A和B端口工作在方式1或方式2時,C端口的部分或全部引腳將被征用其余引腳仍可設定工作在方式03.讀寫端口C:歸納3對端口C的數據輸出有兩種辦法通過端口C的I/O地址:向C端口直接寫入字節數據。這一數據被寫進C端口的輸出鎖存器,并從輸出引腳輸出,但對設置為輸入的引腳無效通過控制端口:向C端口寫入位控字,使C端口的某個引腳輸出1或0,或置位復位內部的中斷允許觸發器端口C的位控制字位控制字寫入控制端口特別便于置位復位內部中斷允許觸發器INTE3.讀寫端口C:歸納4讀取的C端口數據有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯絡線的引腳:將讀到反映8255A狀態的狀態字D7D6D5D4D3D2D1D0方式1輸入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1輸出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2雙向OBFAINTE1IBFAINTE2INTRA×××端口C的狀態字A組B組七、8255應用舉例作為通用的并行接口電路芯片,825A具有廣泛的應用應用在IBMPC/XT微機上應用于打印機接口電路連接簡易鍵盤驅動LED數碼管1、LED顯示器接口2、并行打印機接口電路3、鍵盤接口1、LED顯示器接口例:8255A作為開關K0~K3及七段LED顯示器接口。要求開關設置的二進制信息,由PC0~PC3輸入,經程序轉換為對應的七段LED顯示器的字形代碼后,由PA口輸出顯示。8255APA7PA0~驅動器+5V+5VK0K1K2K3PC3PC2PC1PC0D7~D0RDWRA1A2ABCG2AG2BG1Y0Y1Y2OOOD7~D0RDWRA0A1CSA0A3A4A78086系統總線LS138接口電路M/IO&A5A6各端口地址為:E8H~EEH8255A各端口地址確定:由圖可知: A7A6A5A4A3A2A1A011101
08255A方式選擇控制字:CSABCG2AG2BG1Y0Y1Y2A0A3A4A7LS138M/IO&A5A6按題意設置端口A方式0輸出,下C口輸入.10000××181HLED顯示器的結構abdcefgdpLED顯示器的外形abcdefgep共陽極LED顯示器的結構abcdefgep共陰極LED顯示器的結構LED顯示器的結構可分為共陽極和共陰極兩種若要顯示某個字符首先需要將它轉換成對應的字形碼(也稱為段碼),然后送到LED顯示。這一轉換過程稱為譯碼。譯碼方法分為軟件譯碼法和硬件譯碼法兩種PA0PA1PA2PA3PA4PA5PA6PA78255DB7--DB0abcdefgep方案1共陽極LED顯示器與同相驅動器接口LED顯示器的工作原理軟件譯碼:abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0dpgfedcba0(C0H)11000000abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(90H)100100001(F9H)111110012(A4H)101001003(B0H)101100004(99H)100110015(92H)100100106(82H)100000107(F8H)111110008(80H)10000000LED顯示器的工作原理PA0PA1PA2PA3PA4PA5PA6PA78255DB7--DB0abcdefgep方案2共陽極LED顯示器與反相驅動器接口abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0dpgfedcba0(3FH)00111111abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(6FH)011011111(05H)000001102(5BH)010110113(4FH)010011114(66H)011001105(6DH)011011016(7DH)011111017(07H)000001118(7FH)01111111LED顯示器的字形代碼表存放在TABLE單元開始的內存中.TABLEDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,98H,88H,83H,0C6H,0A1H,86H,8EH編程:實現操作的具體程序如下:MOV DX,0E8H ;指向端口A OUT DX,AL ;輸出字形碼顯示 HLTMOV DX,0EEH;設置8255A工作方式MOV AL,81H OUT DX,ALMOV DX,0ECH;指向端口C,讀開關狀態 IN AL,DX AND AL,0FH LEA BX,TABLE;顯示代碼表首地址送BX XLAT ;查表,取出相應的字形碼送AL硬件譯碼:利用專用接口芯片7447驅動LED顯示器7447為BCD—七段譯碼器與單個LED的連接7447abcdefg1312111091514VccGNDRBIRBOLTABCD345+5V7126+5V1685VR=(5–1.5–0.2)V/20mA=168取R=1505V1.5V0.2VI=20mARLED顯示器的電路設計分為兩種,靜態顯示和動態顯示,兩種電路各有長處和缺點,在不同情況下可采用不同的連接方式。下面是兩種連接方式:PA0PA1PA2PA3PA4PA5PA6PA77447abcdefgABCD7447abcdefgABCD7447abcdefgABCD7447abcdefgABCDPB0PB1PB2PB3PB4PB5PB6PB7DB0——DB7DB0——DB77447BCD—七段譯碼器與多個LED的連接5V靜態顯示器的設計器件多,輸出顯示后若不改變顯示內容CPU不用干預?????????????????????7447abcdefg???ABCDPB0PB1PB2PB3PA0PA1PA2PA3PA4PA5PA68255動態顯示器的設計動態顯示器控制程序的設計LEASI,BUFFMOVCX,07HMOVDL,01H初始化結束取顯示數據送段通道口延時位碼送位通道口是否最后一位修改指針,位碼NYMOVAL,[SI]OUTPOTB,ALMOVAL,DLOUTPOTA,ALINCSIROLDL?????????????????????PB0PA0PA1PA2PA3PA4PA5PA68255???ag??????PB7???74LS07初始化結束取顯示數據查表得段碼送段通道延時位碼送位通道是否最后一位修改指針,位碼NYLEASI,BUFFMOVCL,40HMOVBX,LED-ADDDISI:MOVAL,[SI]XLATMOVDX,POTBOUTDX,ALMOVAL,CLMOVDX,POTAOUTDX,ALINCSISHRCLJNZDISI二、鍵盤接口鍵盤是微型計算機系統中最常用的一種輸入設備。鍵盤有兩種類型:編碼鍵盤和非編碼鍵盤。編碼鍵盤能自動提供對應于被按鍵的編碼,如ASCII碼,并能同時產生一個脈沖通知CPU。編碼鍵盤還具有處理抖動和多鍵串鍵的保護電路。這種鍵盤的優點是使用方便,但需要較多的硬件,價格昂貴。非編碼鍵盤有一組開關組成,提供行和列的鍵盤矩陣,其工作過程:按鍵的識別;按鍵代碼的產生;防止串鍵和消除抖動等均由程序來實現。故這種鍵盤的優點是所需要的硬件較少,價格便宜,宜用微機化儀表的面板的鍵盤。
這里只介紹非編碼鍵盤PB7PB6PB5PB4PB3PB2PB1PB0C98DE40F615B273APA0PA1PA2PA38255A8255A+5V4行×4列16個按鍵的鍵盤工作原理鍵盤掃描過程:(1)檢測鍵盤上所有的鍵是否都松開,反復檢測直至全松開。(2)檢測鍵盤上是否有鍵按下,反復檢測直至有鍵按下。(3)若有鍵按下,則消除鍵抖動后(硬件消抖動電路,軟件延時消抖動下),再確認該鍵是否按下。(4)對按下的鍵進行編碼,即將該鍵所在的行號和列號轉換成16進制代碼。(6)根據代碼轉相應功能子程序。注:若在按鍵時,多個鍵盤同時按下,可取最后松開的按鍵作為本次按下的鍵。(5)檢測該鍵是否松開,反復檢測直至松開。初始化:PORT-AEQU0FF9H;8255A口地址PORT-BEQU0FFBH;8255B口地址PORT-CTLEQU0FF9H;8255控制口地址TABLEDB77H,7BH,7DH,7EHDB0B7H,0BBH,0BDH,0BEHDB0D7H,0DBH,0DDH,0DEHDB0E7H,0EBH,0EDH,0EEH8255初始化:方式0,A口輸出,B口、C口輸入MOVDX,PORT-CTL;DX指向控制口MOVAL,10001011B;控制字OUTDX,AL;寫入控制字MOVDX,PORT-A;DX指向A口MOVAL,00HOUTDX,ALWO:MOVDX,PORT-B;DX指向B口INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;各鍵均未按下JNEWO;否,繼續等WR:INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;是否有鍵按下JEWR;否,等待MOVCX,16EAHDELAY:LOOPDELAYWR:INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;是否有鍵按下JEWR;否,等待讀入列值鍵松開讀入列值有鍵按下延時20ms消抖動鍵仍按下逐行逐列查按鍵查表得鍵代碼所有行置“0”NYNMOVAL,0FEH;置行掃描初值MOVCL,AL;暫存于CN-R:MOVDX,PORT-AOUTDX,AL;輸出行掃描值MOVDX,PORT-B;DX指向B口INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;有鍵按下JNEENCODE;是,轉編碼ROLCL,01;否,修改掃描初值MOVCL,ALJMPN-R;掃描下一行ENCODE:MOVBX,000FH;置鍵代碼初值INAL,DX;讀入行列號NEXT-T:COMAL,TABLE[BX];與表中行列號相等嗎JEDONE;相等轉DONEDECBX;不相等,修改位置JNSNEXT-T;未查完,繼續MOVAH,01;查完,未查到,置出錯標志JMPEXIT;退出DONE:MOVAL,BL;鍵代碼送ALMOVAH,00;鍵有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論