版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、6.1 輸入輸出及接口,6.2 輸入和輸出的傳送方式(重點(diǎn)),6.3 可編程定時/計數(shù)器(重點(diǎn)),6.4 可編程并行接口(重點(diǎn)),6.5 串行通信和串行接口(重點(diǎn)),6.6 模擬通道接口,1地址譯碼和I/O設(shè)備的選擇 主機(jī)和I/O設(shè)備(端口,input/output port)的接口均掛在同一總線上,主機(jī)與I/O設(shè)備之間的數(shù)據(jù)傳送經(jīng)I/O接口通過數(shù)據(jù)總線進(jìn)行。 當(dāng)主機(jī)進(jìn)行I/O操作時,每個時刻只允許被選中的I/O接口與數(shù)據(jù)總線相通,與主機(jī)進(jìn)行數(shù)據(jù)傳送。 其它非選中的I/O設(shè)備的接口應(yīng)呈高阻狀態(tài),與數(shù)據(jù)總線隔離.,隨著大規(guī)模、超大規(guī)模集成電路工藝技術(shù)的發(fā)展,各種專用或通用接口芯片應(yīng)運(yùn)而生。 通常
2、,一個I/O接口具有下列功能:,2信息的輸入與輸出 當(dāng)主機(jī)選中I/O接口中的某個端口,則可在它們之間傳送相應(yīng) 信息(數(shù)據(jù)、狀態(tài)、控制)。,3數(shù)據(jù)的緩沖及鎖存 緩沖器: 加強(qiáng)驅(qū)動能力 鎖存器: 信息暫存,4信息的轉(zhuǎn)換 串并、并串轉(zhuǎn)換; 數(shù)字量模擬量轉(zhuǎn)換; 電平(TTL電平、RS232電平等)轉(zhuǎn)換; 碼制轉(zhuǎn)換 等。,5狀態(tài)信息檢測 外設(shè)準(zhǔn)備好(READY),空(EMPTY),忙(BUSY), 收到(ACKNOWLEDGE),轉(zhuǎn)換結(jié)束(EOC)等。,6外時鐘定時計數(shù)器等。,80X86系統(tǒng)常用接口芯片 (一)并行接口芯片 Intel 8255,有三個8位端口A,B,C Intel 8155,有三個端口
3、,內(nèi)帶256字節(jié)RAM,兩個定時器。 (二)串行接口芯片 Intel 8251,同步異步串行接口。 Intel 8250,異步串行接口芯片。 (三)計數(shù)定時器 Intel 8253/8254,三個通道16位定時計數(shù)器。 (四)直接存取控制器(DMAC) Intel 8237 上述接口芯片功能可由程序改變,稱為可編程接口芯片。,為什么外設(shè)不能象存貯器一樣直接掛在CPU上,6.1 輸入輸出及接口,6.1.1 I/O信息的組成,一、數(shù)據(jù)信息 要交換的數(shù)據(jù)本身 1.數(shù)字量:按一定的編碼標(biāo)準(zhǔn)(2#,ASCII碼 )由若干位組合 所表示的數(shù)或字符。如鍵盤、CRT、打印機(jī)等設(shè) 備與CPU交換的信息。,2.
4、模擬量:現(xiàn)場信息(如溫度、壓力、流量、位移等非電量) 經(jīng)過傳感器而轉(zhuǎn)換成電量(電壓、電流),這些模 擬量經(jīng)過A/D、D/A轉(zhuǎn)換器在CPU與外設(shè)間交換。,3. 開關(guān)量:一位2#信息:0、1。如開關(guān)的斷開與閉合;控制電 機(jī)的啟、停等。通常這些開關(guān)量要經(jīng)過相應(yīng)的電平 轉(zhuǎn)換才能與計算機(jī)連接。,數(shù)據(jù)信息、狀態(tài)信息及控制信息,二、狀態(tài)信息表征外設(shè)的工作狀態(tài) 對輸入接口, CPU是否準(zhǔn)備好接收數(shù)據(jù),“READY” 準(zhǔn)備好? 對輸出接口, 外設(shè)是否準(zhǔn)備好接收數(shù)據(jù),“BUSY” 外設(shè)忙嗎?,三、控制信息 CPU控制外設(shè)工作的命令 CPU通過接口發(fā)出,如A/D轉(zhuǎn)換器的啟/停信號,設(shè)置外設(shè)的工作模式 等。, 接口(
5、interface)與端口(port): 傳送這三種信息(數(shù)據(jù)、狀態(tài)、控制)的接口電路中的寄存器稱為數(shù)據(jù)、狀態(tài)和控制端口。 不同的寄存器有不同的端口地址,即用地址來訪問。 端口由一個或多個寄存器組成。接口由若干個端口加上相應(yīng)的控制邏輯組成,地址不是對接口而言。,6.1.2 I/O接口的作用,數(shù)據(jù)緩沖或鎖存 設(shè)備選擇 信號轉(zhuǎn)換(電平、格式) 接收、解釋并執(zhí)行CPU的命令 中斷管理 可編程功能,1. I/0接口電路的功能,2. I/0接口電路分類,數(shù)據(jù)傳送方式: 并行接口 串行接口 功能選擇的靈活性: 可編程接口 不可編程接口 通用性: 通用接口(8253 定時/計數(shù)器、8259 中斷控制器、82
6、57 DMA、8250 8251 串行接口、 8255 并行接口) 專用接口(軟盤控制器 8271 8272、CRT 8275、鍵盤顯示 8279),3. I/0接口電路的結(jié)構(gòu),實現(xiàn)對CPU數(shù)據(jù)總線速度和驅(qū)動能力的匹配,實現(xiàn)各寄存器端口尋址操作,實現(xiàn)接口電路中的各寄存器端口的讀/寫操作和時序控制,6.1.3 I/O端口的編址方法,為了區(qū)分接口電路的各個寄存器,系統(tǒng)為它們各自分配了一個地址,稱為I/O端口地址,以便對它們進(jìn)行尋址。 I/O端口有兩種編址方式:存儲器映像方式、I/O獨(dú)立編址方式,1. 存儲器映像方式 指I/O端口與存儲器共享一個尋址空間,又稱為統(tǒng)一編址。在這種系統(tǒng)中,CPU可以用同
7、樣的指令對I/O端口和存儲器單元進(jìn)行訪問。 優(yōu)點(diǎn):對I/O口的訪問靈活方便,有利于提高端口數(shù)據(jù)的處理能力。 缺點(diǎn):I/O端口占用了主存地址,相對減少了主存的可用范圍。,2. I/O獨(dú)立編址 指主存地址空間和I/O端口地址空間相互獨(dú)立,分別編址。CPU通過指令來區(qū)分是訪問I/O口還是存儲單元。 優(yōu)點(diǎn):主存和I/O端口的地址可用范圍都比較大; 缺點(diǎn):I/O指令的功能一般比較弱,在I/O操作中必須借助CPU的寄存器進(jìn)行中轉(zhuǎn)。, 在PC/XT中,擴(kuò)展總線上用A9A0作為外設(shè)端口譯碼(部分譯碼方式),共可尋址210=1K個端口。 當(dāng)A9=0時,尋址主機(jī)板上的512個端口。 當(dāng)A9=1時,尋址I/0卡上的
8、512個端口。,80386微處理器或此后的微處理器構(gòu)成的微機(jī)系統(tǒng),采用全譯碼的方法,端口為64K個字節(jié)端口或32K個字端口。,I/O端口地址選用的原則 自行設(shè)計接口電路或給微機(jī)系統(tǒng)添加接口卡時,必須避免端口地址發(fā)生沖突. 申明保留的地址,不要使用。用戶可使用300H-31FH地址。,I/O端口的地址譯碼 將來自地址總線上的地址翻譯成為所需要訪問端口的選通信號 I/O端口地址譯碼電路結(jié)構(gòu) 高位地址線與CPU的控制信號進(jìn)行組合,經(jīng)譯碼電路產(chǎn)生I/O接口電路的片選信號CS,實現(xiàn)系統(tǒng)中的接口電路(芯片)尋址。 地址信號:由地址范圍決定 低位地址線直接接到I/O接口電路(芯片)的地址引腳,進(jìn)行I/O接口
9、電路(芯片)的片內(nèi)端口尋址。 端口的讀寫控制:輸入需要緩沖,輸出需要鎖存,I/O接口的訪問控制 微機(jī)系統(tǒng)的每個端口都有唯一的端口地址。 端口讀寫控制的關(guān)鍵:除了由譯碼器產(chǎn)生片選信號外,還必須將讀/寫控制信號(RD、WR、IO/M)參加接口電路的選通或控制。,邏輯門(門電路),在數(shù)字電路中實現(xiàn)邏輯運(yùn)算的電路,簡稱邏輯門或門電路。,邏輯門的表示方法:, 邏輯門有兩種輸出狀態(tài):高電平(邏輯1)、低電平(邏輯0) 三態(tài)門比邏輯門增加了一個控制端EN(又稱使能端), 當(dāng)控制端有效時,三態(tài)門處于工作態(tài),否則處于高阻態(tài)。,高阻態(tài)的特點(diǎn): 處于高阻狀態(tài)的三態(tài)門, 其輸出端既不會有電流流出,也不會有電流流入。
10、如果與總線相連,此時三態(tài)門電路仍連在總線, 但電氣上與總線處于斷開狀態(tài),對總線上的信號無影響.,在總線結(jié)構(gòu)的微機(jī)系統(tǒng)中, 任一時刻只能有一個設(shè)備利用總線進(jìn)行數(shù)據(jù)傳送, 輸入設(shè)備的數(shù)據(jù)線應(yīng)通過三態(tài)門與系統(tǒng)相連。,當(dāng)設(shè)備1與CPU進(jìn)行數(shù)據(jù)傳送時,設(shè)備2的數(shù)據(jù)信號應(yīng)處于高阻態(tài) 當(dāng)設(shè)備2與CPU進(jìn)行數(shù)據(jù)傳送時,設(shè)備1的數(shù)據(jù)信號應(yīng)處于高阻態(tài),輸出設(shè)備利用鎖存器接受CPU輸出的數(shù)據(jù)。,1. 使某輸出設(shè)備鎖存器的控制端處于觸發(fā)狀態(tài),數(shù)據(jù)通過該鎖存器. 2. 當(dāng)觸發(fā)信號消失,數(shù)據(jù)鎖存在鎖存器中,外設(shè)側(cè)數(shù)據(jù)不隨總線側(cè)數(shù)據(jù)的變化而變化,使 慢速的外設(shè)有足夠的時間處理數(shù)據(jù)。,6.1.4 簡單的I/O接口,不可編程的
11、I/O接口屬簡單的I/O接口,典型的芯片是三態(tài)緩 沖器和數(shù)據(jù)鎖存器。 如: 74LS244,245; 74LS373,374 增強(qiáng)總線的負(fù)載能力并隔離,1. 三態(tài)緩沖器 凡輸入數(shù)據(jù)到CPU的設(shè)備須經(jīng)三態(tài)緩沖器掛在CPU的數(shù)據(jù)總線上。 當(dāng)該設(shè)備被選通時, 占據(jù)總線并送上數(shù)據(jù),否則讓出總線(浮空), 以防總線沖突。,常用緩沖器: 74LS244(單向), 74LS245(雙向)。,輸入緩沖電路,當(dāng)讀有效時,才將緩沖器中的三態(tài)門打開,使外設(shè)的數(shù)據(jù)進(jìn)入系統(tǒng)的數(shù)據(jù)總線 其它時間,三態(tài)門處于高阻狀態(tài),不影響總線上的其它操作,微處理,器系統(tǒng),外部輸,入設(shè)備,A,0,B,0,A,1,B,1,A,2,B,2,A
12、,3,B,3,A,4,B,4,A,5,B,5,A,6,B,6,A,7,B,7,E,DIR,2,3,4,5,6,7,8,9,18,17,16,15,14,13,12,11,1,19,DIR=1,,,A,B,DIR=0,,,B,A,74LS245,輸出鎖存,微處理,器系統(tǒng),外部輸,出設(shè)備,D,0,Q,0,D,1,Q,1,D,2,Q,2,D,3,Q,3,D,4,Q,4,D,5,Q,5,D,6,Q,6,D,7,Q,7,CLK,CL,R,3,4,7,8,13,14,17,18,2,5,6,9,12,15,16,19,74LS273,11,74LS32,+5V,1,選中鎖存器時,總線上的數(shù)據(jù)才能進(jìn)入鎖存器
13、 此后不管總線上的數(shù)據(jù)(鎖存器輸入端)如何變化,只要沒有再次使鎖存器的信號有效,鎖存器的輸出端就一直保持原來鎖存的信息不變。,3. 簡單接口舉例,NEXT:MOV DX,PORT_IN IN AL,DX ;通過輸入接口讀入開關(guān)狀態(tài) NOT AL OUT DX,AL ;通過輸出接口控制發(fā)光二極管顯示 CALL DELAY JMP NEXT,通過以下程序控制,實現(xiàn)發(fā)光二極管顯示開關(guān)的開合狀況。 該例中輸入接口和輸出接口使用相同的口地址,不會出現(xiàn)矛盾。,6.2 輸入/輸出的傳送方式, 程序控制的輸入和輸出 中斷控制的輸入和輸出 直接存儲器存?。―MA),6.2.1 程序控制的輸入和輸出,在程序中利用
14、I/O指令來執(zhí)行輸入和輸出的一種方式。 這種方式中,何時進(jìn)行數(shù)據(jù)的傳送是預(yù)先知道的,故I/O 指令出現(xiàn)在程序所需要的位置。,一、無條件傳送 CPU與外設(shè)同步操作(外設(shè)始終是準(zhǔn)備好的)。無需查詢外設(shè)狀態(tài)而直接進(jìn)行輸入輸出。,特點(diǎn): 簡單,適用于慢速外設(shè)(CPU認(rèn)為需要時,隨時與外設(shè) 交換數(shù)據(jù))。 如:LED(輸出),乒乓開關(guān)(輸入),接口特點(diǎn) CPU的DBI/O接口(輸入緩沖器)外設(shè) CPU的DBI/O接口(輸出鎖存器)外設(shè),微處理,器系統(tǒng),外部輸,入設(shè)備,A,0,B,0,A,1,B,1,A,2,B,2,A,3,B,3,A,4,B,4,A,5,B,5,A,6,B,6,A,7,B,7,E,DIR,
15、2,3,4,5,6,7,8,9,18,17,16,15,14,13,12,11,1,19,DIR=1,,,A,B,DIR=0,,,B,A,74LS245,接口特點(diǎn) CPU的DBI/O接口(輸入緩沖器)外設(shè) CPU的DBI/O接口(輸出鎖存器)外設(shè),接口電路,輸出時用373或374, 373是低電平鎖存,高電平直通! 若用273,則在上升沿輸出并鎖存數(shù)據(jù)。,接口特點(diǎn): 避免了對端口的“盲讀”、“盲寫” ,數(shù)據(jù)傳送的可靠性高, 并且硬件接口相對簡單。 缺點(diǎn) 是CPU工作效率低,I/O響應(yīng)速度慢;,外設(shè)要求:狀態(tài)口和數(shù)據(jù)口 在有多個外設(shè)的系統(tǒng)中,CPU的查詢順序由外設(shè)的優(yōu)先級確定,查詢控制的程序流程
16、,二 、查詢傳送 一種CPU主動、外設(shè)被動的I/O操作方式,輸出:CPU對 “外設(shè)BUSY?” 進(jìn)行查詢,不忙,輸出。 輸入:CPU查 “外設(shè)數(shù)據(jù)READY?” ,若準(zhǔn)備好,讀入。,1. 查詢式輸入,程序查詢方式的輸入接口電路,數(shù)據(jù)端口(8位),狀態(tài)端口(1位),狀態(tài)信息占用數(shù)據(jù)線的D0位,查詢程序如下: QUERY: IN AL,S_PORT ;狀態(tài)口地址 SAR AL,1 JNC QUERY IN AL,D_PORT ;D_PORT是數(shù)據(jù)口地址,查詢輸入程序,查詢方式的A/D采樣,WAIT: IN AL,51H ;讀狀態(tài)端口的值 TEST AL,10H ;判斷D4是否為1? JZ WAIT
17、 ;不是1,等待 IN AL,50H ;讀數(shù)據(jù)端口的值 MOV BUF,AL ;將數(shù)據(jù)送到數(shù)據(jù)緩沖單元,2. 查詢式輸出,程序查詢輸出方式接口電路,數(shù)據(jù)端口(8位),狀態(tài)端口(1位),BUSY,輸入狀態(tài)信息,BUSY?,輸出數(shù)據(jù)信息,N,Y,QUERY:IN AL,S_PORT ;狀態(tài)口地址 SAR AL,1 JC QUERY OUT D_PORT,AL ;D_PORT數(shù)據(jù)口地址,查詢輸出程序,查詢方式的打印機(jī)接口,WAIT:IN AL,7AH ;讀狀態(tài)端口 TEST AL,04H ;判斷D2是否為0? JNZ WAIT ;不是0,等待 MOV AL,BUF ;取數(shù)據(jù) OUT 78H,AL ;
18、將數(shù)據(jù)送到打印機(jī)接口,CPU輸出時,置“BUSY”忙(1)。 外設(shè)輸出完畢,將“BUSY”清0。,6.2.2 中斷控制的輸入和輸出,CPU被動而外設(shè)主動的I/O操作方式,較大地提高了CPU的工作效率,并使系統(tǒng)具有了實時處理功能,中斷工作過程 外設(shè)需要CPU服務(wù)時 外設(shè)I/O接口向CPU發(fā)中斷請求,INTR=H (中斷請求有效) CPU執(zhí)行完當(dāng)前指令后, (注: 若IF = 1) CPU I/O接口 外設(shè)發(fā)中斷響應(yīng),/INTA = L CPU執(zhí)行中斷服務(wù)程序, CPUI/O接口外設(shè)讀寫數(shù)據(jù),接口特點(diǎn):避免了CPU 反復(fù)低效率的查詢,適用于CPU任務(wù)繁忙、而數(shù)據(jù)傳送不太頻繁的系統(tǒng)中。 缺點(diǎn)是硬件電
19、路和處理過程都比較復(fù)雜;(中斷控制芯片),中斷可被響應(yīng)的條件: 中斷請求觸發(fā)器置位;CPU內(nèi)部開放中斷;CPU未處理更高級中斷;CPU現(xiàn)行指令執(zhí)行完。,6.2.3 直接數(shù)據(jù)通道傳送(DMA方式),中斷方式雖提高了CPU的效率,但仍然是通過CPU執(zhí)行程序 來實現(xiàn)數(shù)據(jù)傳送。 缺點(diǎn): 大量的數(shù)據(jù)在磁盤與內(nèi)存間交換需大量的時間。 高速I/O設(shè)備時或成組數(shù)據(jù)交換時,顯得速度太慢。 希望在外設(shè)與內(nèi)存間直接傳送數(shù)據(jù),這就是DMA方式。 DMA的速度取決于MEM的工作速度。 早期DMA僅限于外設(shè)內(nèi)存間,隨著大規(guī)模集成電路技術(shù)的 發(fā)展,還可在外設(shè)外設(shè)間,內(nèi)存內(nèi)存間進(jìn)行DMA傳送。,流程圖為:,8253主要功能:
20、 以均勻分布的時間間隔中斷操作系統(tǒng),以便切換程序; 向I/O設(shè)備輸出精確的定時信號,信號的周期可由程序控制; 用來作為可編程波特率發(fā)生器; 檢測外部事件發(fā)生的頻率或周期; 統(tǒng)計外部事件發(fā)生的次數(shù),計數(shù)結(jié)果送至計算機(jī); 在定時或計數(shù)達(dá)到編程規(guī)定的值以后,向CPU申請中斷。,6.3 可編程定時/計數(shù)器,6.3.1概述,微機(jī)應(yīng)用系統(tǒng)的重要應(yīng)用之一是如何用好定時/計數(shù)器。 即常常需要實時鐘或延時或?qū)ν獠渴录嫈?shù)。 實現(xiàn)定時或延時控制的常用方法: (1)軟件延時:用一個不完成任何功能的程序段實現(xiàn); (2)常用數(shù)字電路定時:555 (3)可編程硬件定時:8253,其定時值和定時范圍可以通過 軟件來確定和改
21、變。,6.3.2 可編程定時器計數(shù)器8253,一.內(nèi)部結(jié)構(gòu)與功能,Intel 8253_ 三個通道 16位 再裝入定時計數(shù)器, 可由軟件設(shè)定6種工作方式。,內(nèi)部結(jié)構(gòu)見右圖。 說明: 8253內(nèi)部由三個獨(dú)立通道組成,結(jié)構(gòu)與工作原理完全相同。,控制字寄存器只能寫不能讀,寫入的控制字將控制通道的工作方式。 數(shù)據(jù)總線緩沖器用于與CPU間的信息通道。,二、8253的引腳功能(24PIN),1. D7D0:數(shù)據(jù)總線,雙向,三態(tài), 直接與計算機(jī)數(shù)據(jù)總線相連。 2. CLK0CLK2:計數(shù)時鐘輸入端, 下降沿使通道減1。 3. GATE0GATE2:門控制,輸入, 高電平有效或上升沿有效, 有效時允許計數(shù)器對
22、輸入時鐘計數(shù)。 4. OUT0OUT2:通道輸出信號, 計數(shù)器到“0”時由此輸出一信號, 輸出波形形式取決于工作方式。 5. A1、A0:尋址3個通道的計數(shù)器 和控制寄存器(3個通道的控制寄 存器共用一個端口地址). 6. RD、WR和CS:8253的讀、寫 和片選信號,均為低電平有效。,注意A1A0與計數(shù)器編號的對應(yīng)關(guān)系,8253與8086系統(tǒng)計算機(jī)連接,說明: 1. 8253的數(shù)據(jù)線D7D0接8086的數(shù)據(jù)總線的低8位。 2. 8253的A1和A0分別接系統(tǒng)的A2和A1,使用偶地址傳遞信息。 3.由74LS138,74LS30和74LS04譯碼選中8253。,4. 8253的三個通道輸入時
23、鐘由系統(tǒng)PCLK分頻得到,頻率為: 2.38636/2=1.1931816MHz. 5. 在IBM-PC/XT微機(jī)系統(tǒng)中,通道0定時OUT0接8259的IR0,通道1刷新動態(tài)存儲器,通道2控制揚(yáng)聲器發(fā)聲.,三、8253的控制字及芯片工作方式,1控制字,M2M1M0:計數(shù)器工作方式選擇 0 0 0 方式0 0 0 1 方式1 x 1 0 方式2 x 1 1 方式3 1 0 0 方式4 1 0 1 方式5 BCD:計數(shù)器進(jìn)制選擇 0 16位二進(jìn)制計數(shù)器 1 BCD碼計數(shù)器,SC1 SC0:計數(shù)器通道選擇 0 0 通道0 0 1 通道1 1 0 通道2 1 1 非法 RW1 RW0:計數(shù)器讀寫選擇
24、0 0 計數(shù)器鎖存 0 1 只讀寫低8位 1 0 只讀寫高8位 1 1 先讀寫低8位,再讀寫高8位,控制字寫入控制端口,各位含義如下:,2. 8253工作方式,(1) 方式0計數(shù)結(jié)束產(chǎn)生中斷,GATE一直為高,GATE有變化,(2)方式1可重復(fù)觸發(fā)單穩(wěn)觸發(fā)器 寫入CW后OUT變?yōu)楦唠娖剑?GATE上升沿觸發(fā)后,OUT變?yōu)榈筒㈤_始計數(shù),歸零時OUT變?yōu)楦唠娖健?GATE再來一次上升沿使OUT為低,計數(shù)器以初值重新計數(shù)。 計數(shù)過程中,再次給通道寫入時間常數(shù),不影響現(xiàn)行操作過程,GATE再次觸發(fā)后才按新的時間常數(shù)操作。,例:若8253的地址為04H07H,要使計數(shù)器工作在方式0,僅用8位二進(jìn)制數(shù),計
25、數(shù)初值為128,初始化程序為: MOV AL ,50H 【0101 0000】 OUT 07H,AL MOV AL ,80H OUT 05H,AL,計數(shù)過程中,GATE觸發(fā)沿提前到來,在下一個CLK的下降沿,計數(shù)器開始重新計數(shù),這將使輸出單穩(wěn)脈沖比原先設(shè)定的計數(shù)值加寬。,可重復(fù)觸發(fā) 當(dāng)計數(shù)歸零后,不用再次送計數(shù)值,只要給它觸發(fā)脈沖,即可產(chǎn)生一個同樣寬度的單穩(wěn)脈沖輸出。,(3)方式2分頻器(頻率發(fā)生器) 寫入CW后OUT為高電平,寫入時間常數(shù)后,下一CLK開始計數(shù),減到1時OUT變低,經(jīng)過一個CLK后 OUT變高,計數(shù)重新開始。 GATE=1計數(shù)進(jìn)行,GATE=0計數(shù)停止,且下一個CLK計數(shù)器重
26、新賦初值,GATE變?yōu)楦唠娖?,計?shù)重新開始。 計數(shù)期間送入新值,本周期繼續(xù)進(jìn)行,下一個周期按新值計數(shù)操作。,不用重復(fù)置數(shù)。計數(shù)器能夠 連續(xù)工作,輸出OUT是輸入CLK 的n(初值)分頻。,軟件同步:計數(shù)器寫入控制字和計數(shù)初值后,如GATE一直處于高電平, 那么,在下一個脈沖開始計數(shù)器計數(shù)。 通過寫入計數(shù)初值使計數(shù)器同步,稱為。,硬件同步:由前述知,門控信號可實現(xiàn)計數(shù)器的同步,稱為。,(4)方式3方波發(fā)生器(連續(xù)) 寫入CW后OUT變?yōu)楦唠娖?,輸入時間常數(shù)后,下一個時鐘開始計數(shù),計到一半時輸出變?yōu)榈碗娖?,計到終值時重新變?yōu)楦唠娖?,并開始下一次計數(shù)過程。 若N為偶數(shù),高低電平持續(xù)時間相等;若為奇數(shù)
27、,則高電平持續(xù)時間為(N+1)/2,低電平持續(xù)時間為(N-1)/2。, GATE=1計數(shù)進(jìn)行。在計數(shù)過程中若GATE=0,計數(shù)停止且OUT為高,計數(shù)器重新賦初值,GATE回到高時計數(shù)重新開始。 計數(shù)期間送入新值,本周期繼續(xù)進(jìn)行,下一個周期按新值計數(shù)。,(5)方式4軟件觸發(fā)選通 寫入CW后OUT為高電平,輸入時間常數(shù)后,下一個CLK開始計數(shù),計數(shù)器為0時,輸出一個周期負(fù)脈沖,并停止操作。 GATE=1允許計數(shù),GATE=0禁止計數(shù)。 計數(shù)期間送入新的時間常數(shù),則下一個時鐘按新值重新計數(shù)。,(6)方式5硬件觸發(fā)選通 寫入CW后OUT為高電平,輸入時間常數(shù)后由GATE上升沿啟動計數(shù)。計數(shù)為0時輸出一
28、個時鐘的負(fù)脈沖,并停止操作。 計數(shù)過程中,若GATE又來一個上升沿,則下一個時鐘計數(shù)器重新賦值計數(shù)。 計數(shù)過程中寫入時間常數(shù),當(dāng)前周期不受影響,在下一個 GATE上升沿啟動新值計數(shù)。,8253有6種不同的工作方式。其中: 方式0 寫入CW后,輸出即變低,計數(shù)結(jié)束輸出為高,常用該輸出信號作為中斷源。其余5種方式寫入CW后,輸出均變高。 方式0可用來實現(xiàn)定時或?qū)ν獠渴录M(jìn)行計數(shù)。 方式1用來產(chǎn)生單脈沖。 方式2用來產(chǎn)生序列負(fù)脈沖,每個負(fù)脈沖的寬度與CLK的周期相同。 方式3用于產(chǎn)生連續(xù)的方波。方式2和方式3都實現(xiàn)對CLK的n分頻。 方式4和方式5的波形相同,都是計數(shù)器歸0后的1個負(fù)脈沖,寬度為1個
29、CLK。 方式2、4、5的輸出波形是相同的,都是寬度為一個CLK周期的負(fù)脈沖。但方式2是連續(xù)的,方式4是由軟件(設(shè)置初值)觸發(fā)啟動,而方式5由硬件(門控脈沖)觸發(fā)啟動。 方式1、5 觸發(fā)計數(shù)方式相同,但輸出波形不同。方式1為輸出n個CLK脈沖周期的負(fù)脈沖(計數(shù)過程中輸出為低),而方式5輸出的是寬度為1個CLK脈沖周期的負(fù)脈沖(計數(shù)過程輸出為高)。,3.8253工作方式小結(jié),四、8253應(yīng)用舉例,(一)ROMBIOS對8253初始化 1. 對計數(shù)器0的初始化 MOV AL,36H 【0011 0110】 OUT 46H,AL 【0100 0110】 MOV AL,00H OUT 40H,AL 先
30、低8位 OUT 40H,AL 后高8位 說明: (1)計數(shù)器0工作于方波發(fā)生器方式,對CLK(1.1931816MHz)進(jìn)行65536(216)分頻。 (2)計數(shù)器0的輸出端OUT0接8259的IR0,每次歸0產(chǎn)生一次中斷請求,中斷號由BIOS設(shè)置為8。 (3)中斷時間間隔為54.925ms,每秒鐘來18.2次中斷。 (4)通道0的時間間隔是計算機(jī)系統(tǒng)時標(biāo)基礎(chǔ)。,2. 對計數(shù)器1的初始化 MOV AL,54H OUT 46H,AL MOV AL,18(18分頻) OUT 42H,AL (1)通道1給DMA控制器提供時鐘。 (2)輸出頻率為66.288KHz. 3. 對計數(shù)器2的初始化和接通喇叭
31、 MOV AL,0B6H OUT 46H,AL MOV AX,533H OUT 44H,AL MOV AL,AH OUT 44H,AL IN AL,62H;讀入8255的PB口 MOV AH,AL;保護(hù)原值 OR AL,03H;置1 PB1和PB0 OUT 62H,AL;輸出。,說明: (1)定時器2工作在方波發(fā)生器方式,驅(qū)動揚(yáng)聲器發(fā)聲。 (2)發(fā)聲頻率為896Hz (3)揚(yáng)聲器發(fā)聲還受8255的PB0和PB1控制。 (二)8253的定時功能及其應(yīng)用 例:將8253的計數(shù)器1作為5ms定時器,設(shè)輸入時鐘頻率為200kHz,試編寫8253的初始化程序。 (1)計數(shù)初值N計算 已知輸入時鐘CLK頻
32、率為200kHz,則時鐘周期為T=1/200kHZ=5us, 于是計數(shù)初值N為: N=5ms/T=5ms/5s=1000。 (2)確定控制字 按題意選計數(shù)器1,按BCD碼計數(shù),工,作于方式0,由于計數(shù)初值N=1000,控制字D5D4應(yīng)為11,8253的控制字為: 01110001B=71H。 (3)選擇8253各端口地址 設(shè)計數(shù)器1的端口地址為3F82H,控制口地址為3F86H。 (4)初始化程序如下 MOV AL,71H ;控制字 MOV DX,3F86H ;控制口地址 OUT DX,AL ;控制字送8253 控制寄存器 MOV DX,3F82H ;計數(shù)器1地址 MOV AL,00 ;計數(shù)初
33、值 N=1000的低8位寫入計數(shù)器1 OUT DX,AL MOV AL,10H ;將N的高8位寫 入計數(shù)器1 OUT DX,AL,(三)8253的計數(shù)功能及其應(yīng)用 例:8086系統(tǒng)中有一片8253芯片, 利用計數(shù)通道2對外部事件計數(shù),計 滿360次經(jīng)8259的IR1向CPU發(fā)出中 斷信號,硬件電路如圖所示。計數(shù)器2 口地址為05DH,控制口地址為05FH。 試編寫8253的初始化程序。,(1)外部事件作為計數(shù)脈沖從通道2的CLK2進(jìn)入,采用方式0工作,計數(shù)常數(shù)為360D。當(dāng)計滿360次時從OUT2端輸出一個正跳變信號作為中斷申請信號送入8259A的IR1輸入端,由8259向CPU發(fā)出中斷申請。
34、 (2)初始化編程 計數(shù)通道2工作于方式0,計數(shù)初值為360D=168H,采用二進(jìn)制計數(shù),則控制字為:10110000B=B0H。 (3)計數(shù)通道2初始化程序 MOV AL ,0B0H ;通道2的控制字 OUT 5FH,AL ;寫入控制器 MOV AL ,68H ;計數(shù)初值的低8位 OUT 5DH,AL ;寫入計數(shù)通道2 MOV AL ,01H ;計數(shù)初值的高8位 OUT 5DH,AL ;寫入計數(shù)通道2,(四)8253應(yīng)用 例:航空發(fā)動機(jī)數(shù)字控制系統(tǒng)中采用8253測速的實例。硬件電路如下圖。對傳感器輸出的轉(zhuǎn)速信號經(jīng)過衰減、濾波和光電耦合處理,再經(jīng)過整形電路送到8253計數(shù)器,進(jìn)行測量。,被測轉(zhuǎn)
35、子轉(zhuǎn)速n為011156轉(zhuǎn)/分,發(fā)動機(jī)每轉(zhuǎn)對應(yīng)傳感器輸出300個脈沖。 基本測量原理是:測量D個(D值根據(jù)當(dāng)時實際轉(zhuǎn)速范圍選擇)傳感器輸出脈沖CLK1所占有的時間為多少個(設(shè)為X個,待測)標(biāo)準(zhǔn)時鐘周期PCLK(設(shè)為Tr,單位us),從而算出實際轉(zhuǎn)速:,設(shè)8253端口地址為280H、282H、284H和286H,主要程序片段:,;主程序中對8253初始化 INIT_C: MOV DX,286H ;控制端口地址為286H MOV AL,01010010B ;計數(shù)器1:方式1;讀/寫低字節(jié). OUT DX,AL ;送方式控制字到控制寄存器 MOV AL,10110000B ;計數(shù)器2:方式0;讀/寫雙
36、字節(jié). OUT DX,AL MOV AL,00010000B ;計數(shù)器0:方式0;讀/寫低字節(jié). OUT DX,AL INIT_D: MOV DX,282H ;計數(shù)器1地址 MOV AL,20 OUT DX,AL ;寫入計數(shù)初值D=20到計數(shù)器1 INC DX INC DX ;計數(shù)器2地址 MOV AL,0 OUT DX,AL ;寫入低8位計數(shù)值到計數(shù)器2 OUT DX,AL ;寫入高8位計數(shù)值到計數(shù)器2 MOV DX,280H ;計數(shù)器0地址 MOV AL,01H OUT DX,AL ;寫入1到計數(shù)器0、啟動測量過程,;中斷服務(wù)程序中,讀取計數(shù)器2的數(shù)據(jù),計算轉(zhuǎn)速 IN_DATA: MOV
37、AL,10000000B MOV DX,286H OUT DX,AL ;鎖存計數(shù)器2 MOV DX,284H ;讀計數(shù)器2的內(nèi)容:10000H-X IN AL,DX MOV AH,AL IN AL,DX XCHG AL,AH NEG AX ;AX=X ;計算轉(zhuǎn)速n,通道1計數(shù)D個脈沖后,OUT1的上升沿申請中斷。 當(dāng)中斷到來時,進(jìn)入中斷服務(wù)子程序。 可以用CPU暫停來模擬CPU的主程序,只有中斷到來時才脫離暫停。, AA: HLT MOV AH,4CH INT 21H,6.4 可編程并行接口,6.4.1 可編程并行接口芯片8255A,并行通信 n位數(shù)據(jù)用n條線同時傳輸。 具有速度快,效率高的特
38、點(diǎn)。 適于短距離、高速通信。 74LS244,273都是簡單的并行接口。,并行接口連接CPU與并行外設(shè),實現(xiàn)兩者間的并行通信, 在信息傳送過程中,起到輸出鎖存或輸入緩沖的作用。,Intel系列的8位并行接口芯片8255A 通用性強(qiáng),使用靈活, 可用程序設(shè)置和改變芯片的工作方式, 是一種典型的可編程并行接口芯片。,一、8255的內(nèi)部結(jié)構(gòu),1. 端口 (1)端口A(PA7PA0): 由一個8位數(shù)據(jù)輸入鎖存器和一個8位數(shù)據(jù)輸出鎖存器及緩沖器組成,可工作于雙向方式。 (2)端口B (PB7PB0) : 由一個8位數(shù)據(jù)輸入緩沖器和1個8位數(shù)據(jù)輸出鎖存緩沖器構(gòu)成。 (3)端口C (PC7PC0): 由一個
39、8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸出鎖存緩沖器構(gòu)成。 C口可分為兩個部分,配合A口和B口工作。,在與不需要控制聯(lián)絡(luò)的外設(shè)連接時,A、B、C口均可做輸入輸出。 在與需要控制聯(lián)絡(luò)的外設(shè)連接時,C口分為兩部分,做A、B口的控制信號。,2. A組控制和B組控制 接收CPU控制字,決定8255工作方式。 A組控制A端口和C端口的上半部, B組控制B端口和C端口下半部。 3. 讀寫控制邏輯 由RD,WR,CS,A0,A1和RESET組成,8255占用4個端口地址。 RESET:高電平使8255復(fù)位,控制Reg清0,把A,B,C三個端口都設(shè)置為輸入方式。 4. 數(shù)據(jù)總線緩沖器 8位雙向數(shù)據(jù)緩沖器,可直接與數(shù)
40、據(jù)總線相連。,二、8255 PIN功能,40個引腳雙列直插的NMOS器件 1. 與外設(shè)連接引腳,PA7PA0:端口A的數(shù)據(jù)線,雙向,三態(tài)輸出。 PB7PB0:端口B的數(shù)據(jù)線,可輸入,也可輸出。 PC7PC0:端口C的數(shù)據(jù)線,可輸入,也可輸出,也可做A口或B口的控制信號線。,2. 和CPU連接PIN D7D0:數(shù)據(jù)線,與系統(tǒng)總線連接。 RD:讀信號,輸入,低電平有效,從8255A讀取數(shù)據(jù)。 WR:寫信號,輸入,低電平有效,把數(shù)據(jù)寫入8255。 CS:片選信號,輸入,低電平有效,決定芯片地址。 A0,A1:端口選擇信號,8255占四個端口地址。 RESET:復(fù)位信號,輸入,高電平有效。復(fù)位后清所有
41、內(nèi)部寄存器。,3. 8255端口選擇,8255A與計算機(jī)連接,說明: (1)8255的數(shù)據(jù)線D7D0接8086系統(tǒng)的數(shù)據(jù)線的低8位。 (2)8255的A0接8086的A1, 8255的A1接8086的A2,使用偶地址傳遞信息。 (3)端口地址,三、8255A的控制字和工作方式,(一)8255A的控制字(分為兩類) 1. 方式控制字 送控制口,以選擇A、B和 C口的工作方式。 說明:(見圖) (1)8255A有三種工作方式, 每種方式都可以輸入也可以輸 出。 方式0:基本輸入輸出不用聯(lián)絡(luò)信號,不用中斷方式傳送。通常為無條件或查詢方式傳送。 方式1:選通輸入輸出C口提供固定的聯(lián)絡(luò)信號,用中斷或查詢
42、方式傳送。 方式2:雙向方式即可入,又可出。是方式1的組合。 (2)A口有三種工作方式,B口僅有方式0和方式1工作方式。 (3)在方式1和方式2中,C口某些位作為聯(lián)絡(luò)信號,以適應(yīng)CPU與外設(shè)間的各種數(shù)據(jù)傳送方式的要求,如查詢傳送的應(yīng)答信號、中斷傳送的中斷申請信號等; C口未被用作聯(lián)絡(luò)信號的其它位可工作在方式 0。,2. 端口C按位置/復(fù)位控制字 說明: (1)寫入8255的控制口。 (2)該控制字僅對8255的端口輸出鎖存器操作。,這一功能可使8255作為位控接口,來實現(xiàn)對外設(shè)的按位控制。,例:利用位復(fù)位和位置位可使端口C某位產(chǎn)生方波。 MOV CX,0FH LOP: OUT PORT-CL,
43、0AH ;送0 CALL DELAY OUT PORT-CL,0BH ;送1 CALL DELAY LOOP LOP RET,控制字,(二)8255A的工作方式 1. 方式0 基本輸入輸出方式 (1) 端口A、B和C(PC7PC4及PC3PC0)都可工作于輸入或輸出。 三個端口無必然聯(lián)系,各端口輸入輸出組合共有16種,可適用于多種用途。 (2)對C口,其高低4位兩部分可相同(同為輸入或輸出)也可不同。 但對端口8位的讀寫是在一條指令中作為整體來操作,可采用以下措施: CPU 高4 低4 IN 入 出 必須屏蔽低四位 IN 出 入 必須屏蔽高四位 IN 入 入 讀入的8位均有用 OUT 入 出
44、輸出數(shù)據(jù)只設(shè)在低4位 OUT 出 入 輸出數(shù)據(jù)只設(shè)在高4位 OUT 出 出 輸出8位數(shù)據(jù) (3) CPU與外設(shè)采用無條件入/出,不用聯(lián)絡(luò)線,也不需要查詢。 (4)方式0也可用于查詢傳送的場合,這時可令A(yù)、B口為數(shù)據(jù)口,C口做與外設(shè)的聯(lián)絡(luò)信號, A、B、C配合即可工作在查詢場合。 (5)方式0下輸入不鎖存,輸出鎖存。 CPU對數(shù)據(jù)口的輸入指令讀取端口當(dāng)前信息, 對數(shù)據(jù)口的輸出指令把數(shù)據(jù)輸出到端口輸出鎖存器。,例1:8255A與系統(tǒng)的連線如下, 片選譯碼地址為F0F3h 1) 確定各端口地址; 2) 編程設(shè)置8255A : A組方式 0,A口 輸入,PC7PC4輸出 B組方式 0 ,B口輸出,PC
45、3PC0輸入,2) 確定方式控制字,所以,方式控制字為 1001 0001B,即91H,要求設(shè)置: A口方式0輸入,PC7PC4輸出 B口方式0輸出,PC3PC0輸入,設(shè)置方式控制字的程序段為: MOV DX, 0F3H ;控制口地址 MOV AL, 91H ;方式控制字 OUT DX, AL 或 MOV AL, 91H ; 方式控制字 OUT 0F3H, AL,方式0 輸入 ( IN AL,PORT ) 時序,口線上,方式0輸出 (OUT PORT, AL)時序,口線上,2. 方式1 選通輸入輸出方式 方式1端口A和B輸入/輸出數(shù)據(jù)時,必須利用端口C提供聯(lián)絡(luò)信號(選通、應(yīng)答信號)。 一般情況
46、下,用中斷傳送數(shù)據(jù)方式(也可用查詢方式) 這時: 通道A:8位數(shù)據(jù)端口(A口),3位控制位(C口)。 通道B:8位數(shù)據(jù)端口(B口),3位控制位(C口) 。 這種配合固定,不可以用程序修改。 特點(diǎn): 端口A、B既可做輸入又可做輸出,數(shù)據(jù)輸入輸出都被鎖存。 端口C引腳分別作為控制、狀態(tài)和中斷申請信號等。 若只有一個端口工作在方式1,則余下13位可工作在方式0。 若兩個端口都工作在方式1,則余下2 位可由程序指定為輸入或輸出。 端口A、B工作于方式1的輸入或輸出時,端口C聯(lián)絡(luò)信號的引腳和意義都不同,故以下分開討論。,以中斷方式輸入數(shù)據(jù):,方式1的輸入時序:,注意: 在方式1下,作為聯(lián)絡(luò)信號的外部引腳
47、PC4、PC2,不受C口按位置位/復(fù)位控制字控制,即對這些位的置位/復(fù)位不影響這些引腳信號的輸入/輸出,而只在8255A內(nèi)部對INTE信號起作用。,查詢方法從8255的A口向CPU輸入數(shù)據(jù): 方式1的狀態(tài)信號可通過讀取端口C得到 INPUT: IN AL,PortC ;讀方式1狀態(tài)信號 TEST AL,20H ;查A口的IBF JE INPUT ;IBF=0,數(shù)據(jù)未準(zhǔn)備好。 IN AL,PortA ;IBF0,CPU讀入數(shù)據(jù)。,注意: 方式1輸入時共用到C口6個引腳,剩余2個引腳PC6、PC7可做I/O位, 或由C口置 /復(fù)位控制字決定其輸出。,以中 斷方 式輸 出數(shù) 據(jù):,方式1的輸出時序:
48、,注意: 在方式1下,作為聯(lián)絡(luò)信號的外部引腳PC6、PC2,不受C口按位置位/復(fù)位控制字控制,即對這些位的置位/復(fù)位不影響這些引腳信號的輸入/輸出,而只在8255A內(nèi)部對INTE信號起作用。,注意: 方式1輸出時共用到C口6個引腳,剩余2個引腳PC4、PC5可做I/O位,或由C口置 /復(fù)位控制字決定其輸出。,3. 方式2 雙向方式 僅A口有此方式,(1)與方式 0、方式 1的單向傳送不同,工作在方式 2下的端口,具有雙向傳送功能。,(2)端口工作在方式 2時,C口的某5根引腳作為端口的聯(lián)絡(luò)信號; 是方式1下A口輸入、輸出聯(lián)絡(luò)信號的組合(見下頁圖)。,(3)C口未做聯(lián)絡(luò)信號的3條引腳,可作為B口
49、在方式1下的聯(lián)絡(luò)線, 也可和B口一樣工作在方式0。由方式控制字決定其輸入/輸出。,(4)方式2下的時序為方式1輸入/輸出兩者的組合(略)。,四、8255A應(yīng)用舉例,例:由8255A的A口輸出控制一位共陽極數(shù)碼管,由C口的PC7PC4輸入接入四位DIP開關(guān)的設(shè)置,根據(jù)開關(guān)設(shè)置值,在數(shù)碼管上顯示字型。 1. 數(shù)碼管 LED數(shù)碼管由8個發(fā)光二極管組成七段數(shù)碼和小數(shù)點(diǎn),結(jié)構(gòu)如圖所示。 2. 硬件連接,3. 程序 (1)8255初始化控制字:88H (2)十六進(jìn)制到字型碼采用軟件譯碼方式。,(3)程序 PORTA EQU 60H PORTB EQU 62H PORTC EQU 64H PCTRL EQU
50、 66H SH_TAB DB 0C0H, ; 字型表 DIS PROC MOV AL,88H OUT PCTRL,AL ;初始化8255 IN AL,PORTC ; 讀開關(guān)狀態(tài) MOV CL,4 SHR AL,CL ; 轉(zhuǎn)成低4位 LEA BX,SH_TAB XLAT SH_TAB ; 查表 OUT PORTA,AL ; 顯示輸出 RET DIS ENDP,6.4.2 并行打印機(jī)接口,(2)查詢方式打印字符串 端口A作為數(shù)據(jù)通道,方式0、輸出; 由PC7讀入BUSY狀態(tài)、PC0輸出STB脈沖, C口工作在方式0,上半部輸入、下半部輸出;,8255 PA0-7 PC7 PC0,打印機(jī) D0-7
51、BUSY STB,設(shè)8255端口地址為280H、281H、282H和283H。打印子程序如下: BUF DB HELLO! DB 0DH ;回車 DB 0AH ;換行 NUM EQU $-BUF : PRINT PROC FAR :,三、中斷方式打印字符串 中斷方式打印時,8255A與打印機(jī)的基本接口如圖。 端口A作為數(shù)據(jù)通道,工作在方式1、輸出。 PC6 自動作為ACK信號輸入端; PC3自動作為INTR信號輸出端,連接至8259的IRQ2 (中斷類型碼0AH,對應(yīng)的中斷向量放在0000:0028H0000:002BH的4個單元中); 打印機(jī)需要的數(shù)據(jù)選通信號由CPU控制PC0來產(chǎn)生。 這時
52、PC7未用,故將其懸空。,三、中斷方式打印字符串,工作過程為: (1)設(shè)數(shù)據(jù)放在輸出緩沖區(qū),輸出字符時,CPU通過對PC0置1/置0命令使其輸出選通脈沖,把端口A的數(shù)據(jù)送到打印機(jī)。 (2)打印機(jī)接收并打印字符后,發(fā)出ACK回答信號,此信號清除8255A的OBF信號(此處未用),并使8255A產(chǎn)生新的中斷請求。 (3)如果CPU的中斷是開放的,則響應(yīng)中斷,進(jìn)入中斷服務(wù)子程序,再輸出一個新的字符。,設(shè)8255A端口地址仍為280H283H。程序如下:,IRQ EQU 0AH ;IRQ2 IMR1 EQU 0FBH IMR2 EQU 04H BUF DB HELLO! DB 0DH,0AH ;回車,
53、換行 NUM EQU $BUF BUFPT DW ? ;保存打印緩沖區(qū)當(dāng)前指針 BUF_N DB NUM ;打印字符計數(shù)器 :,MOV DX,283H MOV AL,00000001B ;初始STB=1 OUT DX,AL MOV SI,OFFSET BUF MOV AL,SI INC SI MOV BUFPT,SI MOV BUF_N,NUM1 ;在主程序中打印一個,中斷 MOV DX,280H ;子程序中打印( NUM1)個 OUT DX,AL ;送出第一個數(shù)據(jù),啟動中斷服務(wù)。 MOV DX,283H MOV AL,00000000B ;STB=0 OUT DX,AL NOP MOV AL
54、,00000001B ;STB=1 OUT DX,AL RET PRI_INI ENDP ;,計算機(jī)系統(tǒng)中,鍵盤和顯示器是必不可少的I/O外設(shè),其種類也很繁多。這里介紹其中最基本的非編碼鍵盤和LED數(shù)碼顯示器的應(yīng)用。,6.4.3 鍵盤和顯示器接口,一、鍵盤 1. 鍵盤的分類 鍵盤結(jié)構(gòu)的關(guān)鍵是如何把鍵盤上的按鍵動作轉(zhuǎn)換為相應(yīng)的編碼,供處理器接收,這里存在一個鍵碼識別的問題。 按照鍵碼識別方式不同,鍵盤可分為兩大類: 編碼鍵盤 對每一個按鍵,由編碼電路產(chǎn)生與其對應(yīng)的唯一編碼。即,它是一種用硬件電路來識別按鍵代碼的鍵盤。 非編碼鍵盤利用簡單的硬件和一套專用鍵盤程序來識別按鍵的位置,然后通過查表程序轉(zhuǎn)
55、換成相應(yīng)的編碼。,2. 非編碼鍵盤的鍵碼識別方法 為了識別鍵盤上的閉合鍵,常用的鍵碼識別方法: 行掃描法、行反轉(zhuǎn)法。,設(shè)有mn個鍵: m行由輸出口控制 n列由輸入口讀入,當(dāng)某行輸出為低電平時: 有鍵按下某列輸入低電平 無鍵按下某列輸入高電平,某鍵閉合的識別法: (1)行掃描法, 程序再使列線接口工作在輸出方式,行線接口工作在輸入方式。 CPU通過輸出端口向各列線上全部送低電平(0),然后讀入行線值。 那么,閉合鍵所在的行線值必定為0。 這樣,當(dāng)一個鍵被按下時,必定可以讀得一對唯一的行值和列值。,(2)行反轉(zhuǎn)法 先令行線接口工作在輸出方式,列線接口工作在輸入方式。 CPU通過輸出端口向各行線上全部送低電平(0),然后讀入列線值。 如果此時有某鍵被按下,則必定會使某列線值為0。,二、顯示器,兩種結(jié)構(gòu): 共陰極 共陽極,例:如圖,8255A的端口A用來輸出顯示字符,端口B用來控制LED的顯示位,即位控端口。,1. 硬件連接如上。 2. 將七段代碼存入內(nèi)存起址TAB,要顯示的數(shù)字為TAB + 數(shù)字值。 利用XLAT指令可取至AL中,PA口進(jìn)行顯示。 3. 位控端口逐位送出0(共陰極)。 4. 端口A依次輸出代碼。端口B依次選中一位LED,則利用視覺慣性, 就可看到8位LED顯示。 這種LED顯示方式稱為動態(tài)刷新。刷新一遍的顯示子程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年牡丹江大學(xué)單招綜合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026浙江溫州市樂清市健康醫(yī)療管理集團(tuán)有限公司及下屬子公司招聘4人考試重點(diǎn)題庫及答案解析
- 2026年鄭州電子商務(wù)職業(yè)學(xué)院單招綜合素質(zhì)考試參考題庫含詳細(xì)答案解析
- 2026年運(yùn)城師范高等??茖W(xué)校單招綜合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年鄭州澍青醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年湖南軟件職業(yè)技術(shù)大學(xué)單招職業(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年鶴崗師范高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試備考題庫及答案詳細(xì)解析
- 2026年南京城市職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題及答案詳細(xì)解析
- 2026年南陽職業(yè)學(xué)院單招綜合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年大連航運(yùn)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細(xì)解析
- 2025年全國茉莉花茶產(chǎn)銷形勢分析報告-
- 校本課程篆刻教學(xué)設(shè)計
- 明確安全生產(chǎn)領(lǐng)導(dǎo)小組的職責(zé)與安全管理體系
- 七年級下冊語文必背古詩文(字帖描紅)
- 電儀施工質(zhì)量總結(jié)
- 《甜花香型大葉種工夫紅茶》編制說明
- QSY06503.14-2020石油煉制與化工裝置工藝設(shè)計包編制規(guī)范 - 副本
- 柜式七氟丙烷-氣體滅火系統(tǒng)-安裝與施工-方案
- 核醫(yī)學(xué)全身骨顯像骨顯像課件
- 昌樂縣鎮(zhèn)區(qū)基準(zhǔn)地價更新修正體系匯編(完整版)資料
- 項目管理學(xué)課件戚安邦全
評論
0/150
提交評論