SN8P2808
8-bit micro-controller build-in 4*32 LCD and 12-bit ADC.
8.5.3 PWM0 编程举例
¾
例:PWM0 输出设置。外部高速振荡器输出频率= 4MHZ,Fcpu = Fosc/4,PWM0 输出占空比= 30/256,输出频率
1KHZ,PWM 时钟源来自外部时钟,TC0 速率= Fcpu/4,TC0RATE2~TC0RATE0 = 110,TC0C = TC0R = 30。
MOV
A,#01100000B
B0MOV
TC0M,A
; TC0 速率=Fcpu/4。
MOV
A,#30
; PWM 输出占空比=30/256。
B0MOV
B0MOV
TC0C,A
TC0R,A
B0BSET
B0BSET
FPWM0OUT
FTC0ENB
; PWM0 输出至P5.4,禁止P5.4 I/O 功能。
; 使能TC0 定时器。
¾
注:TC0R 为只写寄存器,不能用INCMS 和DECMS 指令对其进行操作。
例:改变TC0R 的内容。
MOV
B0MOV
A, #30H
TC0R, A
INCMS
NOP
BUF0
B0MOV
B0MOV
A, BUF0
TC0R, A
注:PWM0 可以在中断下工作。
8.5.4 PWM0 占空比注意事项
在PWM 模式下,系统会随时比较TC0C 和TC0R 的值。如果TC0C<TC0R,PWM 输出高电平,而当TC0C≧TC0R
时则输出低电平。当TC0C 发生改变的时候,PWM 的占空比也随着改变,如果TC0R 保持恒定,那么PWM 输出波形也
保持稳定。
TC0C = TC0R
TC0C overflow
and TC0IRQ set
0xFF
TC0C Value
0x00
PWM0 Output
1
2
3
4
5
6
7
Period
上图所示是TC0R 恒定时的波形。每当TC0C 溢出时,PWM 都输出高电平,TC0C≧TC0R 时,PWM 输出低电平。
注:若要在程序处理过程中设置PWM 的占空比,必须得在下一个周期开始时进行。
SONiX TECHNOLOGY CO., LTD
Page 86
Version 1.1