利用STC15自带PWM驱动电机

  • Post author:
  • Post category:其他


一、工作模式设置:

  1. CCAPM0:

对应位功能:

即令CCAPM0 = 0X42;

2、PCA_PWM0

对应位功能:

即令PCA_PWM0= PCA_PWM0 & 0X3f ;

二、其余寄存器:

  1. CMOD:

对应位功能:

即:CMOD = 0X08

  1. CCON:

对应位功能:

由于我们这里没有用到中断,所以将所有标志位置零,CR控制位置一,即CCON = 0X40

  1. 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 版权协议,转载请附上原文出处链接和本声明。