常用可編程并行數(shù)字接口芯片及其應(yīng)用_第1頁
常用可編程并行數(shù)字接口芯片及其應(yīng)用_第2頁
常用可編程并行數(shù)字接口芯片及其應(yīng)用_第3頁
常用可編程并行數(shù)字接口芯片及其應(yīng)用_第4頁
常用可編程并行數(shù)字接口芯片及其應(yīng)用_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

8常用可編程并行數(shù)字接口芯片及其應(yīng)用目前常用的可編程芯片有如下幾種:8255A

并行I/O接口8253/8254

計數(shù)器/定時器8259A

中斷控制器8237ADMA控制器通信(根據(jù)信息交換方式分類)并行通信串行通信可編程不可編程8.1可編程接口芯片的基本概念8.2定時/計數(shù)8253/8254

8.2.1系統(tǒng)的時間基準(zhǔn)

計算機(jī)是一種嚴(yán)格按時序進(jìn)行工作的數(shù)字化、智能化機(jī)器,因此,它離不開定時與計數(shù)。第一,計算機(jī)系統(tǒng)本身需要一個時間基準(zhǔn),以保證計算機(jī)在確定時刻完成規(guī)定動作,如動態(tài)存儲器的定時刷新等。計算機(jī)系統(tǒng)本身的時間基準(zhǔn)是它的主時鐘頻率(主頻)第二,用計算機(jī)構(gòu)成的測控系統(tǒng)常被要求能提供一些定時和計數(shù)的功能,如定時中斷,定時檢測、以及其它定時處理等。

定時與計數(shù)的本質(zhì)是一樣的,區(qū)別在于計數(shù)器的輸入信號CLK的不同。系統(tǒng)定時分類

1、軟件定時

軟件定時是實現(xiàn)系統(tǒng)定時或延時控制的最簡單的方法。軟件定時是指CPU執(zhí)行一段具有固定延時時間的循環(huán)程序。優(yōu)點是不需要外加硬件電路且定時精確。缺點是定時過程中,CPU一直在執(zhí)行該定時程序,不能做其它工作,定時時間越長,CPU的開銷越大,而且不能響應(yīng)中斷,否則定時就不準(zhǔn)確了。2、硬件定時

硬件定時是指由硬件電路來實現(xiàn)的定時。硬件定時的優(yōu)點減輕CPU的負(fù)擔(dān),使得在定時期間CPU能做其它工作。

不可編程的硬件定時如555時基電路;缺點:元件參數(shù)一經(jīng)設(shè)定就不能改變,電路調(diào)試也比較麻煩。另外,時間一長,電阻、電容器件老化,電路工作不穩(wěn)定,會嚴(yán)重影響定時準(zhǔn)確度和穩(wěn)定性。

可編程硬件定時,它是一種軟硬件結(jié)合的定時方法,是為了克服單獨的軟件定時和硬件定時的缺點,而將硬件電路做成通用的定時/計數(shù)器并集成到一個硅片上,其定時參數(shù)和工作方式又可由軟件來控制。如Intel的8253定時/計數(shù)器。8.2.18253主要特性

8253是為微型計算機(jī)配套而設(shè)計的一個可編程定時器/計數(shù)器芯片,24引腳雙列直插式封裝,采用單一的正5V。1、片內(nèi)具有3個獨立的16位減法計數(shù)器(或稱計數(shù)通道),每個計數(shù)器又可分成兩個8位的計數(shù)器。2、計數(shù)頻率為0~2MHz。3、兩種計數(shù)方式:即二進(jìn)制或BCD方式計數(shù)。4、六種工作方式,既可對系統(tǒng)時鐘脈沖計數(shù)實現(xiàn)定時,又可對外部事件進(jìn)行計數(shù)。5、可由軟件或硬件控制開始計數(shù)或停止計數(shù)。8.2.28253內(nèi)部結(jié)構(gòu)

數(shù)據(jù)總線緩沖器8D0~D7內(nèi)部總線CLK0計數(shù)器0GATE0OUT0計數(shù)器1CLK1GATE1OUT1計數(shù)器2CLK2GATE2OUT2讀/寫邏輯A0A1WRRDCS控制字寄存器1.數(shù)據(jù)總線緩沖器,CPU通過其傳遞對

8253進(jìn)行讀寫的內(nèi)容;2.讀寫邏輯控制,對8253內(nèi)部寄存器的讀寫操作3.控制寄存器(8位)——存放CPU送來的控制字,控制8253的工作方式及計數(shù)初值的寫入。4.有三個獨立的計數(shù)/定時通道——

計數(shù)器0,計數(shù)器1,計數(shù)器2。計數(shù)通道內(nèi)部邏輯框圖計數(shù)初值寄存器(16位):用于存放計數(shù)初值。在初始化時裝入的,一旦裝入,計數(shù)過程中保持不變。計數(shù)采用二進(jìn)制(0~FFFFH)或BCD碼(0~9999H)(計數(shù)初值R)=0000H時,初值max=65536/10000(計數(shù)初值R)=0001H時,初值min=1/1減1計數(shù)器(16位):用于進(jìn)行減1計數(shù)操作,每來一個CLK,它就作減1運(yùn)算,直至將計數(shù)初值減為零。

當(dāng)前計數(shù)值鎖存器(16位):用于鎖存減1計數(shù)器的內(nèi)容,以供讀出和查詢。計數(shù)初值與輸入時鐘(CLK)頻率及輸出波形(OUT)頻率之間的關(guān)系為:

初值=fCLK/fOUT例:fCLK=1.193MHz,fout=18.2HZ,

則初值=655498.2.38253外部特性

8253引腳功能8253引腳

8253與CPU的接口

8位數(shù)據(jù)線:D0~D7

尋址控制線:A0、A1、CS

讀寫控制線:RD、WR8253與外設(shè)的接口注:三個獨立的計數(shù)器/定時器時鐘輸入:CLK

輸入門控:GATE

波形輸出:OUT

8253的引腳信號D7~D0:數(shù)據(jù)總線,雙向,三態(tài)。用于與CPU之間傳遞信息。/RD:讀信號,CPU輸入到8253。通知8253把某個內(nèi)部R的值送數(shù)據(jù)線D7~D0。/WR:寫信號,CPU輸入到8253。

。通知8253把D7~D0上的值寫入內(nèi)部某個R中。/CS:片選信號,CPU輸入到8253。

通過地址譯碼邏輯電路與地址總線相連。A1、A0:地址線,CPU輸入到8253。指出當(dāng)前8253被訪問的是哪個R(端口)8253的讀寫操作及端口地址計數(shù)器的3個引腳CLK(時鐘):外部輸入給8253

在計數(shù)過程中,此引腳上每輸入1個時鐘信號(下降沿),計數(shù)器的計數(shù)值將減1GATE(門控):外部輸入給8253,控制計數(shù)器工作允許/關(guān)閉計數(shù)——高電平時允許計數(shù)觸發(fā)/重觸發(fā)計數(shù)——↑觸發(fā)開始計數(shù)或重裝初值OUT(計數(shù)器輸出)8253輸出到外部根據(jù)初始化設(shè)置工作方式的不同,OUT引腳可輸出單個或連續(xù)的波形信號。在PC/XT機(jī)中,8253端口地址譯碼如p391圖:

A9A8A7A6A5=00010參加譯碼實現(xiàn)片選(CS=0)

A4A3A2未用,A1A0接8253的A1A0。故系統(tǒng)分配給8253端口地址為40~05FH,實際只用了前4個,分別對應(yīng):

CNT0(40H)、CNT1(41H)、

CNT2(42H)、控制字端口(43H)8253

端口尋址參考P3048.2.38253編程命令一、8253的控制字二8253初始化編程編程命令有兩類

寫入命令寫控制字寫計數(shù)器初始值寫鎖存命令

讀出命令:讀取計數(shù)器當(dāng)前被鎖存的計數(shù)值。初始化編程必須嚴(yán)格遵守

先寫控制字,再對各計數(shù)器通道寫入初始值初始值的寫入,要符合控制字中的格式規(guī)定初始化編程8253初始化編程舉例(寫控制字和寫計數(shù)器初始值)初值決定了讀寫方式由CPU訪問輸出鎖存器,即可讀出每個計數(shù)器的計數(shù)值。如果是8位計數(shù)只需讀一次;如果是16位計數(shù),則要讀兩次,先讀低8位,后讀高8位。由于計數(shù)器在不停的計數(shù)過程中,必須先使用鎖存命令鎖存計數(shù)器的當(dāng)前值,再讀取計數(shù)器的值。8253鎖存讀出命令

先向控制寄存器寫鎖存命令,再讀被鎖存的計數(shù)值D7D6決定鎖存哪一個寄存器,D5D4=00為鎖存命令,D3D2D1D0可設(shè)定為全0。假定計數(shù)器1的初始化如例8.18253的工作方式

每個計數(shù)器有6種工作方式,其主要標(biāo)志有3點:一是輸出波形的不同二是啟動計數(shù)的方式不同

軟件啟動:寫入初值,則開始計數(shù)硬件啟動:寫入初值且GATE↑有效,則開始計數(shù)三是計數(shù)過程中GATE對計數(shù)操作的控制不同

GATE高/低電平:允許/停止計數(shù)(6種方式同)

GATE↑有效:觸發(fā)開始計數(shù)/觸發(fā)重裝初值(1)對計數(shù)器初始化后,計數(shù)器全部控制邏輯電路復(fù)位,輸出OUT為初始狀態(tài)(高/低電平);(2)初始化后,要經(jīng)過1個CLK↑和1個CLK↓,計數(shù)執(zhí)行部件才能開始減1計數(shù);(3)CLK↑時,計數(shù)器對GATE采樣,決定工作狀態(tài)

各種工作方式共同遵循的規(guī)則6種工作方式方式0:計數(shù)結(jié)束產(chǎn)生中斷輸出(軟件控制)方式1:重復(fù)觸發(fā)的單穩(wěn)輸出(硬件控制)方式2:分頻器(軟件控制)方式3:方波發(fā)生器(軟件控制)方式4:選通信號發(fā)生器(軟件觸發(fā))方式5:選通信號發(fā)生器(硬件觸發(fā))

CWN=4WROUT

N43210裝控制字裝初值計數(shù)開始計數(shù)結(jié)束GATE方式0——計數(shù)結(jié)束產(chǎn)生中斷CLKFF①n=5543210CLKWROUT軟件啟動,計數(shù)過程OUT=‘0’,減1計數(shù)到0,則OUT=‘1’,計數(shù)結(jié)束

——可作為中斷請求用;GATE↑的作用:無效不可自動重裝初值,需編程重新寫入初值才可繼續(xù)工作。在計數(shù)期間寫入新的初值,立即有效。n=55433210WRGATEOUT②WROUTn=9n=49843210③

CWN=3WRCLKGATEOUT

N3210FF3210FF裝控制字裝初值計數(shù)開始計數(shù)結(jié)束方式1——可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器WRGATEOUT①n=443210CLKGATEOUT443210②WRGATEOUT3210210n=2n=3③①硬件啟動②計數(shù)期間OUT為低電平,計數(shù)結(jié)束,OUT變?yōu)楦唠娖剑蔕UT為1個寬度為TW=N×TCLK

的負(fù)脈沖—單穩(wěn)觸發(fā)器。③

GATE↑的作用:觸發(fā)重裝初值計數(shù)④不能自動重裝初值,計數(shù)期間若重新寫入初值,要等當(dāng)前計數(shù)回零且GATE↑到來后,才有效。

CWN=3WRCLKGATEOUT

NN3213213213方式2——分頻器(脈沖信號發(fā)生器)①軟件啟動;②計數(shù)期間out=‘1’,計到1時,OUT=‘0’并保持1個CLK周期,然后OUT=‘1’,進(jìn)入下一個計數(shù)周期,故OUT為CLK

的1/N分頻信號。③GATE↑作用:無效④有自動裝入初值功能,不用編程也能連續(xù)工作;計數(shù)過程若編程重裝初值,則當(dāng)前計數(shù)結(jié)束后有效。

CWN=4WRCLKGATEOUT

NN43214321432與方式2類似,區(qū)別1:輸出方波,其占空比Q為:

N為偶數(shù):Q=0.5;N為奇數(shù):Q=(N+1)/2N。區(qū)別2:GATE↑有效,觸發(fā)重裝初值方式3——方波發(fā)生器

CWN=3WRCLKGATEOUT

NN3210FF3210FFN=3方式4——軟件觸發(fā)的選通信號發(fā)生器①軟件啟動。②計數(shù)結(jié)束(歸0)時,OUT產(chǎn)生一個寬度為1個CLK

周期的負(fù)脈沖——可作選通信號用③GATE↑作用:無效;④不能自動重裝初值,若編程重裝初值,立即有效

CWN=3WRCLKGATEOUT

NN3210FFFE3210FF方式5——硬件觸發(fā)的選通信號發(fā)生器①硬件啟動。②計數(shù)結(jié)束(歸0)時,使輸出OUT為一個寬度為1個

CLK周期的負(fù)脈沖——選通信號。③GATE↑的作用:觸發(fā)重裝初值計數(shù)④不能自動重裝初值,計數(shù)過程重裝初值,必須要在

GATE↑觸發(fā)有效。工作方式方式0與方式4的比較(軟件控制)啟動計數(shù)方式相同 都是軟觸發(fā),無自動重裝入能力 寫入控制字及初值后,若GATE=1,CE開始減計數(shù)當(dāng)CE=0時,OUT改變電平狀態(tài)OUT輸出不同不同點方式0在計數(shù)期間OUT=0,計數(shù)結(jié)束OUT=1方式4在計數(shù)期間OUT=1,計數(shù)結(jié)束OUT=負(fù)脈沖OUTOUT方式

1與方式5的比較(硬件觸發(fā))

啟動計數(shù)方式相同寫入控制字及初值后,若GATE↑觸發(fā),CE開始減計數(shù),當(dāng)CE=0時,OUT改變電平狀態(tài)OUT輸出不同方式1在計數(shù)期間OUT=0,計數(shù)結(jié)束OUT=1方式5在計數(shù)期間OUT=1,計數(shù)結(jié)束OUT=負(fù)脈沖計數(shù)期間GATEOUT計數(shù)期間GATEOUT方式2與方式3的比較(波形輸出)

相同點

啟動計數(shù)方式相同,均輸出連續(xù)周期波形,預(yù)置初值可自動重裝入不同點方式2輸出連續(xù)負(fù)脈沖周期波形方式3輸出連續(xù)方波周期波形方式3方式28.2.68253的應(yīng)用8253的端口地址為40H~43HCNT0—向系統(tǒng)提供定時中斷

CNT1——向DMAC系統(tǒng)提供定時中斷,定時刷新DRAMCNT2——提供喇叭的音調(diào)應(yīng)用一:在IBM-PC機(jī)中P4031、計數(shù)器0——向系統(tǒng)提供定時中斷工作方式及初值的確定分析:

fCLK0=1193181.6Hz,fOUT0=18.2Hz(周期為55ms)的方波控制8259A的IRQ0(日時鐘)的中斷,即每隔55ms產(chǎn)生一次中斷。初值=fCLK0/fOUT0=TOUT0/TCLK0=65536,采用二進(jìn)制計數(shù),則初值寄存器=0000H綜合:計數(shù)器0工作方式3(方波),二進(jìn)制計數(shù),初值N=0000H計數(shù)器0的初始化編程2、計數(shù)器1——向DMAC提供定時請求,刷新DRAM工作方式及初值的確定分析:

fCLK1=1193181.6Hz,TOUT1=15.6μs(周期為15.6μs)由OUT1每隔15.6μs向DMAC發(fā)送請求信號,以便對64KB的DRAM進(jìn)行刷新。初值=fCLK1/fOUT1=fCLK1*TOUT1=18

可以采用二進(jìn)制計數(shù),初值R=12H綜合:計數(shù)器1工作方式2(周期性負(fù)脈沖),二進(jìn)制計數(shù),初值R=12H計數(shù)器1的初始化編程或12H2、計數(shù)器2——提供喇叭的音調(diào)工作方式及初值的確定分析:

fCLK2=1193181.6Hz,fOUT2=600HZ,由OUT2向揚(yáng)聲器即喇叭提供頻率為600Hz的聲音信號,在PB1和PB0的控制下發(fā)出聲音。初值=fCLK2/fOUT2=1989

可以采用BCD碼計數(shù),初值R=1989H綜合:計數(shù)器2工作方式3(方波),BCD計數(shù),初值R=1989H計數(shù)器2的初始化編程H應(yīng)用二:系統(tǒng)機(jī)外擴(kuò)實驗臺的應(yīng)用P404分析:輸入fclk0=250kHz,輸出fOUT0=1/1=1Hz,設(shè)置初值:N=fclk0/fOUT0=250000>65536(10000)故需要使用兩個計數(shù)器(CNT0和CNT1)串聯(lián)使用,可以擴(kuò)大輸出脈沖的周期。如圖8.19所示,先由CNT0產(chǎn)生周期為10ms的方波作為CNT1

的輸入,再由CNT1產(chǎn)生周期為1S的負(fù)脈沖信號。工作方式及初值分析CNT0:工作于方式3(方波),二進(jìn)制計數(shù),初值N0=fclk0/fOUT0=fclk0*TOUT0=250K*10ms=2500=09C4HCNT1:工作于方式2(周期性負(fù)脈沖信號),二進(jìn)制計數(shù)。初值N1=fclk1/fOUT1=TOUT1/Tclk1=1s/10ms=100=64H編程如下:00110110B01110100B作業(yè)P4438.18.2計數(shù)與定時的區(qū)別

CLK為標(biāo)準(zhǔn)脈沖信號時——定時

CLK為標(biāo)準(zhǔn)脈沖信號時——計數(shù)

Intel8255A是一種通用的可編程序并行I/O接口芯片,又稱“可編程外設(shè)接口芯片”可由程序來改變其功能,通用性強(qiáng)、使用靈活。通過8255A,CPU可直接同并行外設(shè)相連接,是應(yīng)用最廣的并行I/O接口芯片。含3個獨立的8位并行輸入/輸出端口,各端口均具有數(shù)據(jù)的控制和鎖存能力??赏ㄟ^編程設(shè)置各端口的工作方式和數(shù)據(jù)傳送方向(入/出/雙向)。8.3可編程并行接口8255A8.3.18255A基本功能概述8.3.28255A內(nèi)部結(jié)構(gòu)及引腳(1)端口A對應(yīng)1個8位數(shù)據(jù)輸入鎖存器1個8位輸出鎖存器/緩沖器。(2)端口B對應(yīng)1個8位數(shù)據(jù)輸入緩沖器1個8位輸出鎖存器/緩沖器。

(3)端口C對應(yīng)1個8位數(shù)據(jù)輸入緩沖器1個8位輸出鎖存器/緩沖器。

數(shù)據(jù)端口A、B、C

通常使用方法:端口A、B作為獨立的輸入或者輸出端口,端口C配合端口A、B

A組控制和B組控制(1)A組控制電路

根據(jù)CPU寫入的方式控制字,控制A口和C口高4位的工作方式和讀寫操作。(2)B組控制電路

根據(jù)CPU寫入的方式控制字,控制B口和C口低4位的工作方式和讀寫操作。讀寫控制邏輯電路功能:管理CPU與8255三類信息的傳輸過程。數(shù)據(jù)總線緩沖器功能:通過它與系統(tǒng)數(shù)據(jù)總線相連。8255A引腳功能1.連接外設(shè)端的引腳PA0~PA7:A口外設(shè)數(shù)據(jù)線,接外設(shè);PB0~PB7:B口外設(shè)數(shù)據(jù)線,接外設(shè);PC0~PC7:C口外設(shè)數(shù)據(jù)線或聯(lián)絡(luò)線,接外設(shè)。2.連接系統(tǒng)總線的主要引腳D0~D7:數(shù)據(jù)線,雙向,連CPU數(shù)據(jù)總線;RESET:復(fù)位輸入,接系統(tǒng)總線的RESET;CS:片選控制輸入,接譯碼器;RD:讀命令輸入,接CPU的RD或IOR;WR:寫命令輸入,接CPU的WR或IOW;A0;A1:片內(nèi)端口地址輸入,可選4個片內(nèi)端口。8255通道選擇和基本操作表斷開功能CPU的DB→三態(tài)非法狀態(tài)CPU的DB→三態(tài)100×11×01×1××1×輸出操作(寫)CPU的DB→端口ACPU的DB→端口BCPU的DB→端口CCPU的DB→控制口00000000111101010011輸入操作(讀)端口A→CPU的DB端口B→CPU的DB端口C→CPU的DB000111000010001端口及操作功能A0A1RDWRCS在IBMPC/XT機(jī)中,有一片8255A,其占用的端口地址為60H~7FH共32個,實際只用到前4個——60H~63H分別為A口、B口、C口和控制口的地址。參考P3048255A的初始化:

8255A的各種工作方式由CPU對8255A寫入控制命令字來設(shè)定,這個過程稱為“初始化”。

8255A有2種控制命令字:

方式選擇控制字——確定3個端口的工作方式;

C口置位/復(fù)位控制字——確定C口某一位的初始狀態(tài),或用于設(shè)置INTE位的值(用于方式1,2)。8.3.38255A控制字皆寫入控制口1.8255的工作方式控制字1D7D6D5D4D3D2D1D00輸出1輸入PC3~PC0B口0

輸出1輸入0方式01方式1B口工作方式PC7~PC40輸出1輸入A口0輸出1輸入特征位,D7=1表示是方式控制字A口工作方式00方式001方式11x方式2A組控制B組控制例A端口方式1輸入、B端口方式1輸出、

PC6,PC7作輸入,給出方式控制字。1011110X1010011XBCHA7HA端口方式1輸出、B端口方式1輸入、

PC4,PC5作輸出,給出方式控制字。0D7D6D5D4D3D2D1D00復(fù)位1置位設(shè)置內(nèi)容特征位,D7=0表示是C口按位置位/復(fù)位控制字無意義選擇設(shè)置位2、C端口置/復(fù)位控制字D3D2D1C端口位000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7解:

MOVDX,0063H

;置DX為控制口地址

MOVAL,00000100B;置PC2為0OUTDX,ALMOVAL,00001001B;置PC4為1OUTDX,AL例、通過控制口置PC2為0,置PC4為1

例:設(shè)8255的A端口工作于方式1輸入,B端口工作于方式0輸出,置PC4=1,(8255的操作地址為60H~63H)MOVAL,0B0H;1011000XOUT63H,AL;寫方式控制字

MOVAL,09H;0XXX01001OUT63H,AL

;寫置/復(fù)位控制字b7b6b5b4b3b2b1b01011000xb7b6b5b4b3b2b1b00xxx1001C口置/復(fù)位控制字工作方式控制字8.3.48255的工作方式A端口有三種工作方式方式0、方式1、方式2B端口有二種工作方式方式0、方式1C端口無工作方式選擇工作于方式0,或作為A、B端口工作于方式1、2時的聯(lián)絡(luò)信號注:方式0(基本輸入/輸出):常用于無條件傳輸方式1(選通輸入/輸出):常用于查詢和中斷方式方式2(雙向數(shù)據(jù)傳送):常用于查詢和中斷方式工作方式方式0—基本輸入和輸出方式。A、B與C口之間沒有硬件聯(lián)系,即可分別作為獨立的輸入或輸出端口方式1—選通輸入/輸出方式:A口輸入/輸出分別與C口的PC3、4、5/PC3、6、7聯(lián)用;B口與C口(PC0~PC2)聯(lián)用;C口的剩余線只能工作于方式0。方式2—雙向輸入/輸出方式。只有A口可工作于此方式,C口的PC3~PC7可作為A端口雙向工作的專用狀態(tài)聯(lián)絡(luò)線。B口可工作在方式1,則C口的PC0~PC2作為專用的聯(lián)絡(luò)信號線。方式0(基本輸入/輸出方式)特點:

1)

8255A相當(dāng)于三個獨立的8位數(shù)據(jù)口,即A口、

B口、C口(C口又可分為兩個4位的端口)。

2)各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時實現(xiàn)輸入及輸出。

3)設(shè)置為輸出口時有鎖存能力,設(shè)置為輸入口有緩沖而無鎖存能力。

C端口即可以作為一個8位端口,也可以分為兩個獨立的4位端口,各端口單向傳輸。D7D6D5D4D3D2D1D0特征位A口方式0A口輸入PC7~PC4輸出B口方式0B口輸出10010001PC3~PC0輸入應(yīng)用無條件傳送方式

A、B、C端口均傳送數(shù)據(jù)信息

查詢方式

A、B端口傳送數(shù)據(jù),C端口傳送狀態(tài)工作在方式0的端口作為輸入口相當(dāng)于普通的三態(tài)門作為輸出口相當(dāng)于普通的鎖存器二、方式1(選通輸入/輸出)功能:A、B端口作8位數(shù)據(jù)輸入或輸出,C端口的特定位為A、B端口服務(wù)電特性:作輸入/輸出時,A、B端口皆有鎖存功能

應(yīng)用:查詢方式:C端口特定位傳送狀態(tài)中斷方式:C端口特定位發(fā)中斷請求1011/01/011/01/0D7D6D5D4D3D2D1D0特征位A口工作方式

A口I/OPC7~PC4I/OB口工作方式

B口I/OPC3~PC0I/O10111/0×××A口方式1輸入控制字1××××11×B口方式1輸入控制字PA7~PA0PC4PC5PC3INTEAC口:D4與門IBFASTBAINTRARDD7~D0A口方式1輸入固定的聯(lián)絡(luò)信號B口方式1輸入時固定的聯(lián)絡(luò)信號PB7~PB0PC2PC1PC0INTEBC口:D2與門IBFBSTBBINTRBRDD7~D0表示PC6、PC7為輸入/輸出A,B口工作在方式1作為輸入口時,C口特定位作為聯(lián)絡(luò)信號方式1下輸入端口的聯(lián)絡(luò)信號輸入設(shè)備數(shù)據(jù)準(zhǔn)備好發(fā)出此信號給8255A作用是將外設(shè)送來的數(shù)據(jù)鎖存到8255A的輸入口②IBF:輸入緩沖器滿信號(高電平有效)8255A的輸入端口收到數(shù)據(jù)后自動發(fā)此信號給外設(shè)作為應(yīng)答。表示數(shù)據(jù)已進(jìn)入輸入口,但CPU未取走,此時外設(shè)不能再送新數(shù)據(jù)過來。③

INTR:中斷申請信號(高電平或上升沿有效)8255A發(fā)出,向CPU發(fā)出中斷申請,請求將輸入口的數(shù)據(jù)取走(INAL,DX)。①STB:選通信號(低電平有效)STB、IBF、INTE均為1時,8255A自動發(fā)INTR④INTE:中斷允許控制信號控制是否允許8255A的INTR的發(fā)出。此信號無引出,通過控制口對C口相應(yīng)位的置位/復(fù)位,設(shè)置允許或不允許。

A口,對PC4(C口D4)置位,使INTEA=1,允許中斷復(fù)位,使INTEA=0,禁止中斷

B口,對PC2(C口D2)置位,使INTEB=1,允許中斷復(fù)位,使INTEB=0,禁止中斷注意:在方式1下,作為聯(lián)絡(luò)信號的外部引腳

PC4、PC2,不受C口按位置位/復(fù)位控制字的控制。PB7~PB0PA7~PA0STBIBFINTRRD外設(shè)送來數(shù)據(jù)②⑤當(dāng)INTE=1時

①AB口方式1的輸入時序③④STB的↓使得IBF變?yōu)椤?”有效;INTE=1和IBF=1,STB↑使得INTR變?yōu)椤?”有效;RD↓使得INTR復(fù)位無效,RD↑使得IBF=“0”無效10101/0A口方式1輸出控制字110B口方式1輸出控制字A口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號B口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號方式1下輸出端口的聯(lián)絡(luò)信號PA7~PA0PC7PC6PC3INTEAC口:D6與門ACKAOBFAINTRAWRD7~D0PB7~PB0PC1PC2PC0INTEBC口:D2與門ACKBOBFBINTRBWRD7~D0表示PC4、PC5為輸入/輸出由外設(shè)發(fā)出,送給8255A。作用是通知8255A,輸出端口的數(shù)據(jù)已被外設(shè)取走,可以傳送下一個數(shù)據(jù)。③INTR:中斷申請信號(高電平或上升沿有效)8255A發(fā)出,用來向CPU發(fā)出中斷申請。方式1下輸出端口的聯(lián)絡(luò)信號①OBF:輸出緩沖器滿信號(低電平有效)②ACK:外設(shè)響應(yīng)信號(低電平有效)當(dāng)OBF、ACK、INTE均為1時,8255A自動發(fā)出INTRCPU執(zhí)行“OUTDX,AL”,AL中數(shù)據(jù)送至8255A輸出緩沖器后,8255A自動發(fā)出此信號。表明8255A輸出端口中有數(shù)據(jù),可用來通知外設(shè)把數(shù)據(jù)取走。④

INTE:中斷允許控制信號作用是控制是否允許中斷申請信號INTR發(fā)出此信號無引出,通過控制口對C口相應(yīng)位的置位/復(fù)位設(shè)置允許或不允許。A口,對PC6(C口D6)置位,使INTEA=1,允許中斷復(fù)位,使INTEA=0,禁止中斷B口,對PC2(C口D2)置位,使INTEB=1,允許中斷復(fù)位,使INTEB=0,禁止中斷注意:在方式1下,作為聯(lián)絡(luò)信號的外部引腳PC6、PC2,不受C口按位置位/復(fù)位控制字控制①D7~D0CPU輸出的DATADATA寫入端口A/BWROBFINTRACK②當(dāng)INTE=1時

AB口方式1的輸出時序③④⑤WR↑使得CPU的data寫入端口,使得OBF有效=“0”,使得INTR無效=“0”ACK↓使得OBF無效=“1”,RD↑使得IBF=“0”無效INTE=1和OBF=1,ACK↑使得INTR有效=“1”8255的狀態(tài)字為采用程序查詢的數(shù)據(jù)交換方式提供了狀態(tài)標(biāo)志

輸入:IBF

輸出:OBFCPU通過讀C端口獲得狀態(tài)字方式1,A組和B組的工作狀態(tài)字注意:

C端口的狀態(tài)位與C端口的外部引腳PC7~PC0狀態(tài)不完全一致方式1,A組和B組的工作狀態(tài)字D7D6D5D4D3D2D1D0I/OI/OIBFAINTEAINTRAPC7PC6PC5PC4PC3A口作輸入口OBFAINTEAI/OI/OINTRAPC7PC6PC5PC4PC3A口作輸出口INTEBIBFBINTRBPC2PC1PC0B口作輸入口B口作輸出口INTEBOBFBINTRBPC2PC1PC0A組狀態(tài)B組狀態(tài)STBAACKBC口的狀態(tài)字ACKASTBB方式1用于查詢方式時:輸入/輸出時,CPU查詢C口的IBF/OBF標(biāo)志方式1A口B口輸入時的狀態(tài)字方式1A口B口輸出時的狀態(tài)字C端口C端口STBASTBBACKBACKA方式1用于于中斷方式時:輸入時,輸入設(shè)備通過STB向8255A發(fā)中斷請求;輸出時,輸出設(shè)備通過ACK向8255A發(fā)中斷請求。方式

2——雙向輸入/輸出功能

僅A端口具有雙向數(shù)據(jù)傳送功能

C端口特定位的組合應(yīng)用

電特性A端口具有雙向鎖存和緩沖特性

應(yīng)用A端口雙向傳送數(shù)據(jù)

查詢方式:C端口特定位傳送狀態(tài)中斷方式:C端口特定位發(fā)中斷請求

工作在方式2時,C口有5根引腳作為A口的聯(lián)絡(luò)信號,是方式1下A口輸入、輸出聯(lián)絡(luò)信號的組合PA7~PA0PC6PC7ACKAOBFAD7~D0RDWRPC4PC5STBAIBFAINTEA1PC4INTEA2PC6與門PC3INTRA或門與門方式2時的狀態(tài)字例:8255A控制LED發(fā)光二極管A端口接8個開關(guān)B端口接8個LED發(fā)光二極管要求:開關(guān)斷開LED亮,反之滅圖8.358088外擴(kuò)展8255A接線圖端口地址:0218~021BH方式0,A口輸入,B口輸出:控制字為10010000B

[例8.11]

8255A端口地址0218H~021BH

8253A端口地址20H和21H(已初始化)分析:8255A的A端口工作在方式1作為輸出口用,B口未用。打印機(jī)與CPU采用中斷的方式進(jìn)行數(shù)據(jù)的傳遞打印機(jī)的工作情況及與8255接口的聯(lián)絡(luò)線當(dāng)打印機(jī)處于“空閑”狀態(tài)時,BUSY=0,同時向8255A發(fā)出一個負(fù)脈沖ACK作為應(yīng)答信號,表示字符打印完成;CPU得知打印機(jī)空閑(檢測BUSY=0或

IR3的中斷請求有效),將一個新的打印字符送入8255的A口,此時CPU再通過PC0向打印機(jī)發(fā)送一個選通脈沖,將字符送入打印機(jī),此時打印機(jī)BUSY=0表示打印機(jī)忙;CPU得知打印機(jī)忙(檢測BUSY=1或

IR3的中斷請求無效),則不再發(fā)新字符給打印機(jī),直到得知打印機(jī)空閑再發(fā)新數(shù)據(jù)過去8255的工作情況及與打印機(jī)和CPU接口的聯(lián)絡(luò)線A口方式1,作為輸出口PC0產(chǎn)生打印機(jī)的選通脈沖,而自動聯(lián)絡(luò)線PC7未用PC6接受打印機(jī)的應(yīng)答信號ACK輸入PC3自動作INTR,接中斷控制器8253A的IR3,中斷類型號0BH,中斷向量在向量表中0002CH~0002FH這四個單元中單元通道C其他位及通道B未用PA7~PA0PC7PC6PC3INTEAPC6與門ACKAOBFAINTRAWRD7~D0軟件程序如下:指向下一個打印字符例:

8255A打印機(jī)接口設(shè)8255A的端口地址分別為0C0H、0C2H、0C4H和0C6H,A口為方式1輸出8255端口線的使用A為數(shù)據(jù)通道,方式1,輸出PC0產(chǎn)生打印機(jī)的選通脈沖PC7未用;PC6為ACK輸入PC3自動作INTR,接中斷控制器8253A的IR3,中斷類型號0BH,中斷向量在0002CH~0002FH單元通道C其他位及通道B未用PA7~PA0PC7PC6PC3INTEAPC6與門ACKAOBFAINTRAWRD7~D08255初始化MOV AL,0A0H ;初始化,1010XXX0OUT 0C6H,AL;控制字MOV AL,1 ;PC0=1,選通無效OUT 0C6H,AL設(shè)置中斷向量設(shè)置向量0100H:2000HPUSHDS ;保護(hù)原數(shù)據(jù)段XORAX,AXMOVDS,AX ;設(shè)向量表段地址為0000HMOV AX,2000HMOV WORDPTR[002CH],AX;中斷服務(wù)程序偏移地址MOV AX,0100HMOV WORDPTR[002EH],AX;中斷服務(wù)程序段地址POP DS

;恢復(fù)原數(shù)據(jù)段8255中斷設(shè)置MOV AL,0DH ;00001101;PC6置1OUT 0C6H,AL ;允許8255A中斷STI ;CPU開中斷;主程序中斷服務(wù)程序中斷服務(wù)程序發(fā)選通信號,將數(shù)據(jù)送打印機(jī)打印機(jī)接收并打印字符后發(fā)出應(yīng)答信號,清除8255A的數(shù)據(jù)緩沖區(qū)滿信號RINT:MOVAL,[DI] ;輸出字符送A通道

OUT0C0H,ALMOVAL,0 ;PC0產(chǎn)生低電平脈沖選通信號

OUT 0C6H,AL;00000000,PC0置0INC ALOUT 0C6H,AL;00000001,PC0置1… ;后續(xù)處理

溫馨提示

  • 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

提交評論