微型計算機(jī)原理ch10并行io接口_第1頁
微型計算機(jī)原理ch10并行io接口_第2頁
微型計算機(jī)原理ch10并行io接口_第3頁
微型計算機(jī)原理ch10并行io接口_第4頁
微型計算機(jī)原理ch10并行io接口_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

微型計算機(jī)原理與接口技術(shù)第10章并行I/O接口10.1 8255A的內(nèi)部結(jié)構(gòu)8255A的外部引腳:復(fù)位信號,RESET=1時,8255內(nèi)部復(fù)位,所有內(nèi)部寄存器清零,A、B、C三個端口自動設(shè)為輸入端口A9A8A7A6A5A4A3A2A1A0

IORIOWCSA1A0RDWR8255A端口:接口電路中能和CPU直接AE交N

換信息的寄存器控制口寄存初始化命令字8255A有4個端口寄存器如果系統(tǒng)產(chǎn)生片選信號的譯碼電路如圖,則:A數(shù)據(jù)口地址=60HB數(shù)據(jù)口地址=61HC數(shù)據(jù)口地址=62H控制口地址=63H8255A的端口編址:CSA1A0WRRD完成工作00001CPU數(shù)據(jù)→A口數(shù)據(jù)寄存器00101CPU數(shù)據(jù)→B口數(shù)據(jù)寄存器01001CPU數(shù)據(jù)→C口數(shù)據(jù)寄存器01101CPU送來的命令字→控制寄存器00010讀A口數(shù)據(jù)→CPU00110讀B口數(shù)據(jù)→CPU01010讀C口數(shù)據(jù)→CPU注意:

對控制寄存器不能進(jìn)行讀操作10.2 8255A的工作方式A口可工作在方式0、1、2B口可工作在方式0、1C口可工作在方式0工作方式適用端口方式0:基本型輸入/輸出方式A口、B口、C口方式1:選通型輸入/輸出方式A口、B口方式2:雙向數(shù)據(jù)傳送方式A口輸入設(shè)備8255A的A口PA7~PA0IBFASTBAIBF=1,通知外設(shè)輸入緩沖器已滿,請不要再送數(shù)據(jù)只有在IBF=0時,外設(shè)才能寫入數(shù)據(jù)輸入設(shè)備8255A的A口PA7~PA0IBFASTBA輸入設(shè)備8255A的B口PB7~PB0OBFBACKB輸入設(shè)備8255A的B口PB7~PB0OBFBACKBPB0…什么是基本型輸入?(以B口為例)D7

PB7至CPUD0…對B口執(zhí)行一條IN指令打開控制門當(dāng)B口定義為基本型輸入時,它相當(dāng)于一個輸入緩沖器,對B口執(zhí)行一條IN指令,就把輸入數(shù)據(jù)→CPU…什么是基本型輸出?(以A口為例)PA0…從CPU

D7

PA7D0…D

QCP…D

QCP對A口執(zhí)行一條OUT指令鎖存數(shù)據(jù)① 當(dāng)A口定義為基本型輸出時,它為一個輸出鎖存器②

CPU對A口執(zhí)行一條

OUT指令把數(shù)據(jù)鎖存在端口總之:基本型輸入/出時,8255A和外設(shè)之間沒有聯(lián)絡(luò)信號10.3 8255A控制字與初始化編程8255A控制字8255有2個控制字:①

方式選擇控制字②

C口按位置0/置1命令字控制字必須寫入控制口才能有效方式選擇控制字:1D6D5D4D3D2D1D0C口PC7~PC

4

:1=輸入0=輸出A口:1=輸入0=輸出方式選擇:方式0:0

0方式1:0

1方式2:1

XA組:C口PC3~PC

0

:1=輸入0=輸出B口:1=輸入0=輸出方式選擇:方式0:0方式1:0B組:注意:A口工作在方式1、方式2,B口工作在方式1時,D3、D0只能定義部分PC線的入/出A口工作在方式2時,D4不起作用C口上、下半部可以選擇不同的入/出(都是方式0)C端口按位置0/置1控制字:0XXXD3D2D1D0D0功能1PCX置1D3D2D1位選擇000PC0001PC1010PC2011PC3100PC4

注意101PC5110PC6111PC7

0

PCX置0:C口按位置0/1命令字必須寫入控制口8255A初始化編程步驟方式選擇控制字→控制口目的是設(shè)置某一端口的工作方式(根據(jù)需要)C端口按位置0/置1控制字→控制口目的是禁止/允許某一端口提中斷例:要求置A口為方式0輸出,B口為方式0輸入,PC7~4為輸出,PC3~0為輸入解:①

確定方式選擇控制字②

代碼:MOV

AL,83HOUT

控制口地址,AL1

0

0

0

0

0

1

1A

A口

口方

輸式

出0PC7~PC4為輸出B

B口

口方

輸式

入0PC3~PC0為輸入10.4 8255A工作方式與時序一、方式0與時序方式0

輸入時序:數(shù)據(jù)有效tARtIR數(shù)據(jù)有效tHRtRAtRDtDFtRRRD輸入D7~D0CS,

A1,

A0方式0

輸出時序:數(shù)據(jù)有效tAW數(shù)據(jù)有效tDW

tWDtWAtWBtWW輸出D7~D0WRCS,

A1,

A0二、方式1(選通型)輸入及時序A口方式1方式選擇命令字:A口選通型輸入PC4PC5PC3INTEAPC7~PC6PA7~PA0STBAIBFAINTRA空閑1

0

1

1

1/0

X

X

X1=PC7和PC6為輸入線0=PC7和PC6為輸出線A口輸入A口選通型輸入PC4PC5PC3INTEAPC7~PC6PA7~PA0STBAIBFAINTRA空閑2.A口方式1輸入時,A口的中斷管理PC4PC5PC3INTEAPC7~PC6PA7~PA0STBAIBFAINTRA空閑INTEA為A口中斷允許觸發(fā)器,A口選通型輸入當(dāng)A口定義為方式1輸入時:① 用C口置0/置1命令字使PC4=1,則INTEA=1,允許A口中斷② 用C口置0/置1命令字使PC4=0,則INTEA=0,禁止A口中斷當(dāng)INTEA=1之后,若IBFA=1,則A口提出中斷請求注意:中斷允許觸發(fā)器只能受CPU控制,外設(shè)信號STBA不能使其置0/1B口方式1輸入方式選擇命令字:B口選通型輸入PC2PC1PC0INTEBPB7~PB0STBBIBFBINTRB1

X

X

X

X

1

1

X3.

B口方式1輸入的預(yù)置當(dāng)方式字=86H寫入控制口之后,B口即工作在選通型輸入,此時:①

PB7~PB0即為輸入線②

PC2自動定義為入線,稱為STBB③

PC1自動定義為出線,稱為IBFB④

PC0自動定義為出線,稱為INTRB輸出線?輸入線?不再受方式字D0控制B口選通型輸入PC2PC1PC0INTEBPB7~PB0STBBIBFBINTRBB口選通型輸入PC2PC1PC0INTEBPB7~PB0STBBIBFBINTRB5.

方式1輸入的時序tSITtSIBtRITtRIBtPHtSTSTBIBFINTRRD來自外設(shè)的輸入數(shù)據(jù)

tPSSTBIBFINTRRD來自外設(shè)的輸入數(shù)據(jù)STBIBFINTRRD來自外設(shè)的輸入數(shù)據(jù),后沿使IBF=0,從而結(jié)束一RD信號前沿使INTR=次數(shù)據(jù)輸入過程STBIBFINTRRD來自外設(shè)的輸入數(shù)據(jù)服務(wù)程序執(zhí)行IN指令之后:三、方式1(選通型)輸出及時序PC6PC7PC3INTEAPC4、5空閑ACKAOBFAINTRAA口選通型輸出PA7~01

0

1

0

1/0

X

X

X1=PC4、5為入線0=PC4、5為出線方式選擇命令字A1口方式 輸出PC3、PC6和PC7輸出?輸入?不再受方式字D3、D0控制PC4、PC5空閑,出?入?受方式字D3控制PC6PC7PC3INTEAPC4、5PA7~0ACKAOBFAINTRA空閑A口選通型輸出PC6PC7PC3INTEAPC4、5PA7~0ACKAOBFAINTRA空閑A口選通型輸出ACKBOBFBINTRBPC2PC1PC0INTEBPB7~0B口選通型輸出1

X

X

X

X

1

0

X方式選擇命令字B口方式1輸出入線?出線?不再受方式字D0控制OBFBPC2PC1PC0INTEBPB7~0B口選通型輸出ACKBINTRBOBFBPC2PC1PC0INTEBPB7~0B口選通型輸出ACKBINTRB5.

方式1輸出的時序圖tAXtAOBtAITtWBOBFtWOBINTRWR輸出tWITACKWROBFINTRACK輸出WROBFINTRACK輸出WROBFINTRACK輸出四、8255A的雙向傳輸方式只有A口可以工作在雙向傳輸方式當(dāng)A口工作在雙向方式時,B口可以工作在基本型I/O(不需要聯(lián)絡(luò)線),也可以工作在選通型I/O(使用PC0、PC1和PC2做聯(lián)絡(luò)線)1.

雙向傳輸方式的設(shè)置00B口方式0輸出01B口方式0輸入10B口方式1輸出11B口方式1輸入PC7PC6PC3INTE1PC2~0PA7~0PC4PC5空閑INTRAOBFAACKASTBAIBFAINTE2方式選擇命令字1

1

X

X

X

D2

D1

D0A口雙向1=PC2~0為入線0=PC2~0為出線PC7PC6PC3INTE1PC2~0PA7~0PC4PC5空閑INTRAOBFAACKASTBAIBFAINTE2INTE2為雙向方式中的輸入中斷允許觸發(fā)器①

用C口置0/1命令字使PC4置0,則INTE2=0②

用C口置0/1命令字使PC4置1,則INTE2=1INTE2置1后,若IBFA=1,則

INTRA=1,提出中斷請求PC7PC6PC3INTE1PC2~0PA7~0PC4PC5空閑INTRAOBFAACKASTBAIBFAINTE2五、8255A小結(jié)8255A的工作方式A口可以工作在方式0、1、2,B口可以工作在方式0、1,不能工作在方式2,C口只可以工作在方式0方式0的特點(diǎn):8255和外設(shè)交換信息時,不需要聯(lián)絡(luò)線方式1、2的特點(diǎn):8255和外設(shè)交換信息時,需要聯(lián)絡(luò)線C口分為PC7~4、PC3~0二部分,但程序員對C口的讀寫是按字節(jié)操作的A口工作在方式2時,B口只能工作在方式0、1(限制:CPU只能用查詢而不能用中斷和B口交換數(shù)據(jù))中斷允許觸發(fā)器的置0、置1對程序員來講:工作在方式1、方式2時,8255內(nèi)部有4個中斷允許觸發(fā)器,用“C口專用的置0/1命令字”可以使它們置0/1例:A口工A口方式1輸入作在方式A口方式1輸出1輸入時,執(zhí)行B口方式1輸入:B口方式1輸出A口雙向傳輸INTEAMOV

PCA4L

,000P0C10601BINTEBOUT

8255A控制口,AL

;P即C可2

使INTEPAC置2

1,允許中斷INTE1PC6INTE2PC48255A的初始化編程工作在方式0時:方式選擇命令字→控制口工作在方式1或方式2時:①

方式選擇命令字→控制口②

允許中斷(或禁止中斷)的命令字→控制口六、8255A應(yīng)用舉例例:設(shè)系統(tǒng)機(jī)外擴(kuò)了一片8255A,以及相應(yīng)的實(shí)驗(yàn)電路,如后頁圖所示。要求:先預(yù)置開關(guān)K3~K1為一組狀態(tài),然后按下自復(fù)按鈕K產(chǎn)生一個負(fù)脈沖信號輸入到PC4。用發(fā)光二極管LEDi亮來顯示K3~K1的狀態(tài)。主機(jī)鍵盤有任意鍵按下時結(jié)束演示。要求:K3

K2

K1=000

時,LED1

亮K3

K2

K1=001

時,LED2

亮K3

K2

K1=010

時,LED3

亮K3

K2

K1=011

時,LED4

亮K3

K2

K1=100

時,LED5

亮K3

K2

K1=101

時,LED6

亮K3

K2

K1=110

時,LED7

亮K3

K2

K1=111

時,LED8

亮K3~K1閉合為0,斷開為1D7~D0D7~D05VRESETIORIOWRDWR口地址譯碼218H~21FHA1A082555VLED8LED7LED1PB7PB6PB0PA2PA1PA0K3K2K15V單脈沖發(fā)生器PC4KIBFAINTRAPC3INTEACSA1A0STBA

PC5[設(shè)計思路]端口地址:A口:218H,21CHB口:219H,21DHC口:21AH,21EH控制口:21BH,21FHD7~D0D7~D05VIORIOWRESETRD口地址譯碼218H~21FHA1A0A1A082555VLED8LED7LED1PB7PB6PB0PA2PA1PA0K3K2K15VKAINTRAINTEAWRCSPC4

單脈沖發(fā)生器STB

PC5

A

IBFPC3[設(shè)計思路]2.

工作方式的選擇:①

A口:選通型輸入②

B口:基本型輸出D7~D0D7~D05VIORIOWRESETRD口地址譯碼218H~21FHA1A0A1A082555VLED8LED7LED1PB7PB6PB0PA2PA1PA0K3K2K15V單脈沖發(fā)生器PC4KIBFAINTRA

PC5PC3INTEAWRCSSTBA[設(shè)計思路]3.

8259A與CPU交換信息方式:①

CPU與B口:無條件傳送D7~D0D7~D05VIORIOWRESETRD口地址譯碼218H~21FHA1A0A1A082555VLED8LED7LED1PB7PB6PB0PA2PA1PA0K3K2K15V單脈沖發(fā)生器PC4KIBFAINTRA

PC5PC3INTEAWRCSSTBA[設(shè)計思路]3.

8259A與CPU交換信息方式:②

CPU與A口:查詢方式/中斷方式D7~D0D7~D05VIORIOWRESETRD口地址譯碼218H~21FHA1A0A1A082555VLED8LED7LED1PB7PB6PB0PA2PA1PA0K3K2K15V單脈沖發(fā)生器PC4KIBFAINTRA

PC5PC3INTEAWRCSSTBA4.

查詢方式的編程:B口方式0輸出,A口選通型輸入查詢方式選擇命令字:A口禁止中斷命令字1

0

1

1

X

0

0

X=

B0H1oo輸入方式0BBAA口輸出口方式0

X

X

X

1

0

0

0=08H.486DATA

SEGMENTMESG

DB'8255A

READY...'

,

0DH

,

0AH

,

'$'TAB

DB

11111110BDB

11111101BDB

11111011BDB

11110111BDB

11101111BDB

11011111BDB

10111111BDB

01111111BDATA

ENDSCODE

SEGMENTASSUME

CS:CODE

,

DS:DATABEG:MOV

AX

,

DATAMOV

DS

,

AX[查詢方式程序清單]CALLI8255A;8255A初始化MOVAH,9MOVDX,OFFSET

MESGINT21H;給出操作提示SCAN:

MOVINTAH,116H;有鍵入?JNZRETURN;有MOVDX,21AHINAL,DX;讀8255A的C口TESTAL,00100000B;

PC5=1

?JZSCAN;

NOMOVDX,218HINAL,DX;讀8255A的A口ANDAL,07HMOVBX,OFFSET

TABXLATTAB;查表[查詢方式程序清單]MOVDX,219HOUTDX,AL;表項(xiàng)輸出到B口JMPSCANRETURN:MOVAH,4CHINT21H;返回DOSI8255APROCMOVDX,21BHMOVAL,0B0HOUTDX,AL;寫入工作方式字MOVAL,08HOUTDX,AL;令PC4=0

(INTE

A=0)MOVDX,219HMOVAL,0FFHOUTDX,AL;熄滅LEDRETI8255AENDPCODEENDSENDBEG[查詢方式程序清單]5.

中斷方式的編程把實(shí)驗(yàn)電路8255A的PC3接ISA總線B4端子以便向系統(tǒng)機(jī)提出用戶中斷請求B口方式0輸出,A口方式1輸入,中斷方式方式選擇命令字:A口允許中斷命令字1

0

1

1

X

0

0

X=

B0HA口方式1輸入0

X

X

X

1

0

0

1B口方式0=09H輸出[中斷方式程序清單].486SEGMENTDATAMESGTABDB

'8255A

READY...',0DH,0AH,'$'DB

11111110BDB

11111101BDB

11111011BDB

11110111

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論