微機接口原理課件第8章 可編程接口芯片及其應用_第1頁
微機接口原理課件第8章 可編程接口芯片及其應用_第2頁
微機接口原理課件第8章 可編程接口芯片及其應用_第3頁
微機接口原理課件第8章 可編程接口芯片及其應用_第4頁
微機接口原理課件第8章 可編程接口芯片及其應用_第5頁
已閱讀5頁,還剩88頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

可編程接口芯片及應用

第八章2概述:可編程并行接口芯片8255A可編程定時器/計數器8254可編程串行通信接口芯片8251A模擬信號接口8.1概述3計算機接口框圖接口1CPUD0—D7譯碼器A0—A15操縱對象1接口2操縱對象2D0—D748.2可編程并行接口芯片8255A圖:8255A與CPU的連接例子計算機控制對象5

對比:不可編程接口設計

無條件傳送接口——透明的輸入接口輸出接口8.2.18255A的工作原理8255A由以下幾個部分組成:數據端口A、B、C(其口被分成上下兩部分)A組和B組控制邏輯數據總線緩沖器和讀/寫控制邏輯。678255A的內部結構

88255A的基本操作

注:請將書上260頁表8-1修改一下98255A的工作方式及初始化8255A具有3種基本的工作方式方式0——基本輸入輸出方式方式1——選通輸入輸出方式方式2——雙向總線I/0方式********通過初始化確定某個工作方式*********當系統復位時,8255A的RESET輸入端為高電平,使8255A復位,所有的數據端口都被置成輸入方式(方式0的一種)(無條件接口)(有條件接口)10控制字1:方式選擇控制字此字送入控制寄存器

11例1:設8255芯片的地址為80H,81H,82H,83H.對8255初始化,使其達到下列功能:全工作于方式0,A口為輸入,B口為輸出,C口為輸出。解:MOVAL,10010000BOUT83H,AL例2:如上題,全工作于方式0,A口、B口和C口的高4位為輸出,C口的低4位為輸入。解:MOVAL,10000001BOUT83H,AL12例1:設8255芯片的地址為80H,81H,82H,83H.電路如右圖所示。試編程序使開關K0-K7相應控制發光管LED0-LED7。要求開關合上時相應的發光管熄滅,開關打開時相應的發光管點亮。解:MOVAL,10010000BOUT83H,ALNOPINAL,80HOUT81H,AL作業:電路不變,要求:開關動作與相應發光管的亮暗變化相反,試編程。13控制字2:C口置位/復位控制字端口C很特別,可以位操作,可以通過置位/復位控制字使端口C的任意一個引腳的輸出單獨置1或置0。在基于控制的應用中,經常希望在某一位上產生一個TTL電平的控制信號,利用端口C的這個特點,只需要用簡單的程序就能形成這樣的信號,從而簡化了編程。14控制字2:C口置位/復位控制字例:

設一片8255A的口地址為60H~63H,要求從PC5的引腳輸出一個正脈沖。15解:

可以用程序先將PC5置0,再值1輸出一個高電平(脈沖前沿),再把PC5清0,輸出一個低電平(脈沖后沿),結果,PC5引腳上便可輸出一個正脈沖。實現這個功能的程序段如下:

MOVAL,00001010BOUT63H,AL;置PC5為低電平

MOVAL,00001011BOUT63H,AL;置PC5為高電平

NOP;合理設置脈寬

NOPMOVAL,00001010BOUT63H,AL;置PC5為低電平作業:讓PC1產生一個正脈沖。168255工作方式1:選通輸入/輸出

8255A具有3種工作方式方式0——基本輸入輸出方式(無條件I/O)方式1——選通輸入輸出方式(有條件I/O)方式2——雙向總線I/0方式(不講)178255工作方式1:選通輸入/輸出

選通輸入:STB選通信號IBF緩沖器滿信號INTR中斷請求信號INTE中斷允許,

A口用PC4控制

B口用PC2控制注:請修改書上圖8-8的INTRA的剪頭方向18選通輸入方式工作時序圖例此8255芯片地址為80H、81H、82H、83H,選通輸入,允許產生中斷請求INTRa,初始化芯片(A組)解:Moval,10110000bOut83H,al;PA口置為選通輸入方式Moval,00001001b;PC4位置1,允許產生INTRaOut83H,al作業此8255芯片地址為80H、81H、82H、83H,選通輸入允許產生INTRb,初始化芯片(B組)198255工作方式1:選通輸入/輸出

選通輸出:OBF輸出緩沖器滿信號

ACK外設的回答信號INTR中斷請求信號INTE中斷允許,

A口用PC6控制

B口用PC2控制注:請修改265頁圖8-1020選通輸出方式工作時序圖例此8255芯片地址為80H、81H、82H、83H,選通輸出,允許產生中斷請求INTRa,初始化芯片(A組)解:Moval,10100000bOut83H,al;PA口置為選通輸出方式Moval,00001101b;PC6位置1,允許產生INTRaOut83H,al作業此8255芯片地址為80H、81H、82H、83H,選通輸出,允許產生INTRb,初始化芯片(B組)實驗八8255并行接口應用實驗信號線寄存器編址IOY3A口60HB口61HC口62H控制寄存器63H228.3可編程定時器/計數器

8254應用例子:驗鈔機計數器CLKGATEOUT238.3.18254的工作原理一、8254的基本結構和功能①有3個獨立的16位計數器;(充分體現了“集成”)②每個計數器可按二進制或十進制(BCD)計數;(單位問題,注意BCD數和16進制數格式一樣)③每個計數器可編程工作于6種不同工作方式;④每個計數器允許的最高計數頻率為10MHz;⑤8254有讀回命令(8253沒有),除了可以讀出當前計數單元的內容外,還可以讀出狀態寄存器的內容。24二、8254的內部結構和外部引腳

1、內部結構初值寄存器+減1寄存器;減到0時OUT輸出一信號,同時減1寄存器重新開始,由初值寄存器負責重裝(方式0不重裝!)能控制減1寄存器立即停止工作(GNTE0=0)計數器CLKGATEOUT252、外部引腳26三、8254的工作方式

8254的3個計數器均有6種工作方式,6種工作方式的主要區別在于輸出波形不同、啟動觸發方式不同和計數過程中門控信號GATE對計數操作的影響不同。工作于任何一種方式,都必須先寫控制字至控制字寄存器,以選擇所需方式;對二進制形式計數為0000H~FFFFH,其中0000H為最大值,代表65536;對十進制(BCD碼)計數為0000~9999,其中。0000為最大值,代表10000。(共同點:最高位看不到)27地址分配286種工作方式(模式)方式命令字【寫入控制字寄存器內】29方式命令字注:對8283定時器,D7D6為1、1無意義,但對8284定時器有定義,見下頁。看定時器結構30讀出控制字:

D7D6D5D4D3D2D1D0

11CNT2

CNT1CNT00鎖存當前計數值鎖存當前計數器狀態

工作方式選擇

注:因用的很少,不講此控制字。311.方式0:

方式0計數減到0輸出正躍變信號方式(OutSignalonEndofCount(=0))。它是典型的事件計數用法,當計數單元為全零時,OUT信號由低變高,一般作為中斷請求信號使用。方式0的基本功能是:當寫入控制字后,OUT信號變為低電平,并維持低電平,直到計數內容減到零時,OUT信號立即變為高電平,并維持高電平直到再次寫入新的計數值或重新寫入控制字。門控信號GATE用于開放或禁止計數,GATE為1允許計數,為0則停止計數。32

方式0波型圖:如GATE恒為高電平,且不再寫入新初值,則OUT將一直維持高電平。計數器CLKGATEOUT332.方式1:不學343.方式2:分頻方式方式2的特點是計數器有“初值自動重裝”的功能,即計數值減到0后,原計數初值會自動地重新裝入計數器,同時OUT端輸出一個脈沖,所以能夠輸出固定頻率的脈沖,即有分頻功能。如果初始值為4,則輸出頻率將是輸入脈沖頻率的1/4。

計數器CLKGATEOUT35方式2波形圖:364.方式3:方波發生器方式3稱為方波發生器(SquareWaveOutput)方式。它的典型用法是作為波特率發生器。方式3有初值自動重裝的功能。其工作特點如下:①寫入控制字后,OUT輸出為低電平。寫入計數初值n后,如果GATE為高電平,則在下一個CLK脈沖下降沿時,OUT跳變為高電平,同時計數器開始計數。②當計數初值為偶數的時候,每來—個CLK脈沖,計數值減2;當計數值減到0的時候輸出端改變極性,內部完成初值自動重裝,繼續計數。因此,輸出端為1:1的方波,正脈沖和負脈沖的寬度均為n/2的CLK周期。③當計數初值為奇數的時候,負脈沖比正脈沖窄1個CLK脈沖寬度。如計數初值為9,則正脈沖寬度為5個CLK脈寬,而負脈沖寬度為4個CLK脈寬。37方式3波形圖:388254的編程

8254復位后,3個計數器的OUT引腳均為低電平,8254內所有寄存器狀態未知。和所有的可編程接口芯片一樣,要讓8254工作,首先必須對8254進行初始化。39

初始化編程:

8254的初始化編程包括兩方面:一是向控制字寄存器寫入方式控制字,如3個都用要寫3次(1個地址)。二是向所使用的計數器寫入計數初值。如3個都用要寫3次(3個地址)。注意:每個計數器在使用前,都要向控制字寄存器中為該計數器寫入一個方式控制字。例如:某8254的地址為40~43H則:計數器0:40H計數器1:41H計數器2:42H控制字:43H40例:

計數器CLKGATEOUT+5V

方波10MHz5kHz試使用8254的計數器0做成一個頻率為5kHz的方波發生器,設8254的端口地址為40H~43H,時鐘fclk0=10MHz。解:根據8254的工作方式,計數器0應工作于方式3。計數初值=fclk0÷fout0=10MHz÷5kHz=2000。

41初始化程序:

MOVAL,00110110BOUT43H,AL;寫控制字,定義計數器0;使用16位二進制計數

;工作于方式3,MOVAX,2000OUT40H,AL;為計數器0送計數初值;先送低8位MOVAL,AHOUT40H,AL;為計數器0送計數初值高8位至此時刻起,OUT0開始輸出所要求的方波。428.3.28254在微機中的應用PC系列機的定時系統由獨立的兩部分組成。一部分是控制時序產生電路,主要用于CPU內部指令的執行過程:指令時鐘。另一部分主要用于CPU的外圍接口芯片,這部分定時電路可按不同的接口芯片產生不同的時序脈沖信號。8254主要應用于后—種43PC系列機定時系統結構圖8255A地址60~63H61H為B口地址。DMA請求刷新中斷號為8產生方波頻率:1.1931816MHz輸出方波頻率(系統時鐘用):18.2Hz(周期約55ms)返回揚聲器門注意:書284頁圖有錯TATE2改為GATE244定時器的應用思路1.如何應用于電腦時鐘計數器CLKGATEOUTIRQ01.1931816MHz18.2Hz方波(周期約55ms)8259ACPU中斷請求+5V2.如何應用于實現電腦歌曲計數器CLKGATEOUT1.1931816MHz+5V

方波452.如何應用于實現電腦歌曲計數器CLKGATEOUT1.1931816MHz+5V

方波名曲:12311231345—345—4.65.4314.65.431151—151—簡譜:1234567262286311349392440494HZ男中音123---493Hz,男高音164---698Hz女中音123---493Hz,女高音220---1.1KHz

46計數器0作用——系統計時器:PC系列微機系統中,計數器0是一個產生時鐘信號的系統計時器。系統主要利用它完成秒、分、時、天、月、年的計數。計數器的地址為40h--43h,初始化程序如下:MOVAL,00110110B;計算器0控制字,;方式3,16位2進制計數OUT43H,ALMOVAL,0;初值為0000H=65536OUT40H,AL;產生方波頻率為1.1931816MHz÷65536=18.2HzOUT40H,AL;周期為1/18.2=54.925ms(近似為55ms)

注:54.925×18=988.25ms,此11.75ms的誤差是專門為18次中斷引起的小延時預留的。47計數器1作用——動態存儲器定時刷新控制:PC系列微機系統中,計數器1專門用做動態存儲器刷新的定時控制。初始化程序如下:MOVAL,01010100B;方式2,分頻方式OUT43H,ALMOVAL,18;OUT輸出信號頻率為1.1931816MHz÷18=66287HzOUT41H,AL;OUT輸出信號周期為1/66287=15.08us,每15.08us刷新用一次48

計數器2作用———揚聲器音頻發生器:計數器2用于為系統機箱內的揚聲器發聲提供音頻信號。系統利用揚聲器發聲進行開機提示和故障報警(如內存條不存在和顯卡故障等);此外,應用程序還可對計數器2初始化編程,用于樂曲演奏等。計數器CLKGATEOUT+5V

方波49作業:

8254計數器的端口地址為30H,31H,32H,33H,3個通道使用同一個輸入時鐘,頻率=1MHZ,要求如下:(1)用計數器0,計數10次后申請中斷。(2)用計數器1作為分頻器,輸出頻率為1KHZ。(3)用計數器2作方波發生器,輸出方波頻率為2KHZ。請編寫該8253的初始化程序。(均采用2進制式)50518.4可編程串行通信接口芯片8251A電腦電腦52并行通信與串行通信圖1、2并行通信與串行通信538.4可編程串行通信接口芯片8251A做實驗用的芯片及電路54異步通信與同步通信

(均屬串行通信)1、異步通信起時位結束位有效信息間隙期全155

異步通信與同步通信

(均屬串行通信)2、同步通信

外同步自同步56

串行通信的波特率

每秒傳送的位數,單位是bps。國際上固定了標準波特率系列:

110,300,600,1200,1800,2400,4800,9600,19200

如:串行打印機工作在110波特。近距離串行通信工作在9600波特。注意:在同樣波特率下,在同一個時間段內同步方式比異步方式能傳送更多的信息。例如:異步通信,設每個字符對應一個起始位,8個信息位,一個停止位,波特率為1200bps。則每秒的最大字符數為1200/10=120,所含的8位信息個數為:

120個。用同步通信,用2個8位同步字符作為信息幀頭部,也按

1200波特率,則每秒能傳送的8位字符個數為:

1200/8=150,減去2個非信息的8位同步字符,既每秒能傳送8位信息的個數:148

57

串行通信的波特率系數

同步方式時,波特率系數等于1;異步方式時,波特率系數等于1,16,32,64。

通常取16

既傳送時所用時鐘的頻率是波特率的16倍。如波特率:1200則需要時鐘頻率為:19200Hz

588251A的基本性能1、8251A通過編程,可以工作在同步方式,也可以工作在異步方式。同步方式下,波特率為0~64Kbps,異步方式下,波特率為0~19.2Kbps。2、8251A在異步方式下能自動為每個數據增加一個啟動位,并能根據編程為每個數據增加1個、1.5個或2個停止位。

兩種方式均可實現奇偶校驗。即自動在每個數據后加上奇偶校驗位59從功能上看,8251A芯片有下面7個模塊組成:(發送時鐘信號)

(發送準備好指示)

(發送器空指示)

(接收準備好指示)

(接收時鐘信號)

(同步信號檢測到指示)

60發送時加上包裝接收時自動去掉包裝異步通信618251A作為遠程通信調制解調器MODEM的接口

C/D=0:傳送數據地址C/D=1:控制口地址和讀狀態地址SYNDET同步檢測信號TxRDY發送器準備好信號。

RxRDY接收器準備好信號。TxD:發信息端RxD:收信息端TxD發RxD收串行發送快慢控制(波特率)遠程傳輸628251A對特殊外設——調制解調器MODEM

所設置的聯絡信號TxD發信息RxD收信息

遠程傳輸調制器直接短距離通信63

從右圖看出:如將8251A作同步串行口用,則要向該芯片寫入模式字、同步字符、控制字等。

8251A如何與CPU的總線相連哪?尤其是如何與地址總線相連。?8251A提供的地址端口有:

CSC/D

8251A的編程模式字格式控制字格式初始化舉例控制字復位向1地址送復位字向1地址送模式字向1地址送控制字向0地址送數據64控制字格式,寫入地址:C/D=1返回返回舉例處返回79復位字:40H65模式字格式寫入地址:C/D=1返回返回舉例處返回7966MOVAL,40H;內部復位命令

OUT41H,ALMOVAL,0FAH;裝模式字:異步模式,波特率因子=16,7個數據位,

;1個偶校驗位,2個停止位.OUT41H,AL;送8251A,C/D=1MOVAL,37H;裝控制字:使發送啟動,使接收啟動,并設置有關

;信息。

OUT41H,AL;送8251A,C/D=1

異步模式下的初始化程序片段假定8251A的地址為:40H,41H.按8251初始化流程圖編初始化程序67狀態字讀出地址:C/D=1

MOVDX,41H(C/D=1

控制和狀態口地址)INAL,DXTESTAL,2;接收到數據了嗎?問狀態字………….TESTAL,38H;接收數據的有問題嗎?問狀態字………….MOVDX,40H(C/D=0數據口地址)INAL,DX;若接收數據無問題,則讀數據到AL寄存器。返79返8068例:兩臺計算機串行通信,第一臺計算機8251A的數據口和控制口地址分別為1F0H和1F2H,兩臺電腦之間采用查詢方法、異步傳送、半雙工通信。實際電路如下頁。設第一臺計算機要求發送的數據存放在以BUFF_T為初始址(偏移量)的內存單元中,發送數據個數為COUNT_T;第一臺計算機接收數據存放到以BUFF_R為初始址的內存單元中,接收數據的個數為COUNT_R。請編寫第一臺計算機的串行通信發送程序。第一臺計算機第二臺計算機第一臺第二臺1F0HlF2HTxDRxDGND69異步串行近距離通信的硬件電路:P300工作于方式3f=16×波特率70分析:發送端將數據送到端口發送緩沖器后,CPU不斷查詢TxRDY的狀態是否為有效的高電平,若為高,表示已發送完從而發送緩沖器變空,可用OUT指令向8251A輸出下一個數據字節進行發送,直至發送完COUNT_T字節數據

。接收數據時,CPU不斷檢測RxRDY是否為有效的高電平,若為高則表示字符的全部位已接收完,CPU可用IN指令從8251A取走一個完整的字符數據,用同樣方法接收下一個數據,直至接收完COUNT_R字節數據。第一臺計算機第二臺計算機71BET-T:MOVDX,1F2H;控制口1F2HMOVAL,40H;向控制口寫入控制字40H,OUTDX,AL

;使系統先夏位MOVAL,7AH;方式宇:異步方式,7個數據位,1個停止位;偶校驗、波特率系數為16OUTDX,AL

MOVCX,02H;延時D1:LOOPD1;注意:改正書上錯誤P301MOVAL,11H;控制字

OUTDX,AL;清除錯誤標志,允許發送

MOVCX,02H;延時D2:LOOPD2MOVDI,BUFF_T;發送數據的緩沖區首地址

MOVCX,COUNT_T;發送數據個數NEXT_T:movdx,1f2h控制口1F2HINAL,DX;讀入狀態

TESTAL,1

;TxRDY有效嗎? 注意:改正書上錯誤P301JZNEXT_T;無效,則等待

MOVDX,1F0H;數據口地址送DX數據口1F0H控制口1F2HMOVAL,[DI];從緩沖區取一個數據

OUTDX,AL;向8251A輸出一個數據(送發送緩沖單元)進行發

INCDI;修改緩沖區指針

LOOPNEXT_T;沒送完則繼續

……;送完

發送數據的編程部分數據口地址1F0H

控制口地址1F2H

72

……;使系統復位BEG_R:MOVDX,1F2H;控制口

MOVAL,7AHOUTDX,AL;送出方式字,同發送部分

MOVCX,02H;延時D3:LOOPD3MOVAL,14HOUTDX,AL;輸出命令字,清錯誤標志,允許接收

MOVCX,02H;延時D4:LOOPD4MOVDI,BUFF_R;接收數據緩沖區地址

MOVCX,BOUNT_R;接收數據個數NEXT_R:movdx,1f2hINAL,DX

;讀入狀態字注意:改正書上錯誤P302TESTAL,02H;RxRDY有效嗎?

JZNEXT_R;否,循環等待

TESTAL,38H;是,檢查是否有錯

JNZERROR;有錯,則轉出錯處理程序

MOVDX,1F0H;無錯送數據口地址

INAL,DX;讀入一個數據并開始一位一位的發

MOV[DI],AL;輸入數據到緩沖區

INCDI;修改緩沖區指針

LOOPNEXT_R;數據沒有完成則繼續

.......;完成ERROR:.......;出錯處理接收數據的編程部分73計算機總線計算機接口芯片總匯74758.5模擬信號接口計算機系統數字信號數字信號模擬信號???溫度?大氣壓?風速?768.5模擬信號接口計算機系統數字信號???模擬信號???模擬信號778.5.1D/A轉換器(DAC)數字量模擬量040801201602002402552V4V5V781.DAC的基本原理[權電阻DAC網絡

]V0I0=Vref/(8R)I1=Vref/(4R)I2=Vref/(2R)I3=Vref/(1R)V0=-(I0D0+I1D1+I2D2+I3D3)RfV0=-((D0/8+D1/4+D2/2+D3)Rf*Vref)/R位控電子開關:0:斷;1:閉合79T型電阻(R-2R)電阻網絡作業:自己推導V0與二進制數的關系V080DAC0832DAC0832是8位D/A轉換器,是DAC0800系列的一種。DAC0832與微機接口方便,轉換控制容易,且價格便宜,因此在實際中得到了廣泛的應用。3.典型DAC器件81(1)DAC0832內部邏輯功能示意圖

三種工作方式:①雙緩沖方式②單緩沖方式③直通方式

DAC的參數指標:(1)轉換精度(2)轉換速率(3)線性誤差DAC的輸出方案

電流型82用DAC0832可產生各種波形的接口電路(3)DAC0832應用舉例

設8255A的端口地址分別為3F0H、3F1H、3F2H、3F3H。通過編程,改變DAC0832的輸入數字量,在V0端獲得各種輸出電壓波形

83MOVDX,3F3H;8255A控制口地址MOVAL,80H;設置8255A方式字OUTDX,AL;A,B,C口均為方式0輸出MOVDX,3F2H;8255A的C口地址MOVAL,10H;置DAC0832為直通方式OUTDX,ALMOVDX,3F0H;8255A口地址MOVAL,00H;輸出數據初值LOP:OUTDX,AL;鋸齒波輸出

INCAL;修改數據

JMPLOP;鋸齒波循環

產生鋸齒波的硬件和軟件硬件:將DAC0832接成直通型;軟件:利用8255的A口以一定速度給0832

送:0、1、2……255、0、1、2……8255A的端口地址分為:3F0H、3F1H、3F2H、3F3H。845.17858.5.2A/D轉換器(ADC)A/D是D/A的逆過程,它把模擬信號轉換成數字信號。

A/D轉換器的主要參數

(1)轉換速率

(2)分辨率868.5.2A/D轉換器(ADC)轉換方法之一:逐次逼近式ADCD/A轉換87轉換方法之二:雙積分式ADC

被測信號反積分電壓思路:先給Vi定時積分:

再用反電壓(大小已知)積分:根

溫馨提示

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

評論

0/150

提交評論