微型計(jì)算機(jī)原理第8章_第1頁(yè)
微型計(jì)算機(jī)原理第8章_第2頁(yè)
微型計(jì)算機(jī)原理第8章_第3頁(yè)
微型計(jì)算機(jī)原理第8章_第4頁(yè)
微型計(jì)算機(jī)原理第8章_第5頁(yè)
已閱讀5頁(yè),還剩231頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章可編程接口芯片及應(yīng)用

8.1可編程定時(shí)器/計(jì)數(shù)器芯片8253/8254

8.2可編程并行接口芯片8255A

8.3串行通信及可編程串行接口芯片8.4模/數(shù)(A/D)與數(shù)/模(D/A)轉(zhuǎn)換技術(shù)及其接口微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!8.1可編程定時(shí)器/計(jì)數(shù)器芯片8253/8254實(shí)現(xiàn)定時(shí)的方法有三種:軟件定時(shí)、不可編程的硬件定時(shí)和可編程的硬件定時(shí)。軟件定時(shí)是通過(guò)讓機(jī)器執(zhí)行一段沒(méi)有具體操作目的的程序來(lái)實(shí)現(xiàn)的。由于CPU執(zhí)行每條指令都需要一個(gè)確定的時(shí)間,因此,只要選擇適當(dāng)?shù)闹噶詈桶才胚m當(dāng)?shù)难h(huán)次數(shù)就很容易實(shí)現(xiàn)軟件定時(shí),但軟件定時(shí)占用CPU資源,降低了CPU的利用率;不可編程的硬件定時(shí)盡管定時(shí)電路并不很復(fù)雜,但這種定時(shí)電路在硬件連接好以后,定時(shí)值和定時(shí)范圍不能由程序來(lái)控制和改變,使用不靈活;可編程定時(shí)器/計(jì)數(shù)器是為方便計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)和應(yīng)用而研制的,定時(shí)值及其范圍可以很容易地由軟件來(lái)控制和改變,能夠滿足各種不同的定時(shí)和計(jì)數(shù)要求,因此得到了廣泛的應(yīng)用。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!8.1.18253的結(jié)構(gòu)與功能1.8253的引腳8253是24腳雙列直插式芯片,用+5V電源供電。芯片內(nèi)有三個(gè)相互獨(dú)立的16位定時(shí)/計(jì)數(shù)器。8253的引腳和功能框圖如圖8.1所示。圖8.18253引腳及功能結(jié)構(gòu)微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!(5)寫信號(hào)WR:輸入信號(hào),低電平有效。由CPU發(fā)出,用于控制對(duì)選中的8253內(nèi)部寄存器的寫操作。(6)時(shí)鐘脈沖信號(hào)CLK0~CLK2:計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2的時(shí)鐘輸入端。由CLK引腳輸入的脈沖可以是系統(tǒng)時(shí)鐘(或系統(tǒng)時(shí)鐘的分頻脈沖)或其他任何脈沖源所提供的脈沖。該脈沖可以是均勻的、連續(xù)的并具有精確周期的,也可以是不均勻的、斷續(xù)的、周期不確定的脈沖。時(shí)鐘脈沖信號(hào)的作用是在8253進(jìn)行定時(shí)或計(jì)數(shù)時(shí),每輸入一個(gè)時(shí)鐘信號(hào),便使計(jì)數(shù)值減1。若CLK是由精確的時(shí)鐘脈沖提供,則8253作為定時(shí)器使用;若CLK是由外部事件輸入的脈沖,則8253作為計(jì)數(shù)器使用。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!

2.8253的內(nèi)部結(jié)構(gòu)8253內(nèi)部結(jié)構(gòu)框圖如圖8.2所示。它由數(shù)據(jù)總線緩沖器、讀/寫邏輯、控制字寄存器以及3個(gè)獨(dú)立的16位計(jì)數(shù)器組成。圖8.28253內(nèi)部結(jié)構(gòu)框圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!圖8.3計(jì)數(shù)器內(nèi)部結(jié)構(gòu)框圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!3)數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器是三態(tài)、雙向8位緩沖器。它用于8253和系統(tǒng)數(shù)據(jù)總線的連接。CPU通過(guò)數(shù)據(jù)緩沖器將控制命令字和計(jì)數(shù)值寫入8253計(jì)數(shù)器,或者從8253計(jì)數(shù)器中讀取當(dāng)前的計(jì)數(shù)值。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!8253共占用4個(gè)I/O地址。當(dāng)A1A0=00時(shí),為計(jì)數(shù)器0中的CR(計(jì)數(shù)器0的計(jì)數(shù)初值寫入該寄存器)和OL(計(jì)數(shù)器0的當(dāng)前計(jì)數(shù)值從該寄存器讀出)寄存器的共用地址,至于是將計(jì)數(shù)初值寫入CR,還是從OL中讀出當(dāng)前計(jì)數(shù)值,則由控制信號(hào)WR和RD決定,這兩個(gè)信號(hào)同時(shí)只能有一個(gè)有效。當(dāng)A1A0=01和10時(shí),分別為計(jì)數(shù)器1和計(jì)數(shù)器2的CR和OL的共用地址。當(dāng)A1A0=11時(shí),是3個(gè)計(jì)數(shù)器內(nèi)的3個(gè)控制寄存器的共用地址,至于CPU是給哪個(gè)計(jì)數(shù)器送控制字,則由控制字中的最高兩位的編碼來(lái)決定。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!8253計(jì)數(shù)器在工作之前。用戶必須對(duì)其進(jìn)行初始化編程:首先CPU用輸出指令向控制寄存器送控制字,然后再用輸出指令向計(jì)數(shù)初值寄存器CR預(yù)置計(jì)數(shù)/定時(shí)的初值。啟動(dòng)工作后,CR中的初值就送入減1計(jì)數(shù)器CE對(duì)CLK輸入的計(jì)數(shù)/定時(shí)脈沖信號(hào)進(jìn)行減1計(jì)數(shù)。當(dāng)CE中的內(nèi)容減為0,表示計(jì)數(shù)/定時(shí)到,則OUT端輸出信號(hào)。輸出信號(hào)的波形形式由工作方式?jīng)Q定。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!圖8.48253控制字格式微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!當(dāng)D5D4=00時(shí),計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值被鎖存在OL中,此時(shí)計(jì)數(shù)器照常計(jì)數(shù),但OL中的值不變,待CPU將OL中的兩字節(jié)數(shù)據(jù)讀走后,OL中的內(nèi)容又隨減1計(jì)數(shù)器CE變化。當(dāng)D5D4=01,只讀/寫低8位,高8位自動(dòng)置0(寫計(jì)數(shù)初值時(shí));D5D4=10時(shí),只讀/寫高8位,低8位自動(dòng)置0(寫計(jì)數(shù)初值時(shí));D5D4=11時(shí),先讀/寫低8位,再讀/寫高8位。D3D2D1位決定了計(jì)數(shù)器的工作方式。8253共有六種工作方式,后面將一一介紹。D0位決定計(jì)數(shù)器的數(shù)制。D0=0,選擇二進(jìn)制計(jì)數(shù);D0=1,選擇十進(jìn)制計(jì)數(shù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!2)讀操作所謂讀操作是指讀出某計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值到CPU中。有兩種讀取當(dāng)前計(jì)數(shù)值的方法:①先使計(jì)數(shù)器停止計(jì)數(shù)(在GATE端加低電平或關(guān)閉CLK脈沖):根據(jù)送入的控制字中的D5D4位的狀態(tài),用一條或兩條輸入指令讀CE的內(nèi)容。實(shí)際上,CPU是通過(guò)輸出鎖存器OL讀出當(dāng)前計(jì)數(shù)值的,因?yàn)樵谟?jì)數(shù)過(guò)程中,OL的內(nèi)容是跟隨CE內(nèi)容變化的。此時(shí)由于CE不再計(jì)數(shù),故可穩(wěn)定地讀出OL(即CE)的內(nèi)容。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!例8.1設(shè)8253芯片的端口地址為388H38BH?,F(xiàn)要求計(jì)數(shù)器0工作在方式3,計(jì)數(shù)初值為2354,十進(jìn)制計(jì)數(shù);計(jì)數(shù)器1工作在方式2,計(jì)數(shù)初值為18H,二進(jìn)制計(jì)數(shù)。試根據(jù)上述要求編寫初始化程序及讀取計(jì)數(shù)器0當(dāng)前計(jì)數(shù)值的程序。;計(jì)數(shù)器0的初始化程序 MOV DX,38BH ;給計(jì)數(shù)器0送控制字 MOV AL,00110111B OUT DX,AL MOV DX,388H ;送計(jì)數(shù)初值的低8位 MOV AL,54H OUT DX,AL MOV AL,23H ;送計(jì)數(shù)初值的高8位 OUT DX,AL微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!;計(jì)數(shù)器0當(dāng)前計(jì)數(shù)值讀出程序 MOV DX,38BH ;送計(jì)數(shù)器0當(dāng)前計(jì)數(shù)值鎖存命令 MOV AL,00H OUT DX,AL MOV DX,388H ;讀出當(dāng)前計(jì)數(shù)值的低8位 IN AL,DX MOV CL,AL IN AL,DX ;讀出當(dāng)前計(jì)數(shù)值的高8位 MOV CH,AL微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!1.方式0——計(jì)數(shù)結(jié)束產(chǎn)生中斷這是一種軟件啟動(dòng)、不能自動(dòng)重復(fù)的計(jì)數(shù)方式。如圖8.5所示,寫入方式0的控制字(CW)后,其輸出端變低。再寫入計(jì)數(shù)初值N(圖中N=5),在寫信號(hào)WR以后經(jīng)過(guò)CLK的一個(gè)上升沿和一個(gè)下降沿,初值進(jìn)入減1計(jì)數(shù)器CE。計(jì)數(shù)器減到0后,OUT成為高電平。此信號(hào)通常接至8259A的IR端作為中斷請(qǐng)求信號(hào)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!圖8.6方式0時(shí)GATE信號(hào)的作用微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!

2.方式1——可編程單次脈沖這是一種硬件啟動(dòng)、不能自動(dòng)重復(fù)但通過(guò)GATE的正跳變可使計(jì)數(shù)過(guò)程重新開(kāi)始的計(jì)數(shù)方式。在寫入方式1的控制字后OUT成為高電平,在寫入計(jì)數(shù)初值后,要等GATE信號(hào)出現(xiàn)正跳變時(shí)才能開(kāi)始計(jì)數(shù)。在下一個(gè)CLK脈沖到來(lái)后,OUT變低,將計(jì)數(shù)初值送入CE并開(kāi)始減1計(jì)數(shù),直到計(jì)數(shù)器減到0后OUT變?yōu)楦唠娖健H鐖D8.7所示,計(jì)數(shù)過(guò)程一旦啟動(dòng),GATE即使變成低電平也不會(huì)使計(jì)數(shù)中止。計(jì)數(shù)完成后若GATE再來(lái)一個(gè)正跳變,計(jì)數(shù)過(guò)程又重復(fù)一次。也就是說(shuō)對(duì)應(yīng)GATE的每一個(gè)正跳變,計(jì)數(shù)器都輸出一個(gè)寬度為N*TCLK(其中N為計(jì)數(shù)初值,TCLK為CLK信號(hào)的周期)的負(fù)脈沖,因此稱這種方式為可編程單次脈沖方式。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!在計(jì)數(shù)過(guò)程啟動(dòng)之后計(jì)數(shù)完成之前,若GATE又發(fā)生正跳變,則計(jì)數(shù)器又從初值開(kāi)始重新計(jì)數(shù),OUT端仍為低電平,兩次的計(jì)數(shù)過(guò)程合在一起使OUT輸出的負(fù)脈沖加寬了。在方式1計(jì)數(shù)過(guò)程中,若寫入新的計(jì)數(shù)初值,也只是寫入到計(jì)數(shù)初值寄存器中,并不馬上影響當(dāng)前計(jì)數(shù)過(guò)程,同樣要等到下一個(gè)GATE正跳變啟動(dòng)信號(hào),計(jì)數(shù)器才接收新初值重新計(jì)數(shù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!圖8.8方式2的波形微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!

4.方式3——方波發(fā)生器工作于方式3時(shí),在計(jì)數(shù)過(guò)程中其輸出前一半時(shí)間為高電平,后一半時(shí)間為低電平。其輸出是可以自動(dòng)重復(fù)的周期性方波,輸出的方波周期為N*TCLK,如圖8.9所示。圖8.9方式3的波形微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!在寫入計(jì)數(shù)初值時(shí),如果GATE信號(hào)為低電平,計(jì)數(shù)器并不開(kāi)始計(jì)數(shù)。待GATE變?yōu)楦唠娖綍r(shí),才啟動(dòng)計(jì)數(shù)過(guò)程。在計(jì)數(shù)過(guò)程中,應(yīng)始終使GATE=1。若GATE=0,不僅中止計(jì)數(shù),而且OUT端馬上變高。待恢復(fù)GATE=1時(shí),產(chǎn)生硬件啟動(dòng),計(jì)數(shù)器又從頭開(kāi)始計(jì)數(shù)。在計(jì)數(shù)過(guò)程中寫入新的計(jì)數(shù)初值時(shí)不影響當(dāng)前的半個(gè)周期的計(jì)數(shù)。在當(dāng)前的半個(gè)周期結(jié)束(OUT電位發(fā)生變化)時(shí),將啟用新的計(jì)數(shù)初值開(kāi)始新的計(jì)數(shù)過(guò)程。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!圖8.10方式4的波形微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!圖8.11方式5的波形微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!表8.28253工作方式比較微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!8.1.58253應(yīng)用舉例例8.2使用8253計(jì)數(shù)器2產(chǎn)生頻率為40kHz的方波,設(shè)8253的端口地址為0040H0043H,已知時(shí)鐘端CLK2輸入信號(hào)的頻率為2MHz。試設(shè)計(jì)8253與8088總線的接口電路,并編寫產(chǎn)生方波的程序。8253與8088總線的接口電路如圖8.12所示。為了使計(jì)數(shù)器2產(chǎn)生方波,應(yīng)使其工作于方式3,輸入的2MHz的CLK2時(shí)鐘信號(hào)進(jìn)行50次分頻后可在OUT2端輸出頻率為40kHz的方波,因此,對(duì)應(yīng)的控制字應(yīng)為10010111B,計(jì)數(shù)初值為十進(jìn)制數(shù)50。程序如下所示:微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!圖8.128253與8088總線的連接微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!可以看出,要使8253的片選信號(hào)CS有效,應(yīng)使A9A8A7A6A5=00010,由于A4A3A2未參加譯碼,這三位為任意狀態(tài)均可使8253選中,因此8253的端口地址為40H~5FH,若取A4A3A2=000,則8253計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2以及控制寄存器的端口地址分別為40H、41H、42H和43H。如圖中所示,8253三個(gè)計(jì)數(shù)器使用相同的時(shí)鐘頻率,它們是由8284時(shí)鐘發(fā)生器輸出時(shí)鐘信號(hào)PCLK,再經(jīng)過(guò)D觸發(fā)器74LS175(圖中未畫出)二分頻后得到的,頻率為1.19MHz,8253的GATE0和GATE1接+5V,始終處于選返狀態(tài),GATE2接8255的PB0。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!2)計(jì)數(shù)器1該計(jì)數(shù)器向DMA控制器定時(shí)發(fā)送動(dòng)態(tài)存儲(chǔ)器刷新請(qǐng)求,它選用方式2工作,設(shè)置的控制字為54H。門控GATE1接+5?V為常啟狀態(tài)。OUT1輸出從低電平變?yōu)楦唠娖绞褂|發(fā)器置1,Q端輸出一個(gè)正電平信號(hào),作為內(nèi)存刷新的DMA請(qǐng)求信號(hào)DRQ0。DRAM每個(gè)單元要求在2ms內(nèi)必須刷新一次。實(shí)際芯片每次刷新完成512個(gè)單元的刷新,故經(jīng)過(guò)128次刷新操作就能將全部芯片的64KB個(gè)單元刷新一遍。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!3)計(jì)數(shù)器2該計(jì)數(shù)器控制揚(yáng)聲器發(fā)聲,作為機(jī)器的報(bào)警信號(hào)或伴音信號(hào),選用方式3工作。計(jì)數(shù)器2輸出的方波經(jīng)電流驅(qū)動(dòng)器75477放大后驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。門控GATE2接8255的PB0,用它控制計(jì)數(shù)器2的計(jì)數(shù)過(guò)程。輸出OUT2經(jīng)過(guò)一個(gè)與門,這個(gè)與門受PB1控制,所以揚(yáng)聲器由PB0和PB1來(lái)控制發(fā)聲。在IBMPC/XT機(jī)的BIOS中有一個(gè)聲響子程序BEEP,它將計(jì)數(shù)器2設(shè)置為工作方式3,作為方波發(fā)生器輸出約1KHz的方波,經(jīng)濾波驅(qū)動(dòng)后推動(dòng)揚(yáng)聲器發(fā)聲。程序如下所示:微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!G7: LOOP G7 ;延時(shí) DEC B1 ;B1為控制發(fā)聲長(zhǎng)短的入口條件 JNZ G7 ;B1=6為長(zhǎng)聲,B1=1為短聲 MOV AL,AH OUT 61H,AL ;恢復(fù)8255的B口原值,停止發(fā)聲 RETBEEP ENDP微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!D7D0:8位三態(tài)數(shù)據(jù)線,接至系統(tǒng)數(shù)據(jù)總線。CPU通過(guò)它實(shí)現(xiàn)與8255之間數(shù)據(jù)的讀出與寫入,控制字的寫入,以及狀態(tài)字的讀出等操作。A1A0:地址信號(hào)。A1和A0經(jīng)片內(nèi)譯碼產(chǎn)生四個(gè)有效地址分別對(duì)應(yīng)A、B、C三個(gè)獨(dú)立的數(shù)據(jù)端口以及一個(gè)公共的控制端口。在實(shí)際使用中,A1、A0端接到系統(tǒng)地址總線的A1、A0。CS:片選信號(hào),由系統(tǒng)地址譯碼器產(chǎn)生,低電平有效。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!圖8.148255A引腳及功能示意圖(a)引腳;(b)功能示意圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!2.8255A的內(nèi)部結(jié)構(gòu)8255A的內(nèi)部結(jié)構(gòu)框圖如圖8.15所示,其內(nèi)部由以下四部分組成。1)端口A、端口B和端口C端口A、端口B和端口C都是8位端口,可以選擇作為輸入或輸出。還可以將端口C的高4位和低4位分開(kāi)使用,分別作為輸入或輸出。當(dāng)端口A和端口B作為選通輸入或輸出的數(shù)據(jù)端口時(shí),端口C的指定位與端口A和端口B配合使用,用做控制信號(hào)或狀態(tài)信號(hào)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!2)?A組和B組控制電路這是兩組根據(jù)CPU送來(lái)的工作方式控制字控制8255工作方式的電路。它們的控制寄存器接收CPU輸出的方式控制字,由該控制字決定端口的工作方式,還可根據(jù)CPU的命令對(duì)端口C實(shí)現(xiàn)按位置位或復(fù)位操作。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!4)讀/寫控制邏輯讀/寫控制邏輯電路的功能是負(fù)責(zé)管理8255A與CPU之間的數(shù)據(jù)傳送過(guò)程。它接收CS及地址總線的信號(hào)A1、A0和控制總線的控制信號(hào)RESET、WR、RD,將它們組合后,得到對(duì)A組控制部件和B組控制部件的控制命令,并將命令送給這兩個(gè)部件,再由它們控制完成對(duì)數(shù)據(jù)、狀態(tài)信息和控制信息的傳送。各端口讀/寫操作與對(duì)應(yīng)的控制信號(hào)之間的關(guān)系見(jiàn)表8.3。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!方式1——選通輸入輸出方式,此時(shí)8255A的A口和B口與外設(shè)之間進(jìn)行輸入或輸出操作時(shí),需要C口的部分I/O線提供聯(lián)絡(luò)信號(hào)。只有A口和B口可工作于方式1。方式2——選通雙向輸入輸出方式,即同一端口的I/O線既可以輸入也可以輸出,只有A口可工作于方式2。此種方式下需要C口的部分I/O線提供聯(lián)絡(luò)信號(hào)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!圖8.168255的工作方式選擇控制字微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!圖8.178255A的C口按位置位/復(fù)位控制字微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第38頁(yè)!圖8.18方式0查詢方式的接口電路微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第39頁(yè)!其工作原理如下:在向輸出設(shè)備送數(shù)據(jù)前,先通過(guò)PC7查詢?cè)O(shè)備狀態(tài),若設(shè)備準(zhǔn)備好則從A口送出數(shù)據(jù),然后通過(guò)PC1發(fā)選通信號(hào)使輸出設(shè)備接收數(shù)據(jù)。從輸入設(shè)備取數(shù)據(jù)前,先通過(guò)PC6查詢?cè)O(shè)備狀態(tài),設(shè)備準(zhǔn)備好后,再?gòu)腂口讀入數(shù)據(jù),然后通過(guò)PC0發(fā)清除信號(hào),以便輸入后續(xù)字節(jié)。與下面介紹的選通輸入輸出方式(方式1)和選通雙向輸入輸出方式(方式2)相比,方式0的聯(lián)絡(luò)信號(hào)線可由用戶自行安排(方式1和方式2中使用的C口聯(lián)絡(luò)線是已定義好的),且只能用于查詢,不能實(shí)現(xiàn)中斷。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第40頁(yè)!1)A口和B口均為輸入圖8.19方式1輸入時(shí)端口線的功能微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第41頁(yè)!IBF(InputBufferFull):輸入緩沖器滿信號(hào),輸出,高電平有效。當(dāng)IBF有效時(shí),表示當(dāng)前已有一個(gè)新數(shù)據(jù)進(jìn)入端口A或端口B緩沖器,尚未被CPU取走,外設(shè)不能送新的數(shù)據(jù)。一旦CPU完成數(shù)據(jù)讀入操作后,IBF便復(fù)位(變?yōu)榈碗娖?。INTR(InterruptRequest):中斷請(qǐng)求信號(hào),輸出,高電平有效。在中斷允許信號(hào)INTE=1且IBF=1的條件下,由STB信號(hào)的后沿(上升沿)產(chǎn)生,該信號(hào)可接至中斷管理器8259A作中斷請(qǐng)求。它表明數(shù)據(jù)端口已輸入一個(gè)新數(shù)據(jù)。若CPU響應(yīng)此中斷請(qǐng)求,則讀入數(shù)據(jù)端口的數(shù)據(jù),并由RD信號(hào)的下降沿使INTR復(fù)位(變?yōu)榈碗娖?。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第42頁(yè)!INTE(InterruptEnable):中斷允許信號(hào),高電平有效。它是8255A內(nèi)部控制8255A是否發(fā)出中斷請(qǐng)求信號(hào)(INTR)的控制信號(hào)。這是由軟件通過(guò)對(duì)C口的置位或復(fù)位來(lái)實(shí)現(xiàn)對(duì)中斷請(qǐng)求的允許或禁止的。端口A的中斷請(qǐng)求INTRA可通過(guò)對(duì)PC4的置位或復(fù)位加以控制:PC4置1,允許INTRA工作;PC4清0,則屏蔽INTRA。端口B的中斷請(qǐng)求INTRB可通過(guò)對(duì)PC2的置位或復(fù)位加以控制。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第43頁(yè)!圖8.22方式1輸出時(shí)信號(hào)時(shí)序圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第44頁(yè)!INTR(InterruptRequest):中斷請(qǐng)求信號(hào),輸出,高電平有效。該信號(hào)由ACK的后沿(上升沿)在INTE=1且OBF=1的條件下產(chǎn)生,該信號(hào)使8255A向CPU發(fā)出中斷請(qǐng)求。若CPU響應(yīng)此中斷請(qǐng)求,則向數(shù)據(jù)口寫入一新的數(shù)據(jù),寫信號(hào)WR上升沿(后沿)使INTR復(fù)位,變?yōu)榈碗娖健NTE(InterruptEnable):中斷允許信號(hào),與方式1輸入類似,端口A的輸出中斷請(qǐng)求INTRA可以通過(guò)對(duì)PC6的置位或復(fù)位來(lái)加以允許或禁止。端口B的輸出中斷請(qǐng)求信號(hào)INTRB可以通過(guò)對(duì)PC2的置位或復(fù)位來(lái)加以允許或禁止。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第45頁(yè)!圖8.24方式1A口輸出B口輸入微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第46頁(yè)!圖8.258255A工作于方式2時(shí)端口線的功能微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第47頁(yè)!圖8.268255方式1接口電路及控制字微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第48頁(yè)!例8.5利用8255A對(duì)非編碼鍵盤進(jìn)行管理。圖8.27矩陣鍵盤接口微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第49頁(yè)!設(shè)圖中8255A的A口、B口和控制寄存器的地址分別為80H、81H和83H,其鍵盤掃描程序如下:;判斷是否有鍵按下MOV AL,82H ;初始化8255A,A口方式0輸出,B口方式0輸入OUT 83H,AL ;將工作方式控制字送控制寄存器MOV AL,00H OUT 80H,AL ;使PA3=PA2=PA1=PA0=0LOOA:IN AL,81H ;讀B口,判斷PB3PB0是否有一位為低電平 AND AL,0FH CMP AL,0FH 微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第50頁(yè)!START: MOV BL,4 ;行數(shù)送BL MOV BH,4 ;列數(shù)送BH MOV AL,0FEH ;D0=0,準(zhǔn)備掃描0行 MOV CL,0FH ;鍵盤屏蔽碼送CL MOV CH,0FFH ;CH中存放起始鍵號(hào)LOP1: OUT 80H,AL ;A口輸出,掃描一行 ROL AL,1 ;修改掃描碼,準(zhǔn)備掃描下一行 MOV AH,AL ;暫時(shí)保存 IN AL,81H ;讀B口,以便確定所按鍵的列值微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第51頁(yè)!JC LOP2 ;無(wú)鍵按下,查下一列線MOV AL,CH ;已找到,鍵號(hào)送ALCMP AL,0 JZ KEY0 ;是0號(hào)鍵按下,轉(zhuǎn)KEY0執(zhí)行CMP AL,1 JZ KEY1 ;是1號(hào)鍵按下,轉(zhuǎn)KEY1執(zhí)行CMP AL,0EH JZ KEY14 ;是14號(hào)鍵按下,轉(zhuǎn)KEY14執(zhí)行JMP KEY15 ;不是0~14號(hào)鍵,一定是15號(hào)鍵,轉(zhuǎn)KEY15執(zhí)行微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第52頁(yè)!圖8.28兩臺(tái)PC機(jī)并行通信接口電路微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第53頁(yè)!;A機(jī)的發(fā)送程序

MOV AX,0300H MOV ES,AX ;設(shè)置A機(jī)發(fā)送數(shù)據(jù)緩沖區(qū)段地址MOV BX,0 ;設(shè)置A機(jī)發(fā)送數(shù)據(jù)緩沖區(qū)偏移地址MOV CX,03FFH ;設(shè)置發(fā)送字節(jié)數(shù);對(duì)A機(jī)8255A進(jìn)行初始化MOV DX,303H ;指向A機(jī)8255A的控制寄存器MOV AL,10100000B ;8255A指定為工作方式1輸出OUT DX,AL MOV AL,00001101B ;置發(fā)送中斷允許INTEA=1OUT DX,AL ;;發(fā)送數(shù)據(jù)…微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第54頁(yè)! MOV DX,300H MOV AL,ES:[BX] OUT DX,AL INC BX ;緩沖區(qū)指針加1 LOOP LOOP0 ;數(shù)據(jù)未送完,繼續(xù) MOV AX,4C00H INT 21H ;返回DOS

;B機(jī)接收數(shù)據(jù)

MOV AX,0400H MOV ES,AX ;設(shè)B機(jī)接收緩沖區(qū)段地址 MOV BX,0 ;設(shè)B機(jī)接收緩沖區(qū)偏移地址 MOV CX,3FFH ;置接收字節(jié)數(shù)計(jì)數(shù)器……微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第55頁(yè)!IN AL,DX MOV ES:[BX],AL ;存入接收緩沖區(qū)MOV DX,303H ;產(chǎn)生ACK信號(hào),并發(fā)回A機(jī)MOV AL,0 ;PC0置0OUT DX,AL ;NOP ;延時(shí),使所產(chǎn)生的有效ACK信號(hào)(低電平)持續(xù)NOPMOV AL,01H ;PC0置1,使ACK變?yōu)楦唠娖?,注意在此信?hào)作OUT DX,AL ;用下,A機(jī)8255A的PC3變?yōu)楦唠娖絀NC BX ;緩沖區(qū)指針加1DEC CX ;計(jì)數(shù)器減1JNZ LOOP0 ;不為0,繼續(xù)MOV AX,4C00H ;INT 21H ;返回 微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第56頁(yè)!8.3.1串行通信的基本概念1.概述計(jì)算機(jī)之間以及計(jì)算機(jī)與一些常用的外部設(shè)備之間的數(shù)據(jù)交換,往往需要采用串行通信的方式。在計(jì)算機(jī)遠(yuǎn)程通信中,串行通信更是一種不可缺少的通信方式。在并行通信中,數(shù)據(jù)有多少位就要有多少根傳輸線,而串行通信中只需要一條數(shù)據(jù)傳輸線,所以串行通信可以節(jié)省傳送線。在位數(shù)較多、傳輸距離較長(zhǎng)的情況下,這個(gè)優(yōu)點(diǎn)更為突出,但串行通信的速度比并行通信的低。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第57頁(yè)!(1)單工(Simplex)通信模式:該模式僅能進(jìn)行一個(gè)方向的數(shù)據(jù)傳送,數(shù)據(jù)只能從發(fā)送器A發(fā)送到接收器B。(2)半雙工(HalfDuplex)通信模式:該模式能夠在設(shè)備A和設(shè)備B之間交替地進(jìn)行雙向數(shù)據(jù)傳送。即數(shù)據(jù)可以在一個(gè)時(shí)刻從設(shè)備A傳送到設(shè)備B,而另一時(shí)刻可以從設(shè)備B傳送到設(shè)備A,但不能同時(shí)進(jìn)行。(3)全雙工(FullDuplex)通信模式:該模式下設(shè)備A或B均能在發(fā)送的同時(shí)接收數(shù)據(jù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第58頁(yè)!(1)字符格式。字符格式即字符的編碼形式及規(guī)定。圖8.30異步傳送數(shù)據(jù)格式(a)有空閑位;(b)無(wú)空閑位微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第59頁(yè)!每個(gè)字符傳送前,其傳輸線上必須處于高電平“1”狀態(tài),這樣,當(dāng)傳輸線由“1”變?yōu)椤?”狀態(tài),并持續(xù)1比特時(shí)間時(shí),就表明是字符的起始位,下面?zhèn)魉偷奈恍畔⒈厝皇怯行?shù)據(jù)位信息。當(dāng)一個(gè)字符傳送完后,立即傳送下一個(gè)字符,那么,下一個(gè)字符的起始位便緊挨著前一個(gè)字符的停止位(即無(wú)空閑位),如圖8.30(b)所示。如果后續(xù)數(shù)據(jù)跟不上,則在停止位后加高電平的空閑位等待下一個(gè)字符的到來(lái),如圖8.30(a)所示??梢钥闯?,異步串行通信時(shí),字符的發(fā)送和接收可以隨時(shí)地間斷進(jìn)行,不受時(shí)間限制。因此,這種傳送方式在同一字符內(nèi)各位是以固定的時(shí)間傳送的,而字符間是異步的。這種異步傳送是靠收發(fā)雙方在字符格式中設(shè)置起始位和停止位來(lái)協(xié)調(diào)“同步”的。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第60頁(yè)!(2)波特率。波特率(Baudrate)是指每秒鐘傳送的二進(jìn)制位數(shù),單位為位/秒(bit/s)。串行通信時(shí)發(fā)送端和接收端的波特率必須一致。設(shè)計(jì)算機(jī)數(shù)據(jù)傳送的速率是120字符/s,而每個(gè)字符假設(shè)有10個(gè)比特(bit)位(包括1個(gè)起始位、7個(gè)數(shù)據(jù)位、1個(gè)奇偶校驗(yàn)位和1個(gè)停止位),則其波特率為:120字符/s10bit/字符=1200bit/s=1200波特最常用的波特率有110、300、600、1200、1800、2400、4800、9600和19200。通常用選定的波特率除以10來(lái)估計(jì)每秒鐘可以傳送的字符數(shù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第61頁(yè)!圖8.31同步傳送數(shù)據(jù)格式(a)單同步數(shù)據(jù)格式;(b)雙同步數(shù)據(jù)格式;(c)SDLC數(shù)據(jù)格式;(d)HDLC數(shù)據(jù)格式;(e)外同步格式微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第62頁(yè)!圖(c)是IBM公司推出的同步數(shù)據(jù)鏈路控制數(shù)據(jù)格式SDLC(SynchronousDataLinkControl)。圖(d)是ISO推薦的高級(jí)數(shù)據(jù)鏈路控制數(shù)據(jù)格式HDLC(High-levelDataLinkControl)。這兩種格式的細(xì)節(jié)本書不做詳細(xì)說(shuō)明。圖(e)是一種外同步方式所采用的數(shù)據(jù)格式。該方式在發(fā)送的一幀數(shù)據(jù)中不包含同步字。同步是由專門的控制線產(chǎn)生一個(gè)同步信號(hào)SYNC加到串行接口上,當(dāng)SYNC一到達(dá),表明數(shù)據(jù)場(chǎng)開(kāi)始,接口就連續(xù)接收數(shù)據(jù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第63頁(yè)!在進(jìn)行遠(yuǎn)距離的數(shù)據(jù)傳輸時(shí),一般是利用電話線作通信線路。由于電話線不具備數(shù)字信號(hào)所需的頻帶寬度,如果數(shù)字信號(hào)直接用電話線傳輸,信號(hào)將會(huì)出現(xiàn)畸變,致使接收端無(wú)法從發(fā)生畸變的數(shù)字信號(hào)中識(shí)別出原來(lái)的信息。因此必須采取一些措施,在發(fā)送端把數(shù)字信號(hào)轉(zhuǎn)換成適于傳輸?shù)哪M信號(hào),而在接收端再將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。前一種轉(zhuǎn)換稱為調(diào)制,后一種轉(zhuǎn)換稱為解調(diào)。完成調(diào)制、解調(diào)功能的設(shè)備叫做調(diào)制解調(diào)器(Modem)。調(diào)制解調(diào)器的類型比較多,但基本可分為兩類:異步調(diào)制解調(diào)器和同步調(diào)制解調(diào)器。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第64頁(yè)!圖8.32FSK調(diào)制原理(a)數(shù)字信號(hào);(b)FSK信號(hào)微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第65頁(yè)!圖8.33PSK調(diào)制原理微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第66頁(yè)!1)引腳定義EIARS–232C是美國(guó)電子工業(yè)協(xié)會(huì)推薦的一種標(biāo)準(zhǔn)(ElectronicIndustriesAssociationRemendedStandard)。它在一種D型25針連接器(DB–25)上定義了串行通信的有關(guān)信號(hào)。在實(shí)際異步串行通信中,并不要求用全部的RS–232C信號(hào)。現(xiàn)在微機(jī)中廣泛使用D型9針連接器(DB–9),因此這里不打算就RS–232C的全部信號(hào)作詳細(xì)解釋。表8.4給出25針或9針D型插座引出的9個(gè)常用RS–232C信號(hào)及其在D型插座中的引腳。TXD/RXD:是一對(duì)數(shù)據(jù)線。TXD發(fā)送數(shù)據(jù)線,輸出;RXD為接收數(shù)據(jù)線,輸入。當(dāng)兩臺(tái)微機(jī)以全雙工方式直接通信(無(wú)Modem方式)時(shí),雙方的這兩根線應(yīng)交叉連接(扭接)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第67頁(yè)!表8.4D型25針或9針RS–232C連接器引出的常用信號(hào)功能微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第68頁(yè)!圖8.35有Modem的RS–232C典型連接微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第69頁(yè)!2)信號(hào)電平規(guī)定RS–232C規(guī)定了雙極性的信號(hào)電平:?3~??25V的電平表示邏輯“1”。+3~?+25V的電平表示邏輯“0”。可以看出,RS–232C的電平與TTL電平是不能直接互連的。為了實(shí)現(xiàn)與TTL電路的連接,必須進(jìn)行電平轉(zhuǎn)換,詳見(jiàn)下節(jié)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第70頁(yè)!80x86微機(jī)的串行口就是使用可編程串行通信芯片8251或8250以及RS–232電平轉(zhuǎn)換電路,將微型計(jì)算機(jī)并行的邏輯“0”或邏輯“1”電平轉(zhuǎn)換為串行的+15V或?15V脈沖,通過(guò)25針(或9針)D型插座與外部進(jìn)行串行通信的。本節(jié)簡(jiǎn)要介紹RS–232電平轉(zhuǎn)換器(RS–232收發(fā)器)。目前,國(guó)際上有很多廠商生產(chǎn)RS–232收發(fā)器,這里僅介紹MAXIM生產(chǎn)的RS–232發(fā)送器1488(將TTL電平轉(zhuǎn)換為RS–232C電平)和RS–232接收器1489(將RS–232C電平轉(zhuǎn)換為TTL電平),其引腳如圖8.36所示。圖8.37給出了一個(gè)使用1488和1489實(shí)現(xiàn)電平轉(zhuǎn)換的例子。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第71頁(yè)!圖8.37RS–232C總線接收器與發(fā)送器的連接方法微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第72頁(yè)!⑤異步通信的時(shí)鐘頻率可設(shè)為波特率的1倍、16倍或64倍。⑥在異步通信時(shí),波特率的可選范圍為019.2千波特;在同步通信時(shí),波特率的可選范圍為064千波特。⑦提供與外部設(shè)備特別是調(diào)制解調(diào)器的聯(lián)絡(luò)信號(hào),便于直接和通信線路相連接。⑧接收、發(fā)送數(shù)據(jù)分別有各自的緩沖器,可進(jìn)行全雙工通信。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第73頁(yè)!②發(fā)送/命令緩沖器:這是一個(gè)分時(shí)使用的雙功能緩沖器。CPU送來(lái)的并行數(shù)據(jù)存放在這里,準(zhǔn)備由串行口向外發(fā)送;另外,CPU送來(lái)的命令字也存放在這里,以指揮串行接口的工作。由于命令一旦輸入就馬上執(zhí)行,不必長(zhǎng)期存放,因而不會(huì)影響存放待發(fā)送的數(shù)據(jù)。③狀態(tài)緩沖器:存放8251A內(nèi)部的工作狀態(tài),供CPU查詢。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第74頁(yè)!(2)讀/寫控制邏輯。該模塊的功能是接收CPU的控制信號(hào),控制數(shù)據(jù)的傳送方向。(3)接收器及接收控制。該模塊的功能是從RXD引腳接收串行數(shù)據(jù),按指定的方式裝配成并行數(shù)據(jù)。(4)發(fā)送器及發(fā)送控制。該模塊的功能是從CPU接收并行數(shù)據(jù),自動(dòng)加上適當(dāng)?shù)某蓭盘?hào)并轉(zhuǎn)換成串行數(shù)據(jù)后從TXD引腳發(fā)送出去。(5)調(diào)制解調(diào)器控制。該模塊提供和調(diào)制解調(diào)器的聯(lián)絡(luò)信號(hào)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第75頁(yè)!圖8.398251A的外部引腳微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第76頁(yè)!表8.5CPU對(duì)8251A的讀/寫控制

讀/寫功能說(shuō)明001CPU從8251A中讀取數(shù)據(jù)010CPU向8251A中寫入數(shù)據(jù)101CPU從8251A中讀取狀態(tài)110CPU向8251A中寫入控制命令微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第77頁(yè)!RXRDY(ReceiverReady)——接收器準(zhǔn)備好信號(hào),輸出,高電平有效。RXRDY=1時(shí),表明8251A已經(jīng)從串行輸入線接收了一個(gè)字符,正等待CPU將此數(shù)據(jù)取走。因此,在中斷方式時(shí),RXRDY可作為向CPU申請(qǐng)中斷的請(qǐng)求信號(hào);在查詢方式時(shí),RXRDY的狀態(tài)供CPU查詢之用。SYNDET(SynchronousDetect)——同步檢測(cè)信號(hào)。用于內(nèi)同步狀態(tài)輸出或外同步信號(hào)輸入。此線僅對(duì)同步方式有意義。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第78頁(yè)!2)與外部設(shè)備(或調(diào)制解調(diào)器)之間的接口引腳DTR(DataTerminalReady)——數(shù)據(jù)終端準(zhǔn)備好,輸出,低電平有效。CPU對(duì)8251A輸出命令字使控制寄存器D1位置1,從而使DTR變?yōu)榈碗娖?,以通知外設(shè)CPU當(dāng)前已準(zhǔn)備就緒。RTS(RequestToSend)——請(qǐng)求發(fā)送,輸出,低電平有效。此信號(hào)等效于DTR,CPU通過(guò)將控制寄存器的D5位置1,可使RTS變?yōu)榈碗娖?,用于通知外設(shè)(調(diào)制解調(diào)器)CPU已準(zhǔn)備好,請(qǐng)求外設(shè)(調(diào)制解調(diào)器)做好發(fā)送準(zhǔn)備。TXD(TransmitterData)——發(fā)送數(shù)據(jù)輸出線。CPU并行輸入給8251A的數(shù)據(jù)從該引腳串行發(fā)送出去。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第79頁(yè)!RXC(ReceiverClock)——接收器接收時(shí)鐘輸入端。它控制8251A接收字符的速度,在上升沿采集串行數(shù)據(jù)輸入線。在同步方式時(shí),它由外設(shè)(或調(diào)制解調(diào)器)提供,RXC的頻率等于波特率;在異步方式時(shí),RXC由專門的時(shí)鐘發(fā)生器提供,其頻率是波特率的1倍、16倍或64倍,即波特率將等于RXC端脈沖經(jīng)過(guò)分頻得到的脈沖的頻率,分頻系數(shù)可通過(guò)方式選擇字設(shè)定為1、16或64。實(shí)際上,RXC和TXC往往連在一起,共同接到一個(gè)信號(hào)源上,該信號(hào)源要由專門的輔助電路產(chǎn)生。TXC(TransmitterClock)——發(fā)送器發(fā)送時(shí)鐘輸入端。TXC的頻率與波特率之間的關(guān)系同RXC。數(shù)據(jù)在TXC的下降沿由發(fā)送器移位輸出。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第80頁(yè)!2)發(fā)送器的工作過(guò)程在異步方式中,發(fā)送器在數(shù)據(jù)前加上起始位,并根據(jù)程序的設(shè)定在數(shù)據(jù)后加上校驗(yàn)位和停止位,然后作為一幀信息從TXD引腳逐位發(fā)送數(shù)據(jù)。在同步方式中,發(fā)送器先送同步字符,然后逐位地發(fā)送數(shù)據(jù)。若CPU沒(méi)有及時(shí)把數(shù)據(jù)寫入發(fā)送緩沖器,則8251A用同步字符填充,直至CPU寫入新的數(shù)據(jù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第81頁(yè)!圖8.40方式控制字格式微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第82頁(yè)!(2)命令控制字。命令控制字使8251A進(jìn)入規(guī)定的工作狀態(tài)以準(zhǔn)備發(fā)送或接收數(shù)據(jù)。它應(yīng)該在寫入方式控制字后寫入,用于控制8251A的工作,可以多次寫入。命令控制字格式如圖8.41所示。方式控制字和命令控制字本身無(wú)特征標(biāo)志,也沒(méi)有獨(dú)立的端口地址,8251A是根據(jù)寫入先后次序來(lái)區(qū)分這兩者的:先寫入者為方式控制字,后寫入者為命令控制字。所以對(duì)8251初始化編程時(shí)必須按一定的先后順序?qū)懭敕绞娇刂谱趾兔羁刂谱?。微型?jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第83頁(yè)!2)狀態(tài)寄存器狀態(tài)寄存器存放8251A的狀態(tài)信息,供CPU查詢。狀態(tài)字各位的意義如圖8.42所示。圖8.42狀態(tài)字格式微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第84頁(yè)!8.3.48251A初始化編程與所有的可編程芯片一樣,8251A在使用前也要進(jìn)行初始化。初始化在8251A處于復(fù)位狀態(tài)時(shí)開(kāi)始。其過(guò)程為:首先寫入方式控制字,以決定通信方式、數(shù)據(jù)位數(shù)、校驗(yàn)方式等。若是同步方式則緊接著送入一個(gè)或兩個(gè)同步字符,若是異步方式則這一步可省略,最后送入命令控制字,就可以發(fā)送或接收數(shù)據(jù)了。初始化過(guò)程的信息全部寫入控制端口,特征是C/D=1,即地址線A0=1(因?yàn)镃/D接至A0)。由于各控制字沒(méi)有特征位,因而寫入的順序不能出錯(cuò),否則就會(huì)張冠李戴,達(dá)不到初始化的目的。圖8.43給出了8251A初始化過(guò)程的流程圖。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第85頁(yè)!1.異步方式下初始化編程舉例設(shè)8251A控制口的地址為301H,數(shù)據(jù)口地址為300H,按下述要求對(duì)8251A進(jìn)行初始化。①異步工作方式,波特率因子為64(即數(shù)據(jù)傳送速率是時(shí)鐘頻率的1/64),采用偶校驗(yàn),字符總長(zhǎng)度為10(1位起始位,7位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1位停止位)。②允許接收和發(fā)送,使錯(cuò)誤全部復(fù)位。③查詢8251A的狀態(tài)字,當(dāng)接收準(zhǔn)備就緒時(shí),從8251A的數(shù)據(jù)口讀入數(shù)據(jù),否則等待。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第86頁(yè)!2.同步方式下初始化編程舉例設(shè)8251A設(shè)定為同步工作方式,控制口地址為51H,2個(gè)同步字符,采用內(nèi)同步,SYNDET為輸出引腳,偶校驗(yàn),每個(gè)字符7個(gè)數(shù)據(jù)位。2個(gè)同步字符,它們可以相同,也可以不同。本例使用兩個(gè)相同的同步字符23H。初始化編程如下:微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第87頁(yè)!8.3.58251A應(yīng)用舉例當(dāng)8251A與CPU連接時(shí),要占用兩個(gè)端口地址,即控制端口地址(C/D=1)和數(shù)據(jù)端口地址(C/D=0)。在使用8251A時(shí),需要提供三個(gè)時(shí)鐘信號(hào):CLK、TXC和RXC。CLK信號(hào)的頻率沒(méi)有明確值的要求;接收器接收時(shí)鐘RXC和發(fā)送器發(fā)送時(shí)鐘TXC的頻率在同步方式時(shí)等于波特率,在異步方式時(shí)應(yīng)分別為波特率的1倍、16倍和64倍,即波特率將等于RXC和TXC端脈沖經(jīng)過(guò)分頻得到的脈沖的頻率,分頻系數(shù)可通過(guò)方式選擇字設(shè)定為1、16或64。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第88頁(yè)!例8.7

用8251A為8086CPU與CRT終端設(shè)計(jì)一串行通信接口。假設(shè)8251A控制端口地址為301H,數(shù)據(jù)端口地址為300H。要求:①異步方式傳送,數(shù)據(jù)格式為1位停止位,8位數(shù)據(jù)位,奇校驗(yàn);②波特率因子為16;③CPU用查詢方式將顯示緩沖區(qū)的字符“HAPPYNEWYEAR”送CRT顯示器。顯示緩沖區(qū)在數(shù)據(jù)段。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第89頁(yè)!圖8.448086CPU與CRT終端的串行接口微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第90頁(yè)! OUT DX,AL ;送方式控制字 MOV AL,00110011B ;命令控制字 OUT DX,AL ;送命令控制字 MOV BX,OFFSETSTRING ;字符串偏移地址 MOV CX,COUNT ;發(fā)送字符個(gè)數(shù)WAIT:MOV DX,301H ;控制口地址 IN AL,DX ;讀狀態(tài)字 TEST AL,01H ;檢測(cè)TXRDY=1? JZ WAIT ;如果不是,則等待 MOV DX,300H ;數(shù)據(jù)口地址微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第91頁(yè)!8.4模/數(shù)(A/D)與數(shù)/模(D/A)轉(zhuǎn)換技術(shù)及其接口8.4.1D/A轉(zhuǎn)換接口D/A轉(zhuǎn)換器的作用是將二進(jìn)制的數(shù)字量轉(zhuǎn)換為相應(yīng)的模擬量。D/A轉(zhuǎn)換器的主要部件是電阻開(kāi)關(guān)網(wǎng)絡(luò),其主要網(wǎng)絡(luò)形式有權(quán)電阻網(wǎng)絡(luò)和R–2R梯形電阻網(wǎng)絡(luò),其工作原理這里不作介紹。集成D/A芯片類型很多,按生產(chǎn)工藝分有雙極型、MOS型等;按字長(zhǎng)分有8位、10位、12位等;按輸出形式分有電壓型和電流型。另外,不同生產(chǎn)廠家的產(chǎn)品,其型號(hào)各不相同。例如,美國(guó)國(guó)家半導(dǎo)體公司的D/A芯片為DAC系列,如DAC0832等;美國(guó)模擬器件公司的D/A芯片為AD系列,如AD558等。使用時(shí)可參閱各公司提供的使用手冊(cè)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第92頁(yè)!圖8.45DAC0832的結(jié)構(gòu)框圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第93頁(yè)!DI7DI0——D/A轉(zhuǎn)換器的數(shù)字量輸入引腳。其中DI0為最低位,DI7為最高位。CS——片選信號(hào)輸入端,低電平有效。WR1——輸入寄存器的寫信號(hào),低電平有效。ILE——輸入寄存器選通信號(hào),高電平有效。ILE信號(hào)和CS、WR1共同控制選通輸入寄存器。當(dāng)CS、WR1均為低電平,而ILE為高電平時(shí),LE1=0,輸入數(shù)據(jù)被送至8位輸入寄存器的輸出端;當(dāng)上述三個(gè)控制信號(hào)任一個(gè)無(wú)效時(shí),LE1變高,輸入寄存器將數(shù)據(jù)鎖存,輸出端呈保持狀態(tài)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第94頁(yè)!VREF——D/A轉(zhuǎn)換器的基準(zhǔn)電壓,其范圍可在?10+10V內(nèi)選定。該端連至片內(nèi)的R–2RT型電阻網(wǎng)絡(luò),由外部提供一個(gè)準(zhǔn)確的參考電壓。該電壓精度直接影響著D/A轉(zhuǎn)換精度。IOUT1——D/A轉(zhuǎn)換器輸出電流1,當(dāng)輸入全1時(shí),輸出電流最大,約為;當(dāng)輸入為全0時(shí),輸出電流最小,即為0。IOUT2——D/A轉(zhuǎn)換器輸出電流2,它與IOUT1有如下關(guān)系:IOUT1+IOUT2=常數(shù)D/A轉(zhuǎn)換沒(méi)有形式上的啟動(dòng)信號(hào)。實(shí)際上將數(shù)據(jù)寫入第二級(jí)寄存器的控制信號(hào)就是D/A轉(zhuǎn)換器的啟動(dòng)信號(hào)。另外,它也沒(méi)有轉(zhuǎn)換結(jié)束信號(hào),D/A轉(zhuǎn)換的過(guò)程很快,一般還不到一條指令的執(zhí)行時(shí)間。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第95頁(yè)!單緩沖工作方式是指只有一個(gè)寄存器受到控制。這時(shí)將另一個(gè)寄存器的有關(guān)控制信號(hào)預(yù)先設(shè)置成有效,使之開(kāi)通,或者將兩個(gè)寄存器的控制信號(hào)連在一起,兩個(gè)寄存器作為一個(gè)來(lái)使用。直通工作方式是指兩個(gè)寄存器的有關(guān)控制信號(hào)都預(yù)先置為有效,兩個(gè)寄存器都開(kāi)通。只要數(shù)字量送到數(shù)據(jù)輸入端,就立即進(jìn)入D/A轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。這種方式應(yīng)用較少。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第96頁(yè)!圖8.47DAC0832的電壓輸出電路(a)單極性輸出;(b)雙極性輸出微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第97頁(yè)!4)?DAC0832的主要技術(shù)指標(biāo)輸入:8位數(shù)字量。內(nèi)有鎖存器,數(shù)字量輸入端可直接與CPU的數(shù)據(jù)總線相連。輸入方式:雙緩沖、單緩沖和直通輸入三種方式。輸入邏輯:與TTL兼容。輸出:模擬量電流IOUT1和IOUT2。電流建立時(shí)間:1s。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第98頁(yè)!

2.DAC1210DAC1210是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的12位D/A轉(zhuǎn)換器芯片,是智能化儀表中常用的一種高性能的D/A轉(zhuǎn)換器。DAC1210是24引腳的雙列直插式芯片,其內(nèi)部邏輯結(jié)構(gòu)如圖8.48所示。由圖8.48可以看出,其邏輯結(jié)構(gòu)與DAC0832類似,所不同的是DAC1210具有12位的數(shù)據(jù)輸入端,且其12位數(shù)據(jù)輸入寄存器由一個(gè)8位的輸入寄存器和一個(gè)4位的輸入寄存器組成。兩個(gè)輸入寄存器的輸入允許控制都要求CS和WR1為低電平,但8位輸入寄存器的數(shù)據(jù)輸入還要求B1/B2端為高電平。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第99頁(yè)!1)?DAC1210的引腳DI11DI0——D/A轉(zhuǎn)換器的數(shù)字量輸入引腳。其中DI0為最低位,DI11為最高位。CS——片選信號(hào)輸入端,低電平有效。WR1——輸入寄存器的寫信號(hào),低電平有效。當(dāng)此信號(hào)有效時(shí),與CS和B1/B2配合起控制作用。B1/B2——字節(jié)控制。此端為高電平時(shí),12位數(shù)字同時(shí)送入輸入鎖存器;此端為低電平時(shí),將12位數(shù)字量的低4位送到4位輸入寄存器。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第100頁(yè)!VCC——電源,其值可在+5+15V之間選取,典型值取+15V。AGND——模擬信號(hào)地。DGND——數(shù)字信號(hào)地。RFB——外部放大器的反饋電阻接線端。VREF——D/A轉(zhuǎn)換器的基準(zhǔn)電壓,其范圍可在?10+10V內(nèi)選定。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第101頁(yè)!3.D/A轉(zhuǎn)換芯片與微處理器的接口計(jì)算機(jī)是通過(guò)輸出指令將要轉(zhuǎn)換的數(shù)字送到D/A轉(zhuǎn)換芯片來(lái)實(shí)現(xiàn)D/A轉(zhuǎn)換的,但由于輸出指令送出的數(shù)據(jù)在數(shù)據(jù)總線上持續(xù)的時(shí)間很短,因而需要數(shù)據(jù)鎖存器來(lái)鎖存CPU送來(lái)的數(shù)據(jù),以便完成D/A轉(zhuǎn)換。目前生產(chǎn)的DAC芯片有的片內(nèi)帶有鎖存器(如本節(jié)介紹的DAC0832和DAC1210),而有的則沒(méi)有。在實(shí)際中若選用了內(nèi)部不帶鎖存器的D/A轉(zhuǎn)換芯片,就需要在CPU和D/A芯片之間增加鎖存電路。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第102頁(yè)!圖8.49DAC0832與ISA總線連線圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第103頁(yè)!2)?12位D/A轉(zhuǎn)換器與CPU的接口當(dāng)D/A轉(zhuǎn)換器位數(shù)大于8位時(shí),與8位微處理器接口時(shí)被轉(zhuǎn)換的數(shù)據(jù)就需要分幾次(D/A位數(shù)≤16時(shí)需2次)送出。對(duì)于片內(nèi)帶數(shù)據(jù)鎖存器的D/A芯片,應(yīng)通過(guò)合理地使用控制信號(hào)實(shí)現(xiàn)數(shù)據(jù)的鎖存;對(duì)于沒(méi)有鎖存器的芯片,用戶自己需要增加數(shù)據(jù)鎖存電路。這里以片內(nèi)帶有數(shù)據(jù)鎖存器的12位D/A轉(zhuǎn)換芯片DAC1210與外部數(shù)據(jù)總線為8位的IBMPC/XT總線的接口方法,說(shuō)明主機(jī)數(shù)據(jù)總線位數(shù)小于DAC芯片位數(shù)時(shí)的接口技術(shù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第104頁(yè)!圖8.50DAC1210與IBMPC/XT總線的連接圖微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第105頁(yè)!MOV CL,04HSHL BX,CL ;BX中的12位數(shù)左移4位MOV AL,BH ;高8位送ALOUT DX,AL ;高8位送“8位輸入寄存器”鎖存INC DX ;端口地址變?yōu)?21H,可保證下一次執(zhí)行OUT ;指令時(shí),A0=1,B1/B2=0,從而將低4位數(shù)據(jù)寫 ;入“4位輸入寄存器”中鎖存MOV AL,BL ;低4位送ALOUT DX,AL ;低4位送“4位輸入寄存器”鎖存INC DX ;端口地址變?yōu)?22H,可保證下一次執(zhí)行OUT ;指令時(shí),將兩個(gè)寄存器的內(nèi)容同時(shí)送12位的DAC ;寄存器,且使XFER有效,以便啟動(dòng)D/A轉(zhuǎn)換OUT DX,AL ;啟動(dòng)D/A轉(zhuǎn)換微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第106頁(yè)!1.ADC0809ADC0809是逐位逼近型8通道、8位A/D轉(zhuǎn)換芯片,CMOS工藝制造,雙列直插式28引腳封裝。圖8.51給出了ADC0809芯片的內(nèi)部結(jié)構(gòu)框圖及引腳圖(圖中給出的數(shù)據(jù)為對(duì)應(yīng)的引腳號(hào))。ADC0809片內(nèi)有8路模擬開(kāi)關(guān),可輸入8個(gè)模擬量,單極性輸入,量程為0+5V。典型的轉(zhuǎn)換速度為100s。片內(nèi)帶有三態(tài)輸出緩沖器,可直接與CPU總線接口。其性能價(jià)格比有明顯的優(yōu)勢(shì),是目前廣泛采用的芯片之一,可應(yīng)用于對(duì)精度和采樣速度要求不高的數(shù)據(jù)采集場(chǎng)合或一般的工業(yè)控制領(lǐng)域。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第107頁(yè)!圖8.51ADC0809的結(jié)構(gòu)框圖與引腳微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第108頁(yè)!2)引腳定義IN0IN7——8路模擬量輸入端。ADDC、ADDB和ADDA——地址輸入端,以選通IN7IN08路中的某一路信號(hào)。ALE——地址鎖存允許信號(hào),有效時(shí)將ADDC、ADDB和ADDA鎖存。CLOCK——外部時(shí)鐘輸入端。允許范圍為101280kHz。時(shí)鐘頻率越低,轉(zhuǎn)換速度就越慢。START——A/D轉(zhuǎn)換啟動(dòng)信號(hào)輸入端。有效信號(hào)為一正脈沖。在脈沖的上升沿,A/D轉(zhuǎn)換器內(nèi)部寄存器均被清零,在其下降沿開(kāi)始A/D轉(zhuǎn)換。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第109頁(yè)!ADC0809的數(shù)字量輸出值D(十進(jìn)制數(shù))與模擬量輸入值VIN之間的關(guān)系如下:通常VREF(?)=0V,所以當(dāng)VREF(+)=5V,VREF(?)=0V,輸入的單極性模擬量從0V到4.98V變化時(shí),對(duì)應(yīng)的輸出數(shù)字量在0到255(00HFFH)之間變化。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第110頁(yè)!圖8.52AD574引腳微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第111頁(yè)!A0和12/8——二者配合用于控制轉(zhuǎn)換數(shù)據(jù)長(zhǎng)度是12位或8位,以及數(shù)據(jù)輸出的格式(是12位一次輸出還是先輸出高8位,后輸出低4位)。A0=0,表示啟動(dòng)一次12位轉(zhuǎn)換;A0=1,表示啟動(dòng)一次8位轉(zhuǎn)換。12/8=1,表示12位數(shù)據(jù)并行輸出。STS——轉(zhuǎn)換狀態(tài)輸出端。該引腳在轉(zhuǎn)換過(guò)程中呈現(xiàn)高電平,轉(zhuǎn)換一結(jié)束立即返回到低電平。用戶可通過(guò)查詢?cè)撘_的狀態(tài)了解轉(zhuǎn)換是否結(jié)束。10VIN模擬信號(hào)輸入端,允許輸入的電壓范圍為0+10V(單極性輸入時(shí))或5+5V(雙極性輸入時(shí))。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第112頁(yè)!2)?AD574的操作AD574內(nèi)部的控制邏輯能根據(jù)CPU給出的控制信號(hào)而進(jìn)行轉(zhuǎn)換或讀出操作。只有在CE=1且CS=0時(shí)才能進(jìn)行一次有效操作。當(dāng)CE、CS同時(shí)有效,而R/C為低電平時(shí)啟動(dòng)A/D轉(zhuǎn)換,至于是啟動(dòng)12位轉(zhuǎn)換還是8位轉(zhuǎn)換,則由A0來(lái)確定,A0=0時(shí)啟動(dòng)12位轉(zhuǎn)換,A0=1時(shí)啟動(dòng)8位轉(zhuǎn)換;當(dāng)CE、CS同時(shí)有效,而R/C為高電平時(shí)是讀出數(shù)據(jù),至于是一次讀出12位還是12位分兩次讀出,則由12/8引腳確定。若12/8接+5V,則一次并行輸出12位數(shù)據(jù);若12/8接數(shù)字地,則由A0控制是讀出高8位還是低4位??刂菩盘?hào)的邏輯功能見(jiàn)表8.6。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第113頁(yè)!3)單極性與雙極性的輸入方式輸入AD574的模擬量可為單極性和雙極性,單極性的輸入電壓范圍為010V或020V;雙極性的輸入電壓范圍為?5+5V或?10+10V。這些靈活的工作方式都必須按規(guī)定采用與之對(duì)應(yīng)的接線方式才能實(shí)現(xiàn)。單極性和雙極性輸入時(shí)的接線方式見(jiàn)圖8.53(a)和(b)。模擬量(單極性或雙極性)由引腳10VIN(輸入010V或?5+5V)或20VIN(輸入020V或?10+10V)輸入。A/D轉(zhuǎn)換器轉(zhuǎn)換的結(jié)果是二進(jìn)制偏移碼。在兩種不同極性的輸入方式下,AD574的輸入模擬量與輸出數(shù)字量的對(duì)應(yīng)關(guān)系如表8.7所示。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第114頁(yè)!表8.712位A/D輸入模擬量與輸出數(shù)字量的對(duì)應(yīng)關(guān)系輸入方式量程/V輸入量/V輸出數(shù)字量輸入方式量程/V輸入量/V輸出數(shù)字量單極性0100000H單極性0200000H57FFH107FFH10FFFH20FFFH雙極性?5+5?5000H雙極性?10+10?10000H07FFH07FFH+5FFFH+10FFFH微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第115頁(yè)!圖8.54ADC0809與微型計(jì)算機(jī)的接口用ADC0809對(duì)8路模擬信號(hào)進(jìn)行循環(huán)采樣,各采集100個(gè)數(shù)據(jù)分別存放在數(shù)據(jù)段內(nèi)的8個(gè)數(shù)據(jù)區(qū)中,采用無(wú)條件傳送方式。接口電路如圖8.54所示。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第116頁(yè)!START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV BX,OFFSETBUFFMOV CX,COUNTOUTL:PUSH BX MOV DX,380H;指向通道0INLOP:OUT DX,AL ;鎖存模擬通道地址,啟動(dòng)轉(zhuǎn)換 MOV AX,50000 ;延時(shí),等待轉(zhuǎn)換結(jié)束微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第117頁(yè)!2)?12位A/D轉(zhuǎn)換芯片與CPU的接口圖8.55為AD574與ISA總線的連接圖。ISA總線最早用于IBMPC/AT機(jī),后來(lái)在許多兼容機(jī)上被采用,現(xiàn)在的Pentium機(jī)上也留有13個(gè)ISA插槽,在硬件上保持了向上的兼容。由于ISA總線具有16位數(shù)據(jù)寬度,易于與12位的AD574接口,可以方便地構(gòu)成12位的數(shù)據(jù)采集系統(tǒng)。如果對(duì)數(shù)據(jù)采集速度要求不高,為了簡(jiǎn)化硬件設(shè)計(jì),可以將A/D轉(zhuǎn)換成的12位數(shù)據(jù)分兩次讀入計(jì)算機(jī),如圖8.55所示。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第118頁(yè)!圖中雙向緩沖器74LS245用于數(shù)據(jù)總線緩沖,當(dāng)DIR=1,R/C=1時(shí),系統(tǒng)通過(guò)74LS245讀AD574轉(zhuǎn)換結(jié)果;當(dāng)DIR=0,R/C=0時(shí),系統(tǒng)用假寫外設(shè)操作來(lái)啟動(dòng)AD574做雙極性A/D轉(zhuǎn)換。由于電壓從10VIN輸入,因而外接+12V和?12V電源即可。譯碼電路用系統(tǒng)地址線A9A1參加譯碼,IOR和IOW也參加譯碼。信號(hào)AEN必須參加譯碼,以避開(kāi)DMA操作時(shí)對(duì)AD574的誤操作。地址A0接AD574的A0,當(dāng)用偶地址假寫AD574時(shí),啟動(dòng)12位A/D轉(zhuǎn)換,否則,啟動(dòng)8位A/D轉(zhuǎn)換;當(dāng)用偶地址讀AD574時(shí),讀出高8位,否則讀出低4位。由于AD574的轉(zhuǎn)換結(jié)束信號(hào)STS沒(méi)有考慮,在此使用延時(shí)的方法實(shí)現(xiàn)轉(zhuǎn)換。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第119頁(yè)!(1)數(shù)據(jù)引腳D7D0:數(shù)據(jù)線,雙向三態(tài),與系統(tǒng)數(shù)據(jù)總線連接。(2)片選信號(hào)CS:輸入信號(hào),低電平時(shí)選中此片。由CPU輸出的地址經(jīng)地址譯碼器產(chǎn)生。(3)地址線A0,A1:這兩根線接到系統(tǒng)地址總線的A0,A1上,當(dāng)CS為低電平,且8253被選中時(shí),用它們來(lái)選擇8253內(nèi)部的四個(gè)寄存器。(4)讀信號(hào)RD:輸入信號(hào),低電平有效。由CPU發(fā)出,用于控制對(duì)選中的8253內(nèi)寄存器的讀操作。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第120頁(yè)!(7)門控脈沖信號(hào)GATE0~GATE2:計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2的門控制脈沖輸入端,是由外部送入的門控脈沖,該信號(hào)的作用是控制啟動(dòng)定時(shí)器/計(jì)數(shù)器工作。(8)輸出信號(hào)OUT0~OUT2:計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2的輸出端。當(dāng)計(jì)數(shù)器計(jì)數(shù)到0時(shí),該端輸出一標(biāo)志信號(hào),從而產(chǎn)生不同工作方式時(shí)的輸出波形。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第121頁(yè)!1)?3個(gè)獨(dú)立的16位計(jì)數(shù)器每個(gè)計(jì)數(shù)器具有相同的內(nèi)部結(jié)構(gòu),其邏輯框圖如圖8.3所示。它包括一個(gè)8位的控制寄存器、一個(gè)16位的計(jì)數(shù)初值寄存器CR、一個(gè)16位的減1計(jì)數(shù)器CE和一個(gè)16位的輸出鎖存寄存器OL。16位的計(jì)數(shù)初值寄存器CR和16位的輸出鎖存寄存器OL共同占用一個(gè)I/O端口地址,CPU用輸出指令向CR預(yù)置計(jì)數(shù)初值,用輸入指令讀回OL中的數(shù)值,這兩個(gè)寄存器都沒(méi)有計(jì)數(shù)功能,只起鎖存作用。16位的減1計(jì)數(shù)器CE執(zhí)行計(jì)數(shù)操作,其操作方式受控制寄存器控制,最基本的操作是:接受計(jì)數(shù)初值寄存器的初值,對(duì)CLK信號(hào)進(jìn)行減1計(jì)數(shù),把計(jì)數(shù)結(jié)果送輸出鎖存寄存器中鎖存。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第122頁(yè)!2)控制寄存器控制寄存器用來(lái)保存來(lái)自CPU的控制字。每個(gè)計(jì)數(shù)器都有一個(gè)控制命令寄存器,用來(lái)保存該計(jì)數(shù)器的控制信息??刂谱謱Q定計(jì)數(shù)器的工作方式、計(jì)數(shù)形式及輸出方式,亦決定如何裝入計(jì)數(shù)初值。8253的3個(gè)控制寄存器只占用一個(gè)地址號(hào),而靠控制字的最高兩位來(lái)確定將控制信息送入哪個(gè)計(jì)數(shù)器的控制寄存器中保存??刂萍拇嫫髦荒軐懭?,不能讀出。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第123頁(yè)!4)讀/寫邏輯讀/寫邏輯的任務(wù)是接收來(lái)自CPU的控制信號(hào),完成對(duì)8253內(nèi)部操作的控制。這些控制信號(hào)包括讀信號(hào)RD、寫信號(hào)WR、片選信號(hào)CS以及用于片內(nèi)寄存器尋址的地址信號(hào)A0和A1。當(dāng)片選信號(hào)有效,即CS=0時(shí),讀寫邏輯才能工作。該控制邏輯根據(jù)讀/寫命令及送來(lái)的地址信息,決定三個(gè)計(jì)數(shù)器和控制寄存器中的哪一個(gè)工作,并控制內(nèi)部總線上數(shù)據(jù)傳送的方向。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第124頁(yè)!表8.18253端口地址及內(nèi)部操作微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第125頁(yè)!8.1.28253的編程8253在工作之前,用戶首先要為某一計(jì)數(shù)器(計(jì)數(shù)器02)寫入控制字以確定其工作方式;寫入定時(shí)/計(jì)數(shù)初值;在定時(shí)/計(jì)數(shù)工作過(guò)程中,有時(shí)還需要讀取某計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值。本節(jié)首先介紹8253的控制字格式,然后對(duì)8253的讀寫操作進(jìn)行介紹,并給出8253編程實(shí)例。

1.8253的控制字格式8253的控制字格式如圖8.4所示。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第126頁(yè)!D7D6位是控制字的計(jì)數(shù)器編號(hào)。由于8253有3個(gè)獨(dú)立的控制寄存器,但它們共用一個(gè)端口地址(A1A0=11時(shí),見(jiàn)表8.1),因此,控制字中使用最高兩位表明將控制字寫入哪個(gè)計(jì)數(shù)器的控制寄存器中。D5D4位用來(lái)設(shè)定計(jì)數(shù)器的數(shù)據(jù)讀/寫方式。在給計(jì)數(shù)器寫入計(jì)數(shù)初值時(shí),可以賦16位的初值,也可以只賦8位(另8位被自動(dòng)置0),8位初值可以是高字節(jié),也可以是低字節(jié)。在讀取計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值時(shí),計(jì)數(shù)器并未停止計(jì)數(shù),有可能在先后讀高低字節(jié)時(shí),計(jì)數(shù)器的值發(fā)生變化,因此有必要先鎖存當(dāng)前的計(jì)數(shù)值,然后再分字節(jié)讀出,先讀出低8位數(shù)據(jù),后讀出高8位數(shù)據(jù)。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第127頁(yè)!2.8253的讀/寫操作1)寫操作所謂寫操作是指CPU對(duì)8253寫入控制字或?qū)懭胗?jì)數(shù)初值。8253在開(kāi)始工作之前,CPU要對(duì)其進(jìn)行初始化編程(寫入控制字和計(jì)數(shù)初值),具體應(yīng)注意以下兩點(diǎn):①對(duì)每個(gè)計(jì)數(shù)器,必須先寫控制字,后寫計(jì)數(shù)初值。因?yàn)楹笳叩母袷绞怯汕罢邲Q定的。②寫入的計(jì)數(shù)初值必須符合控制字(D5D4兩位)決定的格式。16位數(shù)據(jù)應(yīng)先寫低8位,再寫高8位。當(dāng)給8253中的多個(gè)計(jì)數(shù)器進(jìn)行初始化編程時(shí),其順序可以任意,但對(duì)每個(gè)計(jì)數(shù)器進(jìn)行初始化時(shí)必須遵循上述原則。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第128頁(yè)!②在計(jì)數(shù)的過(guò)程中不影響CE的計(jì)數(shù)而讀取計(jì)數(shù)值:為達(dá)此目的,應(yīng)先對(duì)8253寫入一個(gè)具有鎖存功能的控制字,即D5D4位應(yīng)為00,這樣就可以將當(dāng)前的CE內(nèi)容鎖存入OL中,然后再用輸入指令將OL的內(nèi)容讀到CPU中。當(dāng)CPU讀取了計(jì)數(shù)值后,或?qū)τ?jì)數(shù)器重新進(jìn)行初始化編程后,8253會(huì)自動(dòng)解除鎖存狀態(tài),OL中的值又隨減1計(jì)數(shù)器CE值變化。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第129頁(yè)!;計(jì)數(shù)器1的初始化程序 MOV DX,38BH ;給計(jì)數(shù)器1送控制字 MOV AL,01010100B OUT DX,AL MOV DX,389H ;計(jì)數(shù)初值送低8位 MOV AL,18H OUT DX,AL微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第130頁(yè)!8.1.38253的工作方式8253有六種不同的工作方式。在不同的工作方式下,計(jì)數(shù)過(guò)程的啟動(dòng)方式不同,OUT端的輸出波形不同,自動(dòng)重復(fù)功能、GATE的控制作用以及更新計(jì)數(shù)初值對(duì)計(jì)數(shù)過(guò)程的影響也不完全相同。同一芯片中的三個(gè)計(jì)數(shù)器,可以分別編程選擇不同的工作方式。微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第131頁(yè)!圖8.5方式0的波形微型計(jì)算機(jī)原理第8章共236頁(yè),您現(xiàn)在瀏覽的是第132頁(yè)!在計(jì)數(shù)過(guò)程中,隨時(shí)可以寫入新的計(jì)數(shù)值初值,計(jì)數(shù)器使用新的初值重新開(kāi)始計(jì)數(shù)(若新初值是16位,則在送完字節(jié)后中止現(xiàn)行計(jì)數(shù),送完第

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論