微型計算機技術第六章8255_第1頁
微型計算機技術第六章8255_第2頁
微型計算機技術第六章8255_第3頁
微型計算機技術第六章8255_第4頁
微型計算機技術第六章8255_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

微型計算機技術及應用

戴梅萼史嘉權編著第六章串并行通訊和接口技術第6章并行通信和并行接口教學重點并行通信與接口

8255A的編程結構

8255A的工作方式

8255A的編程及應用第6章并行通信與接口并行通信就是把一個字符的各位同時用幾根線進行傳輸。傳輸速度快,信息率高。電纜要多,隨著傳輸距離的增加,電纜的開銷會成為突出的問題,所以,并行通信用在傳輸速率要求較高,而傳輸距離較短的場合。Intel8255A是一個通用的可編程的并行接口芯片,它有三個并行I/O口,又可通過編程設置多種工作方式,價格低廉,使用方便,可以直接與Intel系列的芯片連接使用,在中小系統中有著廣泛的應用。第6章:6.5并行接口電路8255A具有多種功能的可編程并行接口電路芯片最基本的接口電路:三態緩沖器和鎖存器與CPU間、與外設間的接口電路:狀態寄存器和控制寄存器還有端口的譯碼和控制電路、中斷控制電路共24個外設引腳,分3個端口、2組控制共三種輸入輸出工作方式第6章:6.5.18255A的內部結構和引腳數據總線緩沖器內部控制線內部數據線D0~D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部讀寫控制邏輯PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET1.三個數據端口A,B,C

這三個端口均可看作是I/O口,但它們的結構和功能也稍有不同。A口:是一個獨立的8位I/O口,它的內部有對數據輸入/輸出的鎖存功能。B口:也是一個獨立的8位I/O口,僅對輸出數據的鎖存功能。C口:可以看作是一個獨立的8位I/O口;也可以看作是兩個獨立的4位I/O口。也是僅對輸出數據進行鎖存。2.A組和B組的控制電路這是兩組根據CPU命令控制8255A工作方式的電路,這些控制電路內部設有控制寄存器,可以根據CPU送來的編程命令來控制8255A的工作方式,也可以根據編程命令來對C口的指定位進行置/復位的操作。A組控制電路用來控制A口及C口的高4位;B組控制電路用來控制B口及C口的低4位。3.數據總線緩沖器8位的雙向的三態緩沖器。作為8255A與系統總線連接的界面,輸入/輸出的數據,CPU的編程命令以及外設通過8255A傳送的工作狀態等信息,都是通過它來傳輸的。

4.讀/寫控制邏輯

讀/寫控制邏輯電路負責管理8255A的數據傳輸過程。它接收片選信號及系統讀信號、寫信號、復位信號RESET,還有來自系統地址總線的口地址選擇信號A0和A1。1.接口電路的主要作用是什么?它的基本結構如何?2.說明接口電路中控制寄存器與狀態寄存器的功能,通常它們可共用一個端口地址碼,為什么?3.CPU尋址外設端口的方式通常有哪兩種?試說明它們的優缺點。4.在CPU與外部設備接口電路的連接中,通過數據總線可傳輸哪幾種信息?在這里地址譯碼器起什么作用?習題與思考:6.5.28255A的引腳功能

引腳信號可以分為兩組:一組是面向CPU的信號,一組是面向外設的信號

1.面向CPU的引腳信號及功能D0~D7:8位,雙向,三態數據線,用來與系統數據總線相連;RESET:復位信號,高電平有效,輸入,用來清除8255A的內部寄存器,并置A口,B口,C口均為輸入方式;CS:片選,輸入,用來決定芯片是否被選中;RD:讀信號,輸入,控制8255A將數據或狀態信息送給CPU;WR:寫信號,輸入,控制CPU將數據或控制信息送到8255A;A1,A0:內部口地址的選擇,輸入。這兩個引腳上的信號組合決定對8255A內部的哪一個口或寄存器進行操作。8255A內部共有4個端口:A口,B口,C口和控制口,兩個引腳的信號組合選中端口見下表。CS,RD,WR,A1,A0這幾個信號的組合決定了8255A的所有具體操作,

表7-18255A的操作功能表CSRDWRA1A0操作數

式00100讀A口A口數據→數據總線00101讀B口B口數據→數據總線00110讀C口C口數據→數據總線01000寫A口數據總線數據→A口01001寫B口數據總線數據→B口01010寫C口數據總線數據→C口01011寫控制口數據總線數據→控制口2.面向外設的引腳信號及功能PA0~PA7:A組數據信號,用來連接外設;

PB0~PB7:B組數據信號,用來連接外設;PC0~PC7:C組數據信號,用來連接外設或者作為控制信號。第6章:6.5.38255A的工作方式方式0:基本輸入輸出方式適用于無條件傳送和查詢方式的接口電路,A、B、C三個端口均可。方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路,A、B兩個端口均可。

方式2:雙向選通傳送方式適用于與雙向傳送數據的外設,只有A端口才有。

適用于查詢和中斷方式的接口電路8255A有三種工作方式,用戶可以通過編程來設置

第6章:6.5.28255A的工作方式1.方式0

為一種簡單的輸入/輸出方式,沒有規定固定的應答聯絡信號,可用A,B,C三個口的任一位充當查詢信號,其余I/O口仍可作為獨立的端口和外設相連。方式0的應用場合有兩種:一種是同步傳送;一種是查詢傳送。

方式0的特點任何一個端口可作為輸入口,也可作為輸出口,各端口之間沒有規定必然的關系。各個端口的輸入或輸出,可以有16種不同的組合,所以可以適用于多種使用場合第6章:方式0輸入時序datadata輸入端口D0~D7RDCS,A1,A0請體會這里8255A的數據緩沖作用第6章:方式0輸出時序WRdatadata輸出端口D0~D7CS,A1,A08255A對CPU通過它輸出給外設的數據進行鎖存2.方式1

方式1是一種選通I/O方式,A口和B口仍作為兩個獨立的8位I/O數據通道,可單獨連接外設,通過編程分別設置它們為輸入或輸出。而C口則要有6位(分成兩個3位)分別作為A口和B口的應答聯絡線,其余2位仍可工作在方式0,可通過編程設置為輸入或輸出。第6章:方式1輸入引腳:A端口數據選通信號表示外設已經準備好數據輸入緩沖器滿信號,表示A口已經接收數據中斷請求信號請求CPU接收數據中斷允許觸發器PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBARDPC6、PC7I/O2第6章:方式1輸入引腳:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB數據選通信號表示外設已經準備好數據輸入緩沖器滿信號表示A口已經接收數據中斷請求信號請求CPU接收數據中斷允許觸發器方式1需借用端口C用做聯絡信號同時還具有中斷請求和屏蔽功能RD第6章:方式1輸入聯絡信號STB——選通信號,低電平有效由外設提供的輸入信號,當其有效時,將輸入設備送來的數據鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號,高電平有效8255A輸出的聯絡信號。當其有效時,表示數據已鎖存在輸入鎖存器,作為STB的回答信號

INTR——中斷請求信號,高電平有效8255A輸出的信號,可用于向CPU提出中斷請求,要求CPU讀取外設數據INTR置位的條件是STB為高,且IBF為高,INTE為高。第6章:方式1輸入時序dataINTRIBF

data輸入端口D0~D7STBRDSTB*和IBF是外設和8255A間的一對應答聯絡信號,為的是可靠地輸入數據第6章:方式1中斷控制8255A的中斷由中斷允許觸發器INTE控制置位允許中斷,復位禁止中斷對INTE的操作通過寫入端口C的對應位實現,INTE觸發器對應端口C的位是作應答聯絡信號的輸入信號的哪一位,只要對那一位置位/復位就可以控制INTE觸發器選通輸入方式下端口A的INTEA對應PC4置位來實現端口B的INTEB對應PC2置位來實現第6章:方式1輸出引腳:A端口外設響應信號表示外設已經接收到數據輸出緩沖器滿信號表示CPU已經輸出了數據中斷請求信號請求CPU再次輸出數據PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發器WR第6章:方式1輸出引腳:B端口PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外設響應信號表示外設已經接收到數據輸出緩沖器滿信號表示CPU已經輸出了數據中斷請求信號請求CPU再次輸出數據中斷允許觸發器WR第6章:方式1輸出聯絡信號OBF——輸出緩沖器滿信號,低有效8255A輸出給外設的一個控制信號,當其有效時,表示CPU已把數據輸出給指定的端口,外設可以取走ACK——響應信號,低有效外設的響應信號,指示8255A的端口數據已由外設接受INTR——中斷請求信號,高有效當輸出設備已接受數據后,8255A輸出此信號向CPU提出中斷請求,要求CPU繼續提供數據端口A的INTEA對應PC6端口B的INTEB對應PC2第6章:方式1輸出時序

INTR

datadata輸出端口D0~D7WROBFACK

OBF*和ACK*是外設和8255A間的一對應答聯絡信號,為的是可靠地輸出數據第6章:方式2雙向方式方式2將方式1的選通輸入輸出功能組合成一個雙向數據端口,可以發送數據和接收數據只有端口A可以工作于方式2,需要利用端口C的5個信號線,其作用與方式1相同方式2的數據輸入過程與方式1的輸入方式一樣方式2的數據輸出過程與方式1的輸出方式有一點不同:數據輸出時8255A不是在OBF有效時向外設輸出數據,而是在外設提供響應信號ACK時才送出數據第6章:方式2雙向引腳PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設置INTE1(輸出)用PC4設置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號WRRD第6章:方式2雙向時序data-out

INTR

data-outdata-indata-inPA0~PA7D0~D7IBF

WROBFACKSTBRD第6章:6.5.48255A的編程初始化編程:一個方式控制字采用控制I/O地址:A1A0=11工作過程中:通過數據端口對外設數據進行讀寫數據讀寫利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBMPC/XT機上,端口A、B、C和控制端口的I/O地址為60H、61H、62H和63H對8255A的編程涉及到兩個內容:⑴寫控制字設置工作方式等信息,⑵使C口的指定位置位/復位的功能。注:均寫入控制端口

第6章:6.5.48255A的編程方式選擇控制字第6章:1.寫入方式控制字:控制字格式1D6D5D4D3D2D1D0A組B組A組方式選擇00—方式001—方式11X—方式2端口A1—輸入0—輸出端口C(PC7~PC4)1—輸入0—輸出端口C(PC3~PC0)1—輸入0—輸出端口B1—輸入0—輸出B組方式選擇0—方式01—方式1第6章:1.寫入方式控制字:示例1要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:

movdx,0fffeh

;假設控制端口為FFFEH

moval,0b1h

;方式控制字

outdx,al

;送到控制端口第6章:1.寫入方式控制字:示例2CSRDWRA1A0D7D6..D0RESETCSRDWRA1A0D7D6..D0RESET74LS138ABCA3A4A5A8GG接芯片分組譯碼器輸出端Y7Y6Y5Y4Y3Y2Y1Y0GD7D6D5D4D3D2D1D0RESET數據總線低8位IOWIORA1A0PA7~PA0PA7~PA0PB7~PB0PC7~PC0PAC7~PC0PB7~PB0J1J2第6章:1.寫入方式控制字:示例2(續)芯片端口名稱地址(十六進制)芯片端口名稱地址(十六進制)J1(8255A)端口A端口B端口C控制口00E000E200E400E6J2(8255A)端口A端口B端口C控制口00E800EA00EC00EE上圖8086系統中兩片8255A的端口地址第6章:1.寫入方式控制字:示例2(續)如果要求J1的各個端口處于如下工作方式:端口A方式0,輸出;端口B方式0,輸入;端口C的高4位輸出;端口C的低4位輸入。10000011端口C的低4位為輸入端口B為輸入端口C的高4位為輸出B組工作于方式0端口A為輸出A組工作于方式0方式選擇控制字標識符第6章:1.寫入方式控制字:示例2(續)如果要求J2的各個端口處于如下工作方式:端口A方式0,輸入;端口B方式1,輸出;端口C的高4位輸出;端口C的低4位配合端口B工作端口C的低4位為任意為1或0端口B為輸出端口C的高4位為輸出B組工作于方式1端口A為輸入A組工作于方式010010100方式選擇控制字標識符第6章:1.寫入方式控制字:示例2(續)MOVAL,83HMOVDX,00E6H

;對第1片8255A設置方式選擇控制字OUTDX,AL

MOVAL,94HMOVDX,00EEH

;對第2片8255A設置方式選擇控制字OUTDX,AL第6章:2.讀寫數據端口初始化編程后:當數據端口作為輸入接口時,執行輸入IN指令將從輸入設備得到外設數據當數據端口作為輸出接口時,執行輸出OUT指令將把CPU的數據送給輸出設備8255A具有鎖存輸出數據的能力對輸出方式的端口同樣可以輸入不是讀取外設數據讀取的是上次CPU給外設的數據第6章:2.讀寫數據端口:示例利用8255A的輸出鎖存能力,可實現按位輸出控制對輸出端口B的PB7位置位的程序段:

movdx,0fffah

;B端口假設為FFFAH

inal,dx

;讀出B端口原輸出內容

oral,80h

;使PB7=1

outdx,al

;輸出新的內容第6章:3.讀寫端口C:歸納1C端口被分成兩個4位端口,兩個端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組第6章:3.讀寫端口C:歸納2當A和B端口工作在方式1或方式2時,C端口的部分或全部引腳將被征用其余引腳仍可設定工作在方式0第6章:3.讀寫端口C:歸納3對端口C的數據輸出有兩種辦法通過端口C的I/O地址:向C端口直接寫入字節數據。這一數據被寫進C端口的輸出鎖存器,并從輸出引腳輸出,但對設置為輸入的引腳無效通過控制端口:向C端口寫入位控字,使C端口的某個引腳輸出1或0,或置位復位內部的中斷允許觸發器第6章:端口C置1/置0控制字位控制字寫入控制端口特別便于置位復位內部中斷允許觸發器INTE第6章:3.讀寫端口C:歸納4讀取的C端口數據有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯絡線的引腳:將讀到反映8255A狀態的狀態字D7D6D5D4D3D2D1D0方式1輸入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1輸出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2雙向OBFAINTE1IBFAINTE2INTRA×××第6章:端口C的狀態字A組B組第6章:6.5.58255A的應用舉例

作為通用的并行接口電路芯片,8255A具有廣泛的應用應用在IBMPC/XT微機上應用于打印機接口電路連接簡易鍵盤驅動LED數碼管……第6章:1.8255A在IBMPC/XT上的應用工作在基本輸入/輸出方式0端口A為方式0輸入,用來讀取鍵盤掃描碼端口B工作于方式0輸出,例如控制揚聲器等端口C為方式0輸入,讀取系統狀態和配置系統的初始化編程:

moval,10011001b

;方式控制字99H

out63h,al第6章:2.打印機接口的信號與時序BUSYDATA0~7ACKSTROBE主機把數據送給引腳DATA0~DATA7同時送出數據選通信號STROBE*打印機在BUSY信號線上發出忙信號打印機處理好輸入的數據時撤消忙信號同時又送出一個響應信號ACK*第6章:2.例1

用8255A方式0與打印機接口BUSY

DATA0~78255APC6PC2PA0~PA7打印機STROBE(STB)第6章:例18255A的初始化設8255A的端口地址為:A端口00D0H;C端口00D4H;B端口00D2H;控制口00D6H。PP:MOVAL,81H

;控制字,使A、B、C三個端口均工作于方式0,

A端口為輸出,PC7~PC4為輸出,PC3~PC0為輸入

MOVDX,0D6HOUTDX,ALMOVAL,0DH;用置1/置0方式使PC6為1,即STB為高電平

OUTDX,ALLPST:MOVDX,0D4H;讀端口C的置

INAL,DXANDAL,04HJNZLPST;如不為0,說明忙信號為1,即打印機處于忙狀態,故等待

MOVAL,CLMOVDX,0D0HOUTDX,AL;如不忙,則把CL中字符送端口AMOVAL,0CHMOVDX,0D6HOUTDX,AL;使STB為0INCAL,

OUTDX,AL;再使STB為1.

;后續程序段

.第6章:例1打印子程序第6章:2.例2用8255A方式1與打印機接口1000pf2K15321441LS123單穩電路+5VDATA0~78255APC6INTRPC3PC7PA0~PA7打印機ACKACKOBFSTROBE連8259A的IR3PC0第6章:2.例2用8255A方式1與打印機接口PC3連到8259A的中斷請求信號輸入IR3,對應于中斷類型號0BH,此中斷對應的中斷向量放在00段2CH、2DH、2EH、2FH這4個單元。設8255A的端口地址為:A端口00C0H;C端口00C4H;B端口00C2H;控制口00C6H。第6章:8255A方式1與打印機接口時序配合PA0~PA7(DATA0~7)ACKOBFSTROBE打印機時序方式1時序第6章:8255A的初始化MAIN:MOVDX,0C6H;主程序段

MOVAL,0A0H

OUTDX,AL;設置8255A的控制字

MOVAL,01

;使PC0為1,即讓選通無效

OUTDX,ALXORAX,AXMOVDS,AX;設置中斷向量1000:2000至

2C、2D、2E、2F中

MOVAX,2000HMOVWORDPTR[002CH],AXMOVAX,1000HMOV

溫馨提示

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

評論

0/150

提交評論