第8章--常用接口電路芯片_第1頁
第8章--常用接口電路芯片_第2頁
第8章--常用接口電路芯片_第3頁
第8章--常用接口電路芯片_第4頁
第8章--常用接口電路芯片_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微機(jī)原理與接口技術(shù)(第3版)周明德 張曉霞 蘭方鵬 著式可編程定時(shí)器/計(jì)數(shù)器82538.1內(nèi)容導(dǎo)航CONTENTS8.2可編程并行接口8255A8.3串行通信及串行通信接口芯片82511.4微型計(jì)算機(jī)的結(jié)構(gòu)6.4提高存儲器性能的技術(shù)6.5微機(jī)主存空間分配8.3串行通信及串行通信接口芯片82518.4數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換接口在控制系統(tǒng)中,常常要求有實(shí)時(shí)時(shí)鐘以實(shí)現(xiàn)定時(shí)或延時(shí)控制,如定時(shí)中斷、定時(shí)檢測、定時(shí)掃描等,也往往要求有計(jì)數(shù)器能對外部事件計(jì)數(shù)。定時(shí)或計(jì)數(shù)的工作實(shí)質(zhì)均體現(xiàn)為對脈沖信號的計(jì)數(shù)。如果計(jì)數(shù)的對象是標(biāo)準(zhǔn)的內(nèi)部時(shí)鐘信號,由于其周期恒定,故計(jì)數(shù)值就恒定地對應(yīng)于一定的時(shí)間,這一過程就是定時(shí);如果

2、計(jì)數(shù)的對象是與外部過程相對應(yīng)的脈沖信號,則此時(shí)就是計(jì)數(shù)。8.1 可編程定時(shí)器/計(jì)數(shù)器82538.1.1 主要功能 8253主要有以下功能。(1)有3個(gè)獨(dú)立的16位計(jì)數(shù)器。(2)每個(gè)計(jì)數(shù)器都可以按照二進(jìn)制或BCD碼進(jìn)行計(jì)數(shù)。(3)每個(gè)計(jì)數(shù)器的計(jì)數(shù)速率可高達(dá)2MHz(8254-2計(jì)數(shù)頻率可達(dá)到10MHz)。(4)每個(gè)計(jì)數(shù)器有6種工作方式,可由程序設(shè)置和改變。(5)所有的輸入輸出引腳電平都與TTL電平兼容。(1)數(shù)據(jù)總線緩沖器。CPU用輸入輸出指令對8253進(jìn)行讀寫的所有信息,都是通過這8條總線傳送的。(2)讀/寫邏輯。8253內(nèi)部操作的控制部分。(3)控制字寄存器。在8253初始化編程時(shí),由CPU

3、寫入控制字以決定計(jì)數(shù)器的工作方式。此寄存器只能寫入而不能讀出。(4)計(jì)數(shù)器#0、計(jì)數(shù)器#1、計(jì)數(shù)器#2。這是三個(gè)計(jì)數(shù)器/定時(shí)器,每一個(gè)都由一個(gè)16位的可預(yù)置值的減法計(jì)數(shù)器構(gòu)成。這三個(gè)計(jì)數(shù)器的操作是完全獨(dú)立的。8.1.2 8253的內(nèi)部結(jié)構(gòu)圖8-1 8253的內(nèi)部結(jié)構(gòu)8.1.3 8253的引線圖8-2 8253的引線8253與CPU接口的引線,沒有復(fù)位信號(RESET引腳)。每一個(gè)計(jì)數(shù)器有三條引線:CLK輸入脈沖線:計(jì)數(shù)器就是對這個(gè)脈沖計(jì)數(shù)。8253規(guī)定,加在CLK引腳的輸入時(shí)鐘周期不能小于380ns。GATE:門控信號輸入引腳。這是控制計(jì)數(shù)器工作的一個(gè)外部信號。當(dāng)GATE引腳為低(無效)時(shí),通

4、常都是禁止計(jì)數(shù)器工作的;只有當(dāng)GATE為高時(shí),才允許計(jì)數(shù)器工作。OUT:輸出引腳。當(dāng)計(jì)數(shù)到“0”時(shí),OUT引線上必然有輸出,輸出信號的波形取決于工作方式。8253內(nèi)部端口的選擇是由引線A1和A0決定的,它們通常接至地址總線的A1和A0。各個(gè)通道的讀/寫操作的選擇如表9-1所示。CSRDWRA1A0寄存器選擇和操作01000寫入計(jì)數(shù)器#001001寫入計(jì)數(shù)器#101010寫入計(jì)數(shù)器#201011寫入控制寄存器00100讀計(jì)數(shù)器#000101讀計(jì)數(shù)器#100110讀計(jì)數(shù)器#200111無操作(三態(tài))1禁止(三態(tài))011無操作(三態(tài))表8-18253-PIT的端口選擇8.1.4 8253的控制字圖8

5、-3 8253的控制字(1)計(jì)數(shù)器選擇(D7D6)。控制字的最高兩位決定是哪一個(gè)計(jì)數(shù)器的控制字。由于三個(gè)計(jì)數(shù)器的工作是完全獨(dú)立的,所以需要有三個(gè)控制字寄存器分別規(guī)定相應(yīng)計(jì)數(shù)器的工作方式。但它們的地址是同一個(gè),即A1A0=11控制字寄存器的地址。(2)數(shù)據(jù)讀/寫格式(D5D4)。(3)工作方式(D3D2D1)。(4)數(shù)制選擇(D0)。8253的每個(gè)計(jì)數(shù)器的計(jì)數(shù)制(二進(jìn)制計(jì)數(shù)或BCD碼計(jì)數(shù))由這位決定。8253有6種不同的工作方式,在不同的工作方式下,計(jì)數(shù)器的啟動(dòng)、GATE輸入信號的作用和OUT信號的輸出波形都有所不同。首先寫入控制字,接著寫初值,初始值寫入計(jì)數(shù)器后,經(jīng)過一個(gè)時(shí)鐘周期,減法計(jì)數(shù)器開

6、始工作。1. 方式0計(jì)數(shù)結(jié)束中斷方式在這種方式下,當(dāng)控制字CW(Control Word)寫入控制字寄存器,則使OUT輸出端變低,此時(shí)計(jì)數(shù)器沒有賦予初值,也沒開始計(jì)數(shù)。要開始計(jì)數(shù),GATE信號必須為高電平,并在寫入計(jì)數(shù)初值后,通道開始計(jì)數(shù),在計(jì)數(shù)過程中 OUT線一直維持為低,直到計(jì)數(shù)到“0”時(shí)。OUT輸出變高。其過程如圖8-4所示。8.1.5 8253的工作方式圖8-4 方式0波形圖其中,LSB=4表示只寫低8位計(jì)數(shù)值為4。最底下一行是計(jì)數(shù)器中的數(shù)值。方式0工作有以下特點(diǎn)。(1)計(jì)數(shù)器只計(jì)一遍。當(dāng)計(jì)數(shù)到0時(shí),并不恢復(fù)計(jì)數(shù)值,不開始重新計(jì)數(shù),且輸出保持為高。只有在寫入另一個(gè)計(jì)數(shù)值時(shí),OUT變低,

7、開始新的計(jì)數(shù)。(2)8253內(nèi)部是在CPU寫計(jì)數(shù)值的 信號上升沿,將此值寫入計(jì)數(shù)器的計(jì)數(shù)初值寄存器,在 信號上升沿后的下一個(gè)CLK脈沖,才將計(jì)數(shù)值由計(jì)數(shù)初值寄存器送至計(jì)數(shù)器,開始計(jì)數(shù)。如果設(shè)置計(jì)數(shù)初值為N,則輸出信號OUT是在寫入計(jì)數(shù)值后經(jīng)過N+1個(gè)CLK脈沖才變高的。這個(gè)特點(diǎn)在方式1、方式2、方式4和方式5時(shí)也是同樣的。(3)在計(jì)數(shù)過程中,可由門控制信號(GATE)控制暫停。當(dāng)GATE=0時(shí),計(jì)數(shù)暫停,當(dāng)GATE變高后就接著計(jì)數(shù)。(4)在計(jì)數(shù)過程中可改變計(jì)數(shù)值。若是8位計(jì)數(shù),在寫入新的計(jì)數(shù)值后,計(jì)數(shù)器將按新的計(jì)數(shù)值重新開始計(jì)數(shù),如圖8-5所示。如果是16位計(jì)數(shù),在寫入第一個(gè)字節(jié)后,計(jì)數(shù)器停止

8、計(jì)數(shù),在寫入第二個(gè)字節(jié)后,計(jì)數(shù)器按照新的數(shù)值開始計(jì)數(shù)。即改變計(jì)數(shù)值是立即有效的。圖8-5 方式0計(jì)數(shù)過程中改變計(jì)數(shù)值(5)8253內(nèi)部沒有中斷控制電路,也沒有專用的中斷請求引線,所以若要用于中斷,則可用OUT信號作為中斷請求信號,但需要有外接的中斷優(yōu)先權(quán)排隊(duì)電路與向量產(chǎn)生電路。若8253的地址為04H07H,要使計(jì)數(shù)器1工作在方式0,僅用8位二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為128,初始化程序:MOVAL, 50H;設(shè)控制字OUT 07H, AL;輸至控制字寄存器MOVAL, 80H;計(jì)數(shù)值OUT 05H, AL;輸至計(jì)數(shù)器12.方式1可編程單穩(wěn)態(tài)觸發(fā)方式這種方式由外部門控信號GATE上升沿觸發(fā),使輸出端O

9、UT變?yōu)榈碗娖剑a(chǎn)生一個(gè)單拍負(fù)脈沖信號,脈沖寬度由計(jì)數(shù)值決定。其過程如圖8-6所示。圖8-6 方式1波形圖方式1工作的特點(diǎn)如下:(1)寫入控制字后,OUT輸出為高電平。寫入計(jì)數(shù)初值N后,計(jì)數(shù)器并不開始計(jì)數(shù),而要等到GATE上升沿后的下一個(gè)CLK輸入脈沖的下降沿,計(jì)數(shù)初值裝入減1計(jì)數(shù)寄存器,同時(shí)OUT端變?yōu)榈碗娖?,?jì)數(shù)才開始。計(jì)數(shù)結(jié)束時(shí),OUT輸出變高,從而產(chǎn)生一個(gè)寬度為N個(gè)CLK周期的負(fù)脈沖。(2)方式1中GATE信號有兩個(gè)方面的作用:第一,在計(jì)數(shù)結(jié)束后,若再來一個(gè)GATE信號上升沿,則下一個(gè)時(shí)鐘周期的下降沿又從初值開始計(jì)數(shù),而不需要重新寫入初值,即門控信號可重新觸發(fā)計(jì)數(shù);第二,在計(jì)數(shù)過程中,

10、若來一個(gè)門控信號的上升沿,也在下一個(gè)時(shí)鐘下降沿從初值起重新計(jì)數(shù),即終止原來的計(jì)數(shù)過程,開始新的一輪計(jì)數(shù)。(3)如果在計(jì)數(shù)過程中寫入新的初值,不會(huì)立即影響計(jì)數(shù)過程,如圖8-7所示。只有下一個(gè)門控信號到來后的第一個(gè)時(shí)鐘下降沿,才終止原來的計(jì)數(shù)過程,按新值開始計(jì)數(shù)。若計(jì)數(shù)結(jié)束前沒有GATE觸發(fā)信號,則原來計(jì)數(shù)過程正常結(jié)束。即新的初值下次有效。圖8-7 方式1計(jì)數(shù)過程中改變計(jì)數(shù)值3. 方式2頻率發(fā)生器方式這種方式的功能如同一個(gè)N分頻計(jì)數(shù)器,輸出是輸入時(shí)鐘按照計(jì)數(shù)值N分頻后的一個(gè)連續(xù)脈沖。其過程如圖8-8所示。圖8-8 方式2波形圖方式2工作的特點(diǎn)如下:(1)計(jì)數(shù)器計(jì)數(shù)期間OUT為高電平。若GATE為高

11、電平,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減到1時(shí),輸出端OUT變?yōu)榈碗娖?,維持1個(gè)時(shí)鐘周期,計(jì)數(shù)器減到0時(shí),輸出OUT又變成高電平,從初值開始新的計(jì)數(shù)過程,即方式2能自動(dòng)重裝初值,輸出固定頻率的脈沖。因此若裝入計(jì)數(shù)初值為N,則OUT引腳上每隔N個(gè)時(shí)鐘脈沖就輸出一個(gè)負(fù)脈沖,其頻率為輸入時(shí)鐘脈沖頻率的1/N,故方式2也稱為分頻器。(2)GATE信號高電平時(shí)允許計(jì)數(shù)。在方式2中,GATE信號為低電平終止計(jì)數(shù),而由低電平恢復(fù)為高電平后的第一個(gè)時(shí)鐘下降沿重新從初值開始計(jì)數(shù)。由此可見,GATE一直維持高電平時(shí),計(jì)數(shù)器方能作為一個(gè)N分頻器。(3)如果在計(jì)數(shù)過程中向此計(jì)數(shù)器寫入新的初值,且GATE

12、信號一直維持高電平,則新的初值不會(huì)立即影響當(dāng)前的計(jì)數(shù)過程,但在計(jì)數(shù)結(jié)束后的下一個(gè)計(jì)數(shù)周期將按新的初值計(jì)數(shù),即新的初值下次有效。4. 方式3方波發(fā)生器方式該方式與方式2相類似,只是OUT輸出的是對稱方波(計(jì)數(shù)初值N為偶數(shù))或近似對稱方波(計(jì)數(shù)初值N為奇數(shù))。其過程如圖8-9所示。圖8-9 方式3波形圖方式3工作的特點(diǎn)如下:(1)方式3的計(jì)數(shù)過程按計(jì)數(shù)初值的不同分為兩種情況:計(jì)數(shù)初值為偶數(shù)。寫入控制字后的時(shí)鐘上升沿,輸出端OUT變成高電平。若GATE=1,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減到N/2時(shí),輸出端OUT變?yōu)榈碗娖?;減到0時(shí),輸出端OUT又變成高電平,并重新從初值開始新的計(jì)數(shù)

13、過程。計(jì)數(shù)初值為奇數(shù)。寫入控制字后的時(shí)鐘上升沿,輸出端OUT變成高電平。若GATE=1,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù),減到(N+1)/2以后,輸出端OUT變?yōu)榈碗娖?;減到0時(shí),輸出端OUT又變成高電平,并重新從初值開始新的計(jì)數(shù)過程。(2)GATE高電平時(shí),允許計(jì)數(shù);GATE低電平時(shí),禁止計(jì)數(shù)。如果在輸出端OUT為低電平期間,GATE變低,則OUT將立即變高,并停止計(jì)數(shù)。當(dāng)GATE變高以后,計(jì)數(shù)器重新裝入初值并重新開始計(jì)數(shù)。 (3)如果在計(jì)數(shù)過程中寫入新的初值,而GATE信號一直維持高電平,則新的初值不會(huì)影響當(dāng)前的計(jì)數(shù)過程,只有在計(jì)數(shù)結(jié)束后的下一個(gè)計(jì)數(shù)周期,才按新的初值計(jì)數(shù)。若寫

14、入新的初值后,遇到門控信號的上升沿,則終止現(xiàn)行計(jì)數(shù)過程,從下一個(gè)時(shí)鐘下降沿重新開始計(jì)數(shù)。5. 方式4軟件觸發(fā)選通方式寫入一次初值開始一次新的計(jì)數(shù)。其過程如圖8-10所示。圖8-10 方式4波形圖方式4工作的特點(diǎn)如下:(1)寫入方式控制字后,OUT輸出高電平。若GATE=1,寫入初值的下一個(gè)CLK脈沖開始減1計(jì)數(shù),計(jì)數(shù)到達(dá)0值(注意:不是減到1),OUT輸出為低電平,持續(xù)一個(gè)CLK脈沖周期后再恢復(fù)到高電平。方式4之所以稱為軟件觸發(fā)選通方式,是因?yàn)橛?jì)數(shù)過程是由軟件把計(jì)數(shù)初值裝入計(jì)數(shù)寄存器來觸發(fā)的,計(jì)數(shù)初值n僅一次有效。若要繼續(xù)計(jì)數(shù),則需重新裝入初值。(2)GATE為高電平時(shí),允許計(jì)數(shù);GATE信號

15、變低,禁止計(jì)數(shù),輸出維持當(dāng)時(shí)的電平,直到GATE變成高電平后繼續(xù)計(jì)數(shù),從OUT端輸出一個(gè)負(fù)脈沖。(3)在計(jì)數(shù)過程中改變計(jì)數(shù)值,則在寫入新值后的下一個(gè)時(shí)鐘下降沿計(jì)數(shù)器將新的初值計(jì)數(shù),即新值是立即有效的。6. 方式5硬件觸發(fā)選通方式該方式為硬件觸發(fā)計(jì)數(shù)方式,即門控信號GATE上升沿觸發(fā)計(jì)數(shù)。其過程如圖8-11所示。圖8-11 方式5波形圖方式5工作的特點(diǎn)如下:(1)寫入控制字后,輸出OUT即為高電平。寫入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而是由門控脈沖的上升沿觸發(fā)。計(jì)數(shù)結(jié)束(計(jì)數(shù)器減到0)時(shí)輸出一個(gè)持續(xù)時(shí)間為一個(gè)TCLK的負(fù)脈沖,然后輸出恢復(fù)為高電平。直到GATE信號再次觸發(fā)。(2)若在計(jì)數(shù)過程

16、中,又有一個(gè)門控信號的上升沿,則立即終止當(dāng)前的計(jì)數(shù)過程,且在下一個(gè)時(shí)鐘下降沿,又從初值開始計(jì)數(shù),如果計(jì)數(shù)過程結(jié)束后,來一個(gè)門控上升沿,計(jì)數(shù)器也會(huì)在下一個(gè)時(shí)鐘下降沿,又從初值開始減1計(jì)數(shù),即門控信號上升沿任何時(shí)候到來都會(huì)立即觸發(fā)一個(gè)計(jì)數(shù)過程。(3)如果在計(jì)數(shù)過程中寫入新的初值,則新的初值不會(huì)立即影響當(dāng)前的計(jì)數(shù)過程,只有到下一個(gè)門控信號上升沿到來后,才從新的初值開始減1計(jì)數(shù)。即新的計(jì)數(shù)初值在下一個(gè)門控信號上升沿觸發(fā)后有效。要使用8253必須首先進(jìn)行初始化編程,初始化編程的步驟如下。(1)寫入計(jì)數(shù)器控制字,規(guī)定計(jì)數(shù)器的工作方式。(2)寫入計(jì)數(shù)值。 若規(guī)定只寫低8位,則寫入的為計(jì)數(shù)值的低8位,高8位自

17、動(dòng)置0。 若規(guī)定只寫高8位,則寫入的為計(jì)數(shù)值的高8位,低8位自動(dòng)置0。 若是16位計(jì)數(shù)值,則分兩次寫入,先寫入低8位,再寫入高8位。8.1.7 8253的編程例如:要用計(jì)數(shù)器0,工作在方式1,按BCD碼計(jì)數(shù),計(jì)數(shù)值為5080H。則初始化編程有以下步驟。(1)確定通道控制字。(2)計(jì)數(shù)值的低8位為80H。(3)計(jì)數(shù)值的高8位為50H。若端口地址位為F8HFBH,初始化程序?yàn)椋篗OVAL, 33HOUT0FBH, ALMOVAL, 80HOUT0F8H, ALMOVAL, 50HOUT0F8H, ALCPU可以用輸入指令讀取8253任一計(jì)數(shù)器的計(jì)數(shù)值,此時(shí)CPU讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的現(xiàn)行

18、值。由于8253的計(jì)數(shù)器是16位的,所以要分兩次讀至CPU,因此,若不設(shè)法鎖存的話,則在輸入過程中,計(jì)數(shù)值可能已變化了。8.2.1 8255A的內(nèi)部結(jié)構(gòu)Intel 8255A是一個(gè)為8080、8085和8088微型機(jī)系統(tǒng)設(shè)計(jì)的通用I/O接口芯片。它可用程序來改變功能,通用性強(qiáng),使用靈活,通過它可直接將CPU總線接向外設(shè)。8.2 可編程并行接口8255A它由以下幾部分組成。1數(shù)據(jù)端口A、B、C三個(gè)輸入/輸出端口都是8位,都可以選擇作為輸入或輸出,但功能上有著不同。(1)端口A:一個(gè)8位數(shù)據(jù)輸出鎖存和緩沖器;一個(gè)8位數(shù)據(jù)輸入鎖存器。(2)端口B:一個(gè)8位數(shù)據(jù)輸入/輸出、鎖存/緩沖器;一個(gè)8位數(shù)據(jù)輸

19、入緩沖器。(3)端口C:一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器;一個(gè)8位數(shù)據(jù)輸入緩沖器(輸入沒有鎖存)。通常端口A或B作為輸入/輸出的數(shù)據(jù)端口,而端口C作為控制或狀態(tài)信息的端口,它在“方式”字的控制下,可以分成兩個(gè)四位的端口。2A組和B組控制電路這是兩組根據(jù)CPU的命令字控制8255A工作方式的電路。它們有控制寄存器,接收CPU輸出的命令字,然后分別決定兩組的工作方式,也可根據(jù)CPU的命令字對端口C的每一位實(shí)現(xiàn)按位“復(fù)位”或“置位”操作。A組控制電路控制端口A和端口C的上半部(PC7PC4)。B組控制電路控制端口B和端口C的下半部(PC3PC0)。3數(shù)據(jù)總線緩沖器這是一個(gè)三態(tài)雙向8位緩沖器,它是8255

20、A與系統(tǒng)數(shù)據(jù)總線的接口。輸入/輸出的數(shù)據(jù)以及CPU發(fā)出的控制字和外設(shè)送來的狀態(tài)信息,都是通過這個(gè)緩沖器傳送的。4讀/寫和控制邏輯它與CPU的地址總線中的A1、A0以及有關(guān)的控制信號(RD 、WR、RESET、IO/M )相連,由它控制把CPU的控制命令或輸出數(shù)據(jù)送至相應(yīng)的端口;也由它控制把外設(shè)的狀態(tài)信息或輸入數(shù)據(jù)通過相應(yīng)端口,送至CPU。5控制信號功能(1)CS(Chip Select)選片信號,低電平有效,由它啟動(dòng)CPU與8255A之間的通信(Communication)。(2) RD讀信號,低電平有效。它控制8255A送出數(shù)據(jù)或狀態(tài)信息至CPU。(3) WR寫信號,低電平有效。它控制把CP

21、U輸出的數(shù)據(jù)或命令信號寫到8255A。(4)RESET復(fù)位信號,高電平有效,它清除控制寄存器并置所有端口(A、B、C)為輸入方式。6端口尋址8255A中有三個(gè)輸入輸出端口,另外,內(nèi)部還有一個(gè)控制字寄存器,共有四個(gè)端口,要有兩個(gè)輸入端來加以選擇,這兩個(gè)輸入端通常接到地址總線的最低兩位A1和A0。A1、A0和 RD、WR 及CS 組合所實(shí)現(xiàn)的各種功能,如表8-1所示。8255A采用40條引腳的雙列直插式封裝,其引腳信號見圖8-14。CS:片選信號(輸入);RD:讀信號(輸入);WR:寫信號(輸入);A1、A0:片內(nèi)寄存器選擇信號(輸入);D7D0:與CPU側(cè)連接的數(shù)據(jù)線(雙向);PA7PA0:A口

22、外設(shè)數(shù)據(jù)線(雙向);PB7PB0:B口外設(shè)數(shù)據(jù)線(雙向);PC7PC0:C口外設(shè)數(shù)據(jù)線(雙向);RESET:復(fù)位信號(輸入)。8.2.2 8255A的引線方式0方式0是一種基本的輸入或輸出方式。在這種工作方式下,三個(gè)端口的每一個(gè)都可由程序選定作為輸入或輸出,但這種方式?jīng)]有規(guī)定固定的用于應(yīng)答式的聯(lián)絡(luò)信號(handshaking)線。8255沒有時(shí)鐘輸入信號,其時(shí)序由引腳控制信號定時(shí),如圖8-15所示。其基本功能為:(1)兩個(gè)8位端口(A、B)和兩個(gè)4位端口(C)。(2)任一個(gè)端口可以作為輸入或輸出。(3)輸出是鎖存的。(4)輸入是不鎖存的。(5)在方式0時(shí),各個(gè)端口的輸入、輸出可以有16種不同的

23、組合。8.2.3 工作方式A1A0輸入操作(讀)00010端口A數(shù)據(jù)總線01010端口B數(shù)據(jù)總線10010端口C數(shù)據(jù)總線輸出操作(寫)00100數(shù)據(jù)總線端口A01100數(shù)據(jù)總線端口B10100數(shù)據(jù)總線端口C11100數(shù)據(jù)總線控制字寄存器斷開功能1數(shù)據(jù)總線三態(tài)11010非法狀態(tài)110數(shù)據(jù)總線三態(tài)表8-28255A端口選擇表方式1這是一種選通的I/O方式。在這種方式時(shí),端口A或端口B仍作為數(shù)據(jù)的輸入/輸出,但同時(shí)規(guī)定端口C的某些位作為控制或狀態(tài)信息。其工作特點(diǎn)如下:(1)需要設(shè)置專用的聯(lián)絡(luò)信號線或應(yīng)答信號線,以便對外設(shè)和CPU進(jìn)行聯(lián)絡(luò)。此時(shí)CPU與外設(shè)之間的數(shù)據(jù)傳送可以為查詢傳送或中斷傳送。數(shù)據(jù)的

24、輸入輸出都有鎖存功能。(2)任一個(gè)端口都可作為輸入或輸出。若端口A和端口B都工作于方式1,端口C的大部分引腳分配用來作專用(固定)的聯(lián)絡(luò)信號。還留下兩位,這兩位可以由程序指定作為輸入或輸出,也具有置位/復(fù)位功能。(3)若只有一個(gè)端口工作于方式1,余下的13位,可以工作在方式0(由控制字決定)。圖8-16 方式1輸入組態(tài)圖8-17 方式1輸出組態(tài)方式2這種工作方式,使外設(shè)在單一的8位總線上,既能發(fā)送,也能接收數(shù)據(jù)(雙向總線I/O)。工作時(shí)可用程序查詢方式,也可工作于中斷方式。其主要特點(diǎn)如下:(1)方式2只用于端口A。(2)一個(gè)8位的雙向總線端口(端口A)和一個(gè)5位控制端口(端口C)。(3)輸入和

25、輸出是鎖存的。(4)5位控制端口用作端口A的控制和狀態(tài)信息,如圖8-18所示。圖8-18 8255A方式2組態(tài)8.2.4 控制字和狀態(tài)字8255A的工作方式,可由CPU用I/O指令輸出一個(gè)控制字到8255A的控制字寄存器來選擇。這個(gè)控制命令字的格式如圖8-19所示??梢苑謩e選擇端口A和端口B的工作方式,端口C分成兩部分,上半部隨端口A,下半部隨端口B。端口A能工作于方式0、1和2,而端口B只能工作于方式0和1。圖8-19 8255A的控制命令字當(dāng)8255A與CPU采用查詢方式工作時(shí),要求CPU讀取C端口的內(nèi)容,根據(jù)上述對端口PC各位的定義及對中斷屏蔽情況可以很容易地知道讀出的狀態(tài)字中各位的含義

26、,各位的定義如下:下面以雙機(jī)并行通信接口為例,說明8255A的應(yīng)用。(1)要求在甲乙兩臺微機(jī)之間并行傳送lKB數(shù)據(jù)。甲機(jī)發(fā)送,乙機(jī)接收。甲機(jī)一側(cè)的8255A采用方式1工作,乙機(jī)一側(cè)的8255A采用方式0工作。兩機(jī)的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。(2)根據(jù)要求,雙機(jī)均采用可編程并行接口芯片8255A構(gòu)成接口電路,只是8255A的工作方式不同。(3)根據(jù)上述要求,接口電路的連接如圖8-20所示。8.2.5 8255A應(yīng)用舉例甲機(jī)8255A為方式l發(fā)送(輸出),因此,把PA口指定為輸出,發(fā)送數(shù)據(jù),PC7和PC6引腳由方式1規(guī)定作為聯(lián)絡(luò)線 和 。乙機(jī)8255A為方式0接收(輸入),把PA口用

27、作為輸入,接收數(shù)據(jù),聯(lián)絡(luò)信號自行選擇,可選擇PC4和PC0作為聯(lián)絡(luò)信號線,PC4輸入、PC0輸出。雖然,兩側(cè)的8255A都設(shè)置了聯(lián)絡(luò)信號線,但它們是不同的,甲機(jī)8255A工作在方式1,其聯(lián)絡(luò)信號PC7、PC6是由方式規(guī)定的;而乙機(jī)的8255A工作在方式0,其聯(lián)絡(luò)信號線是可以選擇的,比如可選PC5、PC7或PC6、PC7等。圖8-20 利用8255進(jìn)行并行通信a甲機(jī)發(fā)送程序:MOV DX, 303H;8255A命令口 MOV AL, 10100000B ;端口A,方式l,端口B沒用方式字 OUT DX, AL;輸出方式字 MOV AL, 0DH;置發(fā)送中斷允許INTEAl OUT DX, AL;

28、PC6置“l(fā)” MOV AX, 030H;發(fā)送數(shù)據(jù)的首地址 MOV ES, AX MOV BX, 00H MOV CX, 3FFH ;置發(fā)送字節(jié)數(shù) MOV DX, 300H;置8255A數(shù)據(jù)字地址 MOV AL, ES:BX;取第一個(gè)發(fā)送數(shù)據(jù) OUT DX, AL;寫第一個(gè)數(shù),產(chǎn)生第一個(gè) 信號 INC BX;指向下一個(gè)數(shù) DEC CX;字節(jié)數(shù)lL:MOV DX, 302H;8255A狀態(tài)口 IN AL, DX;輸入狀態(tài) AND AL, 08H;檢查有無INTRA JZ L;若無中斷請求則等待 MOV DX, 300H;置數(shù)據(jù)口地址 MOV AL, ES:EBX;取數(shù)據(jù) OUT DX, AL;輸

29、出 INC BX DEC CX JNZ L;未發(fā)送完循環(huán) MOV AX, 4C00H INT 21H;發(fā)送完成,返回DOS在上述發(fā)送程序中,是檢查INTR位,實(shí)際上也可以檢查發(fā)送緩沖器滿 (PC7)位的狀態(tài)。b乙機(jī)接收程序: MOVDX, 303H;置8255A命令口地址 MOV AL, 10011000B;端口A方式0、PC4輸入、PC0 OUTDX, AL ;輸出的方式字 MOV AL, 00000001B;PC0置l控制字 OUTDX, AL ;輸出使 1 MOVAX, 040H;接收區(qū)首地址 MOV ES, AX MOV BX, 00H MOVCX, 3FFH;置字節(jié)數(shù)L1:MOVDX

30、, 302H;8255A PC口 IN AL, DX;查甲機(jī)的 =0?(PC4=0?) ANDAL, 10H JNZ L1;無數(shù)據(jù),等待 MOV DX, 300H;8255A數(shù)據(jù)口地址 IN AL, DX;輸入數(shù)據(jù) MOV ES:BX, AL ;存入內(nèi)存 MOV DX, 303H MOV AL, 00000000B;PC0置0 OUT DX, AL;產(chǎn)生 信號 NOP NOP MOV AL, 00000001B;PC0置l OUT DX, AL; 變高 INC BX DEC CX JNZ L1;未接收完,循環(huán) MOV AX, 4C00H INT 21H ;接收完,返回DOSOUT DX, AL

31、;產(chǎn)生 信號 NOP NOP MOV AL, 00000001B;PC0置l OUT DX, AL; 變高 INC BX DEC CX JNZ L1;未接收完,循環(huán) MOV AX, 4C00H INT 21H ;接收完,返回DOS1串行通信的分類在串行通信中,有兩種最基本的通信方式:(1)非同步(異步)通信(ASYNC)它用起始位表示字符的開始,用停止位表示字符的結(jié)束。如圖8-21所示。8.3 串行通信及串行通信接口芯片82518.3.1 串行通信概述圖8-21 異步通信的格式在非同步數(shù)據(jù)傳送中,在CPU與外設(shè)之間必須遵循三項(xiàng)規(guī)定: 字符格式 數(shù)據(jù)信號傳送速率 波特率(Baud rate)2數(shù)

32、據(jù)傳送方向通常串行通信,數(shù)據(jù)在兩個(gè)站之間是雙向傳送的,A站可作為發(fā)送端,B站作為接收端,也可以A站作為接收端,而B站作為發(fā)送端,根據(jù)要求又可以分為半雙工和完全雙工兩種。圖8-24 半雙工示意圖圖8-25 完全雙工示意圖3.串行I/O的實(shí)現(xiàn)串行傳送時(shí)數(shù)據(jù)是一位一位依次順序傳送的,而在計(jì)算機(jī)中數(shù)據(jù)是并行的。所以當(dāng)數(shù)據(jù)由計(jì)算機(jī)送至數(shù)據(jù)終端時(shí),要先把并行的數(shù)據(jù)轉(zhuǎn)換為串行的再傳送,而在計(jì)算機(jī)接收由終端送來的數(shù)據(jù)時(shí),要先把串行數(shù)據(jù)的轉(zhuǎn)換為并行的才能處理加工,這樣的轉(zhuǎn)換可用軟件也可用硬件實(shí)現(xiàn)。目前通常用可編程的串行接口芯片來實(shí)現(xiàn)。如后面要介紹的Intel 8251芯片。1、8251的基本性能(1)同步波特率

33、064Kbps,異步波特率019.2Kbps。(2)同步傳送:58bit/字符,內(nèi)部或外部同步,可自動(dòng)插入同步字符。(3)異步傳送:58bit/字符,時(shí)鐘速率為通信波特率的1、16或64倍。(4)可產(chǎn)生中止字符(Break Character);可產(chǎn)生1、 或2個(gè)位的停止位;或檢查假啟動(dòng)位,自動(dòng)檢測和處理中止字符。(5)完全雙工,雙緩沖器發(fā)送和接收器。(6)出錯(cuò)檢測:具有奇偶、溢出和幀錯(cuò)誤等檢測電路。8.3.2 8251可編程通信接口2、8251的結(jié)構(gòu)圖8-26 8251的方框圖3、引腳圖8-27 CPU通過8251與串行外設(shè)接口初始化編程必須在系統(tǒng)RESET以后,在USART工作以前進(jìn)行,即

34、USART不論工作于任何方式,都必須先經(jīng)過初始化。初始化編程的過程如圖8-28的流程圖所示。方式選擇字格式如圖8-29所示。由D1D0確定是工作于同步方式還是異步方式。當(dāng)D1D0=00時(shí),則為同步方式;而在D1D000時(shí)為異步方式。D3D2用以確定字符的位數(shù)D5D4用以確定奇偶校驗(yàn)的性質(zhì)。D7D6在同步和異步方式時(shí)的意義是不同的。異步時(shí),用以規(guī)定停止位的位數(shù);同步時(shí),用以確定是內(nèi)同步還是外同步,以及同步字符的個(gè)數(shù)。8.3.3 8251的編程圖8-28 8251初始化編程的流程圖圖8-29 方式選擇字格式8.4數(shù)模(D/A)轉(zhuǎn)換與模數(shù)(A/D)轉(zhuǎn)換接口8.4.1 數(shù)模(D/A)轉(zhuǎn)換器1、D/A轉(zhuǎn)

35、換的基本原理(a) (b)圖8-30 D/A轉(zhuǎn)換的基本原理2、D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)(1) 分辨率 分辨率為8位的D/A轉(zhuǎn)換器能給出滿量程電壓的1/256(即1/28)的分辨能力。(2)精度絕對精度:是指對應(yīng)于給定的數(shù)字量,D/A輸出端實(shí)際測得的模擬輸出值(電流或電壓)與理論值之差。絕對精度由D/A轉(zhuǎn)換的增益誤差、線性誤差和噪聲等綜合因素決定。相對精度:是指在零點(diǎn)和滿量程值校準(zhǔn)后,各種數(shù)字輸入的模擬量輸出與理論值之差,可把各種輸入的誤差畫成曲線。(3)建立時(shí)間(4)輸出電平(5)線性誤差(6)溫度系數(shù)3、典型的D/A轉(zhuǎn)換器芯片DAC0832(1)DAC0832的邏輯結(jié)構(gòu)圖8-31 DAC0

36、832邏輯結(jié)構(gòu)框圖改變DAC0832的有關(guān)控制信號的電平,可使DAC0832 處于三種不同的工作方式。 直通方式當(dāng) CS、WR1 、WR2 和XFER 都接數(shù)字地,ILE接高電平時(shí),芯片即處于直通狀態(tài)。 單緩沖方式此方式是使兩個(gè)寄存器中任一個(gè)處于直通狀態(tài),另一個(gè)工作于受控鎖存器狀態(tài)或兩個(gè)寄存器同步受控。 雙緩沖方式雙緩沖方式的一大用途是數(shù)據(jù)接收和啟動(dòng)轉(zhuǎn)換可以異步進(jìn)行,即在對某數(shù)據(jù)轉(zhuǎn)換的同時(shí),能進(jìn)行下一數(shù)據(jù)的接收,以提高轉(zhuǎn)換速率。4、D/A轉(zhuǎn)換器與微處理器的接口圖8-32 DAC0832與8位微處理器的連接圖8-32中, 的端口地址為320H, 的端口地址為321H。CPU執(zhí)行第一條輸出指令,將待轉(zhuǎn)換的數(shù)據(jù)打入輸入寄存器;再執(zhí)行第二條輸出指令,把輸入寄存器的內(nèi)容寫入DAC寄存器,并啟動(dòng)D/A轉(zhuǎn)換。執(zhí)行第

溫馨提示

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

評論

0/150

提交評論