STC15W4K58S4实现频率、占空比可调的PWM波
已有 8998 次阅读2017-4-30 17:34
|个人分类:STC15模块测试
直接粘上程序,详细信息参考STC官方文档:STC15STC15W4K32S4芯片手册
#include "STC15.H"
//主时钟选的22.1184MHZ
//用定时器T0的溢出脉冲实现频率可调,改变CCAP0H的值实现占空比可调
void initPWM(void)
{
CMOD=0x84; // #10000100B 空闲模式下停止PCA计数器工作
// 选择PCA时钟源为T0溢出脉冲,禁止PCA计数器溢出时中断
TMOD = 0x00; //T0方式0 16自动重装初值
AUXR = 0X00; //T0 1T
TR0 = 1; //开启T0计数
ET0 = 0; //禁止T0中断
TH0 = 0xFC ; //0x4C00 频率比较高 0xFC00频率就很低(1024个脉冲产生溢出)
TL0 = 0x00 ; //频率=
CCAPM0=0x42; // 设置PCA模块为PWM输出方式。
CR=1; // PCA计数器开始运行
}
void main(void)
{
initPWM();
CCAP0H=0xD0; // 脉宽控制 值越大 占空比越小 cycle=(1-CCAP0H/256)
while(1);
}