您的位置 首页 被动

STC单片机PWM脉宽调制功能模块

STC单片机PWM脉宽调制功能模块includeSTCSTC12C2052ADh>PWM初始化将PCA初始化为PWM模式,初始占空比为0参数:0,1,2

// STC单片机PWM脉宽调制功能模块

#include

// PWM初始化
// 将PCA初始化为PWM形式,初始占空比为0
// 参数:0,1,2,3,别离表明对PWM0、PWM1、PWM2、PWM3初始化
void PWM_Init(int i)
{
CMOD = 0x02; // 设置PCA定时器频率为内部时钟fosc/2
CL = 0x00;
CH = 0x00;

switch(i)
{
case 0:
CCAPM0 = 0x42; // PWM0设置PCA工作方法为PWM方法(0100 0010)
CCAP0L = 0x00; // 设置PWM0初始值与CCAP0H相同
CCAP0H = 0x00; // PWM0初始为0
break;
case 1:
CCAPM1 = 0x42;
CCAP1L = 0x00;
CCAP1H = 0x00;
break;
case 2:
CCAPM2 = 0x42;
CCAP2L = 0x00;
CCAP2H = 0x00;
break;
case 3:
CCAPM3 = 0x42;
CCAP3L = 0x00;
CCAP3H = 0x00;
break;
default:
break;
}

CR = 1; // 发动PCA定时器
}

// PWM占空比设置
// 参数1:0,1,2,3,别离表明对PWM0、PWM1、PWM2、PWM3设置占空比
// 参数2:0x00~0xFF(或0~255),0x00时悉数为低电平,0xFF时悉数为高电平
void PWM_Set(int i, unsigned char c)
{
switch(i)
{
case 0:
CCAP0L = c;
CCAP0H = c;
break;
case 1:
CCAP1L = c;
CCAP1H = c;
break;
case 2:
CCAP2L = c;
CCAP2H = c;
break;
case 3:
CCAP3L = c;
CCAP3H = c;
break;
default:
break;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/259003.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部