利用STC15自带PWM驱动电机

利用STC15自带PWM驱动电机利用STC15自带PWM驱动电机_stc15pwm输出

一、工作模式设置:

利用STC15自带PWM驱动电机

利用STC15自带PWM驱动电机

  1. CCAPM0:

利用STC15自带PWM驱动电机

对应位功能:

利用STC15自带PWM驱动电机

即令CCAPM0 = 0X42;

2、PCA_PWM0

利用STC15自带PWM驱动电机

对应位功能:

利用STC15自带PWM驱动电机

即令PCA_PWM0= PCA_PWM0 & 0X3f ;

二、其余寄存器:

  1. CMOD:

利用STC15自带PWM驱动电机

对应位功能:

利用STC15自带PWM驱动电机

利用STC15自带PWM驱动电机

即:CMOD = 0X08

  1. CCON:

利用STC15自带PWM驱动电机

对应位功能:

利用STC15自带PWM驱动电机

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

  1. CL、CH:

利用STC15自带PWM驱动电机

三、8位PWM模式原理:

利用STC15自带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;
}



今天的文章利用STC15自带PWM驱动电机分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64030.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注