第8章可編程接口1_第1頁
第8章可編程接口1_第2頁
第8章可編程接口1_第3頁
第8章可編程接口1_第4頁
第8章可編程接口1_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第8 8章章 可編程接口芯片及應用可編程接口芯片及應用第第8章章 可編程接口芯片及其應用可編程接口芯片及其應用教學重點 可編程定時可編程定時/計數(shù)器計數(shù)器8253 可編程并行接口可編程并行接口8255 串行通訊概念串行通訊概念 模擬通道接口模擬通道接口A/D、D/A8.1概述概述外設與外設與CPUCPU交換信息,需通過交換信息,需通過I/OI/O接口接口電路中轉。隨著大規(guī)模電路中轉。隨著大規(guī)模( (超大規(guī)模超大規(guī)模) )集成集成電路工藝技術的發(fā)展,各種電路工藝技術的發(fā)展,各種專用或通用專用或通用接口芯片接口芯片應運而生。應運而生。一、接口芯片的作用一、接口芯片的作用在在CPU與外設之間,二者

2、交換信息的中介與外設之間,二者交換信息的中介二、與系統(tǒng)相連時考慮的問題:二、與系統(tǒng)相連時考慮的問題:(1) 采用何種采用何種I/O編址方式編址方式獨立編址方式獨立編址方式 (2) 接口電路端口地址的確定接口電路端口地址的確定 設計地址譯碼電路設計地址譯碼電路 (3) 數(shù)據(jù)總線是否需要驅動數(shù)據(jù)總線是否需要驅動總線驅動器和總線緩沖器總線驅動器和總線緩沖器 (4) 與與CPU控制信號如何連接控制信號如何連接 可編程接口芯片面向可編程接口芯片面向CPU一面的結構:一面的結構: 內內: 狀態(tài)狀態(tài)REG/控制控制REG、I/O數(shù)據(jù)數(shù)據(jù)REG等等 外外: AB、DB、CB (CS、IO/M、RD/WR、IN

3、TR等)等)8.1概述概述三、常用的接口芯片三、常用的接口芯片并行、串行、并行、串行、A/D和和D/A、定時、定時/計數(shù)器、計數(shù)器、 鎖存鎖存/緩沖器等緩沖器等8.1概述概述8.2 定時計數(shù)控制接口定時計數(shù)控制接口概述概述實現(xiàn)定時或延時的方法實現(xiàn)定時或延時的方法: 軟件定時軟件定時設計一段延時程序,因一條設計一段延時程序,因一條指令時間確定。指令時間確定。 缺點缺點:占用占用CPU,降低,降低CPU的利用率的利用率 定時精度不高定時精度不高 適用于:適用于:延時時間短,個人計算機上。延時時間短,個人計算機上。 不適于:不適于:多作業(yè)環(huán)境、時間緊缺的實時系統(tǒng)多作業(yè)環(huán)境、時間緊缺的實時系統(tǒng)中。中。

4、概述概述 不可編程的硬件定時不可編程的硬件定時采用中小規(guī)模電采用中小規(guī)模電路器件(分頻器、簡易定時電路)。路器件(分頻器、簡易定時電路)。 缺點:缺點:定時時間不能靈活改變。定時時間不能靈活改變。 可編程定時器電路可編程定時器電路軟件硬件相結合、軟件硬件相結合、用可編程定時器芯片構成一個方便靈活用可編程定時器芯片構成一個方便靈活的定時電路,定時值和定時范圍可由軟的定時電路,定時值和定時范圍可由軟件改變。件改變。主要作用:主要作用: 脈沖計數(shù)、定時,脈沖輸出脈沖計數(shù)、定時,脈沖輸出 多種工作方式,編程可選多種工作方式,編程可選 定時器定時器由數(shù)字電路中的計數(shù)電路構成,通過記錄由數(shù)字電路中的計數(shù)電

5、路構成,通過記錄高精度晶振脈沖信號的個數(shù),輸出準確的時間間高精度晶振脈沖信號的個數(shù),輸出準確的時間間隔隔 計數(shù)計數(shù)電路如果記錄外設提供的具有一定隨機性的電路如果記錄外設提供的具有一定隨機性的脈沖信號時,它主要反映脈沖信號時,它主要反映脈沖的個數(shù)脈沖的個數(shù)(進而獲知(進而獲知外設的某種狀態(tài)),常又稱為外設的某種狀態(tài)),常又稱為計數(shù)器計數(shù)器概述概述8.2.1 8253定時定時/計數(shù)器計數(shù)器 8253是是Intel系列,系列, 計數(shù)脈沖頻率計數(shù)脈沖頻率02.6MHz, 具有具有24個引腳,雙列直插式封裝,個引腳,雙列直插式封裝, 單電源單電源+5v, 輸入輸出均為輸入輸出均為TTL電平兼容電平兼容

6、3個獨立的個獨立的16位計數(shù)器位計數(shù)器通道通道 每個計數(shù)器有每個計數(shù)器有6種工作方式種工作方式 按按二進制二進制或或十進制十進制(BCD碼)計數(shù)碼)計數(shù) 工作方式可編程控制工作方式可編程控制1、8253的內部結構及引腳的內部結構及引腳D7D0計數(shù)器0控制字寄存器計數(shù)器1計數(shù)器2內部數(shù)據(jù)總線數(shù)據(jù)總線緩沖器讀寫控制邏輯RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2計數(shù)器結構示意圖計數(shù)器結構示意圖預置寄存器預置寄存器GATECLKOUT減減1計數(shù)器計數(shù)器輸出鎖存器輸出鎖存器計數(shù)初值存于計數(shù)初值存于預置寄存器預置寄存器;在計數(shù)過程中,在計數(shù)過程中,減

7、法計數(shù)器減法計數(shù)器的值不斷遞減,的值不斷遞減,而預置寄存器中的預置不變。而預置寄存器中的預置不變。輸出鎖存器輸出鎖存器用于寫入鎖存命令時,用于寫入鎖存命令時,鎖定當前計數(shù)值鎖定當前計數(shù)值返回返回1) 三個獨立的計數(shù)器三個獨立的計數(shù)器02 每個:每個:16位,減法,預置位,減法,預置計數(shù):二進制、計數(shù):二進制、BCD碼(十進制)碼(十進制) CLK時鐘時鐘(計數(shù)計數(shù))輸入輸入在計數(shù)過程中,此引腳上在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)值減值減1。 GATE門控輸入門控輸入控制計數(shù)器工作,可分成電平控制計數(shù)器工作,可分成電平控制和

8、上升沿控制兩種類型,控制和上升沿控制兩種類型, “1”-開門,允許計數(shù)。開門,允許計數(shù)。 “0”-關門,禁止計數(shù)。關門,禁止計數(shù)。 OUT計數(shù)器輸出計數(shù)器輸出當一次計數(shù)過程結束(計數(shù)當一次計數(shù)過程結束(計數(shù)值減為值減為0),),OUT引腳上將產生一個輸出信號,輸引腳上將產生一個輸出信號,輸出波形取決于工作方式。出波形取決于工作方式。2) 讀讀/寫控制邏輯寫控制邏輯接收系統(tǒng)總線信息,接收系統(tǒng)總線信息,產生產生對各部分的對各部分的控制信號控制信號 A1、A0地址線,區(qū)分地址線,區(qū)分3個計數(shù)器個計數(shù)器及控制及控制REG。(。(尋址尋址)(三個計數(shù)器的控制寄存器共用一個(三個計數(shù)器的控制寄存器共用一個

9、端口地址)端口地址) RD讀計數(shù)器讀計數(shù)器(當前計數(shù)值當前計數(shù)值),低電,低電平有效。平有效。 WR寫寫 鎖存器(計數(shù)初值)鎖存器(計數(shù)初值) 控制控制REG(控制字,(控制字, 工作方式)工作方式) CS片選信號,低電平有效。只有片選信號,低電平有效。只有CS有效時才能對有效時才能對8253進行操作。進行操作。 組合組合 P315 表表8.18253的的I/O地址地址0 1 0 0 1 0 0 00 00 1 0 0 1 0 0 10 10 1 0 0 1 0 1 01 00 1 0 0 1 0 1 11 10 0 1 0 0 1 0 00 00 0 1 0 0 1 0 10 10 0 1

10、0 0 1 1 01 0功功 能能對計數(shù)器對計數(shù)器0 0設置計數(shù)初值設置計數(shù)初值CSCSRDRDA A1 1A A0 0WRWR對計數(shù)器對計數(shù)器1 1設置計數(shù)初值設置計數(shù)初值對計數(shù)器對計數(shù)器2 2設置計數(shù)初值設置計數(shù)初值設置控制字設置控制字從計數(shù)器從計數(shù)器0 0讀出計數(shù)值讀出計數(shù)值從計數(shù)器從計數(shù)器1 1讀出計數(shù)值讀出計數(shù)值從計數(shù)器從計數(shù)器2 2讀出計數(shù)值讀出計數(shù)值3) 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是是8253與與CPU DB之間連接的接口,之間連接的接口,8位,雙向,位,雙向,對對8253讀寫各種信息,包括:讀寫各種信息,包括: a. 初始化編程時,寫入初始化編程時,寫入8253的控制字;的控

11、制字; b. 給計數(shù)器設置計數(shù)初值;給計數(shù)器設置計數(shù)初值; c. 從計數(shù)器讀取當前計數(shù)值。從計數(shù)器讀取當前計數(shù)值。 D7D0-三態(tài)數(shù)據(jù)線,雙向,連到三態(tài)數(shù)據(jù)線,雙向,連到CPU的的DB上。上。 4) 控制字控制字REG (A1A0=11)存放控制字存放控制字 寫入計數(shù)初值寫入計數(shù)初值只能寫不能讀只能寫不能讀2、8253主要功能主要功能1.計數(shù)計數(shù)GATE=1時,對時,對CLK端的脈沖計數(shù)端的脈沖計數(shù)(減減1),每,每來一個脈沖減來一個脈沖減1,減至,減至0時,時,OUT輸出脈沖。輸出脈沖。 2. 定時定時GATE=1時,由時,由CLK( )脈沖觸發(fā)開始啟)脈沖觸發(fā)開始啟動計數(shù)動計數(shù)(減減1),

12、計到,計到0時,發(fā)出計數(shù)結束信號。時,發(fā)出計數(shù)結束信號。CLK接已知的,固定周期的頻率信號。接已知的,固定周期的頻率信號。三、三、8253的工作方式的工作方式8253有有6種工作方式種工作方式,由方式控制字確定,由方式控制字確定 熟悉每種工作方式的特點才能根據(jù)實際應用問題,熟悉每種工作方式的特點才能根據(jù)實際應用問題,選擇正確的工作方式選擇正確的工作方式 每種工作方式的過程類似:每種工作方式的過程類似: 設定工作方式設定工作方式 設定計數(shù)初值設定計數(shù)初值 硬件啟動硬件啟動 計數(shù)初值進入減計數(shù)初值進入減1計數(shù)器計數(shù)器 每輸入一個時鐘計數(shù)器減每輸入一個時鐘計數(shù)器減1的計數(shù)過程的計數(shù)過程 計數(shù)過程結束

13、計數(shù)過程結束只有進行過初始化的可編程接口芯片,才能自只有進行過初始化的可編程接口芯片,才能自動地和動地和CPU并行工作。并行工作。1) 方式控制字方式控制字計數(shù)器計數(shù)器SC1 SC0讀寫格式讀寫格式RL1 RL0工作方式工作方式M2 M1 M0數(shù)制數(shù)制BCDD7D6D5D4D3D2D1D000 計數(shù)器計數(shù)器001 計數(shù)器計數(shù)器110 計數(shù)器計數(shù)器211 非法非法00 計數(shù)器鎖存命計數(shù)器鎖存命令令 01 只讀寫低字節(jié)只讀寫低字節(jié)10 只讀寫高字節(jié)只讀寫高字節(jié)11 先讀寫低字節(jié)先讀寫低字節(jié) 后讀寫高字節(jié)后讀寫高字節(jié)000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式

14、方式4101 方式方式50 二進制二進制1 十進制十進制控制字寫入控制字控制字寫入控制字I/O地址(地址(A1A011) D7D6:SC1、SC0用于用于選擇計數(shù)器選擇計數(shù)器 D5D4:RL1,RL0讀讀/寫格式寫格式 當當RL1,RL0=00時,時,鎖存計數(shù)器鎖存計數(shù)器的數(shù)據(jù)的數(shù)據(jù)不影響計數(shù)器正常工作。不影響計數(shù)器正常工作。CPU讀取某通道當前計數(shù)器前,讀取某通道當前計數(shù)器前,先向控制寄存器發(fā)出鎖存該通道命令,計數(shù)值即被送入相先向控制寄存器發(fā)出鎖存該通道命令,計數(shù)值即被送入相應鎖存器鎖存,而計數(shù)器繼續(xù)工作。應鎖存器鎖存,而計數(shù)器繼續(xù)工作。 D3D1:M2,M1,M0工作方式選擇,用來工作方式

15、選擇,用來 指定所選擇指定所選擇計數(shù)器的工作方式。計數(shù)器的工作方式。 D0:BCD數(shù)制格式,用來確定計數(shù)是采用二進制還是數(shù)制格式,用來確定計數(shù)是采用二進制還是二二十進制十進制 二進制二進制初值范圍:初值范圍:0000HFFFFH 最大:最大:0000H,216,65536 十進制十進制初值范圍:初值范圍:0000H9999H 最大:最大:0000H,104,10000 最小:最?。?001H1) 方式控制字方式控制字圖示圖示2)2)工作方式工作方式 方式方式0 0 計數(shù)結束中斷計數(shù)結束中斷 寫入寫入CW OUT CW OUT ; 寫入計數(shù)值后的第一個寫入計數(shù)值后的第一個CLK CLK 開始計數(shù)

16、;開始計數(shù);OUTOUT0 0 計數(shù)到計數(shù)到0 OUT 0 OUT 寫入新的控制字或初值,計數(shù)器在到零后仍繼寫入新的控制字或初值,計數(shù)器在到零后仍繼續(xù)計數(shù)續(xù)計數(shù) 計數(shù)條件:計數(shù)條件:GATE=1GATE=1(1)方式)方式0 計數(shù)結束中斷計數(shù)結束中斷GATEOUTCLK 031244方式方式0WR設設定定工工作作方方式式設設定定計計數(shù)數(shù)初初值值計計數(shù)數(shù)值值送送入入計計數(shù)數(shù)器器計計數(shù)數(shù)過過程程計計數(shù)數(shù)結結束束特點:特點: 寫入一次計數(shù)值,只計數(shù)一次。寫入一次計數(shù)值,只計數(shù)一次。不能自動重復不能自動重復。 計數(shù):計數(shù):“CLKCLKGATE”GATE”的脈沖數(shù),的脈沖數(shù),GATE=0GATE=0時

17、暫時暫停計數(shù)停計數(shù)。 計數(shù)過程中計數(shù)過程中改變數(shù)值:立即有效改變數(shù)值:立即有效 8 8位按新值計數(shù)位按新值計數(shù)1616位寫入低位寫入低8 8位,暫停計數(shù),寫入高位,暫停計數(shù),寫入高8 8位后,按新值位后,按新值計數(shù)計數(shù) 計數(shù)過程由計數(shù)過程由軟件啟動軟件啟動 實際應用中,實際應用中,OUTINTROUTINTR 方式方式1可重復觸發(fā)的單穩(wěn)態(tài)觸發(fā)器可重復觸發(fā)的單穩(wěn)態(tài)觸發(fā)器可以可以輸出一個寬度可程控的負脈沖輸出一個寬度可程控的負脈沖。 寫入寫入CW OUT=“1”( );); 寫入計數(shù)值后,待寫入計數(shù)值后,待GATE( )來后,下一個)來后,下一個CLK 開始計數(shù)開始計數(shù) OUT=“0”( ););

18、 計數(shù)到計數(shù)到0 OUT=“1”; 之后,每一個之后,每一個GATE ,使計數(shù)過程重復一遍。,使計數(shù)過程重復一遍。 輸出輸出OUT為一定寬度的負脈沖,為一定寬度的負脈沖, 寬度寬度=n * CLK時鐘周期時鐘周期(2)方式)方式1 可編程單穩(wěn)脈沖可編程單穩(wěn)脈沖設設定定工工作作方方式式設設定定計計數(shù)數(shù)初初值值硬硬件件啟啟動動計計數(shù)數(shù)值值送送入入計計數(shù)數(shù)器器計計數(shù)數(shù)過過程程計計數(shù)數(shù)結結束束GATEOUTCLK 031244方式方式1WR特點:特點: 可由可由GATE重觸發(fā)計數(shù)過程,計數(shù)到重觸發(fā)計數(shù)過程,計數(shù)到0后不用再送后不用再送初值。初值。 計數(shù)過程中計數(shù)過程中改變計數(shù)值,下次有效改變計數(shù)值,下

19、次有效。對當前計數(shù)。對當前計數(shù)無影響。無影響。 計數(shù)過程中,計數(shù)過程中,GATE ;立即有效,重新計數(shù);立即有效,重新計數(shù)。使使OUT輸出的負脈沖加寬。輸出的負脈沖加寬。 計數(shù)器的啟動只能由門控脈沖的上升沿產生,即計數(shù)器的啟動只能由門控脈沖的上升沿產生,即只能用只能用硬件啟動硬件啟動計數(shù)器,不能用軟件來啟動計數(shù)計數(shù)器,不能用軟件來啟動計數(shù)器。器。 應用:實現(xiàn)定時功能,應用:實現(xiàn)定時功能,CLK已知,定時時間已知,已知,定時時間已知,n可算出。可算出。 方式方式2 頻率發(fā)生器頻率發(fā)生器(n分頻器分頻器)能產生周期性(固定頻率)的脈沖信號。能產生周期性(固定頻率)的脈沖信號。 寫入寫入CW OUT

20、=“1” 寫入計數(shù)值后,下一個寫入計數(shù)值后,下一個CLK的的 開始計數(shù)開始計數(shù) 計數(shù)到計數(shù)到1 OUT=“0” 經過一個經過一個CLK周期周期 OUT=“1” ,且開始重,且開始重新計數(shù)。新計數(shù)。(3)方式)方式2 頻率發(fā)生器(分頻器)頻率發(fā)生器(分頻器)03124GATEOUTCLK 4方式方式2031240312403124WR特點:特點: 重復計數(shù):重復計數(shù):周期性脈沖輸出周期性脈沖輸出。 計數(shù)值計數(shù)值n,產生負脈沖的周期:,產生負脈沖的周期:n 個個CLK周期周期 其中:其中: n-1個周期內,個周期內,OUT=“1” 1個個CLK周期內,周期內,OUT=“0” OUT輸出信號的頻率輸

21、出信號的頻率=1/n*CLK信號頻率信號頻率(n分頻分頻) GATE=0,暫停計數(shù);,暫停計數(shù);GATE=1,重新從初值計數(shù),重新從初值計數(shù)。(硬件同步硬件同步) 在寫入在寫入CW和計數(shù)初值后,如和計數(shù)初值后,如GATE=“1”(一直),(一直),開始計數(shù)。開始計數(shù)。(軟件同步軟件同步) 方式方式2既可用既可用軟件啟動又可硬件啟動軟件啟動又可硬件啟動 改變計數(shù)值,改變計數(shù)值,當前不影響當前不影響,在,在OUT 后有效。后有效。 應用:分頻器,時基信號應用:分頻器,時基信號各種工作方式的輸出波形各種工作方式的輸出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N

22、0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 1討論:討論:計數(shù)開始的時刻計數(shù)開始的時刻3) 計數(shù)開始的時刻計數(shù)開始的時刻需要注意需要注意: 處理器寫入處理器寫入8253的計數(shù)初值只是寫入了預置的計數(shù)初值只是寫入了預置寄存器,之后到來的第一個寄存器,之后到來的第一個CLK輸入脈沖輸入脈沖(需(需先由低電平變高,再由高變低先由低電平變高,再由高變低)才將預)才將預置寄存器的初值送到減置寄存器的初值送到減1計數(shù)器。計數(shù)器。 從第二個從第二個CLK信號的下降沿,計數(shù)器才真正信號的下降沿,計數(shù)器才真正開始減開始減1計數(shù)。計數(shù)。4) 8253工作方式小結工作方式小結8253有有6種不同

23、的工作方式。其中:種不同的工作方式。其中:方式方式2,4,5的輸出波形相同,都是寬度為一個的輸出波形相同,都是寬度為一個CLK周期的負脈沖。周期的負脈沖。 方式方式2連續(xù)連續(xù)方式方式4由軟件(設置初值)觸發(fā)啟動由軟件(設置初值)觸發(fā)啟動方式方式5由硬件(門控脈沖)觸發(fā)啟動由硬件(門控脈沖)觸發(fā)啟動 方式方式5(硬件觸發(fā)選通)與方式(硬件觸發(fā)選通)與方式1(硬件重復觸發(fā)單穩(wěn)脈沖)工作方式基(硬件重復觸發(fā)單穩(wěn)脈沖)工作方式基本相同,但輸出波形不同。本相同,但輸出波形不同。方式方式1輸出輸出n個個CLK脈沖周期的低有效脈沖脈沖周期的低有效脈沖(計數(shù)過程中輸出為(計數(shù)過程中輸出為 低)低) 方式方式5

24、輸出寬度為輸出寬度為1個個CLK脈沖周期的負脈沖脈沖周期的負脈沖(計數(shù)過程輸出為(計數(shù)過程輸出為 高)高) 輸出端輸出端OUT的初始狀態(tài):的初始狀態(tài):方式方式0在寫入控制字后輸出為低電平在寫入控制字后輸出為低電平其余方式寫入控制字后,輸出均變?yōu)楦唠娖狡溆喾绞綄懭肟刂谱趾螅敵鼍優(yōu)楦唠娖椒绞椒绞?和方式和方式3連續(xù)計數(shù)連續(xù)計數(shù)其它方式其它方式一次計數(shù)一次計數(shù),要繼續(xù)工作需要重新啟動,要繼續(xù)工作需要重新啟動方式方式0、4由軟件啟動由軟件啟動方式方式1、5由硬件啟動由硬件啟動實驗實驗1計數(shù)開始計數(shù)開始實驗實驗1計數(shù)開始計數(shù)開始計數(shù)開始計數(shù)開始5) 8253與與CPU的連接的連接一個一個8253占用

25、占用4個地址,由個地址,由A1A0的取值區(qū)分:的取值區(qū)分: 00、01、10 分別尋址計數(shù)器分別尋址計數(shù)器0、1、2 11 尋址控制寄存器尋址控制寄存器 4個端口的具體地址由個端口的具體地址由CS和和A1A0共同決定。共同決定。 A1A0接總線的接總線的A1A0 CS接端口地址譯碼器接端口地址譯碼器 8253的的RD、WR分別接總線的分別接總線的RD,WR D0D7分別接分別接DB的的D0D7 特別:地址譯碼特別:地址譯碼4、8253編程及應用編程及應用 8253加電后的工作方式不確定加電后的工作方式不確定 8253必須初始化編程,才能正常工作必須初始化編程,才能正常工作 寫入控制字寫入控制字

26、 寫入計數(shù)初值寫入計數(shù)初值 讀取計數(shù)值讀取計數(shù)值1) 初始化編程初始化編程 8253在工作之前,通過軟件首先寫入各在工作之前,通過軟件首先寫入各個計數(shù)器的個計數(shù)器的方式控制字方式控制字,然后按控制字中,然后按控制字中RL1、RL0的規(guī)定寫入的規(guī)定寫入計數(shù)初值計數(shù)初值。 即:寫入控制字即:寫入控制字寫入計數(shù)值寫入計數(shù)值 8位位 16位位-先低先低8位位 后高后高8位位 例例1: 設設8253的端口地址為:的端口地址為:04H07H,要使,要使計數(shù)器計數(shù)器1工工作在作在方式方式0,僅用,僅用8位位二進制計數(shù)二進制計數(shù),計數(shù)值為計數(shù)值為128,進行初,進行初始化編程。始化編程??刂谱譃椋嚎刂谱譃椋?

27、1 01 000 0B=50H, n=128=80H初始化程序:初始化程序:MOV AL,50HOUT 07H,ALMOV AL,80HOUT 05H,AL 例例2: 設設8253的端口地址為:的端口地址為:F8HFBH,若用,若用通通道道0工作在工作在方式方式1,按,按二二十進制十進制計數(shù),計數(shù)值為計數(shù),計數(shù)值為5080H,進行初始化編程。,進行初始化編程。控制字為:控制字為:00 11 001 1B=33H ,n=5080H初始化程序:初始化程序:MOV AL,33HOUT 0FBH,ALMOV AL,80HOUT 0F8H,ALMOV AL,50HOUT 0F8H,AL 畫連線圖畫連線圖

28、例例3:設設8253的端口地址為:的端口地址為: 2A0H2A3H,若用,若用通道通道0工作在工作在方式方式1,按,按十進制十進制計數(shù),計數(shù)值為計數(shù),計數(shù)值為5080H,進,進行初始化編程。行初始化編程。初始化程序為初始化程序為:MOV DX, 2A3H;控制端口地址為控制端口地址為2A3HMOV AL, 33H ;控制字為控制字為32HOUT DX, AL ;送方式控制字到控制送方式控制字到控制regMOV DX, 2A0H;計數(shù)器計數(shù)器0端口地址為端口地址為2A0HMOV AL, 80HOUT DX, AL ;先寫低先寫低8位計數(shù)值到計數(shù)器位計數(shù)值到計數(shù)器MOV AL, 50HOUT DX

29、, AL ;再寫高再寫高8位計數(shù)值到計數(shù)器位計數(shù)值到計數(shù)器0例例4: 計數(shù)器計數(shù)器1,定時,定時 5ms停,外時鐘停,外時鐘1MHz頻率頻率f=1MHz=106Hz 取方式取方式0n10-6=510-3n=5000=1388H 注意:計數(shù)初值的最大、最小值注意:計數(shù)初值的最大、最小值寫入計數(shù)值 選擇二進制時選擇二進制時 計數(shù)值范圍:計數(shù)值范圍:0000HFFFFH 0000H是最大值,代表是最大值,代表65536 選擇十進制(選擇十進制(BCD碼)碼) 計數(shù)值范圍:計數(shù)值范圍:00009999 0000代表最大值代表最大值10000計數(shù)值寫入計數(shù)器各自的計數(shù)值寫入計數(shù)器各自的I/O地址地址2)

30、 讀計數(shù)值讀計數(shù)值8位位直接讀(讀一次)直接讀(讀一次)16位位 鎖存鎖存,讀低,讀低8位,讀高位,讀高8位位 (讀二次)(讀二次)讀取計數(shù)值讀取計數(shù)值 對對8位數(shù)據(jù)線,讀取位數(shù)據(jù)線,讀取16位計數(shù)值需分兩次位計數(shù)值需分兩次 計數(shù)在不斷進行,應該將當前計數(shù)值先行計數(shù)在不斷進行,應該將當前計數(shù)值先行鎖存,然后讀取:鎖存,然后讀取: 向向控制字控制字I/O地址地址:給:給8253寫入鎖存命令寫入鎖存命令(D5D4=00) 從從計數(shù)器計數(shù)器I/O地址地址:讀取鎖存的計數(shù)值:讀取鎖存的計數(shù)值讀取計數(shù)值,要注意讀寫格式和計數(shù)數(shù)制讀取計數(shù)值,要注意讀寫格式和計數(shù)數(shù)制圖示圖示讀取計數(shù)器讀取計數(shù)器1的的16位

31、計數(shù)值,采用鎖存方式位計數(shù)值,采用鎖存方式,設設8253的端口地址為:的端口地址為: 2A0H2A3H 。MOV AL, 40HMOV DX, 2A3H命令控制字送控制端口命令控制字送控制端口 OUT DX, ALMOV DX, 2A1H讀取計數(shù)器讀取計數(shù)器1低低8位數(shù)據(jù)位數(shù)據(jù)IN AL, DXXCHG AL, AH;暫存暫存AHIN AL, DX;讀取計數(shù)器讀取計數(shù)器1高高8位數(shù)據(jù)位數(shù)據(jù)XCHG AL, AH;AX中為計數(shù)器中為計數(shù)器1的的16位計數(shù)值位計數(shù)值3) 8253在在IBM PC系列機上的應用系列機上的應用A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GAT

32、E1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至揚聲器驅動器接至揚聲器驅動器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS(1) 定時中斷和定時刷新 從閱讀初始化程序段 看計數(shù)器0作為定時中斷的作用n將將計數(shù)器計數(shù)器1作為定時刷新作為定時刷新n看如何編寫初始化程序段看如何編寫初始化程序段定時中斷mov al,36h;計數(shù)器計數(shù)器0為方式為方式3,采用二進制計數(shù),采用二進制計數(shù),;先低后高寫入計數(shù)值先低后高寫入計數(shù)值out 43h,al;寫入方式控制字寫入方式控制字mov al,0;計數(shù)值

33、為計數(shù)值為0out 40h,al;寫入低字節(jié)計數(shù)值寫入低字節(jié)計數(shù)值out 40h,al;寫入高字節(jié)計數(shù)值寫入高字節(jié)計數(shù)值8253初始化計數(shù)器0:定時中斷 計數(shù)器0:方式3,計數(shù)值:65536,輸出頻率為1.19318MHz6553618.206Hz的方波 門控為常啟狀態(tài),這個方波信號不斷產生 OUT0端接8259A的IRQ0,用作中斷請求信號 每秒產生18.206次中斷請求,或說每隔55ms(54.925493ms)申請一次中斷 DOS系統(tǒng)利用計數(shù)器0的這個特點,通過08號中斷服務程序實現(xiàn)了日時鐘計時功能計數(shù)器1:定時刷新 需要重復不斷提出刷新請求門控總為高,選擇方式門控總為高,選擇方式2或或

34、3n2ms內刷新內刷新128次,即次,即15.6 s刷新一次刷新一次計數(shù)初值為計數(shù)初值為18定時刷新mov al,54h;計數(shù)器計數(shù)器1為方式為方式2,采用二進制計數(shù),只寫,采用二進制計數(shù),只寫低低8位計數(shù)值位計數(shù)值out 43h,al;寫入方式控制字寫入方式控制字mov al,18;計數(shù)初值為計數(shù)初值為18out 41h,al;寫入計數(shù)值寫入計數(shù)值8253初始化(2) 揚聲器控制 計數(shù)器2的輸出控制揚聲器的發(fā)聲音調 計數(shù)器2只能工作在方式3,才能輸出一定頻率的方波,經濾波后得到近似的正弦波,進而推動揚聲器發(fā)聲 揚聲器還受控于并行接口(8255芯片) 必須使PB0和PB1同時為高電平,揚聲器才

35、能發(fā)出預先設定頻率的聲音頻率設置speakerprocpush axmov al,0b6hout 43h,al;寫入控制字寫入控制字pop axout 42h,al;寫入低寫入低8位計數(shù)值位計數(shù)值mov al,ahout 42h,al;寫入高寫入高8位計數(shù)值位計數(shù)值retspeakerendp揚聲器控制揚聲器開speakonprocpush axin al,61hor al,03h;D1D0PB1PB011B,其他位不變,其他位不變out 61h,alpop axretspeakonendp揚聲器控制揚聲器關speakonprocpush axin al,61hand al,0fch;D1D0

36、PB1PB000B,其他位不變,其他位不變out 61h,alpop axretspeakonendp揚聲器控制主程序;數(shù)據(jù)段數(shù)據(jù)段freqdw 1193180/600;代碼段代碼段mov ax,freqcall speaker;設置揚聲器音調設置揚聲器音調call speakon;打開揚聲器聲音打開揚聲器聲音mov ah,1;等待按鍵等待按鍵int 21hcall speakoff;關閉揚聲器聲音關閉揚聲器聲音揚聲器控制(3) 可編程硬件延時 利用日時鐘每隔55ms中斷一次不變的特點,可以編寫一段不隨系統(tǒng)時鐘頻率變化的固定延時程序 由于日時鐘中斷的時間單位是55ms,所以無法實現(xiàn)更短時間的延時 這時只有利用實時時鐘中斷,不過

溫馨提示

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

評論

0/150

提交評論