版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章常用可編程接口芯片8.1可編程并行接口8255A8.2可編程計(jì)數(shù)器/定時(shí)器82538.3串行通信與串行通信控制器8251A的應(yīng)用微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
并行通信是把一個(gè)字符的各數(shù)位用幾條線同時(shí)進(jìn)行傳輸,其數(shù)據(jù)傳輸率較高,但由于并行通信需要的電纜較多,故只適合于傳輸距離較短的場(chǎng)合。實(shí)現(xiàn)并行通信的接口就是并行接口,8255A是Intel系列的并行可編程接口芯片,用于CPU和I/O設(shè)備之間進(jìn)行并行數(shù)據(jù)傳輸。
8.1可編程并行接口8255A微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8255的內(nèi)部組成如圖所示:8.1.18255的組成與引腳信號(hào)微機(jī)原理與接口技術(shù)---中南大學(xué)出版社端口A(PortA)、端口B(PortB)和端口C(PortC)都是8位的端口,都可以選擇作為輸入或輸出。可以將端口C的高4位和低4位分開使用,分別作為輸入和輸出。端口A和端口B作為選通輸入或輸出的數(shù)據(jù)端口時(shí),端口C的指定位與端口A和端口B配合使用,用作控制信號(hào)或狀態(tài)信號(hào)。1.端口A、端口B和端口C微機(jī)原理與接口技術(shù)---中南大學(xué)出版社根據(jù)CPU的方式命令字控制8255的工作方式。根據(jù)CPU的命令對(duì)端口C的每一位實(shí)現(xiàn)按位復(fù)位或置位。A組控制電路控制端口A和端口C的上半部(PC7~PC4)。B組控制電路控制端口B和端口C的下半部(PC3~PC0)。2.A組和B組控制電路微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
這是一個(gè)三態(tài)雙向的8位緩沖器,它是8255與系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)以及CPU發(fā)出的命令控制字和外設(shè)的狀態(tài)信息,都是通過這個(gè)緩沖器傳送的。3.數(shù)據(jù)總線緩沖器微機(jī)原理與接口技術(shù)---中南大學(xué)出版社控制把CPU的控制命令或輸出數(shù)據(jù)送至相應(yīng)的端口;
控制把外設(shè)的狀態(tài)信息或輸入數(shù)據(jù)通過相應(yīng)的端口送至CPU。4.讀/寫控制邏輯微機(jī)原理與接口技術(shù)---中南大學(xué)出版社(1)A1、A0端口選擇:用來選擇A、B、C3個(gè)端口和控制字寄存器。通常,它們與PC微機(jī)的地址線A1和A0相連。(2)CS選片信號(hào):低電平有效,由它啟動(dòng)CPU與8255之間的通信。通常,它與PC微機(jī)地址線的譯碼電路的輸出線相連,并由該譯碼電路的輸出線來確定8255的端口地址。4.讀/寫控制邏輯微機(jī)原理與接口技術(shù)---中南大學(xué)出版社(3)RD讀信號(hào):低電平有效,它控制8255送出數(shù)據(jù)或狀態(tài)信息至系統(tǒng)數(shù)據(jù)總線。通常,它與PC微機(jī)的IOR相連。
(4)WR寫信號(hào):低電平有效,它控制把CPU輸出到系統(tǒng)數(shù)據(jù)總線上的數(shù)據(jù)或命令寫到8255。通常,它與PC微機(jī)的IOW相連。4.讀/寫控制邏輯微機(jī)原理與接口技術(shù)---中南大學(xué)出版社(5)RESET復(fù)位信號(hào):高電平有效,它清除控制寄存器,并置A、B、C3個(gè)端口為輸入方式。實(shí)驗(yàn)中常用的復(fù)位信號(hào)產(chǎn)生電路如圖所示。4.讀/寫控制邏輯微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
A1,A0和CS,RD,WR及組合所實(shí)現(xiàn)的各種功能如下:A1A0操作01000寫端口A01001寫端口B01010寫端口C01011寫控制字寄存器00100讀端口A00101讀端口B00110讀端口C00111無操作微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
8255有3種工作方式,由方式選擇控制字來選用:
(1)方式0(Mode0)--基本輸入輸出。(2)方式1(Mode1)--選通輸入輸出。(3)方式2(Mode2)--雙向傳送。8.1.28255的工作方式與控制字微機(jī)原理與接口技術(shù)---中南大學(xué)出版社1.方式選擇控制字微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2.按位置位/復(fù)位控制字微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2.按位置位/復(fù)位控制字端口C的數(shù)位通常作為A組和B組的控制位使用,端口C的任一個(gè)數(shù)位,可以用置0/置1控制字來進(jìn)行置位和復(fù)位,而其他位的狀態(tài)不變。與方式選擇控制字一樣,端口C置0/置1控制字也是寫入8255A的控制端口,而不是寫入C口,兩個(gè)控制字的區(qū)別在于最高位的特征位,為“1”表示方式選擇字,為“0”表示C口置0/置1控制字。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
如:端口C的bit3(PC3)置位的控制字為00000111B(07H),它復(fù)位的控制字為00000110B(06H)。
注意:C端口的按位置位/復(fù)位控制字須跟在方式選擇控制字之后寫入控制字寄存器。即使僅使用該功能,也應(yīng)先選送一方式控制字。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
例8.1
將8255C端口的8根I/O線接8只發(fā)光二極管的正極(八個(gè)負(fù)極均接地),用按位置位/復(fù)位控制字編寫使這8只發(fā)光二極管依次亮、滅的程序。設(shè)8255的端口地址為380H~383H。本程序要使用8255的2個(gè)控制字--方式選擇字和按位置位/復(fù)位字。這2個(gè)控制字都寫入8255的控制字寄存器,由它們的D7位為1或0來區(qū)別寫入的字是方式選擇字還是置位/復(fù)位字。8255的控制字寄存器的端口地址為383H。方式選擇字只寫入一次,其后寫入的都是置位/復(fù)位字。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8255與PC微機(jī)的連接及8255C端口與8只發(fā)光二極管的連接如圖。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社程序框圖:微機(jī)原理與接口技術(shù)---中南大學(xué)出版社stack segmentstackstack
dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushax微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
MOVDX,383H;383H為控制字寄存器的端口地址MOVAL,80H;方式選擇字OUTDX,ALMOVAL,1;PC0的置位控制字AGAIN:OUTDX,AL;點(diǎn)亮一只發(fā)光二極管
LOOP$;延時(shí)
LOOP$ANDAL,0FEH;置位字改為復(fù)位字
OUTDX,AL;熄滅點(diǎn)亮的發(fā)光二極管
ADDAL,3;PCi→PCi+1,復(fù)位字改為下一位的置位字
ANDAL,0FH
;保持D7為0微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
PUSHAXMOVAH,11;檢查鍵盤有無輸入
INT21H;無0送AL,有-1送ALINCALPOPAXJNZAGAINretbeginendpcode ends endbegin微機(jī)原理與接口技術(shù)---中南大學(xué)出版社這是一種基本的I/O方式。在這種工作方式下,3個(gè)端口都可由程序選定作輸入或輸出。它們的輸出是鎖存的,輸入是不鎖存的。在這種工作方式下,可以由CPU用簡(jiǎn)單的輸入或輸出指令來進(jìn)行讀或?qū)?。因而?dāng)方式0用于無條件傳送方式的接口電路時(shí)是十分簡(jiǎn)單的,這時(shí)不需要狀態(tài)端口,3個(gè)端口都可作為數(shù)據(jù)端口。1.方式08.1.43種工作方式的功能微機(jī)原理與接口技術(shù)---中南大學(xué)出版社若將例8.1改為C端口方式0輸出,則控制程序?yàn)椋簊tack segmentstackstack
dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushaxMOVDX,383HMOVAL,80HOUTDX,AL微機(jī)原理與接口技術(shù)---中南大學(xué)出版社MOVDX,382H;C端口的端口地址送DXMOVAL,1;C端口的輸出值A(chǔ)GAIN:OUTDX,ALLOOP$;延時(shí)
LOOP$PUSHAXMOVAH,11;11號(hào)功能調(diào)用:檢查鍵盤有無輸入
INT21H;無0送AL,有-1送ALINCAL;有鍵入,AL=-1,AL增1,AL=0POPAXJZBACKROLAL,1;改變C端口的輸出值JMPAGAINBACK:retbegin endpcode ends endbegin微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
方式0也可作為查詢式輸入或輸出的接口電路,此時(shí)端口A和B分別可作為一個(gè)數(shù)據(jù)端口,而取端口C的某些位作為這兩個(gè)數(shù)據(jù)端口的控制和狀態(tài)信息。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社這是一種選通的I/O方式。它將3個(gè)端口分為A、B兩組,端口A和端口C中的PC3~PC5或PC3、PC6、PC73位為A組;端口B和端口C的PC2~PC03位為B組。端口C中余下的兩位,仍可作為輸入或輸出用,由方式控制字中的D3來設(shè)定。端口A和B都可以由程序設(shè)定為輸入或輸出。此時(shí)端口C的某些位為控制狀態(tài)信號(hào),用于聯(lián)絡(luò)和中斷,其各位的功能是固定的,不能用程序改變。2.方式1微機(jī)原理與接口技術(shù)---中南大學(xué)出版社方式1輸入的狀態(tài)控制信號(hào)及其時(shí)序關(guān)系如圖。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(1)STB(strobe)選通信號(hào),低電平有效。這是由外設(shè)發(fā)出的輸入信號(hào),信號(hào)的前沿(下降沿),把輸入裝置送來的數(shù)據(jù)送入輸入緩沖器;信號(hào)的后沿(上升沿)使INTR有效(置1)。
(2)IBF(inputbufferfull)輸入緩沖器滿信號(hào),高電平有效。這是8255輸出給外設(shè)的聯(lián)絡(luò)信號(hào)。外設(shè)將數(shù)據(jù)送至輸入緩沖器后,該信號(hào)有效;RD信號(hào)的上升沿將數(shù)據(jù)送至數(shù)據(jù)線后,該信號(hào)無效。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(3)INTR(interruptrequest)中斷請(qǐng)求信號(hào),高電平有效。這是8255的一個(gè)輸出信號(hào),可用作向CPU申請(qǐng)中斷的請(qǐng)求信號(hào),以要求CPU服務(wù)。當(dāng)IBF為高和INTE(中斷允許)為高時(shí),由STB的上升沿(后沿)使其置為高電平。由RD信號(hào)的下降沿(CPU讀取數(shù)據(jù)前)清除為低電平。
(4)INTE(interruptenable)中斷允許信號(hào),端口A中斷允許INTEA可由用戶通過對(duì)PC4的按位置位/復(fù)位來控制。而INTEB
由PC2
的置位/復(fù)位控制。INTE置位允許中斷。INTE復(fù)位禁止中斷。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
無論采用查詢方式還是中斷方式,當(dāng)CPU從端口讀取數(shù)據(jù)時(shí),有效,經(jīng)過一段時(shí)間后撤銷中斷請(qǐng)求信號(hào)并是IBF=0,從而開始下一個(gè)數(shù)據(jù)的輸入。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社例8.2
用選通輸入方式從A端口輸入100個(gè)8位二進(jìn)制數(shù)。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社stack segmentstackstack
dw32dup(0)stack endsdata segmentBUFDB100DUP(?)data endscode segmentbegin procfar assumess:stack,cs:code,ds:data pushds subax,ax pushax控制程序:微機(jī)原理與接口技術(shù)---中南大學(xué)出版社MOVES,AXmovax,datamov
ds,axMOVDX,38FHMOVAL,0B0HOUTDX,ALMOVAL,9;PC4置1,允許A端口中斷OUTDX,ALMOVAX,SEGIS8255;中斷程序入口地址送中斷向量表MOVES:01C6H,AXMOVAX,OFFSETIS8255MOVES:01C4H,AXMOVCX,100MOVBX,0MOVDX,38CH微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
INAL,0A1H;讀屏蔽字ANDAL,0FDH;改變屏蔽字,允許IRQ9中斷OUT0A1H,ALROTT:JMP$LOOPROTTINAL,0A1H;恢復(fù)屏蔽字,禁止IRQ9中斷ORAL,2OUT0A1H,ALretIS8255:INAL,DXMOVBUF[BX],ALINCBXMOVAL,61H;指定中斷結(jié)束命令微機(jī)原理與接口技術(shù)---中南大學(xué)出版社OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin微機(jī)原理與接口技術(shù)---中南大學(xué)出版社方式1輸出的狀態(tài)控制信號(hào)及其時(shí)序關(guān)系如圖。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(1)OBF輸出緩沖器滿信號(hào),低電平有效。這是8255輸出給外設(shè)的一個(gè)聯(lián)絡(luò)信號(hào)。CPU把數(shù)據(jù)寫入指定端口的輸出鎖存器后,該信號(hào)有效,表示外設(shè)可以把數(shù)據(jù)取走。它由ACK的前沿(下降沿)即外設(shè)取走數(shù)據(jù)后,使其恢復(fù)為高。
(2)ACK(acknowledge)
低電平有效。這是外設(shè)發(fā)出的響應(yīng)信號(hào),該信號(hào)的前沿取走數(shù)據(jù)并使OBF無效后沿使INTR有效。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社(3)INTR中斷請(qǐng)求信號(hào),高電平有效。當(dāng)輸出裝置已經(jīng)接受了CPU輸出的數(shù)據(jù)后,它用來向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)輸出數(shù)據(jù)。OBF為“1”(高電平)和INTE為“1”(高電平)時(shí),由ACK的后沿(上升沿),使其置位(高電平),WR信號(hào)的前沿(下降沿)使其復(fù)位(低電平)。(4)INTEA
由PC6的置位/復(fù)位控制。而INTEB由PC2置位/復(fù)位控制。INTE置位允許中斷。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社微機(jī)原理與接口技術(shù)---中南大學(xué)出版社例8.3用8只發(fā)光二極管及時(shí)反映8個(gè)監(jiān)控量的狀態(tài),設(shè)計(jì)接口電路和控制程序。用8個(gè)開關(guān)模擬8個(gè)監(jiān)控量的狀態(tài)。A端口輸入8個(gè)監(jiān)控量的狀態(tài),B端口接8只發(fā)光二極管。A端口基本輸入,B端口選通輸出,用單穩(wěn)電路來產(chǎn)生選通信號(hào)ACK。當(dāng)需要了解8個(gè)監(jiān)控量的狀態(tài)時(shí)發(fā)來選通信號(hào)ACK,該信號(hào)使控制程序進(jìn)入中斷服務(wù)程序。在中斷服務(wù)程序中,從A端口輸入8個(gè)監(jiān)控量的狀態(tài)后立即從B端口輸出。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社接口電路設(shè)計(jì):微機(jī)原理與接口技術(shù)---中南大學(xué)出版社stack segmentstackstack
dw32dup(0)stackendsdata segmentDA1 DBWAITINTERRUPT,0DH,0AH,$data endscode segmentbegin procfar assumess:stack,cs:code,ds:data pushds subax,ax pushax控制程序:微機(jī)原理與接口技術(shù)---中南大學(xué)出版社MOVES,AXmovax,datamov
ds,axMOVDX,393HMOVAL,94HOUTDX,ALMOVAL,5;PC2置1,允許B端口中斷OUTDX,ALMOVAX,SEGIO8255;中斷程序入口地址送中斷向量表MOVES:01C6H,AXMOVAX,OFFSETIO8255MOVES:01C4H,AXINAL,0A1H;讀屏蔽字ANDAL,0FDH;改變屏蔽字,允許IRQ9中斷OUTDX,AL微機(jī)原理與接口技術(shù)---中南大學(xué)出版社ROTT:MOCDX,OFFSETDA1MOVAH,9INT21HJMP$MOVAH,11INT21HCMPAL,0JEROTTINAL,0A1H;恢復(fù)屏蔽字,禁止IRQ9中斷ORAL,2OUT0A1H,ALret微機(jī)原理與接口技術(shù)---中南大學(xué)出版社IO8255:MOVDX,390HINAL,DXINCDXOUTDX,ALMOVAL,61H;指定中斷結(jié)束命令OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
這種工作方式,使外設(shè)可在單一的8位數(shù)據(jù)總線上,既能發(fā)送,又能接收數(shù)據(jù)(雙向總線I/O)。方式2只限于A組使用,它用雙向總線端口A和控制端口C中的5位進(jìn)行操作,此時(shí),端口B可用于方式0或方式1。端口C的其他3位作I/O用或作端口B控制狀態(tài)信號(hào)線用。3.方式2微機(jī)原理與接口技術(shù)---中南大學(xué)出版社方式2狀態(tài)控制信號(hào):微機(jī)原理與接口技術(shù)---中南大學(xué)出版社INTE1是輸出的中斷允許信號(hào),由PC6的置位/復(fù)位控制INTE2是輸入的中斷允許信號(hào),由PC4的置位/復(fù)位控制其他信號(hào)的作用及意義與方式1相同。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社方式2工作時(shí)序微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
Intel8253是英特爾公司開發(fā)的可編程定時(shí)器/計(jì)數(shù)器芯片,改進(jìn)型為8254。8253具有3個(gè)獨(dú)立的功能完全相同的16位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器都有6種工作方式,這6種工作方式都可以由其控制字設(shè)定,因而能以6種不同的工作方式滿足不同的接口要求。CPU還可以隨時(shí)更改它們的方式和計(jì)數(shù)值,并讀取它們的計(jì)數(shù)狀態(tài)。8.2可編程計(jì)數(shù)器/定時(shí)器8253微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8253的內(nèi)部結(jié)構(gòu):8.2.18253的結(jié)構(gòu)與引腳信號(hào)微機(jī)原理與接口技術(shù)---中南大學(xué)出版社數(shù)據(jù)總線緩沖器是三態(tài)、雙向、8位的緩沖器,用作系統(tǒng)總線和8253的接口,根據(jù)CPU的輸入或輸出指令實(shí)現(xiàn)數(shù)據(jù)傳送。數(shù)據(jù)總線緩沖器具有下面3個(gè)基本功能。(1)CPU向8253所寫的控制字經(jīng)數(shù)據(jù)總線緩沖器和8253的內(nèi)部數(shù)據(jù)總線傳送給控制字寄存器寄存。(2)CPU向某計(jì)數(shù)器所寫的計(jì)數(shù)初值經(jīng)它和內(nèi)部總線送到指定的計(jì)數(shù)器。(3)CPU讀取某個(gè)計(jì)數(shù)器的現(xiàn)行值時(shí),該現(xiàn)行值經(jīng)內(nèi)部總線和緩沖器傳送到系統(tǒng)的數(shù)據(jù)總線上,被CPU讀入。1.數(shù)據(jù)總線緩沖器微機(jī)原理與接口技術(shù)---中南大學(xué)出版社讀/寫邏輯接收系統(tǒng)總線的5個(gè)輸入信號(hào),根據(jù)這5個(gè)信號(hào)產(chǎn)生整個(gè)器件操作的控制信號(hào)。通過片選信號(hào)CS來控制讀/寫邏輯的工作,在沒有被系統(tǒng)邏輯選中時(shí),讀/寫邏輯操作功能不會(huì)發(fā)生變化。根據(jù)A1A0的輸入選擇3個(gè)計(jì)數(shù)器和控制字寄存器。通過RD或WR完成指定的讀或?qū)懖僮鳌?.讀/寫邏輯微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
CS、RD、WR、A1和A0組合起來所產(chǎn)生的選擇與操作功能:微機(jī)原理與接口技術(shù)---中南大學(xué)出版社控制字寄存器寄存數(shù)據(jù)緩沖器傳送來的控制字。控制字寄存器有3個(gè),都是8位的寄存器,分別對(duì)應(yīng)于3個(gè)計(jì)數(shù)器。寫入的控制字由該控制字的最高2位確定送入哪個(gè)計(jì)數(shù)器的控制字寄存器寄存。各自的控制字寄存器決定各自計(jì)數(shù)器的工作方式和所執(zhí)行的操作。控制字寄存器只能寫入,其值不能讀出。3.控制字寄存器微機(jī)原理與接口技術(shù)---中南大學(xué)出版社計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2是3個(gè)獨(dú)立的計(jì)數(shù)器,它們的內(nèi)部結(jié)構(gòu)相同。4.計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
寫入計(jì)數(shù)器的初始值保存在計(jì)數(shù)初值寄存器中,由CLK脈沖的一個(gè)上升沿和一個(gè)下降沿將其裝入減1計(jì)數(shù)器。減1計(jì)數(shù)器在CLK脈沖(GATE允許)作用下進(jìn)行遞減計(jì)數(shù),直至計(jì)數(shù)值為0,輸出OUT信號(hào)。輸出寄存器的值跟隨減1計(jì)數(shù)器變化,僅當(dāng)寫入鎖存控制字時(shí),它鎖存減1計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值(減1計(jì)數(shù)器可繼續(xù)計(jì)數(shù)),CPU讀取后,它自動(dòng)解除鎖存狀態(tài),又跟隨減1計(jì)數(shù)器變化。所以在計(jì)數(shù)過程中,CPU隨時(shí)可以用指令讀取任一計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值,這一操作對(duì)計(jì)數(shù)沒有影響。計(jì)數(shù)初值寄存器,減1計(jì)數(shù)器和輸出寄存器都可看作是8位的寄存器對(duì)。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
每個(gè)計(jì)數(shù)器都是對(duì)輸入的CLK脈沖按二進(jìn)制或十進(jìn)制的預(yù)置值開始遞減計(jì)數(shù)。若輸入的CLK是頻率精確的時(shí)鐘脈沖,則計(jì)數(shù)器可作為定時(shí)器。在計(jì)數(shù)過程中,計(jì)數(shù)器受門控信號(hào)GATE的控制。計(jì)數(shù)器的輸入CLK與輸出OUT以及門控信號(hào)GATE之間的關(guān)系,取決于計(jì)數(shù)器的工作方式。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8253的計(jì)數(shù)器有6種工作方式:(1)方式0--計(jì)數(shù)結(jié)束中斷(2)方式1--硬件觸發(fā)單拍脈沖(3)方式2--頻率發(fā)生器(4)方式3--方波發(fā)生器(5)方式4--軟件觸發(fā)選通(6)方式5--硬件觸發(fā)選通8.2.2計(jì)數(shù)器的工作方式與操作時(shí)序微機(jī)原理與接口技術(shù)---中南大學(xué)出版社1.計(jì)數(shù)器的輸出 OUT6種工作方式的輸出信號(hào)微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
6種工作方式中,只有方式0在寫入控制字后輸出為低,其他5種方式,都是在寫入控制字后輸出為高。方式2、4、5的輸出波形是相同的,都是寬度為一個(gè)CLK周期的負(fù)脈沖。但方式2是連續(xù)工作,方式4由軟件(設(shè)置計(jì)數(shù)值)觸發(fā)啟動(dòng),而方式5由門控脈沖觸發(fā)啟動(dòng)。方式5與方式1的工作方式基本相同,但輸出波形不同,方式1的輸出為寬度是N個(gè)CLK脈沖的低電平脈沖(計(jì)數(shù)過程中輸出為低),而方式5的輸出為寬度是1個(gè)CLK脈沖的負(fù)脈沖(計(jì)數(shù)過程中輸出為高)。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
方式3和方式2的輸出都是周期性的,它們的主要區(qū)別是,方式2在計(jì)數(shù)過程中輸出始終為高,直至計(jì)數(shù)器減到1時(shí),輸出一個(gè)CLK負(fù)脈沖后又恢復(fù)為高;方式3在計(jì)數(shù)過程中輸出有一半時(shí)間為高,另一半時(shí)間為低。所以,若計(jì)數(shù)值為N,則方式3的輸出為周期是N個(gè)CLK脈沖的方波。如果計(jì)數(shù)值N是奇數(shù),則輸出(N+1)/2個(gè)CLK脈沖周期為高,(N-1)/2個(gè)脈沖周期為低,即OUT為高,將比其為低多一個(gè)CLK周期時(shí)間。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
方式0之所以稱之為計(jì)數(shù)結(jié)束中斷,是因?yàn)榉绞?是專為8253工作在中斷方式而設(shè)計(jì)的,它的輸出OUT一經(jīng)確定方式以后就馬上變低,直到計(jì)數(shù)到0才變高,而其他方式的輸出就不是這種情況。8253用于中斷方式并不僅限于方式0,其他方式也是可以用于中斷方式的。8253內(nèi)部沒有中斷控制電路,也沒有專用的中斷請(qǐng)求引線,所以若要用于中斷,則可用OUT信號(hào)作為外部中斷請(qǐng)求信號(hào)。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社任一種方式,只有寫入計(jì)數(shù)值后才能開始計(jì)數(shù),方式0、2、3和4都是在寫入計(jì)數(shù)值后,計(jì)數(shù)過程就開始了,而方式1和5需要外部觸發(fā)啟動(dòng),才開始計(jì)數(shù)。6種方式中,只有方式2和3是連續(xù)計(jì)數(shù),其他4種方式都是一次計(jì)數(shù),要繼續(xù)工作需要重新啟動(dòng),方式0、4由寫入計(jì)數(shù)值(軟件)啟動(dòng),方式1、5要由外部信號(hào)(硬件)啟動(dòng)。2.計(jì)數(shù)器的工作與啟動(dòng)微機(jī)原理與接口技術(shù)---中南大學(xué)出版社在方式0和方式4中,GATE是電平起作用。計(jì)數(shù)過程受GATE信號(hào)的控制,GATE為高電平計(jì)數(shù),低電平停止計(jì)數(shù)。在方式1和方式5中,GATE是上升沿起作用。在計(jì)數(shù)過程中,只要GATE出現(xiàn)由低到高的跳變,計(jì)數(shù)的初值就被裝入減1計(jì)數(shù)器,并從初值起繼續(xù)計(jì)數(shù)。在方式2和方式3中,GATE信號(hào)的上升沿和電平均起作用。高電平計(jì)數(shù),低電平停止計(jì)數(shù)。上升沿則重新裝入計(jì)數(shù)初值,繼續(xù)計(jì)數(shù)。3.門控信號(hào)GATE的作用微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8253可以在計(jì)數(shù)過程中寫入計(jì)數(shù)值,但它的作用在不同方式時(shí)有所不同。方式0和方式4是立即有效(即新的計(jì)數(shù)值寫入減1計(jì)數(shù)器),方式1和方式5是外部觸發(fā)后有效,方式2和方式3是本次計(jì)數(shù)結(jié)束后有效。4.在計(jì)數(shù)過程中改變計(jì)數(shù)值微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8253的控制字8.2.38253的控制字和初始化編程微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(1)計(jì)數(shù)器選擇(D7、D6)??刂谱值淖罡邇晌粵Q定這個(gè)控制字是哪一個(gè)計(jì)數(shù)器的控制字。由于三個(gè)計(jì)數(shù)器的工作是完全獨(dú)立的,所以每個(gè)計(jì)數(shù)器都有一個(gè)控制字。而三個(gè)控制字都由同一地址(控制字寄存器地址)寫入,因而由控制字的D7、D6兩位來指定該控制字是哪個(gè)計(jì)數(shù)器的控制字。在控制字中的計(jì)數(shù)器選擇與計(jì)數(shù)器的地址是兩回事,不能混淆。計(jì)數(shù)器的地址用作CPU向計(jì)數(shù)器寫初值,或從計(jì)數(shù)器讀取計(jì)數(shù)器的當(dāng)前值。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(2)數(shù)據(jù)讀/寫格式(D5、D4)。CPU向計(jì)數(shù)器寫入初值和讀取它們的當(dāng)前狀態(tài)時(shí),有幾種不同的格式。讀/寫數(shù)據(jù)時(shí),是讀/寫8位數(shù)據(jù)還是16位數(shù)據(jù);若是8位數(shù)據(jù),可以令D5D4=01,只讀/寫低8位,則高8位自動(dòng)置0;若是16位數(shù)據(jù),而低8位為0,則可令D5D4=10,只讀/寫高8位,低8位就自動(dòng)為0;若令D5D4=11時(shí),就先讀/寫低8位,后讀/寫高8位。在讀取16位計(jì)數(shù)值時(shí),可令D5D4=00,則把寫控制字時(shí)的計(jì)數(shù)值鎖存,以后再讀取。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(3)工作方式(D3、D2、D1)。8253的每個(gè)計(jì)數(shù)器的6種不同的工作方式,由這3位決定。(4)數(shù)制選擇(D0)。8253的每個(gè)計(jì)數(shù)器有兩種計(jì)數(shù)制:二進(jìn)制和十進(jìn)制,由這位決定。在二進(jìn)制計(jì)數(shù)時(shí),寫入的初值的范圍為0000H~FFFFH,其中0000H是最大值,代表65536。在十進(jìn)制計(jì)數(shù)時(shí),寫入的初值的范圍為0000H~9999H,其中0000H是最大值,代表10000。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
要使用8253必須首先進(jìn)行初始化編程,初始化編程的步驟為先寫入計(jì)數(shù)器的控制字,然后寫入計(jì)數(shù)器的計(jì)數(shù)初值。控制字和計(jì)數(shù)初值,是通過兩個(gè)不同的端口地址寫入的。任一計(jì)數(shù)器的控制字都是寫入控制字寄存器的端口地址,由控制字中的D7、D6來確定是哪一個(gè)計(jì)數(shù)器的控制字;而計(jì)數(shù)初值是由各個(gè)計(jì)數(shù)器的端口地址寫入的。一片8253具有4個(gè)端口地址,由8253的A1和A0兩根引線來區(qū)別:A1、A0為11是控制字寄存器的端口地址,00、01和10則分別是計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2的端口地址。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
例如:用計(jì)數(shù)器0,工作在方式1,按十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為5080。若該片8253的端口地址為388H~38BH,則初始化程序段為:
MOVDX,38BHMOVAL,33HOUTDX,ALMOVDX,388HMOVAL,80HOUTDX,ALMOVAL,50HOUTDX,AL微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
8253任一計(jì)數(shù)器的計(jì)數(shù)值,CPU可用指令讀取。CPU讀到的是執(zhí)行讀取指令瞬間計(jì)數(shù)器的現(xiàn)行值。但8253的計(jì)數(shù)器是16位的,所以要分兩次讀至CPU,因此,若不設(shè)法鎖存的話,則在讀數(shù)過程中,計(jì)數(shù)值可能已變化了。要鎖存有兩種辦法:(1)利用GATE信號(hào)使計(jì)數(shù)過程暫停。(2)向8253輸送一個(gè)控制字,令8253的計(jì)數(shù)值在出寄存器鎖存。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
MOVDX,38BHMOVAL,40H;計(jì)數(shù)器1的鎖存命令
OUTDX,ALMOVDX,389HINAL,DXMOVCL,ALINAL,DXMOVCH,AL例如:讀取計(jì)數(shù)器1的16位計(jì)數(shù)值,存入CX中,其程序段為:微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
例8.48253在IBMPCXT中的應(yīng)用。IBMPCXT微型計(jì)算機(jī)中8253的部分線路
8.2.48253的應(yīng)用微機(jī)原理與接口技術(shù)---中南大學(xué)出版社由譯碼電路可知計(jì)數(shù)器和控制字寄存器的端口地址為40H~5FH,BIOS取為計(jì)數(shù)器0∶40H,計(jì)數(shù)器1∶41H,計(jì)數(shù)器2∶42H,控制字寄存器∶43H。
3個(gè)計(jì)數(shù)器的輸入時(shí)鐘頻率均為1.19MHz。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社計(jì)數(shù)器0輸出作為18.2Hz方波發(fā)生器。用來輸出方波作為中斷控制器8259的第0號(hào)中斷信號(hào)線(IRQ0)的輸入。每秒產(chǎn)生18.206次中斷請(qǐng)求,或說每隔55ms(54.925493ms)申請(qǐng)一次中斷DOS系統(tǒng)利用計(jì)數(shù)器0的這個(gè)特點(diǎn),通過08號(hào)中斷服務(wù)程序?qū)崿F(xiàn)了日時(shí)鐘計(jì)時(shí)功能計(jì)數(shù)器0的計(jì)數(shù)值為:
1.19M/18.2=65384=216即送16位的0,故其控制字為36H。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社對(duì)計(jì)數(shù)器0初始化的程序段如下:MOVAL,36HOUT43H,ALMOVAL,0OUT40H,ALOUT40H,AL微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
計(jì)數(shù)器1輸出間隔為15μS的負(fù)脈沖。該脈沖的上升沿觸發(fā)D觸發(fā)器。使它對(duì)DMA控制器8237的第0號(hào)DMA請(qǐng)求信號(hào)線DRQ0發(fā)出DMA請(qǐng)求信號(hào),8237則依據(jù)這個(gè)請(qǐng)求信號(hào)對(duì)動(dòng)態(tài)RAM進(jìn)行刷新。計(jì)數(shù)器1的計(jì)數(shù)值為:1.19×106/(1/15)×10-6=18故其控制字為54H。對(duì)計(jì)數(shù)器1的初始化程序段如下:MOVAL,54HOUT43H,ALMOVAL,18OUT41H,AL微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
計(jì)數(shù)器2輸出不同頻率的方波,經(jīng)電流驅(qū)動(dòng)器75477放大,推動(dòng)揚(yáng)聲器發(fā)出不同頻率的聲響。計(jì)數(shù)器2的計(jì)數(shù)值為可變值。隨蜂鳴器聲響頻率的高低而變,程序設(shè)計(jì)中讓它的取值范圍由1到65535,即16位二進(jìn)制數(shù),故其控制字為B6H。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社entryparameters:DH=NumberoflongtonestobeepDL=Numberofshorttonestobeeperr-beepprocPUSHF;保存所有的標(biāo)志位CLI;關(guān)中斷PUSHDSMOVAX,DATA;DS指向數(shù)據(jù)段MOVDS,AXORDH,DH;是否要鳴長音JZG3
;不鳴長音,去鳴短音下面是IBMPCXT機(jī)BIOS中的開機(jī)診斷子程序。該子程序讓蜂鳴器鳴一聲長音(3秒)和一聲短音(0.5秒),以指出系統(tǒng)板或RAM模塊或者CRT顯示器有錯(cuò)。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社G1:MOVBL,6;蜂鳴常數(shù),一次鳴響延續(xù)時(shí)0.5×BLCALLBEEP;調(diào)用鳴響子程序G2:LOOPG2;鳴響間隔,等待500mSDECDHJNZG1;長音沒鳴響完,繼續(xù)CMPMFG-TST,1;為制造測(cè)試模式?JNZG3;為制造測(cè)試模式,繼續(xù)鳴響短音MOVAL,0DH;停止LED閃OUTPORT-B,AL;PORT-B=61H,即8255B端口JMPG1微機(jī)原理與接口技術(shù)---中南大學(xué)出版社G3:MOVBL,1;短音鳴響時(shí)間為0.5×1=0.5SCALLBEEPG4:LOOPG4DECDLJNZG3;短音沒鳴響完,繼續(xù)G5:LOOPG5;短音鳴響完,延遲1S返回G6:LOOPG6POPDSPOPFRETerr-beependp微機(jī)原理與接口技術(shù)---中南大學(xué)出版社鳴響子程序:beepprocMOVAL,0B6H;計(jì)數(shù)器2的控制字OUT43H,ALMOVAX,533H;1000Hz分頻值,分高低字節(jié)兩次送入OUT42H,ALMOVAL,AHOUT42H,ALINAL,61H;讀取8255B端口的狀態(tài)MOVAH,ALORAL,3微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
OUT61H,AL;打開蜂鳴器SUBCX,CX;設(shè)置等待500ms的常數(shù)值G7:LOOPG7DECBL;等0.5s×BLJNZG7MOVAL,AH;恢復(fù)8255B端口的原來值,關(guān)蜂鳴器OUT61H,ALRETbeependp微機(jī)原理與接口技術(shù)---中南大學(xué)出版社例8-2.
對(duì)8253編程使揚(yáng)聲器發(fā)出600Hz的聲響,按任意鍵停止?!痉治觥?)對(duì)計(jì)數(shù)器2重新寫入計(jì)數(shù)初值,改變計(jì)數(shù)初值:計(jì)數(shù)初值=1.19MHz/600Hz=19882)控制8255A的PB0使GATE2為高電平,計(jì)數(shù)器2開始計(jì)數(shù),并且使8255A的PB1為高電平打開揚(yáng)聲器。發(fā)聲結(jié)束后通過PB0和PB1輸出低電平結(jié)束計(jì)數(shù)和關(guān)閉揚(yáng)聲器。8255A的B口地址為61H。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社【程序設(shè)計(jì)】CODE SEGMENT ASSUME CS:CODESTART: IN AL,61H OR AL,03H OUT 61H,AL ;打開揚(yáng)聲器
MOV AX,1998 ;計(jì)數(shù)初值為1988 OUT 42H,AL MOV AL,AH OUT 42H,AL ;先寫低8位,后寫高8位
MOV AH,1 INT 21H ;等待鍵入
IN AL,61H微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
AND AL,0FCH OUT 61H,AL ;關(guān)閉揚(yáng)聲器
MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
例8.3
對(duì)外部事件計(jì)數(shù)10次。
計(jì)數(shù)電路如圖所示,由圖可知,使用的是計(jì)數(shù)器0。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社stacksegmentstackstack
dw32dup(0)stackendsdatasegmentDA1DBWAITLOAD,0AH,0DH,$DA2DBPLEASEINPUT,0AH,0DH,$DA3DBPROGRAMTERMINATEDNORMALLY,0AH,0DH,$dataendscodesegmentbeginprocfarassumess:stack,cs:code,ds:datapushds微機(jī)原理與接口技術(shù)---中南大學(xué)出版社 sub ax,axpush ax
mov ax,data
mov
ds,axMOV DX,383H;8253計(jì)數(shù)器的方式0,BCD計(jì)數(shù)MOV AL,11HOUT DX,ALMOV DX,380HMOV AL,10HOUT DX,ALMOV DX,OFFSETDA1MOV AH,9INT 21HMOV DX,380H微機(jī)原理與接口技術(shù)---中南大學(xué)出版社LOAD:IN AL,DXCMP AL,10H;等待單穩(wěn)輸入脈沖,裝入計(jì)數(shù)初值JNE LOADMOV DX,OFFSETDA2MOV AH,9INT 21HMOV DX,380HCONTIN:IN AL,DXCMP AL,0;等待單穩(wěn)輸入10個(gè)脈沖JNZ CONTINMOV DX,OFFSETDA3MOV AH,9INT 21Hretbeginendpcodeendsendbegin微機(jī)原理與接口技術(shù)---中南大學(xué)出版社將OUT0接至80x86微機(jī)的IRQ9,使用中斷編程的程序如下:stacksegmentstackstack
dw32dup(0)stackendsdatasegmentDA1DBWAITLOAD,0AH,0DH,$DA2DBPLEASEINPUT,0AH,0DH,$DA3DBPROGRAMTERMINATEDNORMALLY,0AH,0DH,$dataends微機(jī)原理與接口技術(shù)---中南大學(xué)出版社codesegmentbeginproc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axMOV ES,AX
mov ax,data
mov
ds,axMOV DX,383H;8253計(jì)數(shù)器的方式0,BCD計(jì)數(shù)MOV AL,11HOUT DX,AL微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
MOV DX,380HMOV AL,10HOUT DX,ALMOV DX,OFFSETDA1MOV AH,9INT 21HMOV DX,380HLOAD:IN AL,DXCMP AL,10H;等待單穩(wěn)輸入脈沖,裝入計(jì)數(shù)初值JNE LOADMOV AX,SEGIS8253;填寫中斷向量表MOV ES:01C6H,AX微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
MOVAX,OFFSETIS8253MOV ES:01C4H,AXIN AL,0A1H;改變屏蔽字,允許IRQ9中斷AND AL,0FDHOUT 0A1H,ALMOV DX,OFFSETDA2MOV AH,9INT 21HJMP $;等待單穩(wěn)輸入10個(gè)脈沖MOV DX,OFFSETDA3MOV AH,9INT 21Hret微機(jī)原理與接口技術(shù)---中南大學(xué)出版社IS8253:MOV AL,61H;指定中斷結(jié)束命令OUT 0A0H,ALMOV AL,62HOUT 20H,ALIN AL,0A1H;關(guān)屏蔽,禁止IRQ9中斷OR AL,2OUT 0A1H,ALPOP AX;修改返址INC AXINC AXPUSH AXIRETbeginendpcodeendsendbegin微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
串行通信是指利用一條傳輸線將數(shù)據(jù)一位位地順序傳送,在傳輸過程中,每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長度。串行通信的特點(diǎn)是通信線路簡(jiǎn)單,利用電話或電報(bào)線路就可實(shí)現(xiàn)通信,降低了硬件開銷成本,適用于遠(yuǎn)距離通信,但傳輸速度較慢。8.3串行通信與可編程串行通信接口8251A微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
1)同步通信以幀為單位傳輸信息。將要傳輸?shù)淖址粋€(gè)一個(gè)地組成一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊頭部有1~2個(gè)同步字符,數(shù)據(jù)塊尾部是校驗(yàn)字符,這樣構(gòu)成一個(gè)信息幀。收發(fā)雙方在同一個(gè)時(shí)鐘信號(hào)的控制下發(fā)送和接收信息幀,幀與幀之間不允許有間隔,若有,必須用同步字符填充。同步通信傳輸效率高,但對(duì)收發(fā)雙方的同步要求嚴(yán)格,硬件電路比較復(fù)雜。
1.串行同步通信和串行異步通信8.3.1串行通信概述微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
2)異步通信以字符為單位傳輸信息。每個(gè)字符的前后都要附加起始位和停止位作為分隔位,因此通信中兩個(gè)字符間的傳輸間隔是任意的,不需要收發(fā)雙方的時(shí)鐘信號(hào)的嚴(yán)格同步,硬件電路比較簡(jiǎn)單。但由于其附加信息量多,異步通信的傳輸效率比較低。
圖8-26是異步通信時(shí)的標(biāo)準(zhǔn)數(shù)據(jù)格式微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2、數(shù)據(jù)傳送方式全雙工:雙根傳輸線,能夠同時(shí)發(fā)送和接收半雙工:?jiǎn)胃鶄鬏斁€,不能同時(shí)發(fā)送和接收單工:?jiǎn)胃鶄鬏斁€只用作發(fā)送或只用作接收微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
3.數(shù)據(jù)傳輸率數(shù)據(jù)傳輸率即波特率,是衡量數(shù)據(jù)傳送速率的指標(biāo)。表示每秒鐘傳送的二進(jìn)制位數(shù)。例如數(shù)據(jù)傳送速率為120字符/秒,而每一個(gè)字符為10位,則其傳送的波特率為10×120=1200位/秒=1200波特。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
8251A是可編程的串行通信接口芯片,概括起來具有以下基本特征:1)通過編程可以選擇同步方式或異步方式。同步方式下,波特率為0~64Kbps,異步方式下,波特率為0~19.2Kbps。2)同步方式下,每個(gè)字符可以用5、6、7或8位來表示,并且內(nèi)部能自動(dòng)檢測(cè)同步字符,從而實(shí)現(xiàn)同步。除此之外,8251A也允許同步方式下增加奇/偶校驗(yàn)位進(jìn)行校驗(yàn)。3)異步方式下,每個(gè)字符也可以用5、6、7或8位來表示,時(shí)鐘頻率為傳輸波特率的1、16或64倍,用1位作為奇/偶校驗(yàn)。1個(gè)啟動(dòng)位。并能根據(jù)編程為每個(gè)數(shù)據(jù)增加1個(gè)、1.5個(gè)或2個(gè)停止位??梢詸z查假啟動(dòng)位,自動(dòng)檢測(cè)和處理終止字符。
8.3.2異步通信控制器8251A微機(jī)原理與接口技術(shù)---中南大學(xué)出版社1.8251A的組成與接口信號(hào)8251A主要由7部分組成:數(shù)據(jù)總線緩沖器;選擇和讀寫控制邏輯;接收控制電路;發(fā)送控制電路;接受緩沖器;發(fā)送緩沖器;調(diào)制解調(diào)器控制電路;微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2.8251A引腳信號(hào)微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(2)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是8位的雙向、三態(tài)緩沖器,它是CPU與8251A之間的數(shù)據(jù)接口。CPU通過數(shù)據(jù)總線緩沖器發(fā)送和接收數(shù)據(jù),此外,CPU發(fā)出的控制命令和外設(shè)的狀態(tài)信息也是通過它來傳送的。
(2)讀/寫控制電路
讀/寫控制電路用來接收片選信號(hào)、讀寫信號(hào)和控制信號(hào),通過數(shù)據(jù)總線緩沖器對(duì)8251A進(jìn)行讀寫操作。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社(3)接收器
接收器由接收緩沖器和接收控制電路兩部分組成。接收移位寄存器從RXD引腿上接收串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)后存入接收緩沖器。
(4)發(fā)送器
發(fā)送器由發(fā)送緩沖器和發(fā)送控制電路兩部分組成。發(fā)送緩沖器把來自CPU的并行數(shù)據(jù)加上相應(yīng)的控制信息,然后轉(zhuǎn)換成串行數(shù)據(jù)從TXD引腳發(fā)送出去。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社(5)調(diào)制解調(diào)器控制電路調(diào)制解調(diào)器控制電路由控制寄存器、狀態(tài)寄存器和控制邏輯組成,用于控制調(diào)制解調(diào)器的工作。如果8251A與MODEM相連,則其控制信號(hào)由調(diào)制解調(diào)控制電路產(chǎn)生。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
3.8251A的外部引腳微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(1)8251A和CPU之間的連接信號(hào)8251A和CPU之間的連接信號(hào)可以分為四類:1):片選信號(hào),它由CPU發(fā)出端口的地址信號(hào)譯碼產(chǎn)生,低電平有效。2)D0-D7:8位,三態(tài),雙向數(shù)據(jù)線,與系統(tǒng)的數(shù)據(jù)總線相連3)讀/寫控制信號(hào):讀信號(hào),低電平有效,表示CPU當(dāng)前正在從8251A讀取數(shù)據(jù)或者狀態(tài)信息。:寫信號(hào),低電乎有效,表示CPU當(dāng)前正在往8251A寫入數(shù)據(jù)或者控制信息。
c/:控制/數(shù)據(jù)信號(hào),用來區(qū)分當(dāng)前讀/寫的是數(shù)據(jù)還是控制信息或狀態(tài)信息。該信號(hào)也可看作是8251A數(shù)據(jù)端口與控制端口的選擇信號(hào)。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
,,c/
這3個(gè)信號(hào)的組合,決定了CPU對(duì)8251A的具體操作,它們的關(guān)系如表7-3所示:
表8-38251A引腳信號(hào)與端口讀寫操作的關(guān)系C/
操作001CPU從8251A輸入數(shù)據(jù)010CPU向8251A輸出數(shù)據(jù)101CPU讀取8251A的狀態(tài)110CPU往8251A寫入控制字注意,8251A只有兩個(gè)連續(xù)的端口地址,數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口合用同一個(gè)偶地址,而狀態(tài)端口和控制端口合用同一個(gè)奇地址。在8086/8088系統(tǒng)中,利用A1來區(qū)分奇地址和偶地址。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社4)收發(fā)聯(lián)絡(luò)信號(hào)
TXRDY:發(fā)送器準(zhǔn)備好信號(hào),用來通知CPU,8251A已準(zhǔn)備好發(fā)送一個(gè)字符。
TXE:發(fā)送器空信號(hào),TXE為高電平時(shí)有效,用來表示此時(shí)8251A發(fā)送器中并行到串行轉(zhuǎn)換器空,說明一個(gè)發(fā)送動(dòng)作已完成。
RXRDY:接收器準(zhǔn)備好信號(hào),用來表示當(dāng)前8251A已經(jīng)從外部設(shè)備或調(diào)制解調(diào)器接收到一個(gè)字符,等待CPU來取走。因此,在中斷方式時(shí),RXRDY可用來作為中斷請(qǐng)求信號(hào);在查詢方式時(shí),RXRDY可用來作為查詢信號(hào)。
SYNDET:同步檢測(cè)信號(hào),只用于同步方式。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社
(2)8251A與外部設(shè)備之間的連接信號(hào)
8251A與外部設(shè)備之間的連接信號(hào)分為兩類:1)收發(fā)聯(lián)絡(luò)信號(hào)
:數(shù)據(jù)終端準(zhǔn)備好信號(hào),由8251A發(fā)送給外部設(shè)備,表示當(dāng)前CPU已經(jīng)準(zhǔn)備就緒。:數(shù)據(jù)設(shè)備準(zhǔn)備好信號(hào),由外設(shè)送往8251A,表示當(dāng)前外設(shè)已經(jīng)準(zhǔn)備好。:請(qǐng)求發(fā)送信號(hào),由8251A發(fā)送給外部設(shè)備,表示CPU已經(jīng)準(zhǔn)備好發(fā)送。:允許發(fā)送信號(hào),是對(duì)RTS的響應(yīng),由外設(shè)送往8251A,表示當(dāng)前允許8251A執(zhí)行發(fā)送操作。實(shí)際使用時(shí),這4個(gè)信號(hào)中通常只有必須為低電平,其它3個(gè)信號(hào)可以懸空起來不用。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2)數(shù)據(jù)信號(hào)TXD:發(fā)送器數(shù)據(jù)輸出信號(hào)。當(dāng)CPU送往8251A的并行數(shù)據(jù)被轉(zhuǎn)變?yōu)榇袛?shù)據(jù)后,通過TXD送往外設(shè)。RXD:接收器數(shù)據(jù)輸入信號(hào)。用來接收外設(shè)送來的串行數(shù)據(jù),數(shù)據(jù)進(jìn)入8251A后被轉(zhuǎn)變?yōu)椴⑿蟹绞健?3)時(shí)鐘、電源和地8251A除了與CPU及外設(shè)的連接信號(hào)外,還有電源端、地端和3個(gè)時(shí)鐘端。CLK:時(shí)鐘輸入,用來產(chǎn)生8251A器件的內(nèi)部時(shí)序。同步方式下,大于接收數(shù)據(jù)或發(fā)送數(shù)據(jù)的波特率的30倍,異步方式下,則要大于數(shù)據(jù)波特率的4.5倍。TXC:發(fā)送器時(shí)鐘輸入,用來控制發(fā)送字符的速度。同步方式下,TXC的頻率等于字符傳輸?shù)牟ㄌ芈?,異步方式下,TXC的頻率可以為字符傳輸波特率的1倍、16倍或者64倍。RXC:接收器時(shí)鐘輸入,用來控制接收字符的速度,和TXC一樣。在實(shí)際使用時(shí),RXC和TXC往往連在一起,由同一個(gè)外部時(shí)鐘來提供,CLK則由另一個(gè)頻率較高的外部時(shí)鐘來提供。微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8251A有兩個(gè)控制字和一個(gè)狀態(tài)字。兩個(gè)控制字即方式選擇控制字和操作命令控制字,它們沒有特征位,必須按先后順序?qū)懭肟刂贫丝?。狀態(tài)字從狀態(tài)端口讀取,狀態(tài)端口與控制端口使用一個(gè)端口地址。8.3.48251A的編程微機(jī)原理與接口技術(shù)---中南大學(xué)出版社對(duì)8251A進(jìn)行初始化時(shí),由方式選擇控制字的設(shè)置決定8251A的工作模式,方式選擇控制字的格式如圖8-34所示。當(dāng)方式選擇控制字的最低兩位D1D0=00時(shí),8251A工作在同步方式,此時(shí)最高兩位D7D6決定了是內(nèi)同步還是外同步,以及同步字符的個(gè)數(shù);若當(dāng)方式選擇控制字的最低兩位D1D0不全為0,則8251A進(jìn)入異步方式。1.方式選擇控制字(模式字)微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8-30方式選擇控制字微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2.操作命令控制字(控制字)
圖8-318251A的操作命令字的格式
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社3.8251狀態(tài)字微機(jī)原理與接口技術(shù)---中南大學(xué)出版社狀態(tài)寄存器的D1、D2、D6位分別與8251A引腳RXRDY、TXE、SYNDET上的信號(hào)相同;D0位TXRDY為1表示發(fā)送準(zhǔn)備好,當(dāng)前數(shù)據(jù)輸出緩沖器為空置D0為1。但8251A引腳TXRDY信號(hào)的置1條件與狀態(tài)字D0位不同,引腳TXRDY信號(hào)的置1的條件為:
數(shù)據(jù)輸出緩沖器為空AND輸入引腳為低電平AND操作控制字的TXEN位為1。狀態(tài)字的RXRDY和TXRDY可以在程序中用來作為輸入和輸出的測(cè)試狀態(tài)位。而引腳RXRDY和TXRDY兩個(gè)信號(hào)則常常作為外設(shè)對(duì)CPU的中斷請(qǐng)求信號(hào)。狀態(tài)寄存器的D3、D4、D5分別作為奇偶校驗(yàn)出錯(cuò)、溢出錯(cuò)和幀格式出錯(cuò)指示。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社4.8251A的初始化編程8251A的初始化編程必須遵守以下約定:
1)首先要對(duì)8251A作軟件復(fù)位操作,使8251A內(nèi)部處于初始狀態(tài)。按照8251A的規(guī)定,向8251A控制口順序?qū)懭?個(gè)0和1個(gè)40H將引起8251A復(fù)位,這叫軟件復(fù)位。2)芯片復(fù)位后,第一次用奇地址寫入的值作為模式字送控制寄存器。3)若模式字中規(guī)定了825lA工作在同步模式,那么,CPU接著往奇地址端口輸出的字節(jié)為同步字符,同步字符被寫入同步字符寄存器。如果有兩個(gè)同步字符,則會(huì)按先后分別寫入第一個(gè)同步字符寄存器和第二個(gè)同步字符寄存器。4)此后,除復(fù)位命令,不管同步方式還是異步方式,CPU往奇地址寫入的值將作為操作字送到控制寄存器,往偶地址端口寫入的值作為數(shù)據(jù)送到數(shù)據(jù)輸出寄存器。
微機(jī)原理與接口技術(shù)---中南大學(xué)出版社8251A的初始化流程圖微機(jī)原理與接口技術(shù)---中南大學(xué)出版社1.8251A初始化編程舉例1)異步模式設(shè)8251A工作在異步模式,波特率因子為16,7個(gè)數(shù)據(jù)位/字符,偶校驗(yàn),2個(gè)停止位,發(fā)送、接收允許,設(shè)端口地址為00E2H。完成初始化程序。
【分析】根據(jù)題目要求,可以確定模式字為11111010B即FAH,而控制字為00110111B即37H,則初始化程序如下:MOVAL,0FAH;設(shè)置模式字,MOVDX,00E2H;異步方式,7位/字符,偶校驗(yàn),2停止位,OUTDX,AL;波特率因子為16。MOVAL,37H;設(shè)置控制字,發(fā)送、接收允許,清出錯(cuò)標(biāo)志OUTDX,AL;使,有效.8.3.58251A的應(yīng)用舉例微機(jī)原理與接口技術(shù)---中南大學(xué)出版社2)同步模式設(shè)端口地址為0E2H,采用內(nèi)同步方式,2個(gè)同步字符(設(shè)同步字符為16H),偶校驗(yàn),7位數(shù)據(jù)位/字符?!痉治觥扛鶕?jù)題目要求,可以確定模式字為:001110
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024大數(shù)據(jù)中心共建合作協(xié)議
- 2024年夫妻雙方關(guān)于知識(shí)產(chǎn)權(quán)及版權(quán)分配協(xié)議
- 2024年土地整治與開發(fā)合作協(xié)議
- 二年級(jí)語文下冊(cè) 識(shí)字 1 神州謠教案 新人教版
- 2024年企業(yè)資產(chǎn)整體轉(zhuǎn)讓合同
- 2024年共享出行平臺(tái)與車輛供應(yīng)商之間的合作協(xié)議
- 2024年基本建設(shè)融資租賃合同
- 2024年農(nóng)田農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用與示范承包合同
- 2024年工程設(shè)備租賃合同
- 04鋼鐵結(jié)構(gòu)買賣塔吊鋼材供應(yīng)合同
- 瓷磚店運(yùn)營可行性方案
- 生產(chǎn)工人勞動(dòng)合同模板
- 新冠預(yù)防與控制
- 申論之大作文課件
- 煤礦事故復(fù)盤分析報(bào)告
- 天津美術(shù)館分析報(bào)告
- 《魏晉南北朝的科技與文化》【常規(guī)課件】
- 安全訪問控制策略
- 2024年河南興港投資集團(tuán)招聘筆試參考題庫含答案解析
- 消防通道暢通
- 相關(guān)方環(huán)安影響管理程序
評(píng)論
0/150
提交評(píng)論