第9章8255接口,教程_第1頁
第9章8255接口,教程_第2頁
第9章8255接口,教程_第3頁
第9章8255接口,教程_第4頁
第9章8255接口,教程_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章可編程并行接口8255A9.1可編程并行接口8255A9.28255A的控制字9.3方式0-基本的輸入/輸出方式9.4方式1—選通的輸入輸出方式9.5方式2—雙向傳輸方式本章小結本章習題9.1可編程并行接口8255A8255A是INTER系列的并行接口芯片。它是可編程的,可以通過軟件來設置芯片的工作方式。一、8255A的內部結構

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

每個端口:輸入帶緩沖寄存器,輸出帶鎖存寄存器。2.A組控制和B組控制3.讀/寫控制邏輯電路4.數(shù)據(jù)總線緩沖器9.1:8255A的內部結構9.1:8255A的內部結構數(shù)據(jù)總線片選信號讀寫控制地址總線8位端口A8位端口B8位端口C圖10-18255A的內部結構5.讀寫控制信號RESET:復位信號,低電平有效。D7~D0:和數(shù)據(jù)線相連。CS:芯片選擇信號,低電平有效。RD:芯片讀出信號,低電平有效。WR:芯片寫入信號,低電平有效。A1、A0:端口選擇信號。A1、A0=00,選中端口A;A1、A0=01,選中端口B;A1、A0=10,選中端口C;A1、A0=11,選中控制端口;9.1:讀寫控制信號9.1:8255引腳二、8255的引腳8位端口A8位端口B8位端口C圖10-28255的引腳圖數(shù)據(jù)總線讀寫控制提問1:并行接口芯片8255與CPU接口有哪些信號線,每個信號的用途是什么?

8255占用幾個端口地址?各個端口分別對應什么?端口C可以分為兩組嗎?9.1:提問9.28255A的控制字控制字:分為兩類端口的方式選擇控制字,可使8255A的3個數(shù)據(jù)端口工作在不同的方式。C端口按位置1/0控制字,它可使C端口中的任何一位進行置位或復位。8255A的3種基本工作方式:方式0:基本的輸入/輸出方式方式1:選通的輸入/輸出方式方式2:雙向的傳輸方式9.2:控制字1.方式控制字1D6D5D4D3D2D1D0方式選擇標志A組方式:00:方式001:方式110:方式2端口A:1:輸入0:輸出PC7~PC4:1:輸入0:輸出B組方式0:方式01:方式1端口B:1:輸入0:輸出PC3~PC0:1:輸入0:輸出9.2:方式控制字

例9-1:設A端口工作方式0,輸出,B端口工作于方式0,輸入。方式選擇控制字:1

0001/0

01

1/0=82H方式選擇A口方式0A口輸出C口高位不用B口方式0B口輸入C口低位不用9.2:方式控制字例題注意:端口A可以工作在方式0、方式1或方式2;端口B只能工作在方式0或方式1;端口C則常常配合端口A和端口B工作。歸為同一組的兩個端口可以分別工作在輸入方式和輸出方式,不要求同為輸入方式或同為輸出方式,而具體工作在那個端口,由方式控制字來決定。9.2:方式控制字注意事項2.端口C置1/0控制字0D7D6D5D4D3D2D1D0端口C置1/0控制字標志1=置10=置0000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7圖5、端口C置1/0控制字9.2:端口C置1/0控制字注意:C端口置1/0控制字盡管是對端口C進行操作,但此控制字必須寫入控制口,而不是寫入C端口。C端口置1/0控制字的D0決定了是置1操作還是置0操作。置1/0控制字的D3、D2、D1位決定了對C端口的那一位進行操作。9.2:端口C置1/0控制字注意例9-2:設8255A的控制口地址為0223H,要對端口C的PC7置1,則控制字00001111B=0FH,要對端口C的PC3置0,控制字為00000110B=06H。下面的程序可以實現(xiàn)上述要求: PORT_CDW223H …… MOVDX,PORT_C;控制口地址送DX

MOVAL,0FH;對PC7置1的控制字 OUTDX,AL;對PC7置1操作 MOVAL,06H;對PC3置0的控制字 OUTDX,AL;對PC3進行置0的操作9.2:端口C置1/0控制字例題提問2:8255A的方式選擇控制字和置1/置0控制字都是寫入控制端口的,那么,它們是由什么來區(qū)分的?

9.2:控制字提問9.38255A的工作方式08255A的3種基本工作方式:方式0:基本的輸入/輸出方式方式1:選通的輸入/輸出方式方式2:雙向的傳輸方式9.3:工作方式一、方式0--基本輸入輸出方式功能①任何一個端口可以作為輸入口,也可以作為輸出口。②各個端口輸入或輸出,可以有16種不同的組合,所以可以適用于多種使用場合。方式0使用場合兩種:一種是同步傳送,另一種是查詢式傳送。9.3:工作方式0功能二、方式0的輸入時序9.3:工作方式0時序圖10-3方式0的輸入時序例9-3:用8255A控制三個發(fā)光二極管依秩序循環(huán)顯示。

8255AA0A1CS+5V200譯碼器D7~D0地址線8088CPUA0A2A0PA0PA1PA29.3:工作方式0例題圖10-48255方式0的應用用8255A控制三個發(fā)光二極管顯示。8255A的端口地址為:A端口:340HB端口:341HC端口:342H控制口:344H試編寫8255初始化程序段和控制三個發(fā)光二極管顯示程序段。9.3:工作方式0例題開始8255A初始化延時BX顯示代碼地址CX=0?YNBX=BX+1CX=CX-1CX3輸出到A口1、程序框圖:9.3:工作方式0例題圖10-52、軟件設計1)設A口為輸出口,方式0。B口輸入,方式0,則方式選擇控制字為82H。2)A口輸出代碼:

00000110

06H,1號發(fā)光二極管亮0000010105H,2號發(fā)光二極管亮

0000001103H,3號發(fā)光二極管亮3)軟件延時(1).1ms的軟件延時參考程序:設系統(tǒng)的CPU的頻率為8MHZ,則時鐘節(jié)拍為:0.125微秒。執(zhí)行PUSHF、POPF、LOOP指令需29個節(jié)拍。延遲1毫秒要循環(huán)的次數(shù):9.3:工作方式0例題參考程序:DATASEGMENTCOTREQU346H ;8255A控制口地址PB_AEQU340H ;8255A的A口地址LEDDB06H,05H,03H;LED顯示值DATAENDPCODESEGMENTASSUMECS:CODE,DS:DATA…...

MOVDX,COTRMOVAL,82H;方式0OUTDX,AL;A口為輸出,B口為輸入MOVDX,PB_A;A口地址9.3:工作方式0例題LP:MOVCX,3LEABX,LED;1號燈代碼地址DON:MOVAL,[BX]

OUTDX,AL;1,2,3循環(huán)點亮CALLDELAY;調延時程序INCBXDECCXJNZDONJMPLPDEALYPROCNEAR;軟件延時….DEALYENDPCODEENDS

END9.3:工作方式0例題

PA0PA1PA28255AA0A1

PB0CS+5V200+5V2K譯碼器D7~D0地址線8088CPUA0A1思考題:用8255A控制三個發(fā)光二極管依秩序循環(huán)顯示。假設開關閉合時,點亮發(fā)光二極管,開關斷開時息滅二極管。9.3:工作方式0例題圖10-6提問3:8255A的方式0一般使用在什么場合?在方式0時,如要使用應答信號進行聯(lián)絡,應該怎么辦?

9.3:工作方式0提問例9-4、8255A作為連接打印的查詢式接口,工作于方式0,如圖10-7所示。(1)編寫程序,完成8255初始化;(2)將緩沖區(qū)BUF開始的10個字符送打印機打印。設8255A的端口地址為:A端口:00D0HC端口:00D2HB端口:00D1H控制口:00D3H工作過程:當主機要往打印機輸出字符時,先查詢打印機忙信號,如果打印機正在處理一個字符或在打印一行字符,則忙信號為1,否則為0。

PC2作為打印機忙信號,PC6作為數(shù)據(jù)選通信號,將數(shù)據(jù)線上的數(shù)據(jù)裝入打印機緩沖器。9.3:工作方式0例題-打印機打印機驅動流程圖:開始8255A初始化BUSY=0?送數(shù)送STB內存+1字節(jié)-1送完?結束9.3:工作方式0例題-打印機圖10-7CONTR-WEQU0D3HPORT-AEQU0D0HPORT-CEQU0D2HBUFDB‘BCDEFGHIJK’……PP:MOVAL,81H;8255工作方式字OUTD3H,AL;A口方式0,輸出,PC4~7輸出,PC0~3輸入MOVAL,0DH;PC6置1OUTD3H,AL

MOVSI,OFFSETBUF;打印字符內存地址

MOVCX,10;打印字符個數(shù)LPST:INAL,D2H;讀C口ANDAL,04H;查PC2=0?JNZLPST;忙,等待;不忙,送數(shù)

9.3:工作方式0例題-打印機MOVAL,[SI];從內存取數(shù)OUT0D0H,AL;送數(shù)到A口MOVAL,00001100B;將PC6置0(STB為低)OUT0D3H,AL;AL00001100B

NOPNOP ;延時INCAL ;AL00001101BOUT0D3H,AL ;再使STB(PC6)為1

INCSI ;內存地址+1DECCX ;字符數(shù)-1JNZLPSTHLT9.3:工作方式0例題-打印機8255并行接口PB0PB1…PB6PB78253定時器CLK2GATE2驅動喇叭PCLK1.1931816MHZOUT2例9-5:揚聲器接口:計數(shù)器2輸出896HZ方波,送揚聲器。工作于模式3.8255A控制8253的門控信號與揚聲器的開啟。8255端口地址:PA端口:60HPB端口:61HPC端口:62H控制口:63H8253端口地址:定時器通道0:40H定時器通道1:41H定時器通道2:42H控制端口:43H9.3:工作方式0例題-揚聲器接口圖10-7方式31.1931816MHZ01331

定時計數(shù)器8253工作在方式3下,預置初值為533H(1331D),輸出頻率為:

1.1931816MHZ/1331=896HZ

由系統(tǒng)并行接口芯片8255的PB口的最低兩位:PB0(TIM2GATESPK):控制8253定時器

PB1(SPKRDATA):控制喇叭發(fā)聲

9.3:工作方式0例題-揚聲器接口提問4:系統(tǒng)中,喇叭只產(chǎn)生896HZ的音調。如果想改變這個音調,使喇叭產(chǎn)生任意頻率的音調,該怎么做?控制發(fā)聲頻率

——改變計數(shù)初值計數(shù)初值=1.1931816MHZ/給定頻率控制聲音長短

——延時

①改變8253計數(shù)器0的計數(shù)初值,使其可以以任意時間申請中斷;

延時子程序;因此,可得使喇叭發(fā)聲的頻率和時間,可以控制喇叭發(fā)聲了。9.3:工作方式0例題-揚聲器接口主要參考程序代碼:;8253初始化程序:MOVAL,10110110B;計數(shù)器2,模式3,初值16位,二進制OUT43H,ALMOVAX,1983;計數(shù)初值=1.19MHZ600HZ=1983OUT42H,AL;送計數(shù)初值低位字節(jié)MOVAL,AHOUT42H,AL次;送計數(shù)初值高位字節(jié);8255控制程序:INAL,61H;讀8255的PB口原輸出MOVAH,AL;保留到AHORAL,03H;使PB0\PB1均為1OUT61H,AL;打開GATE2門,輸出方波到揚聲器HLT9.3:工作方式0例題-揚聲器接口將揚聲器程序寫成子程序,便于調用:SSPPROCNEAR;8253初始化:MOVAL,10110110B;計數(shù)器2,模式3,初值16位,二進制OUT43H,ALMOVAX,1983;計數(shù)初值=1.19MHZ600HZ=1983OUT42H,AL;送計數(shù)初值低位字節(jié)MOVAL,AHOUT42H,AL次;送計數(shù)初值高位字節(jié)9.3:工作方式0例題-揚聲器接口;8255控制程序: INAL,61H;讀8255的PB口原輸出值 MOVAH,AL;保留到AH ORAL,03H;使PB0\PB1均為1 OUT61H,AL;打開GATE2門,輸出方波到揚聲器 SUBCX,CX;CX為循環(huán)次數(shù),最大為216L:LOOPL;延時DECBL;BL為子程序入口條件JNZL;BL=6,發(fā)長聲(3S),BL=1發(fā)短聲(0.5S)MOVAL,AH;取回8255的PB口原輸出值OUT61H,AL;恢復8255PB口,停止發(fā)聲RETSSPENDP

9.3:工作方式0例題-揚聲器接口9.4方式1—選通的輸入輸出方式數(shù)據(jù)輸入輸出要在選通信號控制下工作.端口A和端口B可以分別作為兩個數(shù)據(jù)口工作于方式1端口A和端口B任何一個端口可以為輸入口或輸出口。9.4:工作方式11)方式1輸入:A口控制信號的定義:方式1輸出,C端口提供聯(lián)絡信號:10111/0D7D6D5D4D3D2D1D0PC6.PC71=輸入0=輸出A口方式1輸入9.4:工作方式1IBFAINTEAINTRASTBBIBFBINTRBPC7PC6PC5PC4PC3PC2PC1PC010111/0D7D6D5D4D3D2D1D0方式1PC4.PC51=輸入0=輸出端口A輸入111D7D6D5D4D3D2D1D0端口B輸入方式1圖10-8方式1輸入有關信號的規(guī)定RDPA7~PA0INTEAPC4PC5PC3PC6.PC7IOINTRAIBFASTBARDINTE

BPC2PC1PC0PB7~PB0STBBIBFBINTRB9.4:方式1輸入有關信號的規(guī)定選通信號輸入端,低電平有效輸入緩沖區(qū)滿信號,它是8255送往CPU的中斷請求信號,高電平有效。中斷允許信號,INTE由PC4置“1”,INTR有效A口方式1輸入有關信號的規(guī)定RDPA7~PA0INTEAPC4PC5PC3PC6.PC7IOINTRAIBFASTBA數(shù)據(jù)輸入口9.4:方式1A口輸入有關信號的規(guī)定9.4:方式1輸入時序圖10-9方式1輸出,C端口提供聯(lián)絡信號:OBFAACKAINTRAACKBOBFBINTRBPC7PC6PC5PC4PC3PC2PC1PC02)方式1,A口輸出,方式控制字:10101/0D7D6D5D4D3D2D1D0方式1PC4.PC51=輸入0=輸出端口A輸出9.4:方式1輸出圖10-10方式1輸出有關信號的規(guī)定9.4:方式1輸出有關信號的規(guī)定WRPA7~PA0INTEAPC6PC7PC3PC4.PC5IOINTRAOBFAACKAWRINTEBPC2PC1PC0PC7~PC0ACKBOBFBINTRB中斷允許信號,INTE由PC6置“1”,INTR有效數(shù)據(jù)輸出口9.4:方式1輸出時序圖10-11例10-6:8255A端口A工作在方式1,A口輸入,允許A口中斷,編寫初始化程序。

MOVDX,PCTR;控制口地址送DXMOVAL,10110000B;A口方式1輸入OUTDX,ALMOVAL,00001001B;置PC4=1,允許中斷OUTDX,AL;9.4:方式1例題IBFAINTEAINTRASTBBIBFBINTRBPC7PC6PC5PC4PC3PC2PC1PC0提問5:8255工作在方式1,輸入和輸出時中斷服務程序各完成什么功能?

9.4:方式1提問例9-7:8255A工作于方式1,作為用中斷方式工作的Centronics360字符打印機的接口.A端口為數(shù)據(jù)口,方式1,輸出方式,PC7作為輸出緩沖器滿OBF信號,PC6作為外設響應信號ACK,PC3作為INTR信號。端口地址:A端口:00C0H,B端口:00C2HC端口:00C4H控制口:00C6H;控制字:10100000B=0A0HOBF注意:當ACK為低時,OBF為高.1).初始化8255A程序段:MOVAL,10100000B;設置8255A的控制字OUT0C6H,AL;A口方式1輸出2)設中斷向量:(假設IR3類型碼為0AH)0AH×4=28H

CLIPUSHDSXORAX,AXMOVDS,AXMOVAX,OFFSETINT-3MOVWORDPTR[0028H],AXMOVAX,SEGINT-3MOVWORDPTR[002AH],AXPOPDSSTI;CPU開中斷MOVAL,0CH;置PC6=1控制字OUT0C4H,AL;使INTE(PC6)為1,8255開中斷MOVCX,10MOVSI,OFFSETBUF;取緩沖區(qū)首地址DON1:JCXZDOJMPDON1;等待中斷DON2:HLT3).用中斷方式輸出10個字符程序段:INT-3PROCNEARMOVAL,[DI];取一個字符MOV0C0H,AL;從A口輸出INCSIDECCXIRETINT-3ENDP查詢式方式輸出數(shù)據(jù):1).初始化8255A程序段:MOVAL,0A0H;主程序段OUT0C6H,AL;設置8255A的控制字MOVAL,0CH;置PC6=1控制字OUT0C4H,AL;使INTE(PC6)為0,禁止中斷2).用查詢方式輸出10個字符程序段:MOVCX,10MOVSI,OFFSETBUF;取緩沖區(qū)首地址P1:MOVAL,[DI];取一個字符MOV0C0H,AL;從A口輸出P2:MOVAL,0C4;讀口CTESTAL,80H;檢測OBF(PC7)為1?JZP2;為0,繼續(xù)檢測INCDI;為1,數(shù)據(jù)已輸出,準備下次輸出LOOPP1例9-8:8255A方式1輸入應用:某8位A/D轉換器,與8255的連接如下圖,PC7做啟動AD轉化信號,AD轉化結束信號EOC接PC4,作為選通信號STB。A/D轉換啟動為高電平。假設8255作為查詢式輸入接口,分析工作原理。編寫8255初始化與輸入一個數(shù)據(jù)的程序。8086CPU8255APA7~PA0PC4PC7D7~D0PC3D7~D0INTR8259IN0STARTEOCA/D模擬量輸入STB9.4:方式1例題-A/D轉換接口圖10-12采用查詢式輸入:注意到8255方式1輸入時,數(shù)據(jù)準備好后,IBF=1,因此可以通過查詢IBF的狀態(tài)。主要參考程序代碼:MOVDX,PCTR;控制口地址送DXMOVAL,10110000B;A口方式1輸入,PC7輸出OUTDX,ALMOVAL,00001110B;置PC7=0,禁止A/DOUTDX,ALMOVAL,00001111B;置PC7=1,啟動A/DOUTDX,AL9.4:方式1例題-A/D轉換接口L:MOVDX,POT_C;C口地址送DXINAL,DXTESTAL,00100000B;查IBF=1,即PC5=1?JZL;查無輸入數(shù)據(jù),等待

MOVDX,PCTR

MOVAL,00001110B

;置PC7=0,禁止A/D

OUTDX,AL MOVDX,POT_A;送A口地址 INAL,DX;IBF=1,讀數(shù)據(jù) ;數(shù)據(jù)讀出后,自動撤銷IBF(0)HLT9.4:方式1例題-A/D轉換接口提問6:如果采用中斷方式輸入,程序如何設計?提示:將8255中斷請求端INTRA(PC3)接8259輸入端,使中斷請求能引入CPU允許8255端口A中斷,設INTEA=1,即設PC4=1當數(shù)據(jù)進入8255端口A時,8255的INTRA(PC3)發(fā)中斷請求申請,CPU響應后即可讀數(shù)據(jù)9.4:方式1提問3)方式1的使用場合

在采用中斷方式進行輸入/輸出的場合,如果外部設備能為8255A提供選通信號或數(shù)據(jù)接收應答信號,那么,通常使用8255A的端口工作方式1的情況。9.4:方式1使用思考題:

8255A的三個端口在使用時,有什么差別?提示:通常A端口與B端口可作為獨立的輸入輸出端口,C端口則配合A、B端口工作,提供控制信號、狀態(tài)信息。9.5方式2——雙向傳輸方式

①方式2只適用于端口A,雙向并行通信②端口A工作于方式2時,端口C用5個數(shù)位自動配合端口A提供控制。注意:①端口A可工作在3種方式中的任意一種;②端口B只能工作在方式0或方式1;③端口C被分為高4位和低4位,可以分別工作在輸入方式和輸出方式,并不要求同為輸入方式或同為輸出方式.9.5:工作方式2方式2,C端口提供的聯(lián)絡信號:OBFAACKAIBFASTBAINTRAPC7PC6PC5PC4PC3PC2PC1PC09.5:工作方式2D7D6D5D4D3D2D1D011端口A方式B組方式0=方式01=方式1PC7~PC01=輸入0=輸出端口B1=輸入0=輸出圖10-13方式2工作的控制信號PC2~PC0PC4PC5PC6PC7PC3INTE1INTE2IOIBFASTBAACKAOBFAINTRAWRRDPA7~PA09.5:工作方式2圖10-21畫出了一個數(shù)據(jù)輸出過程和一個數(shù)據(jù)輸入的時序.9.5:工作方式2時序圖10-14例題本章小結8255功能結構8255與CPU的連接8255的端口地址8255的工作方式重點掌握方式的應用習題91.總結8255A端口C的使用特點。2.設定8255A的口A為方式1輸入,口B為方式1輸出,則讀取口C的數(shù)據(jù)的各位是什么含義?3.對8255A的控制寄存器寫入BOH,則其端口C的PC0引腳是什么作用的信號線?

4.設一工業(yè)控制系統(tǒng),有四個控制點,分別由四個對應的輸入端控制,現(xiàn)用8255A的C口實現(xiàn)該系統(tǒng)的控制,如圖1。開關K0~K3打開則對應發(fā)光二極管L0~L3亮,表示系統(tǒng)該控制點運行正常;開關閉合則對應發(fā)光二極管不亮,說明該控制點出現(xiàn)故障。編寫8255A的初始化程序和這段控制程序。圖10-1;8255方式設置,C口低半部分為輸入,C口高半部分為輸出MOV AL,10000001BOUT 63H,AL L1:INAL,62H;查詢開關狀態(tài)MOVCL,4ROLAL,CL;AL中高4位與低4位交換OUT62H,ALJMP L1

;循環(huán)查詢開關狀態(tài)5.編一初始化程序,使8255A的PC5端輸出一個負跳變。如果要求PC5端輸出一個負脈沖則初始化程序又是什么情況?初始化程序:MOVAL,0000101

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論