常用可編程接口芯片1定時器課件_第1頁
常用可編程接口芯片1定時器課件_第2頁
常用可編程接口芯片1定時器課件_第3頁
常用可編程接口芯片1定時器課件_第4頁
常用可編程接口芯片1定時器課件_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、常用可編程接口芯片1定時器1 第第 8 8 章章 常用接口技術常用接口技術 8.1 8.1 定時控制接口定時控制接口 8.2 8.2 并行接口并行接口 8.3 8.3 異步串行通信接口異步串行通信接口 8.4 8.4 模擬接口模擬接口 常用可編程接口芯片1定時器2 8.1 8.1 定時控制接口定時控制接口 定時控制具有極為重要的作用定時控制具有極為重要的作用 n微機控制系統中常需要定時中斷、定時檢測、微機控制系統中常需要定時中斷、定時檢測、 定時掃描等定時掃描等 n實時操作系統和多任務操作系統中要定時進行實時操作系統和多任務操作系統中要定時進行 進程調度進程調度 nPCPC機的日時鐘計時、機的

2、日時鐘計時、DRAMDRAM刷新定時和揚聲器音刷新定時和揚聲器音 調控制都采用了定時控制技術調控制都采用了定時控制技術 可編程定時器芯片可編程定時器芯片 n軟硬件相結合、方便靈活的定時電路軟硬件相結合、方便靈活的定時電路 軟件延時方法軟件延時方法 n處理器執行延時子程序處理器執行延時子程序 常用可編程接口芯片1定時器3 8.1.1 8.1.1 定時器定時器8253/82548253/8254 定時器(計數器):由數字電路中的計數電路構成,定時器(計數器):由數字電路中的計數電路構成,記錄輸記錄輸 入脈沖的個數入脈沖的個數 n脈沖信號具有一定隨機性,往往脈沖信號具有一定隨機性,往往通過脈沖的個通

3、過脈沖的個 數可以獲知外設的狀態變化次數(計數)數可以獲知外設的狀態變化次數(計數) n脈沖信號的周期固定脈沖信號的周期固定( (使用高精度晶振產生脈沖使用高精度晶振產生脈沖 信號信號) ),個數乘以周期就是時間間隔(定時)個數乘以周期就是時間間隔(定時) Intel 8253/8254Intel 8253/8254可編程間隔定時器可編程間隔定時器 n3 3個獨立的個獨立的1616位計數器通道位計數器通道 n每個計數器有每個計數器有6 6種工作方式種工作方式 常用可編程接口芯片1定時器4 1. 1. 內部結構和引腳內部結構和引腳 與計算機系統總線的接口與計算機系統總線的接口 3 3個相互獨立的

4、計數器通道個相互獨立的計數器通道, ,結構完全相同結構完全相同 n計數器計數器0 0 n計數器計數器1 1 n計數器計數器2 2 常用可編程接口芯片1定時器5 常用可編程接口芯片1定時器6 每個計數器通道每個計數器通道 n1616位減法計數器位減法計數器 n1616位預置寄存器位預置寄存器 n輸出鎖存器輸出鎖存器 預置寄存器預置寄存器 GATE CLK OUT 減減1計數器計數器 輸出鎖存器輸出鎖存器 常用可編程接口芯片1定時器7 定時器外設引腳定時器外設引腳 CLKCLK時鐘輸入信號時鐘輸入信號 n在計數過程中,此引腳上每輸入一個時鐘信號在計數過程中,此引腳上每輸入一個時鐘信號 (下降沿),

5、計數器的計數值減(下降沿),計數器的計數值減1 1 GATEGATE門控輸入信號門控輸入信號 n控制計數器工作,可分成電平控制和上升沿控控制計數器工作,可分成電平控制和上升沿控 制兩種類型制兩種類型 OUTOUT計數器輸出信號計數器輸出信號 n當一次計數過程結束(計數值減為當一次計數過程結束(計數值減為0 0),),OUTOUT引引 腳上將產生一個輸出信號腳上將產生一個輸出信號 常用可編程接口芯片1定時器8 連接處理器引腳連接處理器引腳 lD7D7D0D0數據線數據線 lA1A1A0A0地址線地址線注意,當在注意,當在80868086,IA-32IA-32構架上使用,構架上使用, 一般通過系統

6、數據總線一般通過系統數據總線D7D0D7D0傳送數據,這時應該使用偶傳送數據,這時應該使用偶 數地址(數地址(A0=0A0=0) lRDRD* *讀信號讀信號 lWRWR* *寫信號寫信號 lCSCS* *片選信號,假設片選信號,假設A15A3A15A3為為0000 0000 0100 00000 0000 0100 0* * *0 0 計算機計算機 A2 A1 A2 A1 CSCS* * A A1 1 A A0 0 I/OI/O地地 址址 讀操作讀操作RDRD* *寫操作寫操作WRWR* * 0 0 00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 40H40H

7、 42H42H(41(41 H)H) 44H44H(42(42 H)H) 46H46H(43(43 H)H) 讀計數器讀計數器0 0 讀計數器讀計數器1 1 讀計數器讀計數器2 2 無操作無操作 寫計數器寫計數器0 0 寫計數器寫計數器1 1 寫計數器寫計數器2 2 寫控制字寫控制字 奇數地址有誤 常用可編程接口芯片1定時器9 可編程計數器可編程計數器/定時器定時器功能功能 功能體現在兩個方面:功能體現在兩個方面: 一是一是:作為計數器。:作為計數器。 即在設置好計數初值后,便開始即在設置好計數初值后,便開始減減1計數,減到計數,減到0時,輸時,輸 出一個信號出一個信號 二是二是:作為定時器。

8、:作為定時器。 即在設置好定時時間常數后,便開始減一計數,并按定即在設置好定時時間常數后,便開始減一計數,并按定 時時間常數不斷地輸出時鐘周期整數倍的定時信號。時時間常數不斷地輸出時鐘周期整數倍的定時信號。 兩者之間的差別:兩者之間的差別: 計數器只輸出一個信號,除非沖服觸發計數器只輸出一個信號,除非沖服觸發 定時器輸出連續信號(減到定時器輸出連續信號(減到0后,自動回復時間常數初值并重新后,自動回復時間常數初值并重新 開始計數)。開始計數)。 常用可編程接口芯片1定時器10 典型用處典型用處 在多任務的分時系統中作為中斷信號實現程序的在多任務的分時系統中作為中斷信號實現程序的 切換。切換。

9、可往可往I/O設備輸出精確的定時信號。設備輸出精確的定時信號。 作為一個可編程的波特率發生器。作為一個可編程的波特率發生器。 實現時間延遲。實現時間延遲。 常用可編程接口芯片1定時器11 基本結構原理基本結構原理 原理就是可預置初值的減法計數器。原理就是可預置初值的減法計數器。 主要組成包括:主要組成包括: (1)初值寄存器)初值寄存器接收并保存接收并保存CPU送來的初值送來的初值 (2)計數寄存器)計數寄存器從初值寄存器接收計數初值從初值寄存器接收計數初值,減法計數器。減法計數器。 計數脈沖就是時鐘輸入信號,在門控信號有效時開始計數。 (3)控制寄存器)控制寄存器接收接收CPU的控制信號,選

10、擇不同的工作模的控制信號,選擇不同的工作模 式等式等 (4)狀態寄存器)狀態寄存器保存計數器的狀態保存計數器的狀態 基本原理圖如下圖基本原理圖如下圖 常用可編程接口芯片1定時器12 常用可編程接口芯片1定時器13 2. 2. 工作方式工作方式 82538253有有6 6種工作方式,由方式控制字確定種工作方式,由方式控制字確定 每種工作方式的過程類似:每種工作方式的過程類似: 設定工作方式設定工作方式 設定計數初值設定計數初值 硬件啟動硬件啟動 計數初值進入減計數初值進入減1 1計數器計數器 每輸入一個時鐘計數器減每輸入一個時鐘計數器減1 1的計數過程的計數過程 計數過程結束計數過程結束 常用可

11、編程接口芯片1定時器14 (1)(1)定時器方式定時器方式0 0:計數結束中斷:計數結束中斷 GATE OUT CLK 03124 4 方式方式0 WR 設設 定定 工工 作作 方方 式式 設設 定定 計計 數數 初初 值值 計計 數數 值值 送送 入入 計計 數數 器器 計計 數數 過過 程程 計計 數數 結結 束束 常用可編程接口芯片1定時器15 方式方式0 0的波形如圖所示的波形如圖所示. . 當控制字寫入控制字寄存器后,輸出當控制字寫入控制字寄存器后,輸出OUTOUT就變低,當計數值寫就變低,當計數值寫 入計數器后開始計數,在整個計數過程中,入計數器后開始計數,在整個計數過程中,OUT

12、OUT保持為低,當保持為低,當 計數到計數到0 0后,后,OUTOUT變高;變高;GATEGATE的高低電平控制計數過程是否進的高低電平控制計數過程是否進 行。行。 寫控制字寫控制字 寫計數初值寫計數初值 GATE=1GATE=1計數計數 常用可編程接口芯片1定時器16 工作方式工作方式0 0有如下特點:有如下特點: 計數器只計一遍,當計數到計數器只計一遍,當計數到0 0時,不重新開始計數保持為時,不重新開始計數保持為 高,直到輸入一新的計數值,高,直到輸入一新的計數值,OUTOUT才變低,開始新的計數;才變低,開始新的計數; 計數值是在寫計數值命令后經過一個輸入脈沖,才裝入計計數值是在寫計數

13、值命令后經過一個輸入脈沖,才裝入計 數器的,下一個數器的,下一個 脈沖開始計數,因此,如果設置計數器脈沖開始計數,因此,如果設置計數器 初值為初值為N N,則輸出,則輸出OUTOUT在在N N1 1個個 脈沖后才能變高;脈沖后才能變高; 在計數過程中,可由在計數過程中,可由GATEGATE信號控制暫停。信號控制暫停。 當當GATEGATE0 0時,暫停計數;時,暫停計數; 當當GATEGATE1 1時,繼續計數;時,繼續計數; 常用可編程接口芯片1定時器17 在計數過程中可以改變計數值,且這種改變是立即有效的,在計數過程中可以改變計數值,且這種改變是立即有效的, 分成兩種情況:分成兩種情況:

14、若是若是8 8位計數,則寫入新值后的下一個脈沖按新值計數;位計數,則寫入新值后的下一個脈沖按新值計數; 若是若是1616位計數,則位計數,則 在寫入第一個字節后,停止計數,寫入在寫入第一個字節后,停止計數,寫入 第二個字節后的下一個脈沖按新值計數。第二個字節后的下一個脈沖按新值計數。 常用可編程接口芯片1定時器18 (2 2)定時器方式定時器方式1 1:可編程單穩脈沖:可編程單穩脈沖 設設 定定 工工 作作 方方 式式 設設 定定 計計 數數 初初 值值 硬硬 件件 啟啟 動動 計計 數數 值值 送送 入入 計計 數數 器器 計計 數數 過過 程程 計計 數數 結結 束束 GATE OUT C

15、LK 03124 4 方式方式1 WR 常用可編程接口芯片1定時器19 方式方式1 1的波形如圖所示,的波形如圖所示,CPUCPU向向82538253寫入控制字后寫入控制字后OUTOUT變高,變高, 并保持,寫入計數值后并不立即計數,只有當外界并保持,寫入計數值后并不立即計數,只有當外界GATEGATE信號啟信號啟 動后(一個正脈沖)的下一個脈沖才開始計數,動后(一個正脈沖)的下一個脈沖才開始計數,OUTOUT變低,計變低,計 數到數到0 0后,后,OUTOUT才變高,此時再來一個才變高,此時再來一個GATEGATE正脈沖,計數器又正脈沖,計數器又 開始重新計數,輸出開始重新計數,輸出OUTO

16、UT再次變低,再次變低,. 因此輸出為一負脈沖,脈沖寬度受計數初值控制,由因此輸出為一負脈沖,脈沖寬度受計數初值控制,由 GATE信號觸發。信號觸發。 常用可編程接口芯片1定時器20 特點特點 輸出輸出OUTOUT寬度為計數初值的單脈沖;寬度為計數初值的單脈沖; 輸出受門控信號輸出受門控信號GATEGATE的控制,分三種情況:的控制,分三種情況: n計數到計數到0 0后,再來后,再來GATEGATE脈沖,則重新開始計數,脈沖,則重新開始計數,OUTOUT 變低;變低; n在計數過程中來在計數過程中來GATEGATE脈沖,則從下一脈沖,則從下一CLKCLK脈沖開始重脈沖開始重 新計數,新計數,O

17、UTOUT保持為低;保持為低; n改變計數值后,只有當改變計數值后,只有當GATEGATE脈沖啟動后,才按新值計脈沖啟動后,才按新值計 數,否則原計數過程不受影響,仍繼續進行,即新值的數,否則原計數過程不受影響,仍繼續進行,即新值的 改變是從下一個改變是從下一個GATEGATE開始的。開始的。 計數值是多次有效的,每來一個計數值是多次有效的,每來一個GATEGATE脈沖,就自動裝入脈沖,就自動裝入 計數值開始從頭計數,因此在初始化時,計數值寫入一次計數值開始從頭計數,因此在初始化時,計數值寫入一次 即可。即可。 常用可編程接口芯片1定時器21 (3 3)方式)方式2 2 分頻器分頻器 方式方式

18、2 2的波形如圖所示的波形如圖所示。在這種方式下,在這種方式下,CPUCPU輸出控制字后,輸輸出控制字后,輸 出出OUTOUT就變高,寫入計數值后的下一個就變高,寫入計數值后的下一個CLKCLK脈沖開始計數,計脈沖開始計數,計 數到數到1 1后,輸出后,輸出OUTOUT變低,經過一個變低,經過一個CLKCLK以后,以后,OUTOUT恢復為高,恢復為高, 計數器重新開始計數。因此在這種方式下,只需寫入一次計數計數器重新開始計數。因此在這種方式下,只需寫入一次計數 值,就能連續工作,輸出連續相同間隔的負脈沖(前提:值,就能連續工作,輸出連續相同間隔的負脈沖(前提:GATEGATE 保持為高),即周

19、期性地輸出,保持為高),即周期性地輸出, 常用可編程接口芯片1定時器22 特點特點 通道可以連續工作;通道可以連續工作; GATEGATE可以控制計數過程,當可以控制計數過程,當GATEGATE為低時暫停計數,恢為低時暫停計數,恢 復為高后重新從初值;(注意:該方式與方式復為高后重新從初值;(注意:該方式與方式0 0不同,方不同,方 式式0 0是繼續計數)是繼續計數) 重新設置新的計數值即在計數過程中改變計數值,則新的重新設置新的計數值即在計數過程中改變計數值,則新的 計數值是下次有效的,同方式計數值是下次有效的,同方式1 1。 常用可編程接口芯片1定時器23 (4 4)定時器方式定時器方式3

20、 3:方波發生器:方波發生器 03124 GATE OUT CLK 4 方式方式3 03124 03124 03124 WR 常用可編程接口芯片1定時器24 方式方式3 3的波形如圖所示,這種方式下的輸出與方式的波形如圖所示,這種方式下的輸出與方式2 2都是周期性都是周期性 的,不同的是:輸出的是方波。的,不同的是:輸出的是方波。 當計數值當計數值N N是偶數,輸出正負脈沖寬度是偶數,輸出正負脈沖寬度 N/2N/2的方波的方波 當計數值當計數值N N是奇數,正脈沖寬度是奇數,正脈沖寬度 (N+1)/2N+1)/2, 負脈沖寬度(負脈沖寬度(N-1)/2N-1)/2。 常用可編程接口芯片1定時器

21、25 特點特點 通道可以連續工作;通道可以連續工作; 關于計數值的奇偶,若為偶數,則輸出標準方波,高低電關于計數值的奇偶,若為偶數,則輸出標準方波,高低電 平各為平各為N/2N/2個;若為奇數,則正脈沖寬度(個;若為奇數,則正脈沖寬度(N N1 1)/2/2個個 CLKCLK周期,負脈沖寬度(周期,負脈沖寬度(N N1 1)/2/2個個CLKCLK周期;周期; GATE GATE信號能使計數過程重新開始,當信號能使計數過程重新開始,當GATEGATE0 0時,停止時,停止 計數,當計數,當GATEGATE變高后,計數器重新裝入初值開始計數,變高后,計數器重新裝入初值開始計數, 尤其是當尤其是當

22、GATEGATE0 0時,若時,若OUTOUT此時為低,則立即變高,此時為低,則立即變高, 其它動作同上;其它動作同上; 在計數期間改變計數值不影響現行的計數過程,一般情況在計數期間改變計數值不影響現行的計數過程,一般情況 下,新的計數值是在現行半周結束后才裝入計數器。但若下,新的計數值是在現行半周結束后才裝入計數器。但若 中間遇到有中間遇到有GATEGATE脈沖,則在此脈沖后即裝入新值開始計脈沖,則在此脈沖后即裝入新值開始計 數。數。 常用可編程接口芯片1定時器26 (5 5)定時器方式定時器方式4 4:軟件觸發選通信號:軟件觸發選通信號 GATE OUT CLK 03124 4 方式方式4

23、 2233 3 1 0 WR 常用可編程接口芯片1定時器27 方式方式4 4的波形如圖所示。的波形如圖所示。CPUCPU寫入控制字后,寫入控制字后,OUTOUT立即變高,立即變高, 寫入計數值開始計數,當計數到寫入計數值開始計數,當計數到0 0后,后,OUTOUT變低,經過一個變低,經過一個 CLKCLK脈沖后,脈沖后,OUTOUT變高,這種計數是一次性的(與方式變高,這種計數是一次性的(與方式0 0有有 相似之處),只有當寫入新的計數值后才開始下一次計數。相似之處),只有當寫入新的計數值后才開始下一次計數。 常用可編程接口芯片1定時器28 當計數值為當計數值為N N時,則間隔時,則間隔N N

24、1 1個個CLKCLK脈沖輸出一個負脈沖脈沖輸出一個負脈沖 (計數一次有效);(計數一次有效); GATEGATE0 0時,禁止計數,時,禁止計數,GATEGATE1 1時,恢復繼續計數;時,恢復繼續計數; 在計數過程中重新裝入新的計數值,則該值是立即有效的在計數過程中重新裝入新的計數值,則該值是立即有效的 (若為(若為1616位計數值,則裝入第一個字節時停止計數,裝入位計數值,則裝入第一個字節時停止計數,裝入 第二個字節后開始按新值計數)。第二個字節后開始按新值計數)。 常用可編程接口芯片1定時器29 (6 6)定時器方式定時器方式5 5:硬件觸發選通信號:硬件觸發選通信號 GATE OUT

25、 CLK 03124 4 方式方式5 2233 3 11 0 WR 常用可編程接口芯片1定時器30 當控制字寫入后,當控制字寫入后,OUTOUT立刻變高,寫入計數值后并不立即開始立刻變高,寫入計數值后并不立即開始 計數,而是由計數,而是由GATEGATE的上升沿觸發啟動計數的,當計數到的上升沿觸發啟動計數的,當計數到0 0時,時, 輸出變低,經過一個輸出變低,經過一個CLKCLK之后,輸出恢復為高,計數停止,之后,輸出恢復為高,計數停止, 若再有若再有GATEGATE脈沖來,則重新裝入計數值開始計數,上述過脈沖來,則重新裝入計數值開始計數,上述過 程重復。程重復。 常用可編程接口芯片1定時器3

26、1 特點特點 在這種方式下,若設置的計數值是在這種方式下,若設置的計數值是N N,則在,則在GATEGATE脈沖后,脈沖后, 經過(經過(N N1 1)個)個CLKCLK才一個負脈沖;才一個負脈沖; 若在計數過程中又來一個若在計數過程中又來一個GATEGATE脈沖,則重新裝入初值開脈沖,則重新裝入初值開 始計數,輸出不變,即計數值多次有效;始計數,輸出不變,即計數值多次有效; 若在計數過程中修改計數值,則該計數值在下一個若在計數過程中修改計數值,則該計數值在下一個GATEGATE 脈沖后裝入開始按此值計數。脈沖后裝入開始按此值計數。 常用可編程接口芯片1定時器32 3. 8253/82543.

27、 8253/8254的編程的編程 82538253是可編程接口芯片是可編程接口芯片 8253/82548253/8254需要處理器對他進行初始化編程,才能正確工作。需要處理器對他進行初始化編程,才能正確工作。 編程指的是編程指的是 設置控制字設置控制字 設置時間常數設置時間常數 等等 常用可編程接口芯片1定時器33 (1 1)控制寄存器與控制字)控制寄存器與控制字 有兩個有兩個模式設置寄存器和讀出控制寄存器模式設置寄存器和讀出控制寄存器 模式設置控制字模式設置控制字 (a a)BCDBCD計數初值格式,計數初值格式,=0=0,二進制,二進制 =1=1,BCDBCD碼碼 地址:最高端口地址:最高

28、端口控制端口控制端口 常用可編程接口芯片1定時器34 (b b)M2M2,M1M1,M0M0模式選擇模式選擇 000 000 模式模式0 0 001001模式模式1 1 X10X10模式模式2 2 X11X11模式模式3 3 100100模式模式4 4 101101模式模式5 5 (c c)WR1WR1,WR0WR0讀讀/ /寫指示位。寫指示位。 0000對計數器進行鎖存,以便讀出對計數器進行鎖存,以便讀出 0101只讀只讀/ /寫低寫低8 8位位 1010只讀只讀/ /寫高寫高8 8位位 1111先讀先讀/ /寫低寫低8 8位,后讀位,后讀/ /寫高寫高8 8位位 常用可編程接口芯片1定時器

29、35 (d d)SC1SC1,SC0 SC0 計數器選擇計數器選擇 0000選擇計數器選擇計數器0 0 0101選擇計數器選擇計數器1 1 1010選擇計數器選擇計數器2 2 1111讀出控制字的標識碼讀出控制字的標識碼, ,只要該只要該2 2位位=0=0,寫入的是,寫入的是 讀出模式控制字讀出模式控制字 常用可編程接口芯片1定時器36 控制字寫入控制字控制字寫入控制字I/OI/O地址:地址:A1A0A1A01111 計數器計數器讀寫格式讀寫格式工作方式工作方式數制數制 D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0 00 計數器計數器0 01 計數器計數器1 10 計數器計

30、數器2 11 非法非法 (8253) 11 讀回命令讀回命令 (8254) 00 計數器鎖存命計數器鎖存命 令令 01 只讀寫低字節只讀寫低字節 10 只讀寫高字節只讀寫高字節 11 先讀寫低字節先讀寫低字節 后讀寫高字節后讀寫高字節 000 方式方式0 001 方式方式1 *10 方式方式2 *11 方式方式3 100 方式方式4 101 方式方式5 0 二進制二進制 1 十進制十進制 常用可編程接口芯片1定時器37 設置模式設置控制字舉例設置模式設置控制字舉例 假設假設8253端口:端口:80H,82H,84H, 86H,通道,通道0使用二進制計數,工作使用二進制計數,工作 在模式在模式0

31、,通道,通道1使用使用BCD計數,模計數,模 式式1,通道,通道2使用二進制計數,模式使用二進制計數,模式2, 全部通道全部通道16位計數器,先寫低位計數器,先寫低8位,位, 后寫高后寫高8位。位。 通道通道0模式控制字:模式控制字: 00110000B 通道通道1模式控制字:模式控制字: 01110011B 通道通道2模式控制字:模式控制字: 10110110B MOV DX,86H; MOV AL,30H;控制字;控制字 OUTDX,AL MOV AL,73H; OUTDX,AL MOV AL,0B6H OUTDX,AL 常用可編程接口芯片1定時器38 . 讀出控制字讀出控制字 D7,D6

32、,=11,為讀出模式控制字,這時,為讀出模式控制字,這時D0=0 D5:=0,將所選定的計數器當前計數值鎖存,以便后面讀取,將所選定的計數器當前計數值鎖存,以便后面讀取 D4:=0,將所選定的計數器的狀態進行鎖存,將所選定的計數器的狀態進行鎖存, D3,D2,D1:分別對應:分別對應3個計數通道,個計數通道,=1,選中通道被鎖存,選中通道被鎖存 可以同時鎖存多個通道的計數器的計數值可以同時鎖存多個通道的計數器的計數值 但不能同時鎖存多個計數器的狀態但不能同時鎖存多個計數器的狀態 地址:最高端口地址:最高端口控制端口控制端口 寫寫 常用可編程接口芯片1定時器39 (2) (2) 狀態寄存器狀態寄

33、存器 只有只有8254有狀態端口,有狀態端口,8253無該端口。無該端口。 D7: 輸出端輸出端OUT的狀態的狀態 D6: 表示初值是否已裝入計數器,表示初值是否已裝入計數器,=0:已裝入,:已裝入,=1未裝入未裝入 D5D0:與模式寄存器含義相同:與模式寄存器含義相同 常用可編程接口芯片1定時器40 (3) (3) 編程命令與初始化編程編程命令與初始化編程 編程原則:編程原則: 設置初值前必須先寫模式控制字設置初值前必須先寫模式控制字 初值設置要符合控制字中的格式規定初值設置要符合控制字中的格式規定 要讀取計數器的當前值(或讀取狀態字),必須用控制字先要讀取計數器的當前值(或讀取狀態字),必

34、須用控制字先 鎖定,再讀取。鎖定,再讀取。 編程命令有兩類:編程命令有兩類: 寫入命令寫入命令 讀出命令讀出命令 常用可編程接口芯片1定時器41 寫入命令寫入命令33個個 有三個有三個 (1 1)設置模式控制字命令)設置模式控制字命令 設置工作模式等。 (2 2)設置初始值命令)設置初始值命令 (3 3)鎖存命令)鎖存命令 與讀出命令配合,在讀出前,要先鎖存 常用可編程接口芯片1定時器42 讀出命令讀出命令22個個 (1)讀取計數器當前的值。)讀取計數器當前的值。 要先鎖定,然后再讀出。要先鎖定,然后再讀出。 (2)對)對8254,還可讀取狀態字,還可讀取狀態字 要先鎖定,然后再讀出。要先鎖定

35、,然后再讀出。 例如要讀出通道例如要讀出通道2的計數值,先向讀出控制寄存器寫鎖定命令的計數值,先向讀出控制寄存器寫鎖定命令 端口地址:端口地址:70H70H,72H72H,74H74H,76H76H 例如要讀出通道例如要讀出通道2 2的的 1111 0 0 1 1 1 1 0 0 0 0 0 0 常用可編程接口芯片1定時器43 讀出控制字讀出控制字 D7,D6,=11,為讀出模式控制字,這時,為讀出模式控制字,這時D0=0 D5:=0,將所選定的計數器當前計數值鎖存,以便后面讀取,將所選定的計數器當前計數值鎖存,以便后面讀取 D4:=0,將所選定的計數器的狀態進行鎖存,將所選定的計數器的狀態進

36、行鎖存, D3,D2,D1:分別對應:分別對應3個計數通道,個計數通道,=1,選中通道被鎖存,選中通道被鎖存 可以同時鎖存多個通道的計數器的計數值可以同時鎖存多個通道的計數器的計數值 但不能同時鎖存多個計數器的狀態但不能同時鎖存多個計數器的狀態 地址:最高端口地址:最高端口控制端口控制端口 寫寫 常用可編程接口芯片1定時器44 方式控制字編程示例方式控制字編程示例 ; 8253; 8253的計數器的計數器0 0、1 1、2 2端口和控制端口地址:端口和控制端口地址: 40H40H43H43H ; ;設置其中計數器設置其中計數器0 0為方式為方式0 0 ; ;采用二進制計數,先低后高寫入計數值采

37、用二進制計數,先低后高寫入計數值 mov al,mov al,30h30h ; ;方式控制字:方式控制字:30H30H0000 11 11 000000 0B 0B outout 43h43h,al,al ; ;寫入控制端口:寫入控制端口:43H43H 常用可編程接口芯片1定時器45 3. 3. 編程:寫入計數值編程:寫入計數值 選擇二進制時選擇二進制時 n計數值范圍:計數值范圍:0000H0000HFFFFHFFFFH n0000H0000H是最大值,代表是最大值,代表6553665536 選擇十進制(選擇十進制(BCDBCD碼)碼) n計數值范圍:計數值范圍:000000009999999

38、9 n00000000代表最大值代表最大值1000010000 計數值寫入計數器各自的計數值寫入計數器各自的I/OI/O地址地址 按方式控制字規定的讀寫格式進行按方式控制字規定的讀寫格式進行 常用可編程接口芯片1定時器46 計數值編程示例計數值編程示例 ; 8253; 8253的計數器的計數器0 0、1 1、2 2端口和控制端口地址:端口和控制端口地址:40H40H43H43H ; ;設置計數器設置計數器0 0采用二進制計數采用二進制計數 ; ;寫入計數初值:寫入計數初值:10241024(400H400H) mov ax,1024mov ax,1024; ;計數初值:計數初值:1024102

39、4(400H400H) ; ;寫入計數器寫入計數器0 0地址:地址:40H40H out out 40h40h,al,al; ;寫入低字節計數初值寫入低字節計數初值 mov al,ahmov al,ah outout 40h40h,al,al; ;寫入高字節計數初值寫入高字節計數初值 常用可編程接口芯片1定時器47 8.1.2 8.1.2 定時器的應用定時器的應用(1 1)方波脈沖)方波脈沖 要求利用要求利用82538253在在 OUT2OUT2輸出輸出2KHZ2KHZ方方 波波 編寫相應的程序編寫相應的程序 常用可編程接口芯片1定時器48 地址:地址:1000 000 1000 000 *

40、* * * * * XX0 XX0 ( (沒有使用的地址信號,沒有使用的地址信號,0 0和和1 1都可以,這里使用都可以,這里使用0 0比較方便比較方便) ) 通道通道0 0數據寄存器:數據寄存器:8000H8000H 通道通道1 1數據寄存器:數據寄存器:8002H8002H 通道通道2 2數據寄存器:數據寄存器:8004H8004H 控制寄存器控制寄存器 :8006H8006H 方波:通道方波:通道3 3選擇方式選擇方式3 3,2MHz-2KHz2MHz-2KHz分頻系數分頻系數10001000,使用二,使用二 進制,控制字:進制,控制字: 10 10 11 11 011 011 0 0

41、其它通道不用其它通道不用 時間常數:時間常數:100003E8H100003E8H 如果要求輸出脈沖寬度為如果要求輸出脈沖寬度為1 1個時鐘周期的分頻脈沖而不是方波個時鐘周期的分頻脈沖而不是方波 脈沖,就選用方式脈沖,就選用方式2 2 常用可編程接口芯片1定時器49 CODE SEGMENTCODE SEGMENT ASSUME CS: CODE,DS:DATAASSUME CS: CODE,DS:DATA START:START: MOVMOVDX, 8006HDX, 8006H;控制字端口;控制字端口 MOVMOVAL, 0B6HAL, 0B6H;控制字;控制字 OUTOUTDX, ALD

42、X, AL MOVMOVDX, 8004HDX, 8004H;通道;通道2 2時間常數端口時間常數端口 MOVMOVAL, 0E8HAL, 0E8H;低;低8 8位時間常數位時間常數 OUTOUTDX, ALDX, AL MOVMOVAL, 03HAL, 03H;高;高8 8 位時間常數位時間常數 OUTOUTDX, ALDX, AL JMP $JMP $; ;沒有其他工作,只產生脈沒有其他工作,只產生脈 沖,故沖,故 ;完成設置后,在此死循環;完成設置后,在此死循環 CODE ENDSCODE ENDS END STARTEND START 常用可編程接口芯片1定時器50 (2 2) 定時中

43、斷定時中斷 mov al,36hmov al,36h; ; 計數器計數器0 0為方式為方式3 3,二進制計數,二進制計數 ; ; 先低后高寫入計數值先低后高寫入計數值 out 43h,alout 43h,al; ; 寫入方式控制字寫入方式控制字 mov al,0mov al,0 ; ; 計數值為計數值為0 0 out 40h,alout 40h,al; ; 寫入低字節計數值寫入低字節計數值 out 40h,alout 40h,al; ; 寫入高字節計數值寫入高字節計數值 計數器計數器0 0:方式方式3 3,計數值:計數值:6553665536,輸出方波,輸出方波 頻率:頻率:1.19318MHz1.19318MHz655366553618.206Hz18.206Hz,不斷產生,不斷產生 OUTOUT0端接端接8259A8259A的的IRQIRQ0,每秒產生,每秒產生18.20618.206次中斷請求,次中斷請求, 或說每隔或說每隔55ms55ms(54.925493ms54.925493ms)申請一次中斷)申請一次中斷 DOSDOS系統利用計數器系統利用計數器0 0的這個特點,通過的這

溫馨提示

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

評論

0/150

提交評論