版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
微型計算機原理與應(yīng)用------輸入輸出和接口技術(shù)主講人:馬永紅12/10/20221主講人:馬永紅12/10/20221
微型計算機原理與應(yīng)用----可編程并行接口8255主講人:馬永紅12/10/20222主講人:馬永紅12/10/20222
8255與系統(tǒng)的連接BG2AG2ABC74LS138&≥10YD7D0~PA0RESET8255PA7PB7PB0PC0PC7~~~WRRDA1A0CS&8088系統(tǒng)BUSA7IOWA11A9A8A10A13A12A4A2A3A6A5A15A14D7D0~IORRESETIORA1A0IOW8255與系統(tǒng)的連接12/10/202238255與系統(tǒng)的連接BG2AG2ABC74LS138&≥18255相當(dāng)于三個獨立的8位簡單接口。各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時實現(xiàn)輸入及輸出。C端口即可以是一個8位的簡單接口,也可以分為兩個獨立的4位端口。設(shè)置為輸出口時有鎖存能力,設(shè)置為輸入口時無鎖存能力。屬于無條件傳輸方式PPT+表述1、工作方式0――查詢方式交換數(shù)據(jù)12/10/202248255相當(dāng)于三個獨立的8位簡單接口。PPT+表述1、工作方INAL,PORT;PORT是端口號輸入輸入緩沖器譯碼器數(shù)據(jù)DBAB外設(shè)8n①外設(shè)將數(shù)據(jù)送到8255輸入緩沖器中;②CPU給出有效的8255地址;③CPU發(fā)讀命令,將8255A輸入緩沖器中數(shù)據(jù)讀入CPU的AL寄存器中。PPT12/10/20225INAL,PORT;PORT是端口號輸8255A的工作方式——方式0(輸出方式)OUTPORT,AL輸出鎖存器譯碼器數(shù)據(jù)DBAB外設(shè)8nPPT12/10/202268255A的工作方式——方式0(輸出方式)輸出鎖存器譯碼器數(shù)教材實例:例1
★將8255C端口的8根I/O線接8只發(fā)光二極管的正極(八個負(fù)極均接地),編寫使這8只發(fā)光二極管依次亮、滅的程序。設(shè)8255的端口地址為380H~383H。8255方式0應(yīng)用舉例112/10/20227教材實例:例1★將8255C端口的8根I/O線接程序框圖控制字寄存器的端口地址送間址寄存器寫入方式選擇字PC=10向PC口送數(shù)據(jù)寫入置位字點亮一只發(fā)光二極管延時讓發(fā)光二極管發(fā)光向PC口送第二個數(shù)據(jù)熄滅發(fā)光二極管11號功能調(diào)用檢測有無鍵入有鍵入嗎?NYPC=10PC=0PC1=1012/10/20228程序框圖控制字寄存器的端口地址送間址寄存器寫入方式選擇字PCstack segmentstackstack dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushax
MOVDX,383H;383H為控制字寄存器的端口地址MOVAL,80HOUTDX,AL;寫入方式選擇字參考程序12/10/20229stack segmentstackstack參
MOVDX,382H;C端口的端口地址送DXMOVAL,1;C端口的輸出值A(chǔ)GAIN:OUTDX,AL;給C口送數(shù)據(jù),點亮一只二極管LOOP$;延時LOOP$;延時
PUSHAXMOVAH,11;11號功能調(diào)用:檢查鍵盤有無輸入INT21H;無:0送AL;有:-1送ALINCAL;有鍵入,AL=-1,AL增1,AL=0POPAXJZBACKROLAL,1;通過循環(huán)移位指令改變C端口的輸出值,滅第一盞燈點第二盞燈JMPAGAIN;給端口送數(shù)據(jù)BACK:ret12/10/202210MOVDX,382H;C端口的端口地begin endpcode ends endbegin方式0也可作為查詢式輸入或輸出的接口電路,此時端口A和B分別可作為一個數(shù)據(jù)端口,而取端口C的某些位作為這兩個數(shù)據(jù)端口的控制和狀態(tài)信息。12/10/202211begin endp12/10/2022118255方式0應(yīng)用舉例2例2在某工業(yè)系統(tǒng)中,要不斷檢測8個開關(guān)K7~K0的通斷狀態(tài),并隨時在LED7~LED0上顯示出來(開關(guān)合,LED亮;開關(guān)斷,LED滅)。
12/10/2022128255方式0應(yīng)用舉例2例2在某工業(yè)系統(tǒng)中,要不斷檢測8個開端口地址的分配:如圖,地址線A2A1是可以變化的,其他都是固定的。端口A地址: 90H (A2A1=00) 端口B地址: 92H (A2A1=01) 端口C地址: 94H (A2A1=10) 控制字寄存器地址:96H (A2A1=11)A1A0注意連接線上的信號方向!12/10/202213端口地址的分配:A1A0注意連接線上的信號方向!12/10/控制程序:
MOV AL,10010000B;分析控制字 OUT 96H,AL ;寫入8255控制字L1: IN AL,90H ;收K7~K0的通斷狀態(tài) OUT 92H,AL ;輸出收到的數(shù)據(jù)到PB口, CALL DELAY ;延時,保持燈亮 JMP L1 ;轉(zhuǎn)移到L1,繼續(xù)測定。延時程序先不用管12/10/202214控制程序:延時程序先不用管12/10/202214例3檢測8個開關(guān)K7~K0的通斷狀態(tài),將閉合的開關(guān)個數(shù),在LED7~LED0上顯示出來。例3的分析接收A口上開關(guān)的狀態(tài)到AL中檢查AL中有幾個位是“0”用換碼指令將“0”的個數(shù)轉(zhuǎn)換成對應(yīng)的字型碼將字型碼從B口輸出
12/10/202215例3檢測8個開關(guān)K7~K0的通斷狀態(tài),將閉合的開關(guān)個數(shù)7段數(shù)碼管及字形碼接法:共陰極與共陽極字形碼與字形字形碼由PB口提供。PB口的字形碼從哪兒來?每個字形對應(yīng)一組編碼—字形碼。12/10/2022167段數(shù)碼管及字形碼每個字形對應(yīng)一組編碼—字形碼。12/10/參考程序
MOVAL,10010000BOUT96H,AL;置8255方式控制字
L0:INAL,90H;收開關(guān)狀態(tài)MOVDL,00H;將來存放1的個數(shù)L1:ANDAL,ALJZEXT1SHLAL,1JCL2INCDLL2:JMPL1;未查完,繼續(xù)查EXT1:
LEABX,TABLE;TABLE中方的是0-7的字形碼
MOVAL,DL
XLAT;將DL中的“0”的個數(shù)轉(zhuǎn)換成字型碼
MOVDX,92H
OUTDX,AL;將字型碼從B口輸出
CALLDELAY;延時
JMPL0檢查1的個數(shù)碼轉(zhuǎn)變并輸出顯示A口輸入B口輸出,方式012/10/202217參考程序MOVAL,10010000BEXT1:8255綜合練習(xí)方式0應(yīng)用舉例4要求:掌握芯片之間連接相應(yīng)端口地址會分析。看懂圖上的芯片之間的聯(lián)系編寫控制程序。要求:將IN7上的模擬量轉(zhuǎn)換成數(shù)字量,存入BUF單元分析:A口做數(shù)據(jù)輸入端口B口沒有使用C口高4位是輸入口,低4位是輸出口均采用方式0進行控制。12/10/2022188255綜合練習(xí)方式0應(yīng)用舉例4要求:要求:將IN7上的分析順序:CPU與8255連線CPU與譯碼器間的連線,讀懂8255的端口地址8255與外設(shè)連接C口低4位是輸出用ADC0809的工作原理:1、用C、B、A三個端子選擇模擬量的輸入(IN0---IN7)端:000-----IN0、001----IN1、……、110----IN6、111----IN7(每次只能轉(zhuǎn)換1路,所以要先選擇)2、ALE有效時,CBA上信號存入ADC內(nèi)的地址鎖存器中
CBA上面的數(shù)據(jù)隨時都有,什么時候是選擇模擬量通道的那個信號呢,ALE有效的時候,CBA上的數(shù)據(jù)被鎖存,這個信號才是輸出端選擇信號。3、START端有正脈沖,啟動AD轉(zhuǎn)換注:ALE和START接到同一個引腳上。4、轉(zhuǎn)換結(jié)束時,EOC為“1”轉(zhuǎn)換時間:64個外部時鐘周期5、ADC的數(shù)據(jù)輸出鎖存器后接有緩沖器,緩沖器靠OE=“1”選中。如果OE不打開,鎖存器與CPU間就不聯(lián)通。6、轉(zhuǎn)換好的數(shù)據(jù)從D7----D0端傳給CPU12/10/202219分析順序:ADC0809的工作原理:12/10/202218255的端口地址分析A7A6A5A4A3A2A1A0100010XXA口:88H、B口:89H、C口:8AH、控制字口:8BH工作方式控制字MOVAL,10011000BOUT8BH,AL選擇IN7并啟動A/D轉(zhuǎn)換MOVAL,00000111B;PC2PC1PC0;此時不啟動轉(zhuǎn)換,PC3=0OUT8AH,AL;選擇IN7MOVAL,00001111BOUT8AH,ALMOVAL,00000111B;START引腳上0-1-0有一個脈沖OUT8AH,AL;啟動A/D轉(zhuǎn)換,藍(lán)色111決定了端口12/10/2022208255的端口地址分析工作方式控制字選擇IN7并啟動A/D轉(zhuǎn)檢查A/D轉(zhuǎn)換是否結(jié)束?并打開輸出緩沖器
L1:INAL,8AH;檢查PC4TESTAL,00010000BJZL1;AD轉(zhuǎn)換沒有結(jié)束轉(zhuǎn)L1
;AD轉(zhuǎn)換結(jié)束處理
(打開輸出緩沖器靠硬件連線解決)接收轉(zhuǎn)換好的數(shù)據(jù)INAL,88HMOVBUF,AL12/10/202221檢查A/D轉(zhuǎn)換是否結(jié)束?并打開輸出緩沖器接收轉(zhuǎn)換好的數(shù)據(jù)18255的方式1----選通輸入方式
端口A和端口B仍作為數(shù)據(jù)的輸入、輸出口;端口C的某些位作為端口A和端口B的選通控制信號,配合AB口使用。A口、B口在作為輸入和輸出時的選通信號源自不同的引腳。表中的輸入輸出時是針對8255而言。在這種工作方式下,數(shù)據(jù)的輸入輸出操作要在選通信號控制下完成。和外設(shè)商量著來12/10/2022228255的方式1----選通輸入方式端口A和端口B仍作為外部設(shè)備8255A方式1(輸入)情況下四個聯(lián)絡(luò)信號及工作過程111外設(shè)產(chǎn)生數(shù)據(jù)數(shù)據(jù)出現(xiàn)在外部數(shù)據(jù)總線外設(shè)發(fā)選通信號數(shù)據(jù)進入8255A的A口1通知外設(shè)緩沖區(qū)已滿,表示已經(jīng)接受數(shù)據(jù)1向C口寫P4位置1,開放中斷向CPU發(fā)中斷請求信號CPU發(fā)讀信號注意:此工作是8255A初始化時完成的?。。PTPC口的哪一位做選通信號和口有關(guān)和輸出輸入有關(guān),比如同為輸入A口用PC4,B口用PC212/10/202223外部設(shè)備8255A方式1(輸入)情況下四個聯(lián)絡(luò)信號及工作過STB#(Strobe閘門)——選通輸入信號,低電平有效。它是外設(shè)供給的輸入信號,當(dāng)其有效時將外設(shè)來的數(shù)據(jù)送入8255的輸入鎖存器。A組對應(yīng)(接到)PC4;B組對應(yīng)PC2。IBF(inputbufferfull)——輸入鎖存器滿,高電平有效。這是一個8255輸給外設(shè)的聯(lián)絡(luò)信號。當(dāng)其有效時,通知外設(shè)輸入的數(shù)據(jù)已寫入緩沖器,此時不能送下一個數(shù)據(jù)。CPU用IN指令取走數(shù)據(jù)后,此信號被清除。A組對應(yīng)PC5;B組對應(yīng)PC1。如果外設(shè)不需要這個信號你可以懸空不用。這兩個信號(引腳)是8255與外設(shè)間的聯(lián)絡(luò)引腳12/10/202224STB#(Strobe閘門)——選通輸入信號,低電平有效。它INTR(interruptrequest)——中斷請求信號,高電平有效。是由8255A輸出的一個信號。用于向CPU請求中斷,讓CPU讀走輸入鎖存器中的數(shù)據(jù)。A組對應(yīng)PC3;B組對應(yīng)PC0。
向CPU發(fā)出中斷請求有一個前提條件,INTE必須是1.INTE(interruptenable)——端口中斷允許信號,可由用戶通過對PC4位置位來實現(xiàn)。如果你想讓CPU已中斷的方式處理輸入的數(shù)據(jù),那么設(shè)INTE=1,允許發(fā)出INTR請求。該信號沒有外接引腳,INTE狀態(tài)通過C口置位復(fù)位控制字來設(shè)置。如圖和CPU聯(lián)絡(luò)的引腳C口置位復(fù)位控制字來設(shè)置12/10/202225INTR(interruptrequest)——中斷請求信注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:輸入:A口的INTE:寫入PC4B口的INTE:寫入PC2輸出:A口的INTE:寫入PC6B口的INTE:寫入PC2例如:方式1輸入允許A口中斷,則應(yīng)按如下方法設(shè)置INTEA。
MOVDX,控制寄存器地址MOVAL,0xxx1001B;1=允許中斷,0=禁止中斷OUTDX,AL12/10/202226注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:12/10/8255A方式1輸入工作過程小結(jié):需要事先設(shè)置開放內(nèi)部中斷;外設(shè)產(chǎn)生數(shù)據(jù),發(fā)選通信號,將數(shù)據(jù)送入8255A;一方面將輸入緩沖區(qū)滿信號激活,通知外設(shè)不再送入數(shù)據(jù);一方面與內(nèi)部INTE信號聯(lián)合作用產(chǎn)生INTR信號,通知CPU外設(shè)送來數(shù)據(jù)等待處理;CPU響應(yīng)后,發(fā)出讀信號,取走數(shù)據(jù)。注意:STB只持續(xù)一個時鐘周期,IBF在CPU讀取數(shù)據(jù)后才變成無效,是最晚改變的一個信號。12/10/2022278255A方式1輸入工作過程小結(jié):12/10/202227選通輸入時序1)8255與外設(shè)間的數(shù)據(jù)“INPUTDATA”上線2)稍后STB變?yōu)榈碗娖?)再稍后8255緩沖器滿IBF變?yōu)楦唠娖?)此時8255鎖存器將數(shù)據(jù)鎖存,STB變?yōu)楦唠娖?)INTR給出中斷請求信號6)響應(yīng)后,將8255鎖存器中內(nèi)容通過D7-D0傳送給CPU12/10/202228選通輸入時序1)8255與外設(shè)間的數(shù)據(jù)“INPUTDATA與輸入方式比較,輸出方式的聯(lián)絡(luò)信號的定義有所改變。使用B口時與輸入一樣使用PC2PC1PC0但是引腳上的定義有所不同。8255A方式1工作過程(輸出)12/10/202229與輸入方式比較,輸出方式的聯(lián)絡(luò)信號的定義有所改變。8255A8255A方式1工作過程(輸出)CPU發(fā)寫信號1111向C口寫PC4位置1,開放中斷1CPU產(chǎn)生數(shù)據(jù)后,輸出到數(shù)據(jù)總線數(shù)據(jù)進入8255A通知外部設(shè)備取走數(shù)據(jù)外部設(shè)備取走數(shù)據(jù)外設(shè)取走數(shù)據(jù)后的應(yīng)答信號高電平告訴外設(shè)數(shù)據(jù)緩沖區(qū)為空0PPT12/10/2022308255A方式1工作過程(輸出)CPU發(fā)寫信號1111向C口OBF*(outputbufferfull)——輸出緩沖器滿信號,8255A輸出給外設(shè)的一個控制信號,當(dāng)其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走ACK*(Acknowledge)——響應(yīng)確認(rèn)信號。是一個外設(shè)的響應(yīng)信號,指示CPU輸給8255A的數(shù)據(jù)已由外設(shè)接受。INTR——中斷請求信號,高有效。當(dāng)輸出設(shè)備已接受了CPU輸出的數(shù)據(jù)后,8255A輸出此信號向CPU提出新的中斷請求,要求CPU繼續(xù)輸出數(shù)據(jù)INTE(interruptenable)——端口中斷允許信號,可由用戶通過對PC6(INTEA)和PC2(INTEB)位置位來實現(xiàn)。INTE=1,允許發(fā)出INTR請求。該信號沒有外接引腳C口的聯(lián)絡(luò)信號(方式1輸出)12/10/202231OBF*(outputbufferfull)——輸出緩沖8255A方式1輸出工作過程小結(jié):需要事先設(shè)置開放內(nèi)部中斷;CPU產(chǎn)生數(shù)據(jù)送入8255A;將輸出緩沖區(qū)滿信號激活,通知外設(shè)有數(shù)據(jù)到來;外設(shè)取走數(shù)據(jù)后,發(fā)響應(yīng)信號給8255A,同時與內(nèi)部INTE聯(lián)合作用激活I(lǐng)NTR,向CPU發(fā)出中斷請求號,讓CPU再次送數(shù)據(jù)。注意:ACK只持續(xù)一個時鐘周期,OBF在外設(shè)讀取數(shù)據(jù)后才變成無效,而INTR是最晚改變的一個信號。12/10/2022328255A方式1輸出工作過程小結(jié):12/10/202232選通輸出時序1)D7-D0現(xiàn)有數(shù)據(jù)2)輸出寄存器滿,OBF有效。3)3)外部設(shè)備ACK應(yīng)答信號,從8255中把數(shù)據(jù)送給外設(shè)PA0-PA7。數(shù)據(jù)拿走后,當(dāng)OBF信號,從0變1那么此時INTR有效,發(fā)出中斷信號。請送第二個數(shù)據(jù)。12/10/202233選通輸出時序1)D7-D0現(xiàn)有數(shù)據(jù)12/10/202233[例7-3]利用8255作為打印機的連接接口,并通過該打印機接口字符串,字符串長度放在DS段的COUNT單元中,要打印的字符存放在從DATA單元開始的數(shù)據(jù)區(qū)中。8255綜合練習(xí)方式1應(yīng)用舉例112/10/202234[例7-3]利用8255作為打印機的連接接口,并通過該打印機初始化程序INIT: MOVDX,0FBC3H MOVAL,10000001B ;A組方式0:A口輸出,C口高4位輸出 ;B組方式0:B口輸出,C口低4位輸入 OUTDX,AL ;寫入至控制字寄存器 MOVAL,00001101B ;讀取低8位 OUTDX,AL打印一批字符的程序 MOV CX,COUNT MOV SI,OFFSETDATA GOON:MOVDX,0FBC2H IN AL,DX ;從C口讀入打印機BUSY信號 AND AL,02H JNZ GOON MOV AL,[SI] ;取一個字符12/10/202235初始化程序打印一批字符的程序12/10/202235 MOV DX,0FBC0H OUT DX,AL ;輸出一個字符到A口 MOV DX,0FBC2H ;準(zhǔn)備在PC6上形成一個負(fù)脈沖 MOV AL,0 OUT DX,AL ;使PC6變低 MOV AL,40H OUT DX,AL ;再使PC6變高 INC SI ;指向下一個字符 LOOP GOON HLT12/10/202236 MOV DX,0FBC0H12/10/2022368255A應(yīng)用舉例[例8-1]打印機接口。為某應(yīng)用系統(tǒng)配置一個并行打印機接口,并且通過接口CPU采用查詢方式打印。已知欲打印數(shù)據(jù)存放在數(shù)據(jù)段中有效地址位2000H的單元中。8255的口地址位80H、81H、82H、83H。分析:由于打印接口直接面向的對象是打印機接口標(biāo)準(zhǔn),而不是打印機本身,因此打印機接口要按照接口標(biāo)準(zhǔn)的要求進行設(shè)計,主要是8位并行數(shù)據(jù)線DATA0~DATA7,2條握手聯(lián)絡(luò)線STB#、ACK#和1條忙線BUSY。有關(guān)打印機接口工作時序見下圖。PPT8255綜合練習(xí)方式1應(yīng)用舉例112/10/2022378255A應(yīng)用舉例PPT8255綜合練習(xí)方式1應(yīng)用舉例1硬件示意圖Data1-data8:對打印機來講是輸入信號—數(shù)據(jù)輸入端StrobeSlct:當(dāng)他為低電平時打印機才能接受數(shù)據(jù)Init:打印機初始化,原先打印緩沖器的內(nèi)容清除掉。注意:箭頭的方向!Busy:data1信號有效后才,他變成忙狀態(tài)25針插座—并行USB插口---串行12/10/202238硬件示意圖Data1-data8:對打印機來講是輸入信號—數(shù)數(shù)據(jù)從B口輸出,B口工作在方式1C口的聯(lián)絡(luò)功能見上表C口高四位做輸出打印機狀態(tài)位都接到PA口,所以A口時輸入口C口低4位,由于有固定用途,不用設(shè)工作方式,B口時輸出口插座是驅(qū)動器起信號放大作用8255端口B以選通方式作數(shù)據(jù)輸出端口在8255的B口中數(shù)據(jù)傳輸給打印機,打印機發(fā)回應(yīng)答信號-ACKB后,8255的PC0向中斷控制器(IR2)發(fā)中斷請求,請CPU再輸出一個數(shù)據(jù)。打印機選通由PC4控制(‘0’有效)。初始化PC5由控制(‘0’有效)12/10/202239數(shù)據(jù)從B口輸出,B口工作在方式112/10/202239方式0掌握方式1了解編程要求1)中斷向量表輸入一定要會!2)8259初始化了解即可為什么8255初始化在8259后面呢?因為如果8255在前,方式控制字一寫,發(fā)出中斷請求,8259卻沒準(zhǔn)備好。3)打印機選通及初始化由PC4/PC5完成。4)查狀態(tài)查誰呢查BUSY5)保存寄存器,主程序子程序都用的,打架的寄存器保存12/10/202240方式0掌握方式1了解編程要求12/10/202240硬件連接圖由PC6充當(dāng)打印機的選通信號,通過對PC6的置位/復(fù)位來產(chǎn)生選通。同時,由PC2來接收打印機發(fā)出的“BUSY”信號作為能否輸出的查詢。圖中用8255A的PA口作為輸出打印數(shù)據(jù)口,工作于方式0,PC口高4位工作于輸出方式,PC6產(chǎn)生STB#信號;PC口低4位工作于輸入方式,PC2接收打印機的BUSY信號。PC6PC2PPT+工作流程由于工作在方式0,聯(lián)絡(luò)信號位可以自選。返回12/10/202241硬件連接圖由PC6充當(dāng)打印機的選通信號,通過對PC6的置位/從圖可見,DATA0~DATA7STBBUSYACK它的工作流程:當(dāng)CPU通過接口要求打印機打印數(shù)據(jù)時,先要查看BUSY信號,BUSY=0時,才能向打印機輸出數(shù)據(jù)。①主機將要打印的數(shù)據(jù)送上數(shù)據(jù)線,然后發(fā)選通信號STB#=0(0.5微秒)信號通知打印機;②打印機將數(shù)據(jù)讀入,同時使BUSY線為高,通知主機停止送數(shù)。③這時,打印機內(nèi)部對讀入的數(shù)據(jù)進行處理。處理完以后送出ACK#=0信號(使ACK有效),同時使BUSY=0(失效),通知主機可以發(fā)下一個數(shù)據(jù)。12/10/202242從圖可見,DATA0~DATA7STBBUSYACK它的工作8255A應(yīng)用舉例
結(jié)束8255A初始化BUSY=0?送數(shù)送STB#開始YN程序流程圖12/10/2022438255A應(yīng)用舉例結(jié)束8255A初始化BUSY=0?送8255A應(yīng)用舉例
MOVAL,81H ;工作方式字10000××1B OUT83H,AL MOVAL,0DH;置/復(fù)位字0×××1101BPC6位置高,使STB#=1 OUT83H,ALTESBY:INAL,82H;查BUSY=0?(PC2=0?) TESTAL,04H;00000100B JNZTESBY;忙,則等待;不忙,則向A口送數(shù) MOVAL,[2000H];從內(nèi)存取數(shù) OUT80H,AL;送數(shù)據(jù)到A口 MOVAL,0CH;00001100B置STB#信號為低(PC6=0) OUT83H,AL NOP ;負(fù)脈沖寬度(延時) NOP INCAL;置STB#為高(PC6=1) OUT83H,AL結(jié)束8255A初始化BUSY=0?送數(shù)送STB#開始YN鏈接12/10/2022448255A應(yīng)用舉例結(jié)束8255A初始化BUSY=0?送1、一個由8086CPU和8255A為主體構(gòu)成的閉環(huán)調(diào)節(jié)系統(tǒng)的結(jié)構(gòu)流程如圖8.20所示:由8255A端口A輸出的8位數(shù)字信息,經(jīng)數(shù)模轉(zhuǎn)換器DAC0832轉(zhuǎn)換成模擬量。當(dāng)CPU輸出的數(shù)字量從00H~FFH時,運算放大器輸出0~4.98V的模擬電壓,該電壓經(jīng)傳感器可調(diào)節(jié)控制現(xiàn)場的溫度、速度、聲音或流量等其他參數(shù)??刂片F(xiàn)場的模擬信息經(jīng)傳感器和運算放大器可變換為一定范圍內(nèi)的電壓值,這模擬電壓經(jīng)模數(shù)轉(zhuǎn)換器ADC0809可變換為8位數(shù)字信息送回8255A的端口B,端口B可采用查詢或中斷方式與CPU聯(lián)系。CPU經(jīng)過分析比較,再輸出一個數(shù)字量來控制現(xiàn)場。給排水壓力監(jiān)控、空調(diào)溫度控制12/10/2022451、一個由8086CPU和8255A為主體構(gòu)成的閉環(huán)調(diào)節(jié)系統(tǒng)硬件連接圖電機轉(zhuǎn)速電磁閥圖中B口的應(yīng)答信號PC1沒用12/10/202246硬件連接圖電機轉(zhuǎn)速電磁閥圖中B口的應(yīng)答信號PC1沒用12/1端口A工作在方式0:完成輸出功能,用來向數(shù)模轉(zhuǎn)換器輸出8位數(shù)字信息。端口B工作在方式1:完成輸入功能,用來接收由模數(shù)轉(zhuǎn)換器輸入的8位數(shù)字信息。端口C作控制用:PC7用作模數(shù)轉(zhuǎn)換器ADC0809的啟動信號,PC2用作輸入的STBB信號,PC0用作中斷請求信號INTRB,通過中斷控制器8259A可向CPU發(fā)中斷請求,這些都要由初始化程序來定義。端口B采用中斷方式和CPU聯(lián)系,中斷請求信號經(jīng)8259A中斷排隊后送CPU的INTR端2、系統(tǒng)設(shè)計12/10/202247端口A工作在方式0:完成輸出功能,用來向數(shù)模轉(zhuǎn)換器輸出8位數(shù)如果采用中斷方式,并定義中斷類型碼為40H,那么首先應(yīng)將相應(yīng)的中斷服務(wù)程序定位到存儲器中,并將其入口地址的段基址和偏移地址值置入中斷入口地址表中從100H地址開始的四個字節(jié)中??墒褂玫某跏蓟涂刂瞥绦蛉缦拢篒NTT:MOVDX,8255A控制端口MOVAL,86HOUTDX,ALMOVAL,05HOUTDX,AL;初始化8255A10000110B=86H設(shè)定方式控制字:A口方式0輸出B口方式1輸入00000101B=05H設(shè)定C口置位控制字:設(shè)置INTE開中斷BOIS系統(tǒng)自動分配3、程序設(shè)計12/10/202248如果采用中斷方式,并定義中斷類型碼為40H,那么首先應(yīng)將相應(yīng)MOVDX,8259A偶地址端口MOVAL,13HOUTDX,ALMOVDX,8259A奇地址端口MOVAL,40HOUTDX,ALMOVAL,03HOUTDX,ALMOVAL,0FEHOUTDX,AL;POUT:MOVDX,8255A端口AMOVAL,XXHOUTDX,AL;初始化8259A從端口A輸出8位數(shù)據(jù)12/10/202249MOVDX,8259A偶地址端口初始化8259A從端口A輸MOVDX,8255A端口CMOVAL,80HOUTDX,ALMOVAL,0OUTDX,AL;WAIT:STIJMPWAIT40H類型中斷服務(wù)程序:MOVDX,8255A端口BINAL,DX……IRET啟動ADC0809PC7=1啟動后C口清零以備后續(xù)使用8255發(fā)出中斷命令使執(zhí)行-數(shù)據(jù)輸入等待指令中斷標(biāo)志位置112/10/202250MOVDX,8255A端口C啟動ADC0809PC7=1啟
微型計算機原理與應(yīng)用------輸入輸出和接口技術(shù)主講人:馬永紅12/10/202251主講人:馬永紅12/10/20221
微型計算機原理與應(yīng)用----可編程并行接口8255主講人:馬永紅12/10/202252主講人:馬永紅12/10/20222
8255與系統(tǒng)的連接BG2AG2ABC74LS138&≥10YD7D0~PA0RESET8255PA7PB7PB0PC0PC7~~~WRRDA1A0CS&8088系統(tǒng)BUSA7IOWA11A9A8A10A13A12A4A2A3A6A5A15A14D7D0~IORRESETIORA1A0IOW8255與系統(tǒng)的連接12/10/2022538255與系統(tǒng)的連接BG2AG2ABC74LS138&≥18255相當(dāng)于三個獨立的8位簡單接口。各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時實現(xiàn)輸入及輸出。C端口即可以是一個8位的簡單接口,也可以分為兩個獨立的4位端口。設(shè)置為輸出口時有鎖存能力,設(shè)置為輸入口時無鎖存能力。屬于無條件傳輸方式PPT+表述1、工作方式0――查詢方式交換數(shù)據(jù)12/10/2022548255相當(dāng)于三個獨立的8位簡單接口。PPT+表述1、工作方INAL,PORT;PORT是端口號輸入輸入緩沖器譯碼器數(shù)據(jù)DBAB外設(shè)8n①外設(shè)將數(shù)據(jù)送到8255輸入緩沖器中;②CPU給出有效的8255地址;③CPU發(fā)讀命令,將8255A輸入緩沖器中數(shù)據(jù)讀入CPU的AL寄存器中。PPT12/10/202255INAL,PORT;PORT是端口號輸8255A的工作方式——方式0(輸出方式)OUTPORT,AL輸出鎖存器譯碼器數(shù)據(jù)DBAB外設(shè)8nPPT12/10/2022568255A的工作方式——方式0(輸出方式)輸出鎖存器譯碼器數(shù)教材實例:例1
★將8255C端口的8根I/O線接8只發(fā)光二極管的正極(八個負(fù)極均接地),編寫使這8只發(fā)光二極管依次亮、滅的程序。設(shè)8255的端口地址為380H~383H。8255方式0應(yīng)用舉例112/10/202257教材實例:例1★將8255C端口的8根I/O線接程序框圖控制字寄存器的端口地址送間址寄存器寫入方式選擇字PC=10向PC口送數(shù)據(jù)寫入置位字點亮一只發(fā)光二極管延時讓發(fā)光二極管發(fā)光向PC口送第二個數(shù)據(jù)熄滅發(fā)光二極管11號功能調(diào)用檢測有無鍵入有鍵入嗎?NYPC=10PC=0PC1=1012/10/202258程序框圖控制字寄存器的端口地址送間址寄存器寫入方式選擇字PCstack segmentstackstack dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushax
MOVDX,383H;383H為控制字寄存器的端口地址MOVAL,80HOUTDX,AL;寫入方式選擇字參考程序12/10/202259stack segmentstackstack參
MOVDX,382H;C端口的端口地址送DXMOVAL,1;C端口的輸出值A(chǔ)GAIN:OUTDX,AL;給C口送數(shù)據(jù),點亮一只二極管LOOP$;延時LOOP$;延時
PUSHAXMOVAH,11;11號功能調(diào)用:檢查鍵盤有無輸入INT21H;無:0送AL;有:-1送ALINCAL;有鍵入,AL=-1,AL增1,AL=0POPAXJZBACKROLAL,1;通過循環(huán)移位指令改變C端口的輸出值,滅第一盞燈點第二盞燈JMPAGAIN;給端口送數(shù)據(jù)BACK:ret12/10/202260MOVDX,382H;C端口的端口地begin endpcode ends endbegin方式0也可作為查詢式輸入或輸出的接口電路,此時端口A和B分別可作為一個數(shù)據(jù)端口,而取端口C的某些位作為這兩個數(shù)據(jù)端口的控制和狀態(tài)信息。12/10/202261begin endp12/10/2022118255方式0應(yīng)用舉例2例2在某工業(yè)系統(tǒng)中,要不斷檢測8個開關(guān)K7~K0的通斷狀態(tài),并隨時在LED7~LED0上顯示出來(開關(guān)合,LED亮;開關(guān)斷,LED滅)。
12/10/2022628255方式0應(yīng)用舉例2例2在某工業(yè)系統(tǒng)中,要不斷檢測8個開端口地址的分配:如圖,地址線A2A1是可以變化的,其他都是固定的。端口A地址: 90H (A2A1=00) 端口B地址: 92H (A2A1=01) 端口C地址: 94H (A2A1=10) 控制字寄存器地址:96H (A2A1=11)A1A0注意連接線上的信號方向!12/10/202263端口地址的分配:A1A0注意連接線上的信號方向!12/10/控制程序:
MOV AL,10010000B;分析控制字 OUT 96H,AL ;寫入8255控制字L1: IN AL,90H ;收K7~K0的通斷狀態(tài) OUT 92H,AL ;輸出收到的數(shù)據(jù)到PB口, CALL DELAY ;延時,保持燈亮 JMP L1 ;轉(zhuǎn)移到L1,繼續(xù)測定。延時程序先不用管12/10/202264控制程序:延時程序先不用管12/10/202214例3檢測8個開關(guān)K7~K0的通斷狀態(tài),將閉合的開關(guān)個數(shù),在LED7~LED0上顯示出來。例3的分析接收A口上開關(guān)的狀態(tài)到AL中檢查AL中有幾個位是“0”用換碼指令將“0”的個數(shù)轉(zhuǎn)換成對應(yīng)的字型碼將字型碼從B口輸出
12/10/202265例3檢測8個開關(guān)K7~K0的通斷狀態(tài),將閉合的開關(guān)個數(shù)7段數(shù)碼管及字形碼接法:共陰極與共陽極字形碼與字形字形碼由PB口提供。PB口的字形碼從哪兒來?每個字形對應(yīng)一組編碼—字形碼。12/10/2022667段數(shù)碼管及字形碼每個字形對應(yīng)一組編碼—字形碼。12/10/參考程序
MOVAL,10010000BOUT96H,AL;置8255方式控制字
L0:INAL,90H;收開關(guān)狀態(tài)MOVDL,00H;將來存放1的個數(shù)L1:ANDAL,ALJZEXT1SHLAL,1JCL2INCDLL2:JMPL1;未查完,繼續(xù)查EXT1:
LEABX,TABLE;TABLE中方的是0-7的字形碼
MOVAL,DL
XLAT;將DL中的“0”的個數(shù)轉(zhuǎn)換成字型碼
MOVDX,92H
OUTDX,AL;將字型碼從B口輸出
CALLDELAY;延時
JMPL0檢查1的個數(shù)碼轉(zhuǎn)變并輸出顯示A口輸入B口輸出,方式012/10/202267參考程序MOVAL,10010000BEXT1:8255綜合練習(xí)方式0應(yīng)用舉例4要求:掌握芯片之間連接相應(yīng)端口地址會分析??炊畧D上的芯片之間的聯(lián)系編寫控制程序。要求:將IN7上的模擬量轉(zhuǎn)換成數(shù)字量,存入BUF單元分析:A口做數(shù)據(jù)輸入端口B口沒有使用C口高4位是輸入口,低4位是輸出口均采用方式0進行控制。12/10/2022688255綜合練習(xí)方式0應(yīng)用舉例4要求:要求:將IN7上的分析順序:CPU與8255連線CPU與譯碼器間的連線,讀懂8255的端口地址8255與外設(shè)連接C口低4位是輸出用ADC0809的工作原理:1、用C、B、A三個端子選擇模擬量的輸入(IN0---IN7)端:000-----IN0、001----IN1、……、110----IN6、111----IN7(每次只能轉(zhuǎn)換1路,所以要先選擇)2、ALE有效時,CBA上信號存入ADC內(nèi)的地址鎖存器中
CBA上面的數(shù)據(jù)隨時都有,什么時候是選擇模擬量通道的那個信號呢,ALE有效的時候,CBA上的數(shù)據(jù)被鎖存,這個信號才是輸出端選擇信號。3、START端有正脈沖,啟動AD轉(zhuǎn)換注:ALE和START接到同一個引腳上。4、轉(zhuǎn)換結(jié)束時,EOC為“1”轉(zhuǎn)換時間:64個外部時鐘周期5、ADC的數(shù)據(jù)輸出鎖存器后接有緩沖器,緩沖器靠OE=“1”選中。如果OE不打開,鎖存器與CPU間就不聯(lián)通。6、轉(zhuǎn)換好的數(shù)據(jù)從D7----D0端傳給CPU12/10/202269分析順序:ADC0809的工作原理:12/10/202218255的端口地址分析A7A6A5A4A3A2A1A0100010XXA口:88H、B口:89H、C口:8AH、控制字口:8BH工作方式控制字MOVAL,10011000BOUT8BH,AL選擇IN7并啟動A/D轉(zhuǎn)換MOVAL,00000111B;PC2PC1PC0;此時不啟動轉(zhuǎn)換,PC3=0OUT8AH,AL;選擇IN7MOVAL,00001111BOUT8AH,ALMOVAL,00000111B;START引腳上0-1-0有一個脈沖OUT8AH,AL;啟動A/D轉(zhuǎn)換,藍(lán)色111決定了端口12/10/2022708255的端口地址分析工作方式控制字選擇IN7并啟動A/D轉(zhuǎn)檢查A/D轉(zhuǎn)換是否結(jié)束?并打開輸出緩沖器
L1:INAL,8AH;檢查PC4TESTAL,00010000BJZL1;AD轉(zhuǎn)換沒有結(jié)束轉(zhuǎn)L1
;AD轉(zhuǎn)換結(jié)束處理
(打開輸出緩沖器靠硬件連線解決)接收轉(zhuǎn)換好的數(shù)據(jù)INAL,88HMOVBUF,AL12/10/202271檢查A/D轉(zhuǎn)換是否結(jié)束?并打開輸出緩沖器接收轉(zhuǎn)換好的數(shù)據(jù)18255的方式1----選通輸入方式
端口A和端口B仍作為數(shù)據(jù)的輸入、輸出口;端口C的某些位作為端口A和端口B的選通控制信號,配合AB口使用。A口、B口在作為輸入和輸出時的選通信號源自不同的引腳。表中的輸入輸出時是針對8255而言。在這種工作方式下,數(shù)據(jù)的輸入輸出操作要在選通信號控制下完成。和外設(shè)商量著來12/10/2022728255的方式1----選通輸入方式端口A和端口B仍作為外部設(shè)備8255A方式1(輸入)情況下四個聯(lián)絡(luò)信號及工作過程111外設(shè)產(chǎn)生數(shù)據(jù)數(shù)據(jù)出現(xiàn)在外部數(shù)據(jù)總線外設(shè)發(fā)選通信號數(shù)據(jù)進入8255A的A口1通知外設(shè)緩沖區(qū)已滿,表示已經(jīng)接受數(shù)據(jù)1向C口寫P4位置1,開放中斷向CPU發(fā)中斷請求信號CPU發(fā)讀信號注意:此工作是8255A初始化時完成的?。?!PPTPC口的哪一位做選通信號和口有關(guān)和輸出輸入有關(guān),比如同為輸入A口用PC4,B口用PC212/10/202273外部設(shè)備8255A方式1(輸入)情況下四個聯(lián)絡(luò)信號及工作過STB#(Strobe閘門)——選通輸入信號,低電平有效。它是外設(shè)供給的輸入信號,當(dāng)其有效時將外設(shè)來的數(shù)據(jù)送入8255的輸入鎖存器。A組對應(yīng)(接到)PC4;B組對應(yīng)PC2。IBF(inputbufferfull)——輸入鎖存器滿,高電平有效。這是一個8255輸給外設(shè)的聯(lián)絡(luò)信號。當(dāng)其有效時,通知外設(shè)輸入的數(shù)據(jù)已寫入緩沖器,此時不能送下一個數(shù)據(jù)。CPU用IN指令取走數(shù)據(jù)后,此信號被清除。A組對應(yīng)PC5;B組對應(yīng)PC1。如果外設(shè)不需要這個信號你可以懸空不用。這兩個信號(引腳)是8255與外設(shè)間的聯(lián)絡(luò)引腳12/10/202274STB#(Strobe閘門)——選通輸入信號,低電平有效。它INTR(interruptrequest)——中斷請求信號,高電平有效。是由8255A輸出的一個信號。用于向CPU請求中斷,讓CPU讀走輸入鎖存器中的數(shù)據(jù)。A組對應(yīng)PC3;B組對應(yīng)PC0。
向CPU發(fā)出中斷請求有一個前提條件,INTE必須是1.INTE(interruptenable)——端口中斷允許信號,可由用戶通過對PC4位置位來實現(xiàn)。如果你想讓CPU已中斷的方式處理輸入的數(shù)據(jù),那么設(shè)INTE=1,允許發(fā)出INTR請求。該信號沒有外接引腳,INTE狀態(tài)通過C口置位復(fù)位控制字來設(shè)置。如圖和CPU聯(lián)絡(luò)的引腳C口置位復(fù)位控制字來設(shè)置12/10/202275INTR(interruptrequest)——中斷請求信注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:輸入:A口的INTE:寫入PC4B口的INTE:寫入PC2輸出:A口的INTE:寫入PC6B口的INTE:寫入PC2例如:方式1輸入允許A口中斷,則應(yīng)按如下方法設(shè)置INTEA。
MOVDX,控制寄存器地址MOVAL,0xxx1001B;1=允許中斷,0=禁止中斷OUTDX,AL12/10/202276注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:12/10/8255A方式1輸入工作過程小結(jié):需要事先設(shè)置開放內(nèi)部中斷;外設(shè)產(chǎn)生數(shù)據(jù),發(fā)選通信號,將數(shù)據(jù)送入8255A;一方面將輸入緩沖區(qū)滿信號激活,通知外設(shè)不再送入數(shù)據(jù);一方面與內(nèi)部INTE信號聯(lián)合作用產(chǎn)生INTR信號,通知CPU外設(shè)送來數(shù)據(jù)等待處理;CPU響應(yīng)后,發(fā)出讀信號,取走數(shù)據(jù)。注意:STB只持續(xù)一個時鐘周期,IBF在CPU讀取數(shù)據(jù)后才變成無效,是最晚改變的一個信號。12/10/2022778255A方式1輸入工作過程小結(jié):12/10/202227選通輸入時序1)8255與外設(shè)間的數(shù)據(jù)“INPUTDATA”上線2)稍后STB變?yōu)榈碗娖?)再稍后8255緩沖器滿IBF變?yōu)楦唠娖?)此時8255鎖存器將數(shù)據(jù)鎖存,STB變?yōu)楦唠娖?)INTR給出中斷請求信號6)響應(yīng)后,將8255鎖存器中內(nèi)容通過D7-D0傳送給CPU12/10/202278選通輸入時序1)8255與外設(shè)間的數(shù)據(jù)“INPUTDATA與輸入方式比較,輸出方式的聯(lián)絡(luò)信號的定義有所改變。使用B口時與輸入一樣使用PC2PC1PC0但是引腳上的定義有所不同。8255A方式1工作過程(輸出)12/10/202279與輸入方式比較,輸出方式的聯(lián)絡(luò)信號的定義有所改變。8255A8255A方式1工作過程(輸出)CPU發(fā)寫信號1111向C口寫PC4位置1,開放中斷1CPU產(chǎn)生數(shù)據(jù)后,輸出到數(shù)據(jù)總線數(shù)據(jù)進入8255A通知外部設(shè)備取走數(shù)據(jù)外部設(shè)備取走數(shù)據(jù)外設(shè)取走數(shù)據(jù)后的應(yīng)答信號高電平告訴外設(shè)數(shù)據(jù)緩沖區(qū)為空0PPT12/10/2022808255A方式1工作過程(輸出)CPU發(fā)寫信號1111向C口OBF*(outputbufferfull)——輸出緩沖器滿信號,8255A輸出給外設(shè)的一個控制信號,當(dāng)其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走ACK*(Acknowledge)——響應(yīng)確認(rèn)信號。是一個外設(shè)的響應(yīng)信號,指示CPU輸給8255A的數(shù)據(jù)已由外設(shè)接受。INTR——中斷請求信號,高有效。當(dāng)輸出設(shè)備已接受了CPU輸出的數(shù)據(jù)后,8255A輸出此信號向CPU提出新的中斷請求,要求CPU繼續(xù)輸出數(shù)據(jù)INTE(interruptenable)——端口中斷允許信號,可由用戶通過對PC6(INTEA)和PC2(INTEB)位置位來實現(xiàn)。INTE=1,允許發(fā)出INTR請求。該信號沒有外接引腳C口的聯(lián)絡(luò)信號(方式1輸出)12/10/202281OBF*(outputbufferfull)——輸出緩沖8255A方式1輸出工作過程小結(jié):需要事先設(shè)置開放內(nèi)部中斷;CPU產(chǎn)生數(shù)據(jù)送入8255A;將輸出緩沖區(qū)滿信號激活,通知外設(shè)有數(shù)據(jù)到來;外設(shè)取走數(shù)據(jù)后,發(fā)響應(yīng)信號給8255A,同時與內(nèi)部INTE聯(lián)合作用激活I(lǐng)NTR,向CPU發(fā)出中斷請求號,讓CPU再次送數(shù)據(jù)。注意:ACK只持續(xù)一個時鐘周期,OBF在外設(shè)讀取數(shù)據(jù)后才變成無效,而INTR是最晚改變的一個信號。12/10/2022828255A方式1輸出工作過程小結(jié):12/10/202232選通輸出時序1)D7-D0現(xiàn)有數(shù)據(jù)2)輸出寄存器滿,OBF有效。3)3)外部設(shè)備ACK應(yīng)答信號,從8255中把數(shù)據(jù)送給外設(shè)PA0-PA7。數(shù)據(jù)拿走后,當(dāng)OBF信號,從0變1那么此時INTR有效,發(fā)出中斷信號。請送第二個數(shù)據(jù)。12/10/202283選通輸出時序1)D7-D0現(xiàn)有數(shù)據(jù)12/10/202233[例7-3]利用8255作為打印機的連接接口,并通過該打印機接口字符串,字符串長度放在DS段的COUNT單元中,要打印的字符存放在從DATA單元開始的數(shù)據(jù)區(qū)中。8255綜合練習(xí)方式1應(yīng)用舉例112/10/202284[例7-3]利用8255作為打印機的連接接口,并通過該打印機初始化程序INIT: MOVDX,0FBC3H MOVAL,10000001B ;A組方式0:A口輸出,C口高4位輸出 ;B組方式0:B口輸出,C口低4位輸入 OUTDX,AL ;寫入至控制字寄存器 MOVAL,00001101B ;讀取低8位 OUTDX,AL打印一批字符的程序 MOV CX,COUNT MOV SI,OFFSETDATA GOON:MOVDX,0FBC2H IN AL,DX ;從C口讀入打印機BUSY信號 AND AL,02H JNZ GOON MOV AL,[SI] ;取一個字符12/10/202285初始化程序打印一批字符的程序12/10/202235 MOV DX,0FBC0H OUT DX,AL ;輸出一個字符到A口 MOV DX,0FBC2H ;準(zhǔn)備在PC6上形成一個負(fù)脈沖 MOV AL,0 OUT DX,AL ;使PC6變低 MOV AL,40H OUT DX,AL ;再使PC6變高 INC SI ;指向下一個字符 LOOP GOON HLT12/10/202286 MOV DX,0FBC0H12/10/2022368255A應(yīng)用舉例[例8-1]打印機接口。為某應(yīng)用系統(tǒng)配置一個并行打印機接口,并且通過接口CPU采用查詢方式打印。已知欲打印數(shù)據(jù)存放在數(shù)據(jù)段中有效地址位2000H的單元中。8255的口地址位80H、81H、82H、83H。分析:由于打印接口直接面向的對象是打印機接口標(biāo)準(zhǔn),而不是打印機本身,因此打印機接口要按照接口標(biāo)準(zhǔn)的要求進行設(shè)計,主要是8位并行數(shù)據(jù)線DATA0~DATA7,2條握手聯(lián)絡(luò)線STB#、ACK#和1條忙線BUSY。有關(guān)打印機接口工作時序見下圖。PPT8255綜合練習(xí)方式1應(yīng)用舉例112/10/2022878255A應(yīng)用舉例PPT8255綜合練習(xí)方式1應(yīng)用舉例1硬件示意圖Data1-data8:對打印機來講是輸入信號—數(shù)據(jù)輸入端StrobeSlct:當(dāng)他為低電平時打印機才能接受數(shù)據(jù)Init:打印機初始化,原先打印緩沖器的內(nèi)容清除掉。注意:箭頭的方向!Busy:data1信號有效后才,他變成忙狀態(tài)25針插座—并行USB插口---串行12/10/202288硬件示意圖Data1-data8:對打印機來講是輸入信號—數(shù)數(shù)據(jù)從B口輸出,B口工作在方式1C口的聯(lián)絡(luò)功能見上表C口高四位做輸出打印機狀態(tài)位都接到PA口,所以A口時輸入口C口低4位,由于有固定用途,不用設(shè)工作方式,B口時輸出口插座是驅(qū)動器起信號放大作用8255端口B以選通方式作數(shù)據(jù)輸出端口在8255的B口中數(shù)據(jù)傳輸給打印機,打印機發(fā)回應(yīng)答信號-ACKB后,8255的PC0向中斷控制器(IR2)發(fā)中斷請求,請CPU再輸出一個數(shù)據(jù)。打印機選通由PC4控制(‘0’有效)。初始化PC5由控制(‘0’有效)12/10/202289數(shù)據(jù)從B口輸出,B口工作在方式112/10/202239方式0掌握方式1了解編程要求1)中斷向量表輸入一定要會!2)8259初始化了解即可為什么8255初始化在8259后面呢?因為如果8255在前,方式控制字一寫,發(fā)出中斷請求,8259卻沒準(zhǔn)備好。3)打印機選通及初始化由PC4/PC5完成。4)查狀態(tài)查誰呢查BUSY5)保存寄存器,主程序子程序都用的,打架的寄存器保存12/10/202290方式0掌握方式1了解編程要求12/10/202240硬件連接圖由PC6充當(dāng)打印機的選通信號,通過對PC6的置位/復(fù)位來產(chǎn)生選通。同時,由PC2來接收打印機發(fā)出的“BUSY”信號作為能否輸出的查詢。圖中用8255A的PA口作為輸出打印數(shù)據(jù)口,工作于方式0,PC口高4位工作于輸出方式,PC6產(chǎn)生STB#信號;PC口低4位工作于輸入方式,PC2接收打印機的BUSY信號。PC6PC2PPT+工作流程由于工作在方式0,聯(lián)絡(luò)信號位可以自選。返回12/10/202291硬件連接圖由PC6充當(dāng)打印機的選通信號,通過對PC6的置位/從圖可見,DATA0~DATA7STBBUSYACK它的工作流程:當(dāng)CPU通過接口要求打印機打印數(shù)據(jù)時,先要查看BUSY信號
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版電力工程設(shè)計咨詢合同2篇
- 二零二五年度高新技術(shù)企業(yè)承包商擔(dān)保合同3篇
- 二零二五版戶外用品促銷員活動策劃合同2篇
- 二零二五年度酒店前臺正規(guī)雇傭合同范本(含勞動合同變更及續(xù)簽規(guī)則)3篇
- 二零二五版港口安全評價與安全管理合同3篇
- 二零二五版環(huán)保工程保險合同3篇
- 二零二五版外資企業(yè)往來借款稅務(wù)籌劃合同3篇
- 二零二五年財務(wù)顧問企業(yè)財務(wù)管理咨詢合同3篇
- 二零二五版智能家居產(chǎn)品銷售安裝合同2篇
- 二零二五年度鋼筋行業(yè)購銷合同規(guī)范范本5篇
- 不同茶葉的沖泡方法
- 光伏發(fā)電并網(wǎng)申辦具體流程
- 基本藥物制度政策培訓(xùn)課件
- 2025年中國華能集團限公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 建筑勞務(wù)專業(yè)分包合同范本(2025年)
- GB/T 45002-2024水泥膠砂保水率測定方法
- 廣東省廣州海珠區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試卷(含答案)
- 飛行原理(第二版) 課件 第10章 高速空氣動力學(xué)基礎(chǔ)
- 廣西《乳腺X射線數(shù)字化體層攝影診療技術(shù)操作規(guī)范》
- 山西省2024年中考道德與法治真題試卷(含答案)
- 五年(2020-2024)高考地理真題分類匯編(全國版)專題12區(qū)域發(fā)展解析版
評論
0/150
提交評論