1 / 37

第七章 8254 可程式規劃計時 / 計數器

第七章 8254 可程式規劃計時 / 計數器. 8254 Programmable Timers. 內容大綱. 8254 簡 介 8254 可程式規劃計時 / 計數器 8254 內部構造 、 8254 接腳 、 8254 控制字碼、 8254 工作模式 、 8254 回讀控制 脈波寬度調變輸出控制 (PWM) 直流馬達速度控制實習. 內容大綱 ( 我們在哪裡 ?). 8254 簡 介 8254 可程式規劃計時 / 計數器 8254 內部構造 、 8254 接腳 、 8254 控制字碼、 8254 工作模式 、 8254 回讀控制

Download Presentation

第七章 8254 可程式規劃計時 / 計數器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 8254可程式規劃計時/計數器 8254 Programmable Timers

  2. 內容大綱 • 8254簡介 • 8254可程式規劃計時/計數器 8254內部構造 、8254接腳 、8254控制字碼、 8254工作模式 、8254回讀控制 • 脈波寬度調變輸出控制(PWM) • 直流馬達速度控制實習

  3. 內容大綱(我們在哪裡?) • 8254簡介 • 8254可程式規劃計時/計數器 8254內部構造 、8254接腳 、8254控制字碼、 8254工作模式 、8254回讀控制 • 脈波寬度調變輸出控制(PWM) • 直流馬達速度控制實習

  4. 8254簡介 • 8254乃是一顆由3個各自獨立之16位元可程式規劃計數器所組成之IC。 • 各個計數器可以十進位或二進位之方式來計數,並可以軟體規劃為6種不同之工作模式。 • 對需要控制即時事件之微電腦系統而言,8254乃是極有用之元件,例如時間計算(C++Builder之clock)、計數、馬達速度與轉向控制等。

  5. 內容大綱(我們在哪裡?) • 8254簡介 • 8254可程式規劃計時/計數器 8254內部構造 、8254接腳 、8254控制字碼、 8254工作模式 、8254回讀控制 • 脈波寬度調變輸出控制(PWM) • 直流馬達速度控制實習

  6. 8254可程式規劃計時/計數器 • 8254內部構造 (1) 資料匯流排緩衝區 (Data Bus Buffer) (2) 讀寫控制邏輯 (Read Write Control Logic) (3)控制字碼暫存器 (Control Word Register) (4)計數器 #0、#1 、#2 8254之內部構造示意圖(Intel)

  7. 8254可程式規劃計時/計數器(續) • 8254內部構造 (1) 資料匯流排緩衝區 此8位元之緩衝區用來處理8254與CPU之資料傳輸,當CPU執行 inportb指令時,8254之資料即可由此緩衝區藉資料匯流排D7- D0 送至CPU,反之;當outportb被執行時,資料由CPU經此緩衝區送 至8254。

  8. 8254可程式規劃計時/計數器(續) • 8254內部構造 (2) 讀寫控制邏輯 讀寫控制邏之功能由A1,A0,RD,WR,CS等腳位加以控制,主 要是用以操控8254之資料寫入,讀取與禁能。

  9. 8254可程式規劃計時/計數器(續) • 8254內部構造 (3)控制字碼暫存器 控制字碼暫存器乃是用來儲存8254控制字碼(7-3節)之所在, 僅能由CPU寫入資料而不能被讀取 。 (4)計數器 #0、#1 、#2 ◇ 8254內含三個16位元之計數器(計數器0,1, 2) 。 ◇可由軟體設定不同之工作模式(mode0-mode5)做為計數與計時之應用。 ◇每個計數器分別以CLK, GATE, OUT等三支接腳與外部相連,CLK與GATE為輸入接腳,OUT則是輸出接腳 。

  10. 8254可程式規劃計時/計數器(續) • 8254接腳 (1)電源接腳: Vcc:+5V GND:接地 (2)資料匯流排: D7-D0 (8位元):接至CPU之資料匯流排 (3)晶片選擇與I/O埠選擇: CS:設定8254之致能或禁能 A0、A1:用以選擇計數器或 控制暫存器 8254接腳圖

  11. 8254可程式規劃計時/計數器(續) • 8254接腳 (4)控制線(接至CPU): RD:讀取控制 WR:寫入控制 (5) 計數器控制線 : CLK0-2: 此三支接腳分別是三個計數器之時脈信號輸入線,通常連至時脈信號產生器。 GATE0-2:此三支接腳分別是三個計數器之致能(enable)控制輸入線。 OUT0-2:此三支接腳乃是三個計數器之計數信號輸出線。 8255A接腳圖

  12. 8254可程式規劃計時/計數器(續) • 8254控制字碼 8254有6種不同之工作 模式與多種不同之資 料傳輸方式,因此; 欲使用8254做計時或 技數工作前,必須將 所需之功能以控制字 碼隻方式寫入其控制 字碼暫存器中。

  13. 8254可程式規劃計時/計數器(續) • 8254控制字碼 Example 7-1 電腦音樂寫入43H之控制字碼為 B6H=10110110

  14. 8254可程式規劃計時/計數器(續) • 8254工作模式 8254每個計數器皆有六種工作模式可選用: 模式0:計數終了時中斷(Interrupt On Terminal Count) 模式1:可程式規劃之單擊(One Shot Programmable) 模式2:脈波產生器(Rate Generator) 模式3:方波產生器(Square-wave generator) 模式4:軟體觸發選通(software-triggered strobe) 模式5:硬體觸發選通(Hardware-triggered strobe)

  15. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式0:計數終了時中斷 CW:資料寫入8254之動作 CLK:輸入8254之脈波信號 GATE:致能控制信號 OUT:計數結果輸出信號 CW=10H=00010000b,代表16進位計數,模式0,僅讀∕寫低次位元,選擇計數器#0 。

  16. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式1:可程式規劃之單擊 CW=12H=00010010b,除模 式的選定改為1 外,其餘設 定與模式0相同。

  17. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式2:脈波產生器 CW=14H=00010100b,表示 模式設定為2,模式2設定完 成後 。

  18. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式3:方波產生器 CW=16H=00010110b模式設 定為3,模式3與模式2相似點 乃是其輸出波型之週期亦是 CLK時脈信號之N倍,且計數 工作連續反覆執行,與模式2 相異之處是模式3輸出波型 為方波。

  19. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式4:軟體觸發選擇 CW=18H=00011000b模式設 定為4,模式4與模式2有些許 相似處,當計數至00時(模式 2為01), OUT輸出一低電位 之脈衝信號,然而模式4僅執 行一次之計數工作.

  20. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式4:軟體觸發選擇 CW=18H=00011000b模式設 定為4,模式4與模式2有些許 相似處,當計數至00時(模式 2為01), OUT輸出一低電位 之脈衝信號,然而模式4僅執 行一次之計數工作.

  21. 8254可程式規劃計時/計數器(續) • 8254工作模式 模式5:硬體觸發選擇 CW=1AH=00011010b,模式 設定為5,模式5可看成是模 式1與模式4之組合,計數至 01時OUT輸出一低電位之脈 衝信號。

  22. 8254可程式規劃計時/計數器(續) • 8254回讀控制 1.以外部硬體電路控制 藉由外部電路控制GATE在低位,計 數器即可暫時停止計數,CPU即可讀 取計數器之數值。 2.寫入計數器鎖住命令 如表7-2,當D5,D4 (RW1,RW0)設定 為00時可將計數器數值鎖住,以利 CPU正確讀取,D7,D6 (SC1,SC0)兩 個位元則用來選擇計數器,D3-D0設 定為0即可。當計數器鎖住命令寫入 後,所選定計數器之數值即保持不 變,直到CPU將資料讀取後才繼續 工作。

  23. 8254可程式規劃計時/計數器(續) • 8254回讀控制 Example 7-2 : 讀取#0計數器之資料 outportb(控制暫存器住址,0x00);寫入控制字碼 value=inportb(#0計數器位址) & 0x00FF;先讀低次位元 value1=inportb(#0計數器位址)<<8;再讀高次位元 value=value+value1; 補0

  24. 8254可程式規劃計時/計數器(續) • 8254回讀控制 3.下達回讀指令

  25. 8254可程式規劃計時/計數器(續) • 8254回讀控制 3.下達回讀指令 D4=0表示欲將計數器之狀態鎖住,所得計數器之狀態包含OUT之 準位,計數值是否允許讀取,讀寫次序設定,模式設定,定位設 定等五項。

  26. 8254可程式規劃計時/計數器(續) • 8254回讀控制 Example 7-3 : 以回讀指令讀取#0計數器之計數值 outprotb (控制暫存器住址,0x00D2) ;將回讀命令 D2H=11010010b寫入8254鎖住#0計數器的計數值 value=inportb(#0計數器住址) & 0X00FF ;先讀低次位元 value1=inportb(#0計數器住址)<<8 ;再讀高次位元 value=value+value1

  27. 8254可程式規劃計時/計數器(續) • 8254回讀控制 Example 7-4 : 讀取#2計數器之狀態 outportb(控制暫存器位址,0x00E8) ;將回讀命令 E8H=11001000b寫入8254,鎖住#2計數器的狀態 status=inportb(#2計數器位址) ;設status之內容為 36H=00110110b,對照圖7-11,則知#2計數器之 OUT為 低電位,計數值已寫入#2中且允許被讀 取,資料讀寫次序為先低後高(16位元),模式設 定為3,進位系統為16進位。

  28. 8254可程式規劃計時/計數器(續) • 8254回讀控制 Example 7-5:同時讀取#1計數器之計數值與狀態 outportb(控制暫存器位址,0x00C4);將回讀命令C4H=11000100b寫 入8254,鎖住#1計數器之計數值與狀態 status=inport(#1計數器位址) ;第一次讀取之資料為計數器之狀態 值 value=inport(#1計數器位址)&0x00FF ;先讀取低次位元之計數值 value1=inport(#1計數器位址)<<8 ;再讀高位元計數值 value=value+value1 ;當計數器之計數值為與狀態被回讀命令同時 鎖住時,第一筆讀回之資料為狀態資料。

  29. 內容大綱(我們在哪裡?) • 8254簡介 • 8254可程式規劃計時/計數器 8254內部構造 、8254接腳 、8254控制字碼、 8254工作模式 、8254回讀控制 • 脈波寬度調變輸出控制(PWM) • 直流馬達速度控制實習

  30. 脈波寬度調變輸出控制(PWM) 所謂脈波寬度調變(Pulse Width Modulation,PWM)乃是指將輸出 信號之基本週期(Base Cycle)固定,藉由調整基本週期內工作週期 (Working Cycle)之大小來控制輸出功率。 PWM常取代DAC(數位類比轉換器)用於功率輸出控制,直流馬達 與交流馬達之速度控制乃是最常見的應用。

  31. 脈波寬度調變輸出控制(PWM) (續) • PWM輸出控制電路 #0計數器用來產生基本週期,並於每個基本週期結束時送出一脈衝 信號至#1之GATE接腳,接著#1計數器依寫入之計數值(工作週期)執 行計數工作,#1之輸出信號即是PWM輸出信號。

  32. 脈波寬度調變輸出控制(PWM) (續) • PWM輸出控制電路 則#0計數器需設定在模式2下工作(參考圖7-6)寫入之計數值為基 本週期,每次計數結束後由OUT輸出一脈衝信號,#1計數器則設定 在模式1下工作(參考圖7-5),模式1之計數工作由GATE之脈衝信 號來控制,來自OUT0之脈衝信號正好做為#1之計數控制信號。由 於模式1在計數時輸出為低電位,計數結束時則OUT變為高電位, 圖為再接上一個反向器將其輸出信號反向。

  33. 脈波寬度調變輸出控制(PWM) (續) • PWM輸出控制程式設計 • 欲產生25%之PWM輸出信號,則可以下列程式配合圖7-13之電路來 • 完成。 • outportb(控制暫存器位址,0x0034) ;#0設定為模式2 • outportb(控制暫存器位址,0x0072) ;#1設定為模式1 • outportb(#0計數器位址,0x0800) ;將基本週期800H寫入#0 計數器 • outportb(#1計數器位址,0x0200) ;將工作週期200H寫入#1計數器

  34. 內容大綱(我們在哪裡?) • 8254簡介 • 8254可程式規劃計時/計數器 8254內部構造 、8254接腳 、8254控制字碼、 8254工作模式 、8254回讀控制 • 脈波寬度調變輸出控制(PWM) • 直流馬達速度控制實習

  35. 直流馬達速度控制實習 • Exercise 7-1 (1)完成如圖7-15之直流馬達速 度控制硬體電路。 (2)完成如圖7-13之PWM輸出 控制電路。 (3)完成Exercise 3-8之直流馬達 速度控制程式設計。 (4)整合前三項之結果完成直流馬達 速度控制系統,使用者僅需將 PWM輸出功率百分比鍵入,馬達 即可一要求之轉速運轉。

  36. 直流馬達正反轉速度控制 • Exercise 7-2 (1) 延續Exercise7-1完成如圖7-16所示之直流馬達正反轉速度控制 體電路。 (2) 延續Exercise7-1完成Exercise3-8之直流馬達正反轉速度控制程 式設計。 (3) 整合前二項結果完成直流馬達正反轉速度控制系統。

  37. 直流馬達正反轉速度控制

More Related