一、工作模式设置:
-
CCAPM0:
对应位功能:
即令CCAPM0 = 0X42;
2、PCA_PWM0
对应位功能:
即令PCA_PWM0= PCA_PWM0 & 0X3f ;
二、其余寄存器:
-
CMOD:
对应位功能:
即:CMOD = 0X08
-
CCON:
对应位功能:
由于我们这里没有用到中断,所以将所有标志位置零,CR控制位置一,即CCON = 0X40
-
CL、CH:
三、8位PWM模式原理:
首先通过CCALPMn使能比较器和PWM输出,利用COMD设置时钟源,再将CL中的数值与CCAPnL中的比较,大于输出高电平,小于输出低电平,当CL溢出后,CCAPnH中的数据会载入CCAPnL中
四、参考代码:
#include <STC15F2K60S2.H>
#define u8 unsigned char
#define u16 unsigned int
sbit moter1 = P1^0;
sbit moter2 = P1^1;
u8 count1_ms,count2_ms;
void PMW0_Init(void);
void main()
{
PMW0_Init();
moter1 = 0;
while(1);
}
void PMW0_Init(void)
{
CL = CH = 0;
CMOD = 0X08;
PCA_PWM0 = 0X00;
CCAP0H = CCAP0L = 128;//占空比为50%
CCAPM0 = 0X42;
CCON = 0X40;
}
版权声明:本文为weixin_63568691原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。