資源描述:
《第9章 常用外設(shè)與通信接口》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第9章常用外設(shè)與通信接口張明武scauzhang@hotmail.com華南農(nóng)業(yè)大學(xué)信息(軟件)學(xué)院19.1可編程并行接口芯片82C558255具有2個(gè)獨(dú)立的8位I/O口(A口和B口)和2個(gè)獨(dú)立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作為輸入時(shí)提供三態(tài)緩沖器功能,作為輸出時(shí)提供數(shù)據(jù)鎖存功能。其中,A口具有雙向傳輸功能。8255有3種工作方式,方式0、方式1和方式2,能使用無(wú)條件、查詢和中斷等多種數(shù)據(jù)傳送方式完成CPU與I/O設(shè)備之間的數(shù)據(jù)交換。B口和C口的引腳具有達(dá)林頓復(fù)合晶體管驅(qū)動(dòng)能力,在1.5V時(shí)輸出1mA電流,適于作輸出端口。C口除用做數(shù)據(jù)口外,當(dāng)8255工作
2、在方式1和方式2時(shí),C口的部分引腳作為固定的聯(lián)絡(luò)信號(hào)線。9.1.18255的基本功能21.內(nèi)部結(jié)構(gòu)9.1.28255的內(nèi)部結(jié)構(gòu)和外部引腳32.外部引腳48255的端口與操作選擇表A1A0DR#WR#CS#操作特征位00010A口內(nèi)容讀至數(shù)據(jù)總線無(wú)輸入01010B口內(nèi)容讀至數(shù)據(jù)總線無(wú)10010C口內(nèi)容讀至數(shù)據(jù)總線無(wú)00100數(shù)據(jù)總線內(nèi)容寫至A口無(wú)輸出01100數(shù)據(jù)總線內(nèi)容寫至B口無(wú)10100數(shù)據(jù)總線內(nèi)容寫至C口無(wú)11100數(shù)據(jù)總線內(nèi)容寫至控制寄存器D7=1數(shù)據(jù)總線內(nèi)容寫C口按位置/復(fù)位控制字D7=0XXXX1端口輸出為高阻無(wú)禁止11010非法無(wú)XX110端口輸出為高阻無(wú)59.1.38255的工
3、作方式1.方式0方式0提供兩個(gè)8位口(A和B)和兩個(gè)4位口(PC7~PC4,PC3~PC0),任何一個(gè)口都可用做輸入或輸出(單向),由CPU用簡(jiǎn)單的I/O指令來(lái)進(jìn)行讀/寫。一般用于無(wú)條件傳送的場(chǎng)合,也可以用做查詢式傳送。習(xí)慣上將A口和B口作為數(shù)據(jù)口,將C口作為控制輸出和狀態(tài)輸入口。68255A方式0輸入時(shí)序和參數(shù)說(shuō)明78255A方式0輸出時(shí)序和參數(shù)說(shuō)明82.方式1(A口和B口有此方式,單向)(1)方式1的輸入A口和B口方式l的輸入組態(tài)9INTE為中斷允許位,對(duì)應(yīng)PC口寄存器(狀態(tài)字)的D4位(INTEA)和D2位(INTEB),可通過(guò)對(duì)PC口按位寫方法設(shè)置;PC2、PC4引腳作用:用作鎖存數(shù)
4、據(jù)口數(shù)據(jù);中斷條件:STB#(引腳)=1(無(wú)效),IBF=1、INTE=1;PC6、7可作為數(shù)據(jù)線使用。1011方式1下的輸入過(guò)程:外設(shè)把數(shù)據(jù)送到8255端口外設(shè)用選通信號(hào)STB#把數(shù)據(jù)打入端口的輸入鎖存器輸入緩沖器滿信號(hào)IBF有效,CPU可查詢?cè)撔盘?hào)如果INTE有效,8255將使INTR有效,申請(qǐng)中斷CPU向8255發(fā)讀信號(hào)RD#,從8255端口讀數(shù)據(jù)中斷請(qǐng)求信號(hào)INTR變無(wú)效,然后IBF無(wú)效,外設(shè)可送下一個(gè)數(shù)據(jù)。12(2)方式1的輸出8255方式1輸出組態(tài)13INTE為中斷允許位,對(duì)應(yīng)PC口寄存器(狀態(tài)字)的D6位(INTEA)和D2位(INTEB),可通過(guò)對(duì)PC口按位寫方法設(shè)置;PC2
5、、PC6引腳作用:用作對(duì)OBF#的回應(yīng);中斷條件:ACK#(引腳)=1(無(wú)效),OBF#=1(無(wú)效)、INTE=1;PC4、5可作為數(shù)據(jù)線使用。1415方式1下的輸出過(guò)程:CPU發(fā)WR#信號(hào),向8255送一個(gè)數(shù)據(jù)WR#使INTR無(wú)效,OBF#有效,通知外設(shè)可取數(shù)據(jù)外設(shè)接到數(shù)據(jù)后,向8255回送ACK#信號(hào)OBF#無(wú)效,接著ACK#無(wú)效,其上升沿引發(fā)INTR有效,向CPU發(fā)中斷申請(qǐng),請(qǐng)求發(fā)送新數(shù)據(jù)。163.方式28255方式2組態(tài)雙向I/O,只有A口有此方式179.1.48255的控制字與初始化編程1.工作方式控制字(寫,A1A0=11)8255工作方式控制字18例9.1某系統(tǒng)要求使用8255
6、的A口工作于方式1作輸入,B口工作于方式0作輸出,C口上半部輸入,下半部輸出。8255端口地址為60H-63H。?控制字為:10111000B=0B8H?初始化程序?yàn)椋篗OVAL,0B8HOUT63H,AL192.C口按位置/復(fù)位控制字(寫,A1A0=11)C口按位置/復(fù)位控制字例9.2如上例,若A口工作于方式1作輸入,要使用中斷傳送方式,則應(yīng)當(dāng)寫PC4的按位置位字:MOVAL,00001001BOUT63H,AL20?方式1下8255狀態(tài)字中INTE位的置位和復(fù)位⊙若禁止PA口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00001000B;置PC4=0,禁止中斷請(qǐng)求OUTD
7、X,AL⊙若允許PA口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00001001B;置PC4=1,允許中斷請(qǐng)求OUTDX,AL⊙若允許PA口輸出中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00001101B;置PC6=1,允許中斷請(qǐng)求OUTDX,AL21⊙若允許PB口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00000101B;置PC2=1,允許中斷請(qǐng)求OUTD