版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第8章可編程通用接口芯片及應(yīng)用本章重點:了解可編程接口芯片的一般結(jié)構(gòu)熟練掌握可編程并行接口8255A的主要性能及應(yīng)用熟練掌握可編程定時/計數(shù)器8253的主要性能及應(yīng)用理解串行通信的基本概念,熟悉可編程串行接口8250的主要性能及應(yīng)用本章難點:可編程并行接口8255A的工作方式、編程及綜合應(yīng)用可編程定時/計數(shù)器8253的工作方式、編程及綜合應(yīng)用可編程串行接口8250的工作方式、編程及典型應(yīng)用8.1可編程通用并行接口8255A及其應(yīng)用并行通信是計算機與I/O設(shè)備進行數(shù)據(jù)傳送的一種方式。8.1.18255A的內(nèi)部結(jié)構(gòu)8255A內(nèi)部邏輯結(jié)構(gòu)圖8255A的引腳特性
3.外設(shè)接口部分(端口A,B,C)
8255A有A,B和C三個輸入/輸出端口,用來與外部設(shè)備相連。4.內(nèi)部邏輯(A組和B組控制電路)8.1.28255A控制字及工作方式
8255A可以通過指令往控制端口中設(shè)置控制字來決定它的工作。8255A有兩個控制字,即方式選擇控制字和端口C按位置位/復(fù)位控制字。為區(qū)分兩個控制字,控制字的D7位被給予特殊的含義,D7位為1,表示方式選擇控制字;D7位為0,表示對端口C按位置位/復(fù)位的控制字。1.8255A的方式選擇控制字
2.8255A按位置位/復(fù)位的控制字方式0(Model0)——基本輸入/輸出方式方式1(Model1)——選通輸入/輸出方式方式2(Model2)——雙向數(shù)據(jù)傳送方式端口A可以在方式0,1,2這三種方式下工作,而端口B只能在方式0和方式1兩種方式下工作。8255A端口C置位/復(fù)位控制字1.方式0(1)方式0的工作特點方式0是一種基本的輸入或輸出方式。這種方式通常不用聯(lián)絡(luò)信號(或不使用固定的聯(lián)絡(luò)信號),不使用中斷。(2)方式0的應(yīng)用方式0適用于同步I/O方式及查詢方式兩種場合。2.方式1方式1也叫做選通的輸入/輸出方式。8255A工作于方式1時,端口A和B仍作為數(shù)據(jù)的輸入/輸出端口,同時端口C的某些位被固定作為端口A,B的控制位或狀態(tài)信息位。3.方式2方式2為雙向傳輸方式。外設(shè)通過端口A既可以向CPU發(fā)送數(shù)據(jù),又能從CPU接收數(shù)據(jù)。方式2只適用于端口A。端口A工作在方式2時,端口C的PC7~PC3自動配合端口A提供控制。8.1.38255A初始化編程和并行I/O控制程序8255A的初始化編程是指通過給8255A寫入控制字來確定各端口的工作方式。例如:設(shè)8255A的A口工作于方式0,輸出;B口工作于方式1,輸入,并設(shè)定8255A的四個端口地址為FFE0H~FFE3H,試編寫初始化程序。由題意可知,工作方式控制字為10000110B。初始化程序為:MOVAL,10000110BMOVDX,0FFE3HOUTDX,AL;寫入控制字8.1.48255A在IBM-PC系統(tǒng)板上的應(yīng)用例:利用8255A作為簡單的輸入/輸出接口,實現(xiàn)同步傳送。設(shè)在IBMPC機的擴展板上有一片8255A,其端口B接8位二進制開關(guān),端口C接8位LED發(fā)光二極管。運行程序時,可觀察到LED的顯示將反映二進制開關(guān)的狀態(tài),并且,按下任意鍵時,可退出運行。設(shè)8255A的端口地址為端口A218H端口B219H端口C21AH控制端口21BH電路連接圖源程序如下:DATASEGMENTMESSDB'ENTERANYKEYTOEXITTODOS!',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;-------------------------------------------------------------MOVAH,09H;顯示提示信息MOVDX,OFFSETMESSINT21H;-----------------------------------------------------------------------INIT:MOVDX,21BH;寫入控制字,使端口工作于方式0,且B組端口;輸入,A組端口輸出MOVAL,82HOUTDX,AL;-----------------------------------------------------------------------READ:MOVDX,219H;從端口B輸入開關(guān)狀態(tài)INAL,DX;-----------------------------------------------------------------------WRITE:MOVDX,21AH;從端口C輸出,由LED顯示INAL,DX;-----------------------------------------------------------------------MOVAH,06H;從鍵盤輸入任意字符MOVDL,0FFHINT21HJNZQUITT;判斷是否有鍵按下,有則轉(zhuǎn)退出JMPREAD;否則,不退出繼續(xù)讀開關(guān)狀態(tài);-----------------------------------------------------------QUITT:MOVAX,4C00H;返回DOSINT21HCODEENDSENDSTART程序說明:該程序在有外接硬件電路的條件下,經(jīng)匯編、鏈接后,在DOS狀態(tài)下運行。運行后屏幕上顯示“ENTERANYKEYTOEXITTODOS!”的提示,如用戶從鍵盤上輸入任意字符都可將程序退回到DOS狀態(tài)。例:8255A作為連接打印機的接口,工作于方式0。8255A作為打印機接口示意圖工作過程:現(xiàn)將端口A作為傳送字符的通道,工作于方式0,輸出方式;端口B未用。端口C也工作于方式0,PC2作為“BUSY”信號輸入端,故PC3~PC0為輸入方式,PC6作為STB(___)信號輸出端,故PC7~PC4為輸出方式。設(shè)8255A的端口地址為:端口A:00D0H端口B:00D2H端口C:00D4H控制端口:00D6H設(shè)要輸出的字符已被放在CL寄存器中。解:程序段如下:INTI:MOVAL,81H;控制字設(shè)置,使A,B,C三個端口均工作于方式0,端口A輸出,PC7~PC4輸出,PC3~PC0輸入
OUT0D6H,ALMOVAL,0DH
;用置0/置1方式選擇字使PC6為1則STB為高電平
OUT0D6H,AL;------------------------------------------------------------LPST:INAL,0D4H;讀端口C的值
ANDAL,04HJNZLPST;若不為0,說明忙信號(PC2)為1,即打印機處于忙狀態(tài),等待MOVAL,CLOUT0D0H,AL;否則,把CL中字符經(jīng)端口A送打印機
MOVAL,0CHOUT0D6H,AL;使STB為0INCALOUT0D6H,AL;再使STB為1,得一個負(fù)脈沖輸出;------------------------------------------------------------
…
;后續(xù)程序段8.2可編程定時/計數(shù)器8253及其應(yīng)用
在8086/8088系統(tǒng)中采用的定時器/計數(shù)器是Intel8253,它是一片具有3個獨立的16位計數(shù)器通道的可編程定時器/計數(shù)器芯片,為24腳雙列直插式大規(guī)模集成電路,使用單+5伏電源。8.2.18253的基本功能及用途
1.8253芯片的主要特點(1)有3個獨立的16位計數(shù)器;(2)每個計數(shù)器可按二進制或二~十進制計數(shù);(3)每個計數(shù)器的計數(shù)頻率可高達(dá)2.6MHz;(4)每個計數(shù)器都可以由程序確定按照6種不同方式工作;
2.8253的用途(1)在多任務(wù)的分時系統(tǒng)中作為中斷信號實現(xiàn)程序切換;(2)可為I/O設(shè)備輸出精確的定時信號;(3)可作為一個可編程的波特率發(fā)生器;(4)實現(xiàn)時間延遲。8253引腳特性
8.2.28253內(nèi)部結(jié)構(gòu)及工作原理1.數(shù)據(jù)總線緩沖器這是8253用于和CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器。2.讀/寫邏輯電路
定時器/計數(shù)器的基本原理圖定時器/計數(shù)器的基本原理圖
3.控制寄存器4.計數(shù)器0,1和2
這三個計數(shù)器互相獨立,各自按不同的方式工作,其工作方式?jīng)Q定于控制字。8.2.38253的控制字
8253的控制字格式8.2.48253的工作方式
8253共有以下6種工作方式。
1.方式0——計數(shù)結(jié)束產(chǎn)生中斷方式0的工作特點:(1)計數(shù)器只計一次。當(dāng)計數(shù)器減至0后,不重新計數(shù),輸出OUT保持為高。(2)8253內(nèi)部是在CPU寫計數(shù)初值的WR信號上升沿將此值寫入計數(shù)器的,但必須在有WR信號下一個時鐘脈沖到來時,計數(shù)初值才送至計數(shù)執(zhí)行部件。(3)門控GATE可以暫停計數(shù)器的計數(shù)過程。(4)計數(shù)過程中,如果有新的計數(shù)初值送至計數(shù)器,則在下一時鐘脈沖到來時,新的初值送至計數(shù)執(zhí)行部件。此后,計數(shù)器按新的初值重新計數(shù)。例8:設(shè)8253計數(shù)器0工作于方式0,用8位二進制計數(shù),計數(shù)值為9(設(shè)該8253在系統(tǒng)中分配的地址為E0H~E3H),試寫出其初始化程序段。解:8253的初始化編程包含兩個方面的設(shè)置:(1)將控制字寫入控制寄存器,以設(shè)置相應(yīng)的計數(shù)器工作在預(yù)定的方式下;(2)寫入計數(shù)初值。當(dāng)計數(shù)初值寫入后,8253的計數(shù)器0開始工作。初始化程序段如下:MOVAL,10H;設(shè)計數(shù)器0工作于方式0OUT0E3H,AL;寫入控制寄存器;-------------------------------------------------MOVAL,9;設(shè)計數(shù)初值OUT0E0H,AL;初值寫入計數(shù)器0的CR2.方式1—可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器
方式1的時序圖例8:設(shè)計數(shù)器1工作于方式1,按BCD碼計數(shù),計數(shù)值為十進制數(shù)4000。設(shè)8253的端口地址為E0H~E3H。試寫其初始化程序段。解:根據(jù)題意,控制字為63H,初始值為4000,因為控制字已經(jīng)設(shè)定是按BCD碼計數(shù),所以初始值寫入時直接寫入4000H即可。另外,雖然是16位計數(shù)初始值,但由于計數(shù)值低8位為0,所以控制字設(shè)定操作控制段只寫高8位格式,因此只設(shè)置CR高位初值,而CR低8位自動清0。初始化程序段為:MOVAL,63H;設(shè)控制字OUT0E3H,AL;---------------------------------------------------MOVAL,40H;設(shè)初值4000HMOV0E1H,AL
3.方式2——分頻器當(dāng)設(shè)置8253為方式2時,輸出端OUT變高作為初始狀態(tài),計數(shù)初值N置入后的下一個CLK脈沖到來時計數(shù)執(zhí)行部件CE開始減1計數(shù),當(dāng)減至“1”(注意,不是“0”),OUT變低,持續(xù)一個CLK脈沖后,OUT又變?yōu)楦唠娖?,開始一個新的計數(shù)過程。在新的初值置入前,保持每N個CLK脈沖OUT輸出重復(fù)一次,即OUT輸出波形為CLK脈沖的N分頻。例:設(shè)8253計數(shù)器2工作于方式2,按二進制計數(shù),計數(shù)初值為0304H,設(shè)8253端口地址為E0H~E3H。試編寫初始化程序段。解:因為計數(shù)初值為十六位。且高低位字節(jié)均不為0值。因此,必須寫兩次,先寫低位字節(jié),再寫高位字節(jié)。初始化程序段:MOVAL,0B4H;設(shè)控制字OUT0E3H,AL;----------------------------------------------------------MOVAL,04H;設(shè)置計數(shù)器2的低字節(jié)OUT0E2H,AL;----------------------------------------------------------MOVAL,03H;設(shè)置計數(shù)器2的高字節(jié)OUTOE2H,AL
4.方式3——可編程方波發(fā)生器方式3與方式2的工作類似,不同的是OUT的輸出為方波或基本對稱的矩形波。例:設(shè)8253計數(shù)器0工作于方式3,按二進制計數(shù),計數(shù)初值為4。8253端口地址為E0H~E3H。試寫出其初始化程序段。解:初始化程序段如下:MOVAL,16H;設(shè)計數(shù)器0工作于方式3OUT0E3H,AL;設(shè)置控制字;---------------------------------------------------MOVAL,4;設(shè)置計數(shù)初值OUT0E0H,AL
5.方式4——軟件觸發(fā)的選通信號發(fā)生器在方式4下,當(dāng)方式控制字寫入后,輸出端OUT變高,作為初始電平。寫入初始值后,再過一個時鐘周期,計數(shù)執(zhí)行部件獲得計數(shù)初值,開始減1計數(shù)。當(dāng)計數(shù)器減至“0”時,輸出變?yōu)榈碗娖?,此低電平持續(xù)一個CLK時鐘周期,然后又自動變高,并一直維持高。例:設(shè)8253計數(shù)器1工作于方式4,按二進制計數(shù),計數(shù)初值為3。端口地址為E0H~E3H。試編寫初始化程序段。解:初始化程序段為:MOVAL,58H;設(shè)控制字OUT0E3H,AL;---------------------------------------------------MOVAL,3;設(shè)置計數(shù)初值OUT0E1H,AL6.方式5——硬件觸發(fā)的選通信號發(fā)生器方式5與方式1十分相似也是一種由GATE端引入的觸發(fā)信號控制的計數(shù)或定時工作方式。但方式5輸出是負(fù)選通脈沖。例:設(shè)8253的計數(shù)器2工作與方式5,按二進制計數(shù),計數(shù)初值為3。端口地址為E0H~E3H。其初始化程序段為:MOVAL,9AH;設(shè)置控制字OUT0E3H,AL;----------------------------------------------------------MOVAL,3;設(shè)置計數(shù)初值OUT0E2H,AL8.2.58253在IBM-PC機的應(yīng)用例:設(shè)在IBMPC機擴展板上有一8253定時器,其端口地址為200H~203H。它的CLK0與4.77MHz的系統(tǒng)時鐘相連,定時器1的時鐘輸入CLK1與定時器0的輸出OUT0相連。要求編程將定時器0設(shè)為方式3(方波發(fā)生器),其分頻比為2000H;定時器1設(shè)為方式2(分頻器),分頻比為15,并用雙蹤示波器觀測定時器0和定時器1的輸出波形。解:由題可知,8253的控制端口地址為203H,定時器0端口地址為200H,定時器1端口地址為201H。8253作為定時器硬件連接圖
程序流程圖
程序段如下:DATASEGMENT;數(shù)據(jù)段TIM_CTLEQU203H;控制字寄存器端口地址TIMER0EQU200H;定時器0端口地址TIMER1EQU201H;定時器1端口地址DATAENDSCODESEGMENT;代碼段
ASSUMECS:CODE,DS:DATAMAINPROCFAR;---------------------------------------------------------START:CLI;關(guān)中斷
MOVDX,TIM_CTL;設(shè)置定時器0為工作方式3,計數(shù)初值只有高8MOVAL,26H;位,二進制計數(shù)
OUTDX,AL
MOVDX,TIMER0;定時器0端口地址
MOVAL,20H;設(shè)置定時器0計數(shù)器初值高8位
OUTDX,ALMOVDX,TIM_CTL;設(shè)置定時器1為工作方式2,計數(shù)初值只寫低8MOVAL,54H;位,二進制計數(shù)
OUTDX,ALMOVDX,TIMER1;往定時器1送計數(shù)初值低8位0FH,高8位自動0MOVAL,0FHOUTDX,ALSTI;開中斷
RET;返回DOSMAINENDPCODEENDSENDSTART例:已知PC微機系統(tǒng)板上8253-5接口電路如圖。圖中的PCLK是來自時鐘發(fā)生器8248A的輸出時鐘,頻率為2.38MHz,經(jīng)74LS175二分頻后,作為8253-5的3個計數(shù)器的時鐘輸入。8253-5的3個計數(shù)器的使用情況如下:(1)計數(shù)器0:方式3,二進制計數(shù),GATE0固定接高電平,OUT0作為中斷請求信號接至8259A中斷控制器的IRQ0。此定時中斷(約55ms)用于系統(tǒng)電子鐘和磁盤驅(qū)動器的馬達(dá)定時。(2)計數(shù)器1:方式2,GATE1固定接高電平,OUT1輸出經(jīng)74LS74后作為DMA控制器8237A通道0的DMA服務(wù)請求信號DREQ0,用于定時(約15μs)啟動刷新動態(tài)RAM。(3)計數(shù)器2:方式3,輸出的1kHz方波濾掉高頻分量后送到揚聲器。門控信號GATE2來自8255A的PB0,OUT2輸出經(jīng)與門74LS06控制,控制信號為8255A的PB1??赏ㄟ^控制PB1,PB0同時為1來控制揚聲器發(fā)聲時間。長音時間為3s,短音時間為0.5s。IBM-PC系統(tǒng)板中8253-5的接口電路解:該8253-5的端口地址為40H~43H,3個計數(shù)器對應(yīng)的初始化程序段分別如下(這些程序段已固化在ROM-BIOS中):(1)計數(shù)器0用于定時(約55ms)中斷。MOVAL,00110110B;16位二進制計數(shù),方式3OUT43H,AL;----------------------------------------------------------MOVAL,0;初值為0000,即為最大值OUT40H,AL;OUT兩次變“高”之間的間隔OUT40H,AL;為840ns*65536=55ms
(2)計數(shù)器1用于定時(約15μs)DMA請求。MOVAL,01010100B;只裝低8位,8位計數(shù)器,方式2OUT43H,AL;----------------------------------------------------------MOVAL,12H;初值18,OUT兩次變高之間的間隔為OUT41H,AL;840ns*18=15μs,2ms內(nèi)可刷新132次
(3)計數(shù)器2用于產(chǎn)生1KHz的方波送至揚聲器發(fā)聲,聲響子程序為BEEP,入口地址為FFA08H。BEEPPROCNEARMOVAL,10110110B;16位二進制計數(shù)器,方式3OUT43H,AL;-----------------------------------------------------------------------MOVAX,0533H;初值為1331OUT42H,AL;先寫低字節(jié)
MOVAL,AH;再寫高字節(jié)
OUT42H,AL;-----------------------------------------------------------------------INAL,61H;讀8255的B口原輸出值
MOVAH,AL;存于AHORAL,03H;使PB1,PB0均為1OUT61H,AL;-------------------------------------------------------------SUBCX,CX;CX為循環(huán)計數(shù),最大65536GT:LOOPGT;循環(huán)延時
DECBL;BL為發(fā)聲長短的入口條件
JNZGT;BL=6發(fā)長聲,BL=1發(fā)短聲;-------------------------------------------------------------MOVAL,AH;取回AH中的8255A的B口輸出值
OUT61H,AL;恢復(fù)8255A的B口,停止發(fā)聲
RET;返回例:欲使8253-5的計數(shù)器產(chǎn)生600Hz的方波,經(jīng)濾波后送至揚聲器發(fā)音,當(dāng)按下任一鍵時聲音停止。試編寫此程序。解:利用上述方法,編制的源程序如下:STACKSEGMENTPARASTACK‘STACK’DB256DUP(0)STACKENDSDATASEGMENTPARAPUBLIC‘DATA’FREDDW1983DATAENDS;----------------------------------------------------------------------CODESEGMENTPARAPUBLIC‘CODE’ASSUMECS:CODE,DS:DATA;----------------------------------------------------------------------STARTPROCFARPUSHDS;初始化
MOVAX,0PUSHAXMOVAX,DATAMOVDS,AX;----------------------------------------------------------------------INAL,61H;讀PB口當(dāng)前狀態(tài)
ORAL,03H;使PB1,PB0均為1OUT61H,AL;寫新PB口值,以使揚聲器發(fā)聲;----------------------------------------------------------------------MOVAL,0B6H;命令8253計數(shù)器2,16位寫入,方式3,二進制
OUT43H,AL;命令寫入8253控制寄存器;----------------------------------------------------------------------MOVBX,F(xiàn)RED;分頻計數(shù)值
MOVAL,BL;先寫低位字節(jié)
OUT42H,ALMOVAL,BH;再寫高位字節(jié)
OUT42H,AL;8253-5輸出600Hz方波;-----------------------------------------------------------MOVAH,0;調(diào)用BIOS的鍵盤I/O功能程序
INT16H;等待按入鍵值;---------------------------------------------------------INAL,61H;讀PB口當(dāng)前狀態(tài)
ANDAL,0FCH;使PB1,PB0均為0OUT61H,AL;揚聲器停止工作;---------------------------------------------------------RET;結(jié)束,返回DOSSTARTENDPCODEENDSENDSTART8.3可編程串行接口8250及其應(yīng)用8.3.1串行通信的基本概念可編程串行接口的典型結(jié)構(gòu)
1.串行接口的典型結(jié)構(gòu)(1)數(shù)據(jù)總線收發(fā)器是并行的雙向數(shù)據(jù)通道,負(fù)責(zé)將CPU送來的并行數(shù)據(jù)傳送給串行接口,并將串行接口接收的外設(shè)數(shù)據(jù)送給CPU。(2)聯(lián)絡(luò)信號邏輯用于完成CPU與串行接口之間信息的聯(lián)系。(3)控制總線CB(ControlBus)。它是串行接口與外設(shè)之間進行數(shù)傳所必須的各種控制信息的通路。(4)串入/串出是串行接口與外設(shè)之間的數(shù)傳通道,均為串行方式。(5)發(fā)送時鐘和接收時鐘是串行通信中數(shù)據(jù)傳送的同步信號。(6)狀態(tài)寄存器SR用來指示傳送過程中可能發(fā)生的某種錯誤或當(dāng)前的傳輸狀態(tài)。
(7)控制寄存器CR接收來自CPU的各種控制信息,這些信息是由CPU執(zhí)行初始化程序得到的,包括傳輸方式、數(shù)據(jù)格式等等。(8)數(shù)據(jù)輸入寄存器DIR(DataInputRegister)與串入/并出移位寄存器相連。串入/并出移位寄存器完成串/并轉(zhuǎn)換。(9)數(shù)據(jù)輸出寄存器DOR(DataOutputRegister)與并入/串出移位寄存器相連。并入/串出移位寄存器的操作與串入/并出相反,完成并/串轉(zhuǎn)換。(10)CS和A0。串行接口的各種操作是否有效,取決于CS,即片選信號;片選信號低有效時,當(dāng)前對串口中哪個部件進行操作則取決于地址線A0和讀/寫信號。通常信號由CPU通過地址譯碼邏輯控制,而A0直接與CPU的地址線A0相連。2.串行通信的連接方式串行通信有單工(Simplex)、半雙工(Half-Duplex)和全雙工(Full-Duplex)3種連接方式。(1)單工方式(2)半雙工方式(3)全雙工方式串行通信的3種連接示意圖8.3.2串行標(biāo)準(zhǔn)接口總線RS-232C
RS-232C采用負(fù)邏輯:空號(Space)和控制、狀態(tài)信號的邏輯“0”對應(yīng)于電平+3V~+25V;傳號(Mark)和控制、狀態(tài)信號的邏輯“1”對應(yīng)于電平-3V~-25V。RS-232C標(biāo)準(zhǔn)規(guī)定了22條控制信號線,用25芯DB插座連接。8.3.3串行異步通信接口8250初始化編程和串行I/O控制程序
1.8250的主要功能
8250能實現(xiàn)數(shù)據(jù)串/并或并/串轉(zhuǎn)換,支持異步通信規(guī)程,片內(nèi)有時鐘產(chǎn)生電路,波特率可變。它可為應(yīng)用于遠(yuǎn)程通信系統(tǒng)中的調(diào)制解調(diào)器提供控制信號,接受并記錄由調(diào)制解調(diào)器發(fā)送給CPU的狀態(tài)信息。它還具有數(shù)據(jù)回送功能,為調(diào)試檢測提供了方便。
2.8250的內(nèi)部結(jié)構(gòu)
3.8250的40引腳:8250有40條引腳中29腳未用,40腳為+5V電源輸入,20腳為地,其余37條引腳分成4組。
4.8250內(nèi)部寄存器及其尋址8250有10個可訪問的寄存器,它們的地址由A2~A0這3條地址線的8種組合決定,因此有幾個寄存器共用一個地址的情況。5.8250的控制字8250內(nèi)部有多個寄存器,分為兩組。一組用于工作方式以及通信參數(shù)的控制和設(shè)置。屬于這一組的有波特率分頻次數(shù)鎖存器、傳輸線控制寄存器、Modem控制寄存器和中斷允許寄存器。另一組寄存器用于實現(xiàn)通信傳輸,包括發(fā)送、接收緩沖寄存器、傳輸線狀態(tài)寄存器和中斷識別寄存器。(1)波特率因子寄存器為了設(shè)置波特率因子,必須先把傳輸線控制寄存器的DLAB置為1,然后分別將高、低字節(jié)的值送入對應(yīng)的分頻器中。(2)傳輸線控制寄存器LCR傳輸線控制寄存器LCR的控制字位功能(3)調(diào)制解調(diào)器控制寄存器MCR
Modem控制寄存器MCR控制字的位功能圖(4)中斷允許寄存器IER
中斷允許寄存器IER控制字的位功能6.用8250進行通信(1)查詢傳輸線狀態(tài)寄存器LSR 如果要發(fā)送一個數(shù)據(jù),必須首先讀LSR并檢查D5位,若為1,則表示發(fā)送數(shù)據(jù)緩沖器空,可以接收CPU新送來的數(shù)據(jù)。數(shù)據(jù)輸入到8250后LSR的D5位將自動清0,表示緩沖
器已滿,該狀態(tài)一直持續(xù)到數(shù)據(jù)發(fā)送完畢、發(fā)送數(shù)據(jù)緩沖器變空為止。傳輸線狀態(tài)寄存器LSR狀態(tài)字的格式(2)查詢Modem狀態(tài)寄存器MSR
MSR主要用于在有Modem的系統(tǒng)中了解Modem的狀態(tài)。Modem狀態(tài)寄存器MSR狀態(tài)字的格式(3)查詢中斷識別寄存器IIR
注意,通常查詢中斷識別寄存器是在有多個中斷源的系統(tǒng)中才有用。8.3.48250在PC機的應(yīng)用和仿終端程序例:已知在一臺IBM-PC機的0號擴展槽內(nèi),插了一塊以8250為核心的異步串行通信適配卡。試編寫一程序,利用8250的循環(huán)回送特性,將IBM-PC作為發(fā)送和接收機,從鍵盤輸入內(nèi)容,經(jīng)接收后在CRT上顯示出來。設(shè):數(shù)據(jù)傳輸速率為1200波特,通信格式為7位/字符,一個停止位、奇校驗,數(shù)據(jù)發(fā)送和接收均采用查詢方式;程序為循環(huán)結(jié)構(gòu),只要按下鍵,就顯示。①流程圖:程序流程圖②程序:STACKSEGMENTPARASTACK‘STACK’DB256DUP(0)STACKENDSCODESEGMENTPARAPUBLIC‘CODE’;--------------------------------------------------------------------STARTPROCFARUSHDS;保存PSP段地址
XORAX,AXPUSHAX;-------------------------------------------------------------------;PART1:初始化8250為7位數(shù)據(jù)位,1位停止位,奇校驗,波特率1200,并;設(shè)定為內(nèi)部連接方式
MOVDX,3FBHMOVAL,80HOUTDX,AL;設(shè)傳輸線控制寄存器D7為1;--------------------------------------------------------------------MOVDX,3F8H;設(shè)波特率為1200MOVAL,60HOUTDX,AL
MOVDX,3F9HMOVAL,0OUTDX,AL;----------------------------------------------------------------------MOVDX,3FBH;設(shè)奇校驗,1位停止位,7位數(shù)據(jù)位
MOVAL,0AHOUTDX,AL;---------------------------------------------------------------------MOVDX,3FCH;設(shè)Modem控制寄存器;發(fā)DTR(___)和RTS(___)MOVAL,13H;信號,內(nèi)部輸出輸入反饋,中斷禁止
OUTDX,AL;--------------------------------------------------------------------MOVDX,3F9H;設(shè)中斷允許寄存器為0,
MOVAL,0;使4種中斷被屏蔽
OUTDX,AL;---------------------------------------------------------------------;以上為初始化階段;PART2:把接收到的字符顯示出來,把鍵盤輸入的發(fā)送出去;--------------------------------------------------------------------FOREVER:MOVDX,3FDH;輸入線狀態(tài)寄存器內(nèi)容,
INAL,DX;測接收是否出錯
TESTAL,1EHJNZERROR;--------------------------------------------------------------------
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 品質(zhì)管理工程師面試題及答案
- 教學(xué)《多邊形》數(shù)學(xué)課件教案
- 交通安全宣傳演講稿(15篇)
- 中醫(yī)師傳承面試題及答案
- 智能調(diào)度2025年城市公共自行車智能租賃系統(tǒng)建設(shè)可行性研究
- 軟件測試工程師面試手冊測試用例設(shè)計與執(zhí)行要點
- 2025重慶發(fā)展投資有限公司及所屬企業(yè)校園招聘9人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025遼寧省能源控股集團所屬遼能股份公司招聘665人筆試參考題庫附帶答案詳解(3卷合一版)
- 稅務(wù)經(jīng)理面試題集稅務(wù)法規(guī)與業(yè)務(wù)能力并重
- 2025莆田港口供應(yīng)鏈管理有限公司招聘駕駛員錄用筆試參考題庫附帶答案詳解(3卷)
- 2025年云南省人民檢察院聘用制書記員招聘(22人)考試筆試模擬試題及答案解析
- 2026年空氣污染監(jiān)測方法培訓(xùn)課件
- 氣缸蓋平面度的測量
- 腎病綜合征護理診斷與護理措施
- 《好的教育》讀書心得ppt
- 立體構(gòu)成-塊材課件
- 純化水再驗證方案
- 神泣命令代碼
- 北京林業(yè)大學(xué) 研究生 學(xué)位考 科技論文寫作 案例-2023修改整理
- 四年級《上下五千年》閱讀測試題及答案
- 江蘇省五高等職業(yè)教育計算機網(wǎng)絡(luò)技術(shù)專業(yè)指導(dǎo)性人才培養(yǎng)方案
評論
0/150
提交評論