




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、可編程接口芯片第八章1主要內(nèi)容并行接口芯片8255A結(jié)構(gòu)工作方式應(yīng)用LED打印機(jī)*2CPU與外設(shè)的接口接口的組成和功能數(shù)據(jù)鎖存/緩沖:速度匹配、信號(hào)隔離命令和狀態(tài)寄存器地址譯碼:內(nèi)部端口選擇讀寫(xiě)控制中斷/DMA請(qǐng)求邏輯可編程接口芯片多通道多功能可編程:通過(guò)編程設(shè)置各個(gè)通道的工作模式可編程微處理器、可編程芯片。3接口信號(hào)CPU側(cè)CS*:M/IO*:RD*、WR*:DMA、INT地址總線(xiàn)數(shù)據(jù)總線(xiàn)外設(shè)側(cè):STB*、RDY輸入接口:STB*:外設(shè)-接口,RDY:接口-外設(shè),IBF輸出接口:STB*:外設(shè)-接口,ACKRDY:接口-外設(shè),OBF數(shù)據(jù)總線(xiàn)4并行接口8255A的工作方式
2、和編程8255A的應(yīng)用簡(jiǎn)易鍵盤(pán)的掃描程序LED數(shù)碼管的多位顯示5并行數(shù)據(jù)傳輸方式以計(jì)算機(jī)的字長(zhǎng)(通常是8位、16位或32位)為傳輸單位,一次傳送一個(gè)字長(zhǎng)的數(shù)據(jù)適合于外部設(shè)備與微機(jī)之間進(jìn)行近距離、大量和快速的信息交換例如:微機(jī)與并行接口打印機(jī)、磁盤(pán)驅(qū)動(dòng)器微機(jī)系統(tǒng)中最基本的信息交換方法例如:系統(tǒng)板上各部件之間,接口電路板上各部件之間6并行接口芯片8255A具有多種功能的可編程并行接口電路芯片最基本的接口電路:三態(tài)緩沖器和鎖存器與CPU間、與外設(shè)間的接口電路:狀態(tài)寄存器和控制寄存器還有端口的譯碼和控制電路、中斷控制電路分3個(gè)端口,共24個(gè)外設(shè)引腳共三種輸入輸出工作方式78255A的內(nèi)部結(jié)構(gòu)和引腳數(shù)據(jù)
3、總線(xiàn)緩沖器內(nèi)部控制線(xiàn)內(nèi)部數(shù)據(jù)線(xiàn)D0D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部讀寫(xiě)控制邏輯PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET81. 外設(shè)數(shù)據(jù)端口端口A:PA0PA7A組,支持工作方式0、1、2常作數(shù)據(jù)端口,功能最強(qiáng)大端口B:PB0PB7B組,支持工作方式0、1常作數(shù)據(jù)端口端口C:PC0PC7僅支持工作方式0可作數(shù)據(jù)、狀態(tài)和控制端口分兩個(gè)4位,每位可獨(dú)立操作A組控制高4位PC4PC7B組控制低4位PC0PC392. 與處理器接口CS A1 A0讀操作RD寫(xiě)操作WR0 0 00 0 10 1 00 1 1讀端口A讀端口B讀端口C非
4、法寫(xiě)端口A寫(xiě)端口B寫(xiě)端口C寫(xiě)控制字108255A的工作方式方式0:基本輸入輸出方式適用于無(wú)條件傳送的接口電路方式1:選通輸入輸出方式適用于查詢(xún)和中斷方式的接口電路方式2:雙向選通傳送方式適用于雙向傳送數(shù)據(jù)的外設(shè)適用于查詢(xún)和中斷方式的接口電路11方式0輸入時(shí)序datadata輸入端口D0D7RD CS,A1,A012方式0輸出時(shí)序WRdatadata輸出端口D0D7 CS,A1,A013方式1輸入引腳:A端口表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)通知外設(shè)停止發(fā)送數(shù)據(jù)請(qǐng)求CPU接收數(shù)據(jù)PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器PC6-7I/O1213414方式1輸入引腳:B端
5、口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿(mǎn)信號(hào)表示B口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)中斷允許觸發(fā)器1213415方式1輸入聯(lián)絡(luò)信號(hào)STB選通信號(hào),低電平有效由外設(shè)提供的輸入信號(hào),當(dāng)其有效時(shí),將輸入設(shè)備送來(lái)的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF輸入緩沖器滿(mǎn)信號(hào),高電平有效8255A輸出的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),表示數(shù)據(jù)已鎖存在輸入鎖存器INTR中斷請(qǐng)求信號(hào),高電平有效8255A輸出的信號(hào),可用于向CPU提出中斷請(qǐng)求,要求CPU讀取外設(shè)數(shù)據(jù)注意:PC7、PC6可以單獨(dú)用于I/O16方式1輸入時(shí)序dataINTRIB
6、F dataPA/PBD0D7STBRDINTR高電平有效RD*清INTR和IBF17方式1中斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復(fù)位禁止中斷對(duì)INTE的置位/復(fù)位操作由端口C的對(duì)應(yīng)位實(shí)現(xiàn)端口A的INTEA對(duì)應(yīng)PC4端口B的INTEB對(duì)應(yīng)PC2PC4PC5PC3PA7PA0INTEAIBFAINTRASTBAPC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB18方式1輸出引腳: A端口外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿(mǎn)信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7PA0INTEAOBFAINTRAA
7、CKA中斷允許觸發(fā)器21134PC4-5I/O19方式1輸出引腳:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿(mǎn)信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器2113420方式1輸出聯(lián)絡(luò)信號(hào)OBF輸出緩沖器滿(mǎn)信號(hào),低有效8255A輸出給外設(shè)的一個(gè)控制信號(hào),當(dāng)其有效時(shí),表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走ACK響應(yīng)信號(hào),低有效外設(shè)的響應(yīng)信號(hào),指示8255A的端口數(shù)據(jù)已由外設(shè)接受(“完成時(shí)態(tài)”?。㊣NTR中斷請(qǐng)求信號(hào),高有效當(dāng)輸出設(shè)備已接受數(shù)據(jù)后,8255A輸出此信號(hào)向CPU提出中斷請(qǐng)
8、求,要求CPU繼續(xù)提供數(shù)據(jù)端口A的INTEA對(duì)應(yīng)PC6端口B的INTEB對(duì)應(yīng)PC2PC4、PC5可以單獨(dú)用于I/O21方式1輸出時(shí)序 INTR datadataPA/PBD0D7WROBFACK 當(dāng)ACK、OBF都為高時(shí),INTR有效22方式2雙向方式方式2將方式1的選通輸入以及輸出功能組合成一個(gè)雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)只有端口A可以工作于方式2,需要利用端口C的5個(gè)信號(hào)線(xiàn),其作用與方式1相同方式2的數(shù)據(jù)輸入過(guò)程與方式1的輸入方式一樣方式2的數(shù)據(jù)輸出過(guò)程與方式1的輸出方式有一點(diǎn)不同:數(shù)據(jù)輸出時(shí)8255A不是在OBF有效時(shí)向外設(shè)輸出數(shù)據(jù),而是在外設(shè)提供響應(yīng)信號(hào)ACK時(shí)才送出數(shù)據(jù)23方
9、式2雙向引腳PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設(shè)置INTE1(輸出用)用PC4設(shè)置INTE2(輸入用)輸入和輸出中斷通過(guò)或門(mén)輸出INTRA信號(hào)24方式2雙向時(shí)序data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACKSTBRD258255A的編程初始化編程:一個(gè)方式控制字采用控制I/O地址:A1A011工作過(guò)程中:通過(guò)數(shù)據(jù)端口對(duì)外設(shè)數(shù)據(jù)進(jìn)行讀寫(xiě)數(shù)據(jù)讀寫(xiě)利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBM PC/XT機(jī)上,端口A、B、C和控制
10、端口的I/O地址為60H、61H、62H和63H261. 寫(xiě)入方式控制字:控制字格式271. 寫(xiě)入方式控制字:示例要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001,即B1H初始化的程序段:mov dx,0fffeh;假設(shè)控制端口為FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口282. 讀寫(xiě)數(shù)據(jù)端口初始化編程后:當(dāng)數(shù)據(jù)端口作為輸入接口時(shí),執(zhí)行輸入IN指令將從輸入設(shè)備得到外設(shè)數(shù)據(jù)當(dāng)數(shù)據(jù)端口作為輸出接口時(shí),執(zhí)行輸出OUT指令將把CPU的數(shù)據(jù)送給輸出設(shè)備8255A具有鎖存輸出數(shù)據(jù)的能力可以讀入輸出方式的端口鎖存器中
11、的值,進(jìn)行按位處理后再次輸出注意:不是讀取外設(shè)數(shù)據(jù),而是讀取上一次CPU發(fā)給外設(shè)的數(shù)據(jù)292. 讀寫(xiě)數(shù)據(jù)端口:示例利用8255A的輸出鎖存能力,可實(shí)現(xiàn)按位輸出控制 對(duì)輸出端口B的PB7位置位的程序段:mov dx,0fffah;B端口假設(shè)為FFFAHin al,dx;讀出B端口原輸出內(nèi)容or al,80h;使PB71out dx,al;輸出新的內(nèi)容303. 端口C的說(shuō)明C端口被分成兩個(gè)4位端口,兩個(gè)端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組當(dāng)A和B端口工作在方式1或方式2時(shí),C端口的部分或全部引腳將被征用,即被征用引腳的功能不
12、由方式字定義,而是由A、B口的工作方式確定其余引腳仍可設(shè)定工作在方式0313. 寫(xiě)端口C對(duì)端口C的數(shù)據(jù)輸出有兩種辦法通過(guò)端口C的I/O地址:向C端口直接寫(xiě)入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫(xiě)進(jìn)C端口的輸出鎖存器,并從輸出引腳輸出,但對(duì)設(shè)置為輸入的引腳無(wú)效通過(guò)控制端口:向C端口寫(xiě)入位控字,使C端口的某個(gè)引腳輸出1或0,或置位復(fù)位內(nèi)部的中斷允許觸發(fā)器32端口C的位控制字333. 讀端口C讀取的C端口數(shù)據(jù)有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到外設(shè)輸入的數(shù)據(jù);將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯(lián)絡(luò)線(xiàn)的引腳:將讀到反映8255A狀態(tài)的狀態(tài)字34D7D6D5D4D3D
13、2D1D0方式1輸入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1輸出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2雙向OBFAINTE1IBFAINTE2INTRA端口C的狀態(tài)字A組B組358255A的應(yīng)用作為通用的并行接口電路芯片,8255A具有廣泛的應(yīng)用驅(qū)動(dòng)LED數(shù)碼管打印機(jī)接口電路36LED數(shù)碼管及其接口發(fā)光二極管LED是最簡(jiǎn)單的顯示設(shè)備由7段LED就可以組成的LED數(shù)碼管LED數(shù)碼管廣泛用于單板微型機(jī)、微型機(jī)控制系統(tǒng)及數(shù)字化儀器中LED數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等371. LED數(shù)碼管的工作原理主要部分是7段發(fā)光管順時(shí)針?lè)謩e稱(chēng)
14、為a、b、c、d、e、f、g有的產(chǎn)品還附帶有一個(gè)小數(shù)點(diǎn)h通過(guò)7個(gè)發(fā)光段的不同組合顯示09顯示AF(實(shí)現(xiàn)16進(jìn)制數(shù)的顯示)顯示個(gè)別特殊字符,如、P 等hgfedcba38LED數(shù)碼管的結(jié)構(gòu)共陽(yáng)極陽(yáng)極+5Vabcdefgh陰極abcdefgh共陰極392. 單個(gè)LED數(shù)碼管的顯示8255APA0PA1PA2PA3PA4PA5PA6PA7驅(qū)動(dòng)電路abcdefgh8086CPU40單個(gè)數(shù)碼管的顯示LEDtbdb 3fh,06h,5bh,;顯示代碼表mov al, 1 ;AL要顯示的數(shù)字mov bx, offset LEDtbxlat ;換碼:ALDS:BXALmov dx, portout dx, a
15、l;輸出顯示413. 多個(gè)LED數(shù)碼管的顯示8個(gè)數(shù)碼管:用2個(gè)8位輸出端口控制硬件上用公用的驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)各數(shù)碼管軟件上用掃描方法實(shí)現(xiàn)數(shù)碼顯示每個(gè)顯示2ms428個(gè)LED數(shù)碼管的接口電路段選擇碼(字符)位選擇碼43并行打印機(jī)接口一般采用Centronics標(biāo)準(zhǔn)接口或其簡(jiǎn)化接口Centronics接口是的一個(gè)并行接口協(xié)議該協(xié)議規(guī)定了36腳簧式插頭座和信號(hào)含義其中前11條線(xiàn)是關(guān)鍵信號(hào),它們是8條數(shù)據(jù)線(xiàn)、3條聯(lián)絡(luò)線(xiàn)(選通、響應(yīng)和打印機(jī)忙)還有一些特殊控制線(xiàn)、狀態(tài)線(xiàn)PC系列機(jī)的并行打印機(jī)接口是一個(gè)25針D型插口44打印機(jī)接口信號(hào)數(shù)據(jù)控制握手STB*:負(fù)脈沖的寬度在接收端應(yīng)大于0.5s,數(shù)據(jù)才可靠地存入
16、打印機(jī)數(shù)據(jù)緩沖區(qū)ACK*:打印機(jī)接收一個(gè)數(shù)據(jù)字節(jié)后就回送一個(gè)響應(yīng)的負(fù)脈沖信號(hào)(脈寬約為5s),表示打印機(jī)已準(zhǔn)備好接收新數(shù)據(jù)INIT*:初始化AUTOFEEDXT:自動(dòng)換行SLCTIN*:選擇打印機(jī)打印機(jī)狀態(tài)BUSY:打印機(jī)忙SLCT:打印機(jī)聯(lián)機(jī)PE:缺紙ERR*:當(dāng)打印機(jī)處于無(wú)紙、脫機(jī)或錯(cuò)誤狀態(tài)之一時(shí)45打印機(jī)工作過(guò)程通信過(guò)程主機(jī)把數(shù)據(jù)送給引腳DATA0DATA7同時(shí)送出數(shù)據(jù)選通信號(hào)STROBE*打印機(jī)在BUSY信號(hào)線(xiàn)上發(fā)出忙信號(hào)打印機(jī)處理好輸入的數(shù)據(jù)時(shí)撤消忙信號(hào)同時(shí)又送出一個(gè)響應(yīng)信號(hào)ACK*注意:此時(shí)選通(STROBE*)與應(yīng)答(ACK*)信號(hào)的方向與前述一般接口的信號(hào)定義相反46打印機(jī)信號(hào)
17、與時(shí)序BUSYDATA07ACKSTROBE47用8255A方式0與打印機(jī)接口BUSY DATA078255APC7PC2PA0PA7打印機(jī)STROBE注意:不考慮ACK*488255A的初始化mov dx,0fffeh ;控制端口地址:FFFEHmov al,10000001B;方式控制字:91Hout dx,al ; A端口方式0輸出,C端口上輸出、下輸入mov al,00001111B;端口C的復(fù)位置位控制字,使PC71out dx,al49打印子程序:查詢(xún)printcprocpush axpush dxprn: mov dx,0fffch;讀取端口Cin al,dx;查詢(xún)打印機(jī)狀態(tài)an
18、d al,04h;PC2BUSY0?jnz prn;PC21,打印機(jī)忙,則循環(huán)等待50打印子程序:輸出;PC20,打印機(jī)不忙,則輸出數(shù)據(jù)到8255mov dx,0fff8hmov al,ah;ah字符out dx,al;將打印數(shù)據(jù)從端口A輸出51打印子程序:控制打印機(jī)打印mov dx,0fffeh;從PC7送出控制低脈沖mov al,00001110B;置STROBE*0out dx,alnop;產(chǎn)生一定寬度的低電平nopmov al,00001111B;置=1out dx,al;最終,STROBE*產(chǎn)生高脈沖信號(hào)52打印子程序:返回pop dxpop axretprintcendp53用82
19、55A方式1與打印機(jī)接口1000pf2K15321441LS123單穩(wěn)電路+5VDATA078255APC6INTRPC3PC7PA0PA7打印機(jī)ACKACKOBFSTROBEPC4BUSY548255A方式1與打印機(jī)接口時(shí)序配合PA0PA7(DATA07)ACKOBFSTROBE558255A的初始化mov dx,0fffeh ;控制端口mov al,0a8h ;A口方式1輸出 10101000Bout dx,almov al,0ch ;使INTEA(PC6)為0,禁止中斷(查詢(xún)模式)out dx,almov cx,counter;打印字節(jié)數(shù)送CXmov bx,offset buffer;取
20、字符串首地址call prints;調(diào)用打印子程序56打印子程序:輸出printsprocpush ax;保護(hù)寄存器push dxprint1:mov al,bx;取一個(gè)數(shù)據(jù)mov dx,0fff8hout dx,al;從端口A輸出 57打印子程序:查詢(xún)mov dx,0fffch ;C端口地址print2:in al,dxtest al,80h;檢測(cè)(PC7)為1否?;1,說(shuō)明OBF*已經(jīng)無(wú)效,一次打印完成jz print2;為0,說(shuō)明打印尚未完成,繼續(xù)檢測(cè) Print3: test al,10h ;檢測(cè)(PC4)為0否?;0,說(shuō)明BUSY已經(jīng)無(wú)效,一次打印完成 jnz print3 ;為1,
21、說(shuō)明打印尚未完成,繼續(xù)檢測(cè) 58打印子程序:返回; 以上兩條件滿(mǎn)足,說(shuō)明打印機(jī)已接受數(shù)據(jù)并打印完畢。inc bx;準(zhǔn)備取下一個(gè)數(shù)據(jù)輸出loop print1pop dx;打印結(jié)束,恢復(fù)寄存器pop axret;返回printsendp59示例中的兩種工作方式的差別都為查詢(xún)方式方式0中的選通信號(hào)“手動(dòng)”生成方式1中的選通信號(hào)自動(dòng)生成思考題:用方式2如何接口?60雙機(jī)并行通信接口PA0PA7PC4PC08255A甲方(發(fā)送)PA0PA7PC7PC6 PC38255A乙方(接收)甲方:方式1,查詢(xún)方式乙方:方式0AB61甲機(jī)的初始化mov dx,0fffehmov al,0a0hout dx,al;工作方式字:端口A方式1輸出mov al,0dh;使PC6(INTEA)1,允許中斷out dx,al62甲機(jī)發(fā)送程序trsmt: mov dx,0fffchin al,dx;查詢(xún)PC3(INTRA)1?and al,08hj
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 做門(mén)面招牌合同范本
- 公司鋼材購(gòu)銷(xiāo)合同范本
- 加裝電梯合伙合同范本
- 出租農(nóng)場(chǎng)果園合同范本
- 與銀行簽訂合同范本
- 分傭合同范例
- 個(gè)人軟件項(xiàng)目合同范本
- 個(gè)人演出雇用合同范本
- 加盟合同范本化妝
- 內(nèi)墻無(wú)機(jī)涂料合同范本
- 《自主創(chuàng)新對(duì)于鋼結(jié)構(gòu)發(fā)展的重要性》2400字
- 食品采購(gòu)與進(jìn)貨臺(tái)賬
- GB/T 24353-2022風(fēng)險(xiǎn)管理指南
- GB/T 6284-2006化工產(chǎn)品中水分測(cè)定的通用方法干燥減量法
- GB/T 3003-2017耐火纖維及制品
- GB/T 22080-2016信息技術(shù)安全技術(shù)信息安全管理體系要求
- GB/T 13915-2013沖壓件角度公差
- 制藥工程導(dǎo)論課件
- 瑜伽師地論(完美排版全一百卷)
- 槳聲燈影里的秦淮河1-課件
- 蘇教版五年級(jí)下冊(cè)科學(xué)知識(shí)點(diǎn)全冊(cè)
評(píng)論
0/150
提交評(píng)論