8051f120 實做 pwm

23
8051F120 實實 PWM

Upload: catori

Post on 16-Feb-2016

100 views

Category:

Documents


0 download

DESCRIPTION

8051F120 實做 PWM. outline. PWM 相關簡介 Timer 實做 示波器操作 PCA 元件實做 (optional). outline. PWM 相關簡介 Timer 實做 示波器操作 PCA 元件實做 (optional). PWM 訊號. Pulse Width Modulation ,脈波寬度調 變 目的:周邊 控制 實 做 delay Timer PCA 元件. Dutycycle. 在脈波週期內 的 high edge 部份 佔一個脈波週期的比率即為所謂 的 dutycycle 先決定週期 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 8051F120  實做  PWM

8051F120 實做 PWM

Page 2: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 3: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 4: 8051F120  實做  PWM

PWM 訊號Pulse Width Modulation ,脈波寬度調變目的:周邊控制實做

delayTimer PCA 元件

低速

高速

30%

70%

Page 5: 8051F120  實做  PWM

Dutycycle在脈波週期內的 high edge 部份佔一個脈波週期的比率即為所謂的 dutycycle先決定週期再決定 high 跟 low 的比例

Page 6: 8051F120  實做  PWM

周邊控制馬達

固定 20ms 週期 => tp = 20 ms依照不同的 dutycycle 有不同的轉動角度Vcc. 接地 . 訊號線

蜂鳴器不同的週期長短發出不同的高低音頻率 ( 物理 ) => tp 不同而有不同高低音與 dutycycle 無關

Page 7: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 8: 8051F120  實做  PWM

概念上次每 5ms 就 interrupt 一次的閃燈的作業

=> 週期 10ms dutycycle 為 50% 的 PWM 訊號 改變週期為 20ms改變高電位及低電位比例

Page 9: 8051F120  實做  PWM

實做設定使用外部石英震盪器做

system clock(22118400 HZ)Timer mode : 16 bit timerPrescaled Clock Inputs : System clock / 48timer 數一次的時間

48/22118400 = 2.17 * 10-3 (ms)Timer 需數的次數

20 (ms) / 2.17 * 10-3 (ms) ~= 92169216 次為 20ms 週期

Page 10: 8051F120  實做  PWM

實做設定 ( 補充 )System clock

外部石英震盪器 22118400 HzWatchdog Timer (WDT) CrossbarPort Input/OutputInterrupt

IEAll intterupttimer0

Page 11: 8051F120  實做  PWM

Crossbar Diagram

Page 12: 8051F120  實做  PWM

Dutycycle 實做概念tp => 數 9216 次會 delay 20ms 的週期th => 高電位數 n 次tl => 低電位數 m 次n+m = 9216n,m 比例調整就可有不同 dutycycle

Page 13: 8051F120  實做  PWM

Interrupt 程式void Timer_ISR(void) interrupt 1{

if(LED == 0){TH0 = (65536-1843)/256; //9216 20ms, dutycycle = 20%TL0 = (65536-1843)%256;}else{TH0 = (65536-7373)/256;TL0 = (65536-7373)%256; } LED = ~LED;

}

Page 14: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 15: 8051F120  實做  PWM

操作重點打開示波器正極接訊號端,負極接地Auto Set選週期及頻率

Page 16: 8051F120  實做  PWM

outlinePWM 相關簡介Timer 實做示波器操作PCA 元件實做 (optional)

Page 17: 8051F120  實做  PWM

PCA 概念PCA ( Programmable Counter Array )加強計時計數器的應用功能,能夠使硬體資源更靈活有彈性的使用。組成

一個 16-bit 的 counter/timer六個 capture/compare module

PCA 可設定不同 function mode 而實現多種「以計時計數器為基礎所衍生的周邊控制行為」,如比較、捕捉、脈寬調變等

Page 18: 8051F120  實做  PWM

8051 PCA 元件

Page 19: 8051F120  實做  PWM

8051 PCA 元件 (1)PCA counter/timer

8-bit SFRs: PCA0L and PCA0H訊號的頻率 ( 週期 ) 依照 PCA0 counter/timer 設定的

timebase 輸出• Timebase (PCA0MD)

System clock divided by 12System clock divided by 4Timer 0 overflowHigh-to-low transitions on ECI (max rate = system

clock divided by 4)System clockExternal oscillator source divided by 8*

Page 20: 8051F120  實做  PWM

8051 PCA 元件 (2)• Capture/Compare Modules (PCA0CPMx)

Edge-triggered Capture Mode Software Timer (Compare) Mode High Speed Output Mode Frequency Output Mode 8-Bit Pulse Width Modulator Mode 16-Bit Pulse Width Modulator Mode

Enable / disable PAC PCA0CN

設定 dutycycle PCA0CPLn capture/compare register

硬體 function 概念 If(PCA0L == PCA0CPLn) CEXn = 1 If(PCA0L overflow) CEXn = 0

CEXn pin 為輸出訊號 ( 搭配 crossbar) => P0.0

Page 21: 8051F120  實做  PWM

PCA 8-Bit PWM Mode Diagram

Page 22: 8051F120  實做  PWM

簡單 PCA 實做 - 計算• 8-Bit Pulse Width Modulator Mode• Timebase : Timer0 overflow• PCA0 記數一次需: 20 (ms) /256 = 0.078125 (ms)• 表示 Timer0 overflow 一次要 0.078125 (ms)• 設定 Timer0 為 8 bit Conter/Timer Auto-Reload• Timer0 的 Prescaled Clock Inputs : System

clock / 48=> 48/22118400 = 2.17 * 10-3 (ms)

• 78.125 * 10-3 / 2.17 * 10-3 ~= 36=> TL0 = (256-36) , TH0 = (256-36)

Page 23: 8051F120  實做  PWM

簡單 PCA 實做 - 設定system clock

22118400 HZTimer0

8 bit Conter/Timer Auto-Reload TL0 = (256-36) TH0 = (256-36)

PCA 8-Bit Pulse Width Modulator Mode Timebase : Timer0 overflow Dutycycle Enable

CEXn pin 連接示波器觀查結果 週期 dutycycle