2.2 8位脉宽调制方法及PCA设置
C805lF330D的每个PCA模块都可以被独立地用在对应CEXn的引脚产生脉宽调制(PWM)输出。PWM输出的频率取决于PCA计数器/定时器的时基。使用模块的捕捉/比较寄存器PCAOCPLn改变PWM输出信号的占空比。当PCA计数器/定时器的低字节(PCAOL)与PCAOCPLn中的值相等时,CEXn引脚上的输出被置‘1’;当PCA0L中的计数值溢出时,CEXn输出被复位。
如果计数器/定时器的低字节PCAOL溢出(从0xFF到Ox00),保存在PCAOCPLn中的值被自动装入到PCAOCPLn不需软件干预。通过将PCAOCPMn寄存器中的ECOMn和PWM位置‘1’来使能8位脉冲宽度调制器方式。8位PWM方式的占空比由如下方程得到
注意:当向PCA0的捕捉/比较寄存器写入一个16位数值时,应先写低字节。向PCAOCPLn的写入操作将清‘0’ECOMn位;向PCA0CPLn写入时将置‘1’ECOMn位。8位脉宽调制最大占空比为100%(PCAOCPLn=0),最小占空比为0.39%(PCAOCPLn=0xFF)。可以通过清‘0’ECOMn位产生0%的占空比。
设计中只输出一路PWM信号,所以只对PCAMn进行设置。C8051F330D相关寄存器及PCA寄存器的设置如下:
(1)对于C8051F330D单片机,首先使能交叉开关,并使输出端口设置为上拉,这样才能使产生的.PWM信号能够从相应的端口输出,即XBR0=Ox41;使端口P0.0作为PWM的输出端;
(2)PCA寄存器设置。要使能PCAOCN中的CR位,设置PCAOMD中的CPS0,CPS1,CPS2位选择PCA的时钟频率,根据要求选择SYSCLK/4分频;
(3)在PCAOCPM0寄存器中设置为8位。PWM,并令其中断使能,只需更改PCAOCPLn的值,就能够达到改变占空比的目的。
2.3 UAB2032T的工作过程