




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
侯彥利吉林大學(xué)工學(xué)部計(jì)算機(jī)硬件基礎(chǔ)課程
微機(jī)原理與接口技術(shù)12可編程定時(shí)/計(jì)數(shù)器8253可編程并行接口8255A串行通訊基本概念第7章可編程接口芯片37.1定時(shí)/計(jì)數(shù)器8253芯片常用定時(shí)方法:軟件定時(shí):采用軟件編程來(lái)實(shí)現(xiàn)定時(shí)和計(jì)數(shù)要求,通用靈活,但占用CPU時(shí)間;硬件定時(shí):采用專用的硬件電路來(lái)實(shí)現(xiàn)。定時(shí)/計(jì)數(shù)器從計(jì)數(shù)方式上分為加法計(jì)數(shù)器和減法計(jì)數(shù)器。計(jì)數(shù)器啟動(dòng)后與CPU并行工作,不占CPU時(shí)間。4D0D7~數(shù)據(jù)總線緩沖器讀/寫(xiě)邏輯控制寄存器計(jì)數(shù)器0計(jì)數(shù)器1計(jì)數(shù)器2片內(nèi)總線RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2
可編程定時(shí)器8253的內(nèi)部結(jié)構(gòu)圖58253的功能:具有三個(gè)功能完全相同的獨(dú)立的16位減法計(jì)數(shù)器;每個(gè)計(jì)數(shù)器都包括一個(gè)16位的初值寄存器、一個(gè)計(jì)數(shù)執(zhí)行單元和一個(gè)輸出鎖存器;每個(gè)計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘頻率最高為:2MHZ每個(gè)計(jì)數(shù)器可以按十進(jìn)制數(shù)或二進(jìn)制數(shù)預(yù)置初值;每個(gè)計(jì)數(shù)器有六種工作方式,可通過(guò)編程設(shè)定或改變;每個(gè)計(jì)數(shù)器的計(jì)數(shù)定時(shí)值,可由CPU隨時(shí)讀取;初值寄存器計(jì)數(shù)執(zhí)行單元輸出鎖存器CLKGATEOUT6D0~D7:8位雙向數(shù)據(jù)線;CS:芯片選擇;RD、WR:讀寫(xiě)控制信號(hào);A1,A0:地址線;A1A0=00 計(jì)數(shù)器0A1A0=01 計(jì)數(shù)器1A1A0=10 計(jì)數(shù)器2A1A0=11 控制寄存器CLK:計(jì)數(shù)器的時(shí)鐘信號(hào)輸入端,最高計(jì)數(shù)頻率2MHz;GATE:門控信號(hào);控制計(jì)數(shù)器的啟動(dòng)和停止;OUT:計(jì)數(shù)器輸出信號(hào);8253的引線及功能78253的工作原理當(dāng)置入初值后,計(jì)數(shù)執(zhí)行單元開(kāi)始對(duì)輸入脈沖CLK進(jìn)行減1計(jì)數(shù),減到0時(shí)從OUT端輸出一個(gè)信號(hào);整個(gè)過(guò)程可以重復(fù)進(jìn)行;初值寄存器計(jì)數(shù)執(zhí)行單元輸出鎖存器CLKGATEOUT8計(jì)數(shù)器的啟動(dòng)的方法軟啟動(dòng):由程序指令啟動(dòng)。
MOVAX,500 OUT80H,AL MOVAL,AH OUT80H,AL如果GATE為高電平,就啟動(dòng)計(jì)數(shù);硬件啟動(dòng):由外部信號(hào)啟動(dòng)。寫(xiě)入初值后并不啟動(dòng)計(jì)數(shù),門控信號(hào)GATE由低變高電平后,在CLK的下降沿開(kāi)始計(jì)數(shù);97.1.2計(jì)數(shù)器的工作方式8253一共有6種工作方式;在多數(shù)工作方式下,計(jì)數(shù)器每啟動(dòng)一次只工作一個(gè)周期;有兩種工作方式可以進(jìn)行自動(dòng)重復(fù)計(jì)數(shù);MOVAL,0B4HOUT43H,AL ;控制字送入控制寄存器MOVAX,800OUT42H,AL ;計(jì)數(shù)初值低8位送入計(jì)數(shù)器MOVAL,AHOUT42H,AL ;計(jì)數(shù)初值高8位送入計(jì)數(shù)器10方式0:計(jì)數(shù)結(jié)束中斷軟件啟動(dòng)、不自動(dòng)重復(fù)計(jì)數(shù)方式;計(jì)數(shù)結(jié)束后,OUT端輸出為高電平,可以作為中斷請(qǐng)求信號(hào)使用;1.只計(jì)數(shù)一個(gè)周期;2.在計(jì)數(shù)過(guò)程中GATE變?yōu)榈碗娖剑瑒t暫停計(jì)數(shù);3.在計(jì)數(shù)過(guò)程中,可以隨時(shí)修改計(jì)數(shù)初值;WRCLKGATEOUTCWN=44321011注意,8253所有的6個(gè)工作方式都有下列共同點(diǎn):⑴控制字寫(xiě)入計(jì)數(shù)器時(shí),OUT端進(jìn)入初始狀態(tài),不同的工作方式OUT端初始狀態(tài)不一定相同。⑵計(jì)數(shù)初值寫(xiě)入計(jì)數(shù)器之后,暫存在初值寄存器中,要經(jīng)過(guò)一個(gè)時(shí)鐘周期的上升沿和下降沿,計(jì)數(shù)初值才進(jìn)入計(jì)數(shù)執(zhí)行單元,開(kāi)始計(jì)數(shù)。⑶通常在每個(gè)時(shí)鐘脈沖的上升沿,采樣門控信號(hào)GATE。不同的工作方式下,門控信號(hào)的作用不同。⑷在時(shí)鐘脈沖的下降沿,計(jì)數(shù)器減1。(5)計(jì)數(shù)初值也叫時(shí)間常數(shù)。12方式1:可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器硬件啟動(dòng)、不自動(dòng)重復(fù)的工作方式;當(dāng)寫(xiě)入控制字后,OUT端輸出高電平。寫(xiě)入計(jì)數(shù)初值后計(jì)數(shù)器并不開(kāi)始工作;當(dāng)GATE端由低到高觸發(fā)后,在下一個(gè)CLK脈沖的下降沿開(kāi)始計(jì)數(shù),OUT端立刻由高到低,計(jì)數(shù)結(jié)束后OUT端輸出高電平;432101314方式1的特點(diǎn):GATE的上升沿觸發(fā)計(jì)數(shù)器,計(jì)數(shù)過(guò)程中GATE即使變低也不影響計(jì)數(shù);可重復(fù)觸發(fā);OUT端的負(fù)脈沖寬度=計(jì)數(shù)初值N×TCLK計(jì)數(shù)器0CLKGATEOUT如果CLK=2MHz,則:fc=2MHzTc=1/fc=0.5x10-6
,如果時(shí)間常數(shù)N=1000,則OUT端的負(fù)脈沖寬度=NxTc=1000x0.5x10-6=500us4321015方式2:頻率發(fā)生器也叫分頻器;可以軟件啟動(dòng),也可以硬件啟動(dòng),計(jì)數(shù)器自動(dòng)重復(fù)工作。在寫(xiě)入控制字和計(jì)數(shù)初值期間GATE一直為高電平,則在下一個(gè)CLK開(kāi)始計(jì)數(shù),既軟啟動(dòng);若寫(xiě)入計(jì)數(shù)初值時(shí)GATE為低電平,則要等到GATE由低到高時(shí)才啟動(dòng),即硬件啟動(dòng);一旦計(jì)數(shù)器啟動(dòng),計(jì)數(shù)器可以自動(dòng)重復(fù)工作;GATE為低,停止計(jì)數(shù);WRCLKGATEOUTCWN=332132116寫(xiě)入控制字后,OUT為高電平。如果GATE為高,寫(xiě)入初值后開(kāi)始減1計(jì)數(shù)。當(dāng)計(jì)數(shù)值減到1時(shí),OUT輸出變?yōu)榈碗娖剑俳?jīng)過(guò)一個(gè)CLK之后計(jì)數(shù)值減為0,OUT變?yōu)楦唠娖?,接著自?dòng)重新裝入初值,計(jì)數(shù)器重復(fù)工作。WRCLKGATEOUTCWN=332132117
18【例題7-2】設(shè)8253的端口地址為:40H~43H,用計(jì)數(shù)器2作頻率發(fā)生器,二進(jìn)制計(jì)數(shù),輸入脈沖信號(hào)為2M,計(jì)數(shù)初值為800,輸出脈沖信號(hào)的頻率是多少?控制字為:10110100B=0B4H輸出脈沖信號(hào)的頻率為:FOUT=FCLK/N=2X106/800=2500Hz19初始化程序:MOVAL,0B4HOUT43H,AL;控制字送入控制寄存器MOVAX,800OUT42H,AL;計(jì)數(shù)初值低8位送入計(jì)數(shù)器2MOVAL,AHOUT42H,AL;計(jì)數(shù)初值高8位送入計(jì)數(shù)器2,計(jì)數(shù)器啟動(dòng)。20可以軟啟動(dòng),也可以硬件啟動(dòng),計(jì)數(shù)器自動(dòng)重復(fù)工作;寫(xiě)入控制字后,OUT為高電平。如果GATE為高,寫(xiě)入初值后開(kāi)始減1計(jì)數(shù)。當(dāng)計(jì)數(shù)值減到N/2時(shí),OUT輸出變?yōu)榈碗娖?,直到?jì)數(shù)值減為0;接著自動(dòng)重新裝入初值,OUT變?yōu)楦唠娖剑?jì)數(shù)器自動(dòng)重復(fù)工作。OUT輸出對(duì)稱方波:若計(jì)數(shù)初值為奇數(shù),OUT輸出非對(duì)稱方波:GATE由高變低,停止計(jì)數(shù)。N/2(N+1)/2方式3-方波發(fā)生器21【例題7-3】設(shè)8253的端口地址為:FCF8H~FCFFH,利用計(jì)數(shù)器1作方波發(fā)生器,給定CLK1為2MHz,要求產(chǎn)生頻率為1KHz的方波,BCD碼計(jì)數(shù)。編程初始化8253。計(jì)數(shù)器1工作在方式3:01110111B分頻系數(shù):N=FCLK/FOUT=2×106/1000=200022程序設(shè)計(jì)如下:
MOVDX,0FCFBH MOVAL,01110111B;
OUTDX,ALMOVDX,0FCF9HMOVAX,2000H ;BCD碼計(jì)數(shù)初值
OUTDX,AL ;寫(xiě)入計(jì)數(shù)初值低字節(jié)
MOVAL,AH OUTDX,AL;寫(xiě)入計(jì)數(shù)初值高字節(jié),計(jì)數(shù)器啟動(dòng)23方式4:軟件觸發(fā)選通軟件啟動(dòng)、不自動(dòng)重復(fù)計(jì)數(shù)方式;寫(xiě)入控制字后,OUT為高電平,計(jì)數(shù)器裝入初值后即啟動(dòng)計(jì)數(shù),計(jì)數(shù)結(jié)束時(shí)OUT輸出寬度為TCLK的負(fù)脈沖,如下:WRCLKGATEOUTCWN=443210GATE為低,停止計(jì)數(shù)。432124方式5:硬件觸發(fā)選通硬件啟動(dòng)、不自動(dòng)重復(fù)的工作方式。GATE的上升沿觸發(fā)計(jì)數(shù)器;計(jì)數(shù)結(jié)束時(shí),在OUT端輸出一個(gè)脈沖寬度為TCLK的負(fù)脈沖信號(hào):
WRCLKGATEOUTCWN=543210GATE的上升沿,將重新計(jì)數(shù)。25SC1SC0RL1RL0M2M1M0BCD數(shù)制選擇:0二進(jìn)制1BCD碼方式選擇:000-方式0001-方式1X10-方式2X11-方式3100-方式4101-方式5計(jì)數(shù)初值長(zhǎng)度選擇:00-計(jì)數(shù)器中的數(shù)據(jù)鎖存于緩沖器01-只讀/寫(xiě)低8位,高8 位默認(rèn)為010-只讀/寫(xiě)高8位,低8 位默認(rèn)為011-先讀/寫(xiě)低8位后讀/寫(xiě)高8位計(jì)數(shù)器選擇:00-選計(jì)數(shù)器001-選計(jì)數(shù)器110-選計(jì)數(shù)器211-無(wú)效8253的控制字二進(jìn)制計(jì)數(shù)范圍:0000~65536H;初值=0000,為最大計(jì)數(shù)值十進(jìn)制計(jì)數(shù)范圍:0000~10000;初值=0000,為最大計(jì)數(shù)值;26例如:利用計(jì)數(shù)器1作頻率發(fā)生器,給定CLK1為2MHz,要求產(chǎn)生頻率為1KHz的脈沖。計(jì)數(shù)器1工作在方式2:0111X100B時(shí)間常數(shù)N=fc/fo=2×106/(1×103)=2000程序設(shè)計(jì)如下:
MOVAL,01110100B;
OUT83H,AL MOVAX,2000;先寫(xiě)入低字節(jié)計(jì)數(shù)值,
OUT81H,AL MOVAL,AH ;后寫(xiě)入高字節(jié)計(jì)數(shù)值
OUT81H,AL … ;OUT輸出脈沖周期為1ms27例如:利用計(jì)數(shù)器2作脈沖發(fā)生器,給定CLK2為1MHz,要求產(chǎn)生周期為20ms的方波。計(jì)數(shù)器2工作在方式3:1011X110B計(jì)數(shù)初值N=fc/fo=1×106×20×10-3=20000=4E20H程序設(shè)計(jì)如下:
MOVAL,10110110B;#2,方式3,二進(jìn)制
OUT83H,AL MOVAL,20H:先寫(xiě)入低字節(jié)計(jì)數(shù)值
OUT82H,AL MOVAL,4EH;后寫(xiě)入高字節(jié)計(jì)數(shù)值
OUT82H,AL … ;OUT輸出周期為20ms的方波
288253與系統(tǒng)的連接D0D7~A1A0IORIOWD0D7~RDWRA1A08253GATE0GATE1GATE2OUT0OUT1OUT2CLK0CLK1CLK2CS&&≥1GG2AG2BCBAY0IOWIORA3A4A5A6A7A2A8A9A10A11A12A13A14A15系統(tǒng)總線信號(hào)74LS138297.1.38253的應(yīng)用8253的初始化編程,主要設(shè)置兩方面的內(nèi)容,一是寫(xiě)入控制字,二是寫(xiě)入計(jì)數(shù)初值??刂谱謱?xiě)入8253的控制寄存器。3個(gè)控制字可以連續(xù)寫(xiě)入控制寄存器。寫(xiě)入計(jì)數(shù)初值時(shí)注意兩個(gè)問(wèn)題:一是3個(gè)計(jì)數(shù)初值應(yīng)寫(xiě)入相應(yīng)的計(jì)數(shù)器中,不可混亂,二是要符合控制字的要求。30【例7-4】8253與計(jì)算機(jī)系統(tǒng)的連接如圖所示,三個(gè)計(jì)數(shù)器使用情況如下:CNT0:對(duì)外部事件計(jì)數(shù),計(jì)滿100次向CPU發(fā)出中斷請(qǐng)求。CNT1:產(chǎn)生1kHz方波。CNT2:標(biāo)準(zhǔn)定時(shí),定時(shí)時(shí)間為1s。3132計(jì)數(shù)器0應(yīng)設(shè)置為方式0,完成計(jì)數(shù)功能。計(jì)數(shù)器1應(yīng)設(shè)置為方式3,CLK1輸入的時(shí)鐘脈沖頻率為2MHz,輸出頻率為1kHz的方波,周期為1ms; 計(jì)數(shù)器1的計(jì)數(shù)初值為2000。計(jì)數(shù)器2設(shè)置為方式0,完成定時(shí)功能,定時(shí)1秒,利用OUT2向CPU發(fā)出一次中斷請(qǐng)求,其輸入時(shí)鐘頻率為1kHz,計(jì)數(shù)初值應(yīng)為1000。8253的端口地址為01FC~01FFH
。33START:MOVDX,01FFHMOVAL,10HOUTDX,AL;計(jì)數(shù)器0工作在方式0MOVDX,01FCHMOVAL,100OUTDX,AL;計(jì)數(shù)器0置初值
MOVDX,01FFHMOVAL,76HOUTDX,AL;計(jì)數(shù)器1工作在方式3MOVDX,01FDHMOVAX,2000OUTDX,ALMOVAL,AHOUTDX,AL;計(jì)數(shù)器1置初值
34MOVDX,01FFHMOVAL,0B0HOUTDX,AL;計(jì)數(shù)器2工作在方式0MOVDX,01FEHMOVAX,1000OUTDX,ALMOVAL,AHOUTDX,AL;計(jì)數(shù)器2置初值35【例題7-5】在IBMPC/XT中定時(shí)器/計(jì)數(shù)器芯片8253,其計(jì)數(shù)器0(CNT0)工作在方式3,GATE0固定為高電平,OUT0作為中斷請(qǐng)求信號(hào)接至8259A中斷控制器的IRQ0,作為定時(shí)中斷,用于時(shí)鐘的時(shí)間基準(zhǔn)。計(jì)數(shù)器1工作在方式2,GATE1固定為高電平,OUT1的輸出作為定時(shí)(約15us)信號(hào),用于刷新動(dòng)態(tài)RAM,在2ms內(nèi)可以有132次刷新(128次是系統(tǒng)的最低要求)。36計(jì)數(shù)器2工作在方式3,輸出1KHZ的方波,作為揚(yáng)聲器的音頻信號(hào)源,GATE2由8255的PB0控制,OUT2與8255的PB1相與,這樣利用8255的PB0、PB1同時(shí)為高電平的時(shí)間來(lái)控制喇叭發(fā)長(zhǎng)音還是發(fā)短音。三個(gè)計(jì)數(shù)器的輸入時(shí)鐘頻率一樣,為F=1.19MHZ37388253的端口地址為040H~043H,8255的端口地址為60H~63H,ROM-BIOS對(duì)8253的編程如下:計(jì)數(shù)器0用于定時(shí)中斷:MOVAL,00110110B;OUT43H,ALMOVAL,0;計(jì)數(shù)初值為0000,即為最大。OUT40H,ALOUT40H,AL39計(jì)數(shù)器1用于動(dòng)態(tài)RAM的刷新:MOVAL,01010100BOUT43H,ALMOVAL,18;計(jì)數(shù)初值為18OUT41H,AL40計(jì)數(shù)器2用于產(chǎn)生1KHZ的方波送至揚(yáng)聲器發(fā)聲,聲響子程序?yàn)锽EEP,入口地址為FFA08H,入口參數(shù)BL。BL=6,喇叭發(fā)長(zhǎng)音,BL=1喇叭發(fā)短音:BEEPPROCNEARMOVAL,10110110BOUT43H,ALMOVAX,1331;計(jì)數(shù)初值為1331OUT42H,ALMOVAL,AHOUT42H,ALINAL,61H;讀取8255B端口MOVAH,AL;存在AH41 ORAL,03H OUT61H,AL;輸出至8255的B端口,使揚(yáng)聲器發(fā)聲
SUBCX,CX;設(shè)置延時(shí)參數(shù)G7:LOOPG7 MOVBH,0 DECBX;BL的值為控制長(zhǎng)短聲,BL=6(長(zhǎng)),BL=1(短)
JNZG7 MOVAL,AH;恢復(fù)8255B端口值,停止發(fā)聲
OUT61H,AL RETBEEPENDP427.2可編程并行接口芯片8255CPU與外設(shè)的數(shù)據(jù)交換,有并行和串行傳送方式。接口可分為并行接口和串行接口。8255A是通用8位可編程并行輸入輸出接口芯片;4312345678910111213141516171819204039383736353433323130292827262524232221PA3PA2PA1PA0RDCSGNDA0A1PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3引腳及功能:40引腳,單一+5V電源,雙列直插式;D7~D0:數(shù)據(jù)信號(hào)線;CS:片選信號(hào);A0A1口地址選擇信號(hào);WR:寫(xiě)信號(hào);RD:讀信號(hào)線;Reset復(fù)位信號(hào)高電平有效;
8255復(fù)位后,各端口都被預(yù)置為輸入狀態(tài)。PA0~PA7:端口A的8條輸入輸出線PB0~PB7:端口B的8條輸入或輸出線PC0
~PC7:端口C的8條輸入或輸出線,也可以用作控制信號(hào)的輸出或狀態(tài)信號(hào)的輸入線;44內(nèi)部結(jié)構(gòu)PA7~PA0PC7~PC4PB7~PB0PC3~PC0A組端口AA組控制電路緩沖器B組控制電路讀/寫(xiě)控制邏輯A組端口C高4位B組端口C低4位B組端口B內(nèi)部邏輯外設(shè)接口RDWRA1A0RESETCSD7~D0I/OI/OI/OI/O45端口地址8255A包含A口、B口、C口三個(gè)獨(dú)立的數(shù)據(jù)端口,及一個(gè)控制端口。各端口地址如下:A1A0=00 A口A1A0=01 B口A1A0=10 C口A1A0=11 控制端口46數(shù)據(jù)端口的特點(diǎn)A口、B口、C口可以作為三個(gè)獨(dú)立的數(shù)據(jù)輸入輸出通道(端口)單獨(dú)使用;也可以將A口、B口作為數(shù)據(jù)輸入輸出口,C口輸出控制信號(hào)或輸入狀態(tài)信號(hào);A口----具有數(shù)據(jù)輸入輸出功能,且能鎖存;B口----具有數(shù)據(jù)輸入輸出功能,且能鎖存;C口----具有數(shù)據(jù)輸入輸出功能,輸出時(shí)可以鎖存;C口的主要特點(diǎn)是可以按位進(jìn)行操作;可以分為2個(gè)4位的端口;既可以傳送數(shù)據(jù)也可以用來(lái)輸出控制信號(hào)或輸入狀態(tài)信號(hào);478255與系統(tǒng)的連接示意圖系統(tǒng)總線信號(hào)IORIOW
A0
A1D0~D7
A0
A2
A15●●●
A1D0~D7CS
A口
B口
C口外設(shè)譯碼WRRD488255的工作方式8255有三種工作方式:方式0、方式1、方式2;方式0,基本輸入輸出方式適合于三個(gè)端口;作為輸出口時(shí)它具有鎖存功能,作為輸入時(shí)不能鎖存;A口、C口的高4位、B口以及C口的低四位可分別定義為輸入或輸出,各端口相互獨(dú)立,故共有16種組合。C口可以按位進(jìn)行置位和復(fù)位。49方式0最適用于無(wú)條件傳送方式;也能用于查詢工作方式,這時(shí)常將C口的高4位定義為輸入口,輸入外設(shè)的狀態(tài)信號(hào),而將C口的低四位定義為輸出口,輸出控制信息;這時(shí)可用A、B口傳送數(shù)據(jù);方式0不能工作在中斷方式;50方式1:選通輸入輸出方式:A口、B口作為數(shù)據(jù)的輸入口或輸出口,但數(shù)據(jù)的輸入輸出要在控制信號(hào)的控制下,控制信號(hào)由C口的某些位來(lái)提供;方式1適用于程序查詢和中斷控制方式,它不能工作在無(wú)條件傳送方式下;51方式1下A口、B口均為輸出C口的6條線作為選通控制信號(hào):PC3、PC6、PC7配合A口,PC0、PC1、PC2配合B口;接8259OBF:輸出緩沖器滿信號(hào);ACK:外設(shè)收到數(shù)據(jù)的應(yīng)答信號(hào);INTE:中斷允許狀態(tài);INTR:中斷請(qǐng)求信號(hào);INTEAPC7PC6PC3&PA7~PA0PC4PC5IOWOBFAACKAINTRAIOWOBFINTRACK輸出52IOWOBFINTRACK輸出INTEBPC1PC2PC0&PB7~PB0IOWOBFBACKBINTRB接825953方式1下A口、B口均為輸入STBAIBFASTB:輸入選通信號(hào);外設(shè)用它將數(shù)據(jù)鎖存于輸入數(shù)據(jù)緩沖器中;IBF:數(shù)據(jù)輸入緩沖器滿,STB的應(yīng)答信號(hào);INTR:中斷請(qǐng)求信號(hào)INTR;INTE:中斷允許信號(hào);INTEAPC4PC5PC3PA7~PA0PC6PC7IORINTRA&INTEBPC2PC1PC0PB7~PB0IORSTBBIBFBINTRB&54方式2:雙向傳輸方式,只有A口可以工作在這種方式下。既能發(fā)送數(shù)據(jù),又能接收數(shù)據(jù);它還要利用C口的5條線作為控制信號(hào)線;A口的輸入輸出均具有數(shù)據(jù)鎖存能力,數(shù)據(jù)的輸入輸出均可以引起中斷;方式2適用于程序查詢和中斷控制方式。它不能工作在無(wú)條件傳送方式下。這時(shí)B口可以工作在方式0或方式1,C口剩余的3條線可以作為輸入輸出線或方式1下的控制線。55控制字76543210功能控制0:位操作1:方式選擇A組方式選擇00:方式001:方式11X:方式2控制A口8位0:輸出1:輸入控制C口高4位0:輸出1:輸入B組方式選擇0:方式01:方式1控制B口8位0:輸出1:輸入控制C口低4位0:輸出1:輸入1.方式選擇控制字:56【例題7-6】設(shè)8255的端口地址為FBC0~FBC3H,A口設(shè)置方式0輸入,B口方式0輸出,C口高4位方式0輸出,C口低4位方式0輸入。控制字為:10010001B8255初始化程序?yàn)椋篗OVDX,0FBC3HMOVAL,91HOUTDX,AL57方式選擇控制字例A口、B口工作在方式0下:A口輸出、B口輸入則:10000010A口工作在方式0、B口工作在方式1下:A口輸出、B口輸入則:10000110A口工作在方式1、B口工作在方式0下:A口輸入、B口輸出則:10110000方式選擇控制字:80H, B4H582.按位操作控制字76543210置位/復(fù)位0:復(fù)位1:置位C口的位選擇000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC7無(wú)關(guān)0設(shè)置PC0為置位,則:00000001設(shè)置PC4為復(fù)位,則:00001000設(shè)置PC3為置位,則:00000111設(shè)控制端口的地址為:FFF7H,則:MOVDX,0FFF7HMOVAL,08HOUTDX,ALMOVAL,07HOUTDX,AL59【例題7-7】設(shè)8255的端口地址為FBC0~FBC3H,A口設(shè)置方式0輸出,B口方式0輸入,C口高4位方式0輸出,C口低4位方式0輸入,利用C口PC5產(chǎn)生連續(xù)的方波信號(hào),信號(hào)的高、低電平寬度可調(diào)用延時(shí)子程序DELAY實(shí)現(xiàn)。60控制字為:10000011B8255初始化程序?yàn)椋?/p>
MOVDX,0FBC3H MOVAL,83H OUTDX,ALFB:MOVAL,0BH OUTDX,AL;PC5置位
CALLDELAY;維持高電平
MOVAL,0AH OUTDX,AL;PC5=0 CALLDELAY;維持低電平
JMPFB;連續(xù)輸出方波信號(hào)614.8255與CPU的連接8255的D7~D0分別與系統(tǒng)總線的D7~D0相連,RD、WR分別與系統(tǒng)總線的IOR和IOW相連,A1、A0與系統(tǒng)地址線A1、A0相連,CS由系統(tǒng)地址總線A2~A15譯碼生成。628255的應(yīng)用A2A3A4IORIOWA10A12A13A14A15A5A6A7A8A9A11IORIOWA1A0RESETG1G2AG2BCBAY074LS138RDWRA1A0CS8255RESETA口B口C口D0D7~D0D7~PA0PA7~PC0PC7~PB0PB7~&≥1&638255的端口地址為F080~F083H。648255A的PA0~PA7端接有開(kāi)關(guān)K0~K7,PB0~PB7接有8支LED發(fā)光管。端口A、B均工作在方式0下,根據(jù)開(kāi)關(guān)狀態(tài)控制LED燈的顯示。1.請(qǐng)確定8255A的各端口地址,寫(xiě)出控制字;2.編程控制:當(dāng)K全閉合時(shí),8支燈亮;當(dāng)有一個(gè)以上K斷開(kāi)時(shí),8支燈滅。65CSA1A0WRRDPA0PA7PB0PB1PB73:8ABCG1G2AG2BWRA7A6A5A4A3A2A1A0Y4…..+5V+5V…..IO/MRDK0K7D0~D7地址:84H,85H,86H,87H方式控制字:10010000=90H66編程:START: MOVAL,90H OUT87H,ALSTATES: INAL,84H ANDAL,0FFH JZHIGH ;當(dāng)K全閉合時(shí),8支燈亮; MOVAL,0FFH ;有一個(gè)以上K斷開(kāi),
OUT85H,AL ;8支燈滅; JMPDONEHIGH: MOVAL,0 OUT85H,ALDONE: JMPSTATES67另:測(cè)試開(kāi)關(guān)狀態(tài),控制相應(yīng)的燈亮或滅;START: MOVAL,90H OUT87H,ALAGAIN: INAL,84H OUT85H,AL JMPAGAIN68【例題7-8】利用8255的A口與打印機(jī)相連,將內(nèi)存緩沖區(qū)BUFF中的2K個(gè)字符打印輸出。試完成相應(yīng)的軟硬件設(shè)計(jì)。698255控制打印機(jī)D0~D7A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOWIORIOWIORRESET≥1&74LS138ABCG2AG1G2BY0&&A0A1WRRDRESETD0|D7PA0|PA7PC6PC1CS8255D0|D7STROBEBUSYFBC0HFBC1HFBC2HFBC3H70數(shù)據(jù)STROBEBUSY71編制程序如下:START:MOVAX,SEGBUFF MOVDS,AX MOVSI,OFFSETBUFF MOVCX,2048 MOVDX,0FBC3H MOVAL,81H;8255A初始化
OUTDX,AL;C口高位方式0輸出,低位方式0輸入
MOVAL,0DH;
OUTDX,AL;使PC6置位,即使選通無(wú)效72WAIT:MOVDX,0FBC2H INAL,DX ;輸入打印機(jī)的狀態(tài)
TESTAL,02H ;檢測(cè)PC1是否為1 JNZWAIT ;為忙則等待
MOVDX,0FBC0HMOVAL,[SI] OUTDX,AL ;從A口輸出數(shù)據(jù)
MOVDX,0FBC3H MOVAL,0CH OUTDX,AL ;STROBE信號(hào)為低電平
MOVAL,0DH OUTDX,AL ;STROBE信號(hào)為高電平
INCSI ;修改指針,指向下一個(gè)字符
LOOPWAITDONE:MOVAH,4CH INT21H73用8255實(shí)現(xiàn)鍵盤接口CPU總線8255PC7PC6PC5PC4PC3PC1PC2PC0行3行2行1行0列0列1列2列3KR×4R×4+5V
矩陣式鍵盤接口電路原理圖74掃描法逐行輸出0,然后讀入列值,檢查有無(wú)為0的位;具體步驟:PC7~PC4輸出全0,從PC3~PC0讀入,若讀入的數(shù)據(jù)有一位為0,表明有鍵按下;延時(shí)20ms去抖動(dòng),重復(fù)第一步動(dòng)作,若還有鍵閉合,則認(rèn)為確實(shí)有鍵閉合;否則返回第一步;查找被確認(rèn)的鍵;從第0行開(kāi)始逐行輸出0,然后讀入列值,檢查有無(wú)為0的位;若無(wú),鍵值加4,轉(zhuǎn)下一行;75反轉(zhuǎn)法將PC7~PC4設(shè)定為輸出,PC3~PC0設(shè)定為輸入。然后PC7~PC4輸出全0,從PC3~PC0讀入列值,若讀入的數(shù)據(jù)有一位為0,表明該列有鍵按下,保存列值;將PC7~PC4設(shè)定為輸入,PC3~PC0設(shè)定為輸出。把保存的列值從PC3~PC0輸出,從PC7~PC4讀入行值,讀入的數(shù)據(jù)必有一位為0,保存行值。將行值和列值組合在一起,用查表的方法得到按鍵的鍵值。76編程:設(shè)8255的端口地址為40H、41H、42H、43HSTART: MOVAL,10000001B;方式0,C口高4位輸出,低4位輸入
OUT43H,AL MOVAL,0 OUT42H,ALWAIT1: INAL,42H ANDAL,0FH ;取低4位
CMPAL,0FH JZWALT1 MOVAH,AL MOVAL,10001000B;方式0,C口高4位輸入,低4位輸出
OUT43H,AL MOVAL,AH OUT42H,AL INAL,42H ANDAL,0F0H ;取高4位
ORAL,AH … ;查表求出按鍵的鍵號(hào)LED數(shù)碼管顯示接口1.LED數(shù)碼管的結(jié)構(gòu)與原理2.LED數(shù)碼管編碼方式段碼位D7D6D5D4D3D2D1D0顯示段dpgfedcba
要顯示某字形就應(yīng)使此字形的相應(yīng)字段點(diǎn)亮,實(shí)際上就是送一個(gè)用不同電平組合代表的數(shù)據(jù)至數(shù)碼管。通常,人們把加到各個(gè)顯示段上的代碼稱為段碼。在LED顯示多位時(shí),把加到公共端上的代碼稱為位碼。通常段碼各位定義如下:表1共陰和共陽(yáng)LED數(shù)碼管段碼表字型共陽(yáng)極段碼共陰極段碼字型共陽(yáng)極段碼共陰極段碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H注:(1)本表所列各字符的顯示段碼均為小數(shù)點(diǎn)不亮的情況(2)“空白”字符即沒(méi)有任何顯示。⑴靜態(tài)顯示方式:在同一時(shí)刻只顯示一種字符,LED工作在靜態(tài)顯示方式下,共陰極接地或共陽(yáng)極接+5V;每一位的段選線與一個(gè)8位并行I/O口相連。特點(diǎn):編程較簡(jiǎn)單,但占用I/O口線多,一般適用于顯示位數(shù)較少的場(chǎng)合。3.顯示方式及其典型應(yīng)用電路⑵動(dòng)態(tài)顯示方式:在某一瞬時(shí)顯示一位,依次循環(huán)掃描,輪流顯示,由于人的視覺(jué)滯留效應(yīng),人們看到的是多位同時(shí)穩(wěn)定顯示。段選、位選每送入一次后延時(shí)1~5ms。特點(diǎn):占用I/O口線少,編程較復(fù)雜,CPU要定時(shí)掃描刷新顯示。一般適用于顯示位數(shù)較多的場(chǎng)合。①把多個(gè)LED的8個(gè)段同一個(gè)I/O端口連接在一起,而每個(gè)LED的公共端各自獨(dú)立的受I/O線控制。②CPU向字段輸出端口送段碼值時(shí),所有的LED接收到相同的字形碼。但究竟是哪一個(gè)亮,取決于位碼端。③控制公共端使一個(gè)LED點(diǎn)亮一小段時(shí)間,然后更換段碼,更換點(diǎn)亮的LED。各個(gè)LED輪流點(diǎn)亮。8位動(dòng)態(tài)顯示原理圖動(dòng)態(tài)掃描LED顯示的流程圖867.4串行通信7.4.1串行通訊的基本概念CPU與外設(shè)之間的信息交換,在每一個(gè)時(shí)間單位僅傳送一位信息,信息的所有位按順序一位一位地傳送,稱為串行通信。1.串行通信的傳送方式 單工:?jiǎn)畏较騻魉桶腚p工:采用分時(shí)傳送的辦法全雙工:發(fā)送和接收同時(shí)進(jìn)行A發(fā)送器B接收器單工發(fā)送器接收器發(fā)送器接收器半雙工發(fā)送器接收器發(fā)送器接收器全雙工872.調(diào)制與解調(diào)計(jì)算機(jī)遠(yuǎn)距離的通信可以借助電話電纜來(lái)傳輸信息。發(fā)送:把數(shù)字信號(hào)調(diào)制在載波信號(hào)。接收:把載波信號(hào)解調(diào)成數(shù)字信號(hào)。3種調(diào)制方法:調(diào)頻、調(diào)幅、調(diào)相。調(diào)頻是把數(shù)字“1”與“0”調(diào)制成兩個(gè)頻率不同的模擬信號(hào);調(diào)幅是把數(shù)字“1”與“0”調(diào)制成不同幅度的模擬信號(hào),頻率保持不變;調(diào)相是把數(shù)字“1”與“0”調(diào)制成不同相位的模擬信號(hào),頻率和幅度保持不變;883.同步通信和異步通信串行通信中有同步通信和異步通信兩種基本方式。同步通信及規(guī)程:定義:由若干個(gè)字符組成一個(gè)信息組,字符間無(wú)間隔,稱為幀。發(fā)送端和接收端的時(shí)鐘信號(hào)頻率和相位始終保持一致。數(shù)據(jù)格式:?jiǎn)?、雙同步格式、SDLC同步數(shù)據(jù)鏈路控制規(guī)程、HDLC高級(jí)數(shù)據(jù)鏈路控制規(guī)程;傳送速率:可達(dá)幾百K波特
同步信息 數(shù)據(jù) 校驗(yàn)信息CRC1數(shù)據(jù)NCRC2數(shù)據(jù)2……數(shù)據(jù)1SYN2SYN1CRC1數(shù)據(jù)NCRC2數(shù)據(jù)3……數(shù)據(jù)2數(shù)據(jù)1SYN189異步通信方式及規(guī)程定義:一個(gè)字符作為一個(gè)獨(dú)立的信息單元,稱為幀;字符間的間隔時(shí)間不固定,字符內(nèi)位和位的間隔時(shí)間固定;格式:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位;傳送速率:用波特率表示bps奇偶校驗(yàn)位停止位空閑位起始位起始位數(shù)據(jù)位5~8高位低位011001110000190波特率是指每秒傳送信息的位數(shù)。異步通信波特率:75-19200波特,分為10級(jí);75,110,150,300,600,1200,2400,4800,9600,19200如:每秒傳送120個(gè)字符(1個(gè)起始位、7個(gè)數(shù)據(jù)位、1個(gè)奇偶校驗(yàn)、1個(gè)停止位,共計(jì)10位)波特率=10位×120字符/秒=1200位/秒917.4.2串行通信的接口標(biāo)準(zhǔn)RS-232-C標(biāo)準(zhǔn) 是EIA電子工業(yè)協(xié)會(huì)推薦的串行通信接口標(biāo)準(zhǔn),接口的兩端稱為DTE和DCE,25芯。特點(diǎn):信號(hào)線少;多種傳送速率50、75,110,150,300,600,1200,2400,4800,9600,19.2K,33.6K,56K;傳送距離遠(yuǎn);基帶傳輸30~50M負(fù)邏輯:1 -5~-15V 0 +5~+15V2 TXD發(fā)送3 RXD接受7 GND92計(jì)算機(jī)MODEMMODEM計(jì)算機(jī)電話網(wǎng)DTEDCEDTEDCERS-232-C937.4.3可編程串行通信接口82508250為UART:通用異步通信收發(fā)器;它支持異步通信規(guī)程;芯片內(nèi)部設(shè)置時(shí)鐘發(fā)生器,通過(guò)編程可設(shè)置數(shù)據(jù)的傳送波特率;它提供MODEM所需的控制信號(hào),接收來(lái)自MODEM的狀態(tài)信息等等。功能:通用異步收發(fā)器;RS-232-C標(biāo)準(zhǔn);單工、半雙工、全雙工;方便與MODEM連接;94作業(yè):1、3、4、5、6、9、10、11、1295接收數(shù)據(jù)寄存器發(fā)送移位寄存器發(fā)送數(shù)據(jù)寄存器接收移位寄存器數(shù)據(jù)緩沖寄存器讀寫(xiě)控制邏輯MODEM控制邏輯接收控制邏輯發(fā)送控制邏輯96利用計(jì)數(shù)器1作脈沖發(fā)生器,給定CLK1為2MHz,產(chǎn)生頻率為1KHz的脈沖。利用計(jì)數(shù)器2作脈沖發(fā)生器,給定CLK2為1MHz,產(chǎn)生周期為20ms的方波。端口地址80H81H82H83H計(jì)數(shù)器1工作在方式2: 計(jì)數(shù)初值=2×106/(1×103)=2000
控制字:01110101計(jì)數(shù)器2工作在方式3: 計(jì)數(shù)初值=1×106/(20×103)=20000
控制字:1011011097程序設(shè)計(jì)如下:ST: MOVAL,01110101B;#1,方式2,BCD碼
OUT83H,AL MOVAL,00H;先寫(xiě)入低字節(jié)計(jì)數(shù)值,
OUT81H,AL MOVAL,20H;后寫(xiě)入高字節(jié)計(jì)數(shù)值
OUT81H,AL MOVAL,10110110B;#2,方式3,二進(jìn)制
OUT83H,AL;
MOVAL,20H:先寫(xiě)入低字節(jié)計(jì)數(shù)值
OUT82H,AL MOVAL,4EH;后寫(xiě)入高字節(jié)計(jì)數(shù)值
OUT82H,AL HLT98引腳符號(hào)功能方向23
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工建筑勞務(wù)合同范本
- 入園合同范例
- 個(gè)人陶瓷采購(gòu)合同范本
- 勞務(wù)派遣補(bǔ)充合同范本
- 切磚清工合同范本
- 光明果蔬配送合同范本
- 借款合同范本網(wǎng)上查詢
- 轉(zhuǎn)租飯店合同范本
- 凈化車間改造工程合同范本
- 會(huì)所會(huì)籍合同范本
- 班會(huì)課件:逆風(fēng)飛翔破繭成蝶-從《哪吒之魔童鬧?!房辞啻浩诘某砷L(zhǎng)與責(zé)任
- 合肥科技職業(yè)學(xué)院?jiǎn)握杏?jì)算機(jī)類考試復(fù)習(xí)題庫(kù)(含答案)
- 2.1 堅(jiān)持依憲治國(guó) 教案 -2024-2025學(xué)年統(tǒng)編版道德與法治八年級(jí)下冊(cè)
- 【語(yǔ)文試卷+答案】2024-2025學(xué)年泉州高二上期末質(zhì)檢
- 2018-2022年北京市中考真題數(shù)學(xué)試題匯編:填空壓軸(第16題)
- 《修繕定額講解》課件
- 大學(xué)學(xué)生宿舍管理員工作培訓(xùn)
- 初三物理常識(shí)試卷單選題100道及答案
- 浙江2024公務(wù)員考試真題及答案
- 初中新課標(biāo)培訓(xùn)課件
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論