




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第十一章第十一章 并行可編程接口芯并行可編程接口芯片片8255及其應用及其應用主要內(nèi)容主要內(nèi)容 并行接口芯片并行接口芯片8255A 結(jié)構(gòu)結(jié)構(gòu) 工作方式工作方式 應用應用 鍵盤鍵盤 LED 打印機打印機*CPU與外設的接口與外設的接口 接口的組成和功能接口的組成和功能 數(shù)據(jù)鎖存數(shù)據(jù)鎖存/緩沖:速度匹配、信號隔離緩沖:速度匹配、信號隔離 控制命令和狀態(tài)寄存器控制命令和狀態(tài)寄存器 地址譯碼:內(nèi)部端口選擇地址譯碼:內(nèi)部端口選擇 讀寫控制讀寫控制 中斷中斷/DMA請求邏輯請求邏輯 可編程接口芯片特點可編程接口芯片特點 多通道多通道 多功能多功能 可編程:通過編程設置各個通道的工作模式可編程:通過編程設置
2、各個通道的工作模式 可編程微處理器、可編程芯片可編程微處理器、可編程芯片接口信號接口信號 CPU側(cè)側(cè) CS*: AEN IOR*、IOW*: DMA、INT 地址總線地址總線 數(shù)據(jù)總線數(shù)據(jù)總線 外設側(cè):外設側(cè):STB*、RDY 輸入接口:輸入接口: 輸入選通輸入選通STB*:外設:外設-接口,接口, 輸入準備好輸入準備好RDY:接口:接口-外設,輸入緩沖器滿外設,輸入緩沖器滿IBF 輸出接口:輸出接口: ACK 接受數(shù)據(jù)回答:外設接受數(shù)據(jù)回答:外設-接口接口 輸出緩沖器滿輸出緩沖器滿OBF :接口:接口-外設外設 數(shù)據(jù)總線數(shù)據(jù)總線并行接口并行接口 8255A的工作方式和編程的工作方式和編程 8
3、255A的應用的應用 簡易鍵盤的掃描程序簡易鍵盤的掃描程序 LED數(shù)碼管的多位顯示數(shù)碼管的多位顯示并行數(shù)據(jù)傳輸方式并行數(shù)據(jù)傳輸方式 以計算機的字長(通常是以計算機的字長(通常是8位、位、16位或位或32位)為傳輸單位,一次傳送一個字長的數(shù)位)為傳輸單位,一次傳送一個字長的數(shù)據(jù)據(jù) 適合于外部設備與微機之間進行近距離、適合于外部設備與微機之間進行近距離、大量和快速的信息交換大量和快速的信息交換 例如:微機與并行接口打印機、磁盤驅(qū)動器例如:微機與并行接口打印機、磁盤驅(qū)動器 微機系統(tǒng)中最基本的信息交換方法微機系統(tǒng)中最基本的信息交換方法 例如:系統(tǒng)板上各部件之間,接口電路板上例如:系統(tǒng)板上各部件之間,接
4、口電路板上各部件之間各部件之間并行接口芯片并行接口芯片8255A 具有多種功能的可編程并行接口電路芯片具有多種功能的可編程并行接口電路芯片 最基本的接口電路:三態(tài)緩沖器和鎖存器最基本的接口電路:三態(tài)緩沖器和鎖存器 與與CPU間、與外設間的接口電路:狀態(tài)寄存間、與外設間的接口電路:狀態(tài)寄存器和控制寄存器器和控制寄存器 還有端口的譯碼和控制電路、中斷控制電路還有端口的譯碼和控制電路、中斷控制電路 分分3個端口,共個端口,共24個外設引腳個外設引腳 共三種輸入輸出工作方式共三種輸入輸出工作方式8255A的內(nèi)部結(jié)構(gòu)和引腳的內(nèi)部結(jié)構(gòu)和引腳數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器內(nèi)部控制線內(nèi)部控制線內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)
5、線D0D7A組組控制控制A組組端口端口AA組組端口端口C上部上部B組組控制控制B組組端口端口BB組組端口端口C下部下部讀寫讀寫控制控制邏輯邏輯PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET1. 外設數(shù)據(jù)端口外設數(shù)據(jù)端口 端口端口A:PA0PA7 A組,支持工作方式組,支持工作方式0、1、2n常作數(shù)據(jù)端口,功能最強大常作數(shù)據(jù)端口,功能最強大 端口端口B:PB0PB7 B組,支持工作方式組,支持工作方式0、1 常作數(shù)據(jù)端口常作數(shù)據(jù)端口 端口端口C:PC0PC7 僅支持工作方式僅支持工作方式0 可作數(shù)據(jù)、狀態(tài)和控制端口可作數(shù)據(jù)、狀態(tài)和控制端口 分兩個分兩個4位,每位可
6、獨立操作位,每位可獨立操作 A組控制高組控制高4位位PC4PC7 B組控制低組控制低4位位PC0PC32. 主板上的主板上的8255與處理器接口與處理器接口CS* A1 A0I/O地址讀操作RD*寫操作WR*0 0 00 0 10 1 00 1 160H61H62H63H讀端口A讀端口B讀端口C非法寫端口A寫端口B寫端口C寫控制字8255A的工作方式的工作方式 方式方式0:基本輸入輸出方式基本輸入輸出方式 適用于適用于無條件傳送無條件傳送和和查詢方式查詢方式的接口電路的接口電路 查詢方式下,可以使用查詢方式下,可以使用C口作為握手控制口作為握手控制 方式方式1:選通輸入輸出方式選通輸入輸出方式
7、 適用于查詢和中斷方式的接口電路適用于查詢和中斷方式的接口電路 方式方式2:雙向選通傳送方式雙向選通傳送方式 適用于雙向傳送數(shù)據(jù)的外設適用于雙向傳送數(shù)據(jù)的外設 適用于查詢和中斷方式的接口電路適用于查詢和中斷方式的接口電路方式方式0輸入時序輸入時序datadata輸入端口輸入端口D0D7RD CS,A1,A0方式方式0輸出時序輸出時序WRdatadata輸出端口輸出端口D0D7 CS,A1,A0方式方式1輸入引腳:輸入引腳:A端口端口表示外設已經(jīng)準備好數(shù)據(jù)表示外設已經(jīng)準備好數(shù)據(jù)通知外設停止發(fā)送數(shù)據(jù)通知外設停止發(fā)送數(shù)據(jù)請求請求CPU接收數(shù)據(jù)接收數(shù)據(jù)PC4PC5PC3PA7PA0INTEAIBFAI
8、NTRASTBA中斷允許觸發(fā)器中斷允許觸發(fā)器注意:注意:PC7、PC6可以單獨用于可以單獨用于I/O方式方式1輸入引腳:輸入引腳:B端口端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號數(shù)據(jù)選通信號表示外設已經(jīng)準備好數(shù)據(jù)表示外設已經(jīng)準備好數(shù)據(jù)輸入緩沖器滿信號輸入緩沖器滿信號表示表示B口已經(jīng)接收數(shù)據(jù)口已經(jīng)接收數(shù)據(jù)中斷請求信號中斷請求信號請求請求CPU接收數(shù)據(jù)接收數(shù)據(jù)中斷允許觸發(fā)器中斷允許觸發(fā)器方式方式1輸入聯(lián)絡信號輸入聯(lián)絡信號 STB*選通信號,低電平有效選通信號,低電平有效 由外設提供的輸入信號,當其有效時,將輸入設備送由外設提供的輸入信號,當其有效時,將輸入設
9、備送來的數(shù)據(jù)鎖存至來的數(shù)據(jù)鎖存至8255A的輸入鎖存器的輸入鎖存器 IBF輸入緩沖器滿信號,高電平有效輸入緩沖器滿信號,高電平有效 8255A輸出的聯(lián)絡信號。當其有效時,表示數(shù)據(jù)已鎖輸出的聯(lián)絡信號。當其有效時,表示數(shù)據(jù)已鎖存在輸入鎖存器存在輸入鎖存器 INTR中斷請求信號,高電平有效中斷請求信號,高電平有效 8255A輸出的信號,可用于向輸出的信號,可用于向CPU提出中斷請求,要提出中斷請求,要求求CPU讀取外設數(shù)據(jù)讀取外設數(shù)據(jù)方式方式1輸入時序輸入時序dataINTRIBF dataPA/PBD0D7STBRD INTR高電平有效高電平有效 RD*清清INTR和和IBF方式方式1中斷控制中斷
10、控制 8255A的中斷由中斷允許觸發(fā)器的中斷由中斷允許觸發(fā)器INTE控制控制 置位允許中斷,復位禁止中斷置位允許中斷,復位禁止中斷 對對INTE的置位的置位/復位操作由端口復位操作由端口C的對應位實現(xiàn)的對應位實現(xiàn) 端口端口A的的INTEA對應對應PC4 端口端口B的的INTEB對應對應PC2PC4PC5PC3PA7PA0INTEAIBFAINTRASTBAPC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB方式方式1輸出引腳:輸出引腳:A端口端口外設響應信號外設響應信號表示外設已經(jīng)接收到數(shù)據(jù)表示外設已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號輸出緩沖器滿信號表示表示CPU已經(jīng)輸出了數(shù)據(jù)已經(jīng)輸出
11、了數(shù)據(jù)中斷請求信號中斷請求信號請求請求CPU再次輸出數(shù)據(jù)再次輸出數(shù)據(jù)PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器中斷允許觸發(fā)器方式方式1輸出引腳:輸出引腳:B端口端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外設響應信號外設響應信號表示外設已經(jīng)接收到數(shù)據(jù)表示外設已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號輸出緩沖器滿信號表示表示CPU已經(jīng)輸出了數(shù)據(jù)已經(jīng)輸出了數(shù)據(jù)中斷請求信號中斷請求信號請求請求CPU再次輸出數(shù)據(jù)再次輸出數(shù)據(jù)中斷允許觸發(fā)器中斷允許觸發(fā)器方式方式1輸出聯(lián)絡信號輸出聯(lián)絡信號 OBF*輸出緩沖器滿信號,低有效輸出緩沖器滿信號,低有效 825
12、5A輸出給外設的一個控制信號,當其有效時,表輸出給外設的一個控制信號,當其有效時,表示示CPU已把數(shù)據(jù)輸出給指定的端口,外設可以取走已把數(shù)據(jù)輸出給指定的端口,外設可以取走 ACK*響應信號,低有效響應信號,低有效 外設的響應信號,指示外設的響應信號,指示8255A的端口數(shù)據(jù)已由外設接的端口數(shù)據(jù)已由外設接受(受(“完成時態(tài)完成時態(tài)”!) INTR中斷請求信號,高有效中斷請求信號,高有效 當輸出設備已接受數(shù)據(jù)后,當輸出設備已接受數(shù)據(jù)后,8255A輸出此信號向輸出此信號向CPU提出中斷請求,要求提出中斷請求,要求CPU繼續(xù)提供數(shù)據(jù)繼續(xù)提供數(shù)據(jù) 端口端口A的的INTEA對應對應PC6 端口端口B的的I
13、NTEB對應對應PC2 PC4、PC5可以單獨用于可以單獨用于I/O方式方式1輸出時序輸出時序 INTR datadataPA/PBD0D7WROBFACK 當當ACK、OBF都為高時,都為高時,INTR有效有效方式方式2雙向方式雙向方式 方式方式2將方式將方式1的選通輸入輸出功能組合成一個的選通輸入輸出功能組合成一個雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù) 只有只有端口端口A可以工作于方式可以工作于方式2,需要利用端口,需要利用端口C的的5個信號線,其作用與方式個信號線,其作用與方式1相同相同 方式方式2的數(shù)據(jù)輸入過程與方式的數(shù)據(jù)輸入過程與方式1的輸入方式一樣
14、的輸入方式一樣 方式方式2的數(shù)據(jù)輸出過程與方式的數(shù)據(jù)輸出過程與方式1的輸出方式有一的輸出方式有一點點不同不同:數(shù)據(jù)輸出時:數(shù)據(jù)輸出時8255A不是在不是在OBF*有效時有效時向外設輸出數(shù)據(jù),而是在外設提供響應信號向外設輸出數(shù)據(jù),而是在外設提供響應信號ACK*時才送出數(shù)據(jù)時才送出數(shù)據(jù)方式方式2雙向引腳雙向引腳PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用用PC6設置設置INTE1(輸出用)(輸出用)用用PC4設置設置INTE2(輸入用)(輸入用)輸入和輸出中斷通過輸入和輸出中斷通過或門或門輸出輸出INTRA信號信號方式方式2雙向時序雙向
15、時序data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACKSTBRD 4.88255A的編程的編程 初始化編程:一個方式控制字初始化編程:一個方式控制字 采用控制采用控制I/O地址:地址:A1A011 工作過程中:通過數(shù)據(jù)端口對外設數(shù)據(jù)工作過程中:通過數(shù)據(jù)端口對外設數(shù)據(jù)進行讀寫進行讀寫 數(shù)據(jù)讀寫利用端口數(shù)據(jù)讀寫利用端口A、B和和C的的I/O地址,地址,A1A0依次等于依次等于00、01、10 IBM PC/XT機上,端口機上,端口A、B、C和控制和控制端口的端口的I/O地址為地址為60H、61H、62H和和63H1. 寫入方式控制字
16、:控制字格式寫入方式控制字:控制字格式寫入方式控制字:示例寫入方式控制字:示例 要求:要求: A端口:方式端口:方式1輸入輸入 C端口上半部:輸出,端口上半部:輸出,C口下半部:輸入口下半部:輸入 B端口:方式端口:方式0輸出輸出 方式控制字:方式控制字:10110001B,即,即B1H 初始化的程序段:初始化的程序段:mov dx,0243h;假設控制端口為假設控制端口為0243Hmov al,0b1h;方式控制字方式控制字out dx,al;送到控制端口送到控制端口2. 讀寫數(shù)據(jù)端口讀寫數(shù)據(jù)端口 初始化編程后:初始化編程后: 當數(shù)據(jù)端口作為輸入接口時,執(zhí)行輸入當數(shù)據(jù)端口作為輸入接口時,執(zhí)行
17、輸入IN指指令將從輸入設備得到外設數(shù)據(jù)令將從輸入設備得到外設數(shù)據(jù) 當數(shù)據(jù)端口作為輸出接口時,執(zhí)行輸出當數(shù)據(jù)端口作為輸出接口時,執(zhí)行輸出OUT指令將把指令將把CPU的數(shù)據(jù)送給輸出設備的數(shù)據(jù)送給輸出設備 8255A具有鎖存輸出數(shù)據(jù)的能力具有鎖存輸出數(shù)據(jù)的能力 可以讀入輸出方式的端口鎖存器中的值,進可以讀入輸出方式的端口鎖存器中的值,進行按位處理后再次輸出行按位處理后再次輸出 注意:不是讀取外設數(shù)據(jù),而是讀取上一次注意:不是讀取外設數(shù)據(jù),而是讀取上一次CPU發(fā)給外設的數(shù)據(jù)發(fā)給外設的數(shù)據(jù)讀寫數(shù)據(jù)端口:示例讀寫數(shù)據(jù)端口:示例 利用利用8255A的輸出鎖存能力,可實現(xiàn)按位的輸出鎖存能力,可實現(xiàn)按位輸出控制
18、輸出控制 對輸出端口對輸出端口B的的PB7位置位的程序段:位置位的程序段:mov dx,0241h;B端口假設為端口假設為0241Hin al,dx;讀出讀出B端口原輸出內(nèi)容端口原輸出內(nèi)容or al,80h;使使PB71out dx,al;輸出新的內(nèi)容輸出新的內(nèi)容3. 端口端口C的說明的說明 C端口被分成端口被分成兩個兩個4位端口位端口,兩個端口只能,兩個端口只能以方式以方式0工作,可分別選擇輸入或輸出工作,可分別選擇輸入或輸出 在控制上,在控制上,C端口上半部和端口上半部和A端口編為端口編為A組,組,C端口下半部和端口下半部和B端口編為端口編為B組組 當當A和和B端口工作在方式端口工作在方式
19、1或方式或方式2時,時,C端端口的部分或全部引腳將口的部分或全部引腳將被征用被征用,即,即被征用被征用引腳的功能不由方式字定義,而是由引腳的功能不由方式字定義,而是由A、B口的工作方式確定口的工作方式確定 其余引腳仍可設定工作在方式其余引腳仍可設定工作在方式0寫端口寫端口C 對端口對端口C的數(shù)據(jù)輸出有兩種辦法的數(shù)據(jù)輸出有兩種辦法 通過端口通過端口C的的I/O地址:向地址:向C端口直接寫入字端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進C端口的輸出鎖存器,端口的輸出鎖存器,并從輸出引腳輸出,但對設置為輸入的引腳并從輸出引腳輸出,但對設置為輸入的引腳無效無效 通過控制端口:向通過控制端
20、口:向C端口寫入位控字,使端口寫入位控字,使C端端口的某個引腳輸出口的某個引腳輸出1或或0,或置位復位內(nèi)部的,或置位復位內(nèi)部的中斷允許觸發(fā)器中斷允許觸發(fā)器端口端口C的位控制字的位控制字寫入11口讀端口讀端口C 讀取的讀取的C端口數(shù)據(jù)有兩種情況端口數(shù)據(jù)有兩種情況 未被未被A和和B端口征用的引腳:將從定義為輸入端口征用的引腳:將從定義為輸入的端口讀到外設輸入的數(shù)據(jù);將從定義為輸?shù)亩丝谧x到外設輸入的數(shù)據(jù);將從定義為輸出的端口讀到輸出鎖存器中的信息出的端口讀到輸出鎖存器中的信息 被被A和和B端口征用作為聯(lián)絡線的引腳:將讀到端口征用作為聯(lián)絡線的引腳:將讀到反映反映8255A狀態(tài)的狀態(tài)的狀態(tài)字狀態(tài)字D D
21、7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0方式方式1輸入輸入I/OI/OIBFAINTEA INTRAINTEBIBFBINTRB方式方式1輸出輸出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式方式2雙向雙向OBFAINTE1IBFAINTE2INTRA端口端口C的狀態(tài)字的狀態(tài)字A組組B組組8255A的應用的應用作為通用的并行接口電路芯片,作為通用的并行接口電路芯片,8255A具有廣泛的應用具有廣泛的應用 連接簡易鍵盤連接簡易鍵盤 驅(qū)動驅(qū)動LED數(shù)碼管數(shù)碼管 打印機接口電路打印機接口電路 鍵盤及其接口鍵盤及其接口 鍵盤是
22、微機系統(tǒng)最常使用的輸入設備 標準鍵盤:通過5芯電纜與PC微機主機連接 編碼鍵盤 小鍵盤:適用于單板機或以微處理器為基礎(chǔ)的儀器,實現(xiàn)數(shù)據(jù)、地址、命令及指令等的輸入 非編碼鍵盤鍵位置和掃描碼鍵位置和掃描碼Esc0181 10282234=0-QAZSWPLM,03040510111E1F2C83848590919E123451112131617253031394450519FAC鍵位置鍵位置接通掃描碼接通掃描碼斷開掃描碼斷開掃描碼鍵名稱鍵名稱標準鍵盤簡介標準鍵盤簡介 鍵盤服務鍵盤服務BIOS功能調(diào)用功能調(diào)用(INT 16H) AH功能描述功能描述出口參數(shù)出口參數(shù)說明說明00從鍵盤讀取單個字從鍵盤讀
23、取單個字符符 AH鍵盤的掃描碼鍵盤的掃描碼 AL字符的字符的ASCII碼碼 一直等待到有鍵按下一直等待到有鍵按下10從從增強鍵盤增強鍵盤中獲取中獲取按鍵按鍵 同上同上同上同上01讀取鍵盤字符或狀讀取鍵盤字符或狀態(tài)態(tài) AH鍵盤的掃描碼鍵盤的掃描碼 AL字符的字符的ASCII碼碼 不等待,有鍵按下同不等待,有鍵按下同00,無鍵按下,無鍵按下AL011讀取讀取增強鍵盤增強鍵盤字符字符或狀態(tài)或狀態(tài) 同上同上同上同上02獲取鍵盤狀態(tài)字節(jié)獲取鍵盤狀態(tài)字節(jié)信息信息 ALBIOS鍵盤狀態(tài)鍵盤狀態(tài)標志標志 狀態(tài)標志見后狀態(tài)標志見后12獲取獲取增強鍵盤增強鍵盤狀態(tài)狀態(tài)字節(jié)信息字節(jié)信息 ALBIOS鍵盤狀態(tài)鍵盤狀態(tài)
24、標志標志 狀態(tài)標志見后狀態(tài)標志見后BIOS 鍵盤狀態(tài)標志(鍵盤狀態(tài)標志(1字節(jié))字節(jié)) 位位含義含義765432101已按下右已按下右Shift鍵鍵 1已按下左已按下左Shift鍵鍵 1已按下已按下Ctrl鍵鍵 1已按下已按下Alt鍵鍵 1已啟用已啟用ScrollLock 1已啟用已啟用Num Lock 1已啟用已啟用Caps Lock 1已轉(zhuǎn)換已轉(zhuǎn)換Insert鍵鍵 簡易鍵盤的工作原理簡易鍵盤的工作原理行行列列1111+5V控制線控制線檢檢測測線線接地接地按下,檢測線按下,檢測線0釋放,檢測線釋放,檢測線1簡易鍵盤接口簡易鍵盤接口A口:輸入口:輸入B口:輸出口:輸出按鍵抖動按鍵抖動 機械按鍵
25、存在抖動現(xiàn)象機械按鍵存在抖動現(xiàn)象 當按下或釋放一個鍵時,往往會出現(xiàn)按鍵在閉合當按下或釋放一個鍵時,往往會出現(xiàn)按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài) 抖動的持續(xù)時間通常不大于抖動的持續(xù)時間通常不大于10ms 采用硬件消抖電路或軟件延時方法解決采用硬件消抖電路或軟件延時方法解決前沿抖動前沿抖動后沿抖動后沿抖動鍵穩(wěn)定鍵穩(wěn)定鍵按下鍵按下掃描法鍵盤識別掃描法鍵盤識別 掃描(注意,參考掃描(注意,參考P287圖,與前圖行列相反)圖,與前圖行列相反) 先使第先使第0行接低電平,其余行為高電平,然后看行接低電平,其余行為高電平,然后看第第0行是否有鍵閉合(通
26、過檢查列線電位實現(xiàn))行是否有鍵閉合(通過檢查列線電位實現(xiàn)) 此后,再將第此后,再將第1行接地,然后檢測列線是否有變行接地,然后檢測列線是否有變?yōu)榈碗娢坏木€。如此往下逐行掃描,直到最后一為低電位的線。如此往下逐行掃描,直到最后一行行 在掃描過程中,當發(fā)現(xiàn)某一行有鍵閉合時,在掃描過程中,當發(fā)現(xiàn)某一行有鍵閉合時,便在掃描中途退出便在掃描中途退出 通過組合行線和列線可識別此刻按下的是哪通過組合行線和列線可識別此刻按下的是哪一鍵一鍵;是否有鍵按下(;是否有鍵按下(行輸出,列輸入行輸出,列輸入)key1:mov al,00mov dx,rowport ;設置行地址端口設置行地址端口out dx,al;使所
27、有行線為低電平使所有行線為低電平 mov dx,colport;設置列地址端口設置列地址端口 in al,dx;讀取列值讀取列值cmp al,0ffh ;是否有列線為低電平是否有列線為低電平jz key1;無閉合鍵,循環(huán)等待無閉合鍵,循環(huán)等待call delay;有,延遲有,延遲20ms清除抖動清除抖動鍵盤掃描程序第1段mov cx,8;按鍵掃描按鍵掃描,行數(shù)送行數(shù)送CXmov ah,0feh;掃描初值送掃描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;輸出行值(掃描值)輸出行值(掃描值)mov dx,colportin al,dx;讀進列值讀進列值鍵盤
28、掃描程序第2段cmp al,0ffh;按鍵識別有低電平的列線?按鍵識別有低電平的列線?jnz key3;有,則轉(zhuǎn)下一步處理有,則轉(zhuǎn)下一步處理rol ah,1;無,則移位掃描值無,則移位掃描值loop key2;準備下一行掃描準備下一行掃描jmp key1 ;所有行都沒有鍵按下,則返回繼續(xù)檢測所有行都沒有鍵按下,則返回繼續(xù)檢測key3: ;此時,此時,al列值,列值,ah行值行值鍵盤掃描程序第3段;鍵盤行列值表和鍵代碼表鍵盤行列值表和鍵代碼表tabledw 0fefeh;鍵鍵0的行列值(掃描碼)的行列值(掃描碼)dw 0fdfeh;鍵鍵1的行列值的行列值dw 0fbfeh;鍵鍵2的行列值的行列值
29、 ;其他鍵的行列值其他鍵的行列值;鍵盤的鍵代碼表鍵盤的鍵代碼表chardb ;鍵鍵0的代碼值的代碼值db ;鍵鍵1的代碼值的代碼值 ;其他鍵的代碼值其他鍵的代碼值鍵盤掃描程序第4段;查找鍵代碼mov si,offset tablemov di,offset charmov cx,64 ;CX鍵的個數(shù)鍵的個數(shù)key3:cmp ax,si ;與鍵值比較與鍵值比較 jz key4 ;相同,說明查到相同,說明查到inc si ;不相同,繼續(xù)比較不相同,繼續(xù)比較inc siinc diloop key3jmp key1;全部比較完,仍無相同,說明是重鍵全部比較完,仍無相同,說明是重鍵鍵盤掃描程序第5段k
30、ey4:mov al,di;獲取鍵代碼送獲取鍵代碼送AL;后續(xù)處理后續(xù)處理鍵盤掃描程序第6段硬件消抖動電路硬件消抖動電路+5V3.6K+5V3.6K輸出信號輸出信號+5V輸出信號輸出信號雙穩(wěn)態(tài)電路雙穩(wěn)態(tài)電路斯密特電路斯密特電路重健問題的處理重健問題的處理 重鍵指兩個或多個鍵同時閉合重鍵指兩個或多個鍵同時閉合 出現(xiàn)重鍵時,讀取的鍵值必然出現(xiàn)有一個出現(xiàn)重鍵時,讀取的鍵值必然出現(xiàn)有一個以上的以上的0 是否給予識別和識別哪一個鍵是否給予識別和識別哪一個鍵 簡單情況:不予識別,認為是錯誤的按鍵簡單情況:不予識別,認為是錯誤的按鍵 正常的組合鍵:必須都識別出來正常的組合鍵:必須都識別出來 重健問題的處理重
31、健問題的處理 重鍵識別重鍵識別(一般有三種情況):一般有三種情況):A鍵鍵B鍵鍵1、A鍵先按后放,鍵先按后放, B鍵鍵后按先放。一般可以認為后按先放。一般可以認為是按是按A鍵帶下鍵帶下B鍵,可以鍵,可以A鍵認不認鍵認不認B鍵。鍵。2、A鍵先按先放,鍵先按先放, B鍵鍵后按后放。認為是快速輸后按后放。認為是快速輸入,入,A鍵、鍵、B鍵順序承認。鍵順序承認。A鍵鍵B鍵鍵重健問題的處理重健問題的處理A鍵鍵B鍵鍵3、A鍵、鍵、 B鍵同時按下,鍵同時按下, A鍵先放,鍵先放, B鍵后放。按鍵后放。按第第1,第,第2兩種方式承認和兩種方式承認和處理的都有,根據(jù)設計者處理的都有,根據(jù)設計者自己的方式選擇。自
32、己的方式選擇。 通常,掃描發(fā)現(xiàn)鍵按下時,開始記錄時間和鍵值,通常,掃描發(fā)現(xiàn)鍵按下時,開始記錄時間和鍵值,然后繼續(xù)掃描,在一定的時間范圍內(nèi),檢測到按鍵已釋然后繼續(xù)掃描,在一定的時間范圍內(nèi),檢測到按鍵已釋放,就承認該鍵輸入有效;如果鍵按下時間超過某個時放,就承認該鍵輸入有效;如果鍵按下時間超過某個時間限,則認為是連續(xù)多次按下該鍵,輸入多個鍵值。間限,則認為是連續(xù)多次按下該鍵,輸入多個鍵值。LED數(shù)碼管及其接口數(shù)碼管及其接口 發(fā)光二極管發(fā)光二極管LED是最簡單的顯示設備是最簡單的顯示設備 由由7段段LED就可以組成的就可以組成的LED數(shù)碼管數(shù)碼管 LED數(shù)碼管廣泛用于單板微型機、微數(shù)碼管廣泛用于單板
33、微型機、微型機控制系統(tǒng)及數(shù)字化儀器中型機控制系統(tǒng)及數(shù)字化儀器中 LED數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等1. LED數(shù)碼管的工作原理數(shù)碼管的工作原理 主要部分是主要部分是7段發(fā)光管段發(fā)光管 順時針分別稱為順時針分別稱為a、b、c、d、e、f、g 有的產(chǎn)品還附帶有一個小數(shù)點有的產(chǎn)品還附帶有一個小數(shù)點h 通過通過7個發(fā)光段的不同組合個發(fā)光段的不同組合 顯示顯示09 顯示顯示AF(實現(xiàn)(實現(xiàn)16進制數(shù)的顯進制數(shù)的顯示)示) 顯示個別特殊字符,如、顯示個別特殊字符,如、P 等等hgfedcbaLED數(shù)碼管的結(jié)構(gòu)數(shù)碼管的結(jié)構(gòu)共陽極共陽極共陽極共陽極+5Vabcdefgh共陰極共
34、陰極abcdefgh共陰極共陰極2. 單個單個LED數(shù)碼管的顯示數(shù)碼管的顯示8255APA0PA1PA2PA3PA4PA5PA6PA7驅(qū)驅(qū)動動電電路路abcdefgh單個數(shù)碼管的顯示LEDtb db 3fh,06h,5bh,;顯示代碼表顯示代碼表mov al, 1 ;AL要顯示的數(shù)字要顯示的數(shù)字mov bx, offset LEDtbxlat ;換碼:換碼:ALDS:BXALmov dx, portout dx, al;輸出顯示輸出顯示 4.153. 多個多個LED數(shù)碼管的顯示數(shù)碼管的顯示 8個數(shù)碼管:用個數(shù)碼管:用2個個8位輸出端口控制位輸出端口控制 硬件上用公用的驅(qū)動電路來驅(qū)動各數(shù)碼硬件上
35、用公用的驅(qū)動電路來驅(qū)動各數(shù)碼管管 軟件上用掃描方法實現(xiàn)數(shù)碼顯示軟件上用掃描方法實現(xiàn)數(shù)碼顯示 每個顯示每個顯示2ms 程序參見程序參見P2908個個LED數(shù)碼管的接口電路數(shù)碼管的接口電路段選擇碼段選擇碼(字符)(字符)位選擇碼位選擇碼多個多個LED數(shù)碼管的顯示數(shù)碼管的顯示 為了節(jié)約硬件資源,根據(jù)視覺暫留原理,采為了節(jié)約硬件資源,根據(jù)視覺暫留原理,采用掃描方式顯示。用掃描方式顯示。 8個數(shù)碼管的段碼共用個數(shù)碼管的段碼共用1個個8位輸出端口控制,位輸出端口控制,再用再用1個個8位輸出端口控制位輸出端口控制8個數(shù)碼管的公共端,個數(shù)碼管的公共端,稱為位碼。稱為位碼。 軟件掃描方法:軟件掃描方法: 1、從
36、輸出緩沖區(qū)取一位換碼輸出段碼,開啟、從輸出緩沖區(qū)取一位換碼輸出段碼,開啟對應位碼,點亮一位,延遲;對應位碼,點亮一位,延遲; 2、再從輸出緩沖區(qū)取下一位,點亮,延、再從輸出緩沖區(qū)取下一位,點亮,延遲,遲,依次掃描將依次掃描將8位全部點亮一遍;位全部點亮一遍; 3、回到第一步,循環(huán)掃描輸出。、回到第一步,循環(huán)掃描輸出。并行打印機接口并行打印機接口 一般采用一般采用Centronics標準接口或其簡化接口標準接口或其簡化接口 Centronics接口是的一個并行接口協(xié)議接口是的一個并行接口協(xié)議 該協(xié)議規(guī)定了該協(xié)議規(guī)定了36腳簧式插頭座和信號含義(見腳簧式插頭座和信號含義(見P292 表表8-4)
37、其中前其中前11條線是關(guān)鍵信號,它們是條線是關(guān)鍵信號,它們是8條數(shù)據(jù)線、條數(shù)據(jù)線、3條聯(lián)條聯(lián)絡線(選通、響應和打印機忙)絡線(選通、響應和打印機忙) 還有一些特殊控制線、狀態(tài)線還有一些特殊控制線、狀態(tài)線 PC系列機的并行打印機接口是一個系列機的并行打印機接口是一個25針針D型型插口插口打印機接口打印機接口 接口信號接口信號 數(shù)據(jù)數(shù)據(jù) 控制控制 握手握手 STB*:負脈沖的寬度在接收端應大于:負脈沖的寬度在接收端應大于0.5 s,數(shù)據(jù)才可靠,數(shù)據(jù)才可靠地存入打印機數(shù)據(jù)緩沖區(qū),主機發(fā)出地存入打印機數(shù)據(jù)緩沖區(qū),主機發(fā)出 ACK*:打印機接收一個數(shù)據(jù)字節(jié)后就回送一個響應的負:打印機接收一個數(shù)據(jù)字節(jié)后就
38、回送一個響應的負脈沖信號(脈寬約為脈沖信號(脈寬約為5 s),表示打印機已準備好接收新),表示打印機已準備好接收新數(shù)據(jù)數(shù)據(jù) INIT*:初始化信號:初始化信號 AUTOFEEDXT:自動換行:自動換行 SLCTIN*:選擇打印機(:選擇打印機(CPU -打印機打印機) 打印機狀態(tài)打印機狀態(tài) BUSY:打印機忙:打印機忙 SLCT:打印機與主機聯(lián)機:打印機與主機聯(lián)機 PE:缺紙:缺紙 ERR*:當打印機處于無紙、脫機或錯誤狀態(tài)之一時:當打印機處于無紙、脫機或錯誤狀態(tài)之一時打印機工作過程打印機工作過程 通信過程通信過程 主機把數(shù)據(jù)送給引腳主機把數(shù)據(jù)送給引腳DATA0DATA7 同時送出數(shù)據(jù)選通信號
39、同時送出數(shù)據(jù)選通信號STROBE* 打印機在打印機在BUSY信號線上發(fā)出忙信號信號線上發(fā)出忙信號 打印機處理好輸入的數(shù)據(jù)時打印機處理好輸入的數(shù)據(jù)時 撤消忙信號撤消忙信號 同時又送出一個響應信號同時又送出一個響應信號ACK* 注意:注意: 此時選通(此時選通(STROBE*)與應答()與應答(ACK*)信)信號的方向與前述一般接口的信號定義相反號的方向與前述一般接口的信號定義相反打印機信號與時序打印機信號與時序BUSYDATA07ACKSTROBE用用8255A方式方式0與打印機接口與打印機接口BUSY DATA078255APC7PC2PA0PA7打印機打印機STROBE注意:不考慮ACK*,
40、A0不用,控制口:0fffeh,c口:口:0fffch8255A的初始化mov dx,0fffeh;控制端口地址:控制端口地址:0fffehmov al,10000001B;方式控制字:方式控制字:91Hout dx,al;A端口方式端口方式0輸出,輸出,C端口上輸出、下輸入端口上輸出、下輸入mov al,00001111B;端口端口C的復位置位控制字,使的復位置位控制字,使PC71out dx,al打印子程序:查詢printcprocpush axpush dxprn: mov dx,0fffch ;讀取端口讀取端口Cin al,dx;查詢打印機狀態(tài)查詢打印機狀態(tài)and al,04h;PC2
41、BUSY0?jnz prn;PC21,打印機忙,則循環(huán)等待,打印機忙,則循環(huán)等待打印子程序:輸出;PC20,打印機不忙,則輸出數(shù)據(jù)到,打印機不忙,則輸出數(shù)據(jù)到8255mov dx,0fff8hmov al,ah;ah字符字符out dx,al;將打印數(shù)據(jù)從端口將打印數(shù)據(jù)從端口A輸出輸出打印子程序:控制打印機打印mov dx,0fffeh;從從PC7送出控制低脈沖送出控制低脈沖mov al,00001110B ;置置STROBE*0out dx,alnop;產(chǎn)生一定寬度的低電平產(chǎn)生一定寬度的低電平nopmov al,00001111B ;置置=1out dx,al;最終,最終,STROBE*產(chǎn)生
42、低脈沖信號產(chǎn)生低脈沖信號打印子程序:返回pop dxpop axretprintcendp用用8255A方式方式1與打印機接口與打印機接口1000pf2K15321441LS123單穩(wěn)單穩(wěn)電路電路+5VDATA078255APC6INTRPC3PC7PA0PA7打印機打印機ACKACKOBFSTROBE8255A方式方式1與打印機接口時序配合與打印機接口時序配合PA0PA7(DATA07)ACKOBFSTROBE8255A的初始化mov dx,0fffehmov al,0a0h;A口方式口方式1輸出輸出out dx,almov al,0ch ;使使INTEA(PC6)為)為0,禁止中斷,禁止中
43、斷(查詢模式查詢模式)out dx,almov cx,counter;打印字節(jié)數(shù)送打印字節(jié)數(shù)送CXmov bx,offset buffer;取字符串首地址取字符串首地址call prints;調(diào)用打印子程序調(diào)用打印子程序打印子程序:輸出Prints proc push ax ;保護寄存器保護寄存器 push dxprint1: mov al,bx ;取一個數(shù)據(jù)取一個數(shù)據(jù) mov dx,0fff8h out dx,al ;從端口從端口A輸出輸出 mov dx,0fffchprint2: in al,dx test al,80h ;檢測(檢測(PC7)為)為1否否? ;1,說明,說明OBF*已經(jīng)無效,一次打印完成已經(jīng)無效,一次打印完成 jz print2 ;為為0,打印尚未完成,繼續(xù)檢測,打印尚未完成,繼續(xù)檢測 inc bx ;為為1,打印機已接受數(shù)據(jù),準備取下一個,打印機已接受數(shù)據(jù),準備取下一個 loop print1 pop dx ;打印結(jié)束
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 期貨市場交易心理學的應用研究考核試卷
- 耐火土石礦山環(huán)境保護與綠色開采技術(shù)應用考核試卷
- 紙質(zhì)戶外廣告材料設計與制造考核試卷
- 無線廣播電視傳輸中的信號傳輸信號覆蓋優(yōu)化方法考核試卷
- 森林經(jīng)營與管護的森林采伐與土地管理考核試卷
- 天津理工大學《媒介批評與文化影響》2023-2024學年第一學期期末試卷
- 珠海三中高二下學期期中考試文科化學試題
- 山東省菏澤市名校2025屆新初三開學摸底考(全國I卷)化學試題含解析
- 四川長江職業(yè)學院《計算機地圖制圖》2023-2024學年第二學期期末試卷
- 山東工業(yè)職業(yè)學院《體育游戲組織與編創(chuàng)》2023-2024學年第二學期期末試卷
- 中國食物成分表2020年權(quán)威完整改進版
- 社區(qū)體檢合同范例
- 招標師《招標采購項目管理》近年考試真題題庫(含答案解析)
- 杰之緣時尚服裝店雙十二活動策劃方案
- 早產(chǎn)兒視網(wǎng)膜病預防管理專家共識(2024)解讀
- 特種設備日管控、周排查、月調(diào)度模板
- 國開(遼寧)2024年《書法鑒賞》形考作業(yè)1-4答案
- 裝配式建筑的發(fā)展現(xiàn)狀和面臨的挑戰(zhàn)研究
- 《幼兒良好生活習慣培養(yǎng)的探究》8700字(論文)
- 《北京二年級下學期數(shù)學期中試卷全攻略》
- 第六單元 資本主義制度的初步確立 復習課件 2024-2025學年統(tǒng)編版九年級歷史上冊
評論
0/150
提交評論