STC15W408AS用PWM做RGB全彩 ,手上有STC15W408AS 想做个5050RGB全彩 硬件和软件CCP模块PWM固定不变的三色已经调通,现在遇到一个问题 如何让三路CCP,PWM的宽度如由 红 绿 蓝 红蓝 红绿 绿蓝 不同的PWMW宽度合成多种色 我想问的是在主程序中如何同时几个CCPL和CCPH的值而改变PWM的宽度重而达改变颜色,下面是我改的值 根本行不通, 望高手们指点
单片机源程序如下:
void main()
{
// P1=0X00;
// P1M1 &= 0XFC;//P1.0设置为推挽输出
// P1M0 |= 0x03;
P1M1 &= 0XFC;//P1.0设置为推挽输出
P1M0 |= 0x03;
Timer0Init();
Pwm_Init();
// P1=0X00;
while(1)
{
// P1M1 &= 0XFC;//P1.0设置为推挽输出
// P1M0 |= 0x03;
/* if(SW1 == 0)
{
delayms(100);
if(SW1 == 0);
{
while(SW1!=0);
// led=~led;
// led=1;
TR0=1;
// CR = !CR; //反转控制位,启动/关闭PCA计时器
//P1 =~P1;
// P1=~P1;
// delayms(100);
}
} */
// delayms(1);
// for(x=z;x>0;x--)
r=r-10;
if(r<0)
{
r=0xff ;
}
CCAP1L = r; //PWM占空比为50%[(40H-20H)/40H]
CCAP1H =r ;
b= b+10 ;
if(b>0xfe)
{
b=0;
}
CCAP2L = b; //PWM占空比为87.5%[(100H-20H)/100H] 1.5 0~255
CCAP2H =b;
}
}
|