我的单片机是stc 89c52。 我想利用pwm,按键控制8个LED慢慢的亮,慢慢的暗。怎么片成啊?跪求

如题所述

第1个回答  2013-04-02
bit tick_Flag;
uchar data Light[8];
uchar data si;
.....

void timer0() interrupt 1 using 1
{//中断里的片断:80Hz以上就能稳定而不闪烁,即每秒至少要溢出80*100次 定时0.1ms自装载好了
si++

if(si>=100) si=0; //100级亮度
LED0 = (si<Light[0]);
LED1 = (si<Light[1]);
LED2 = (si<Light[2]);
LED3 = (si<Light[3]);
LED4 = (si<Light[4]);
LED5 = (si<Light[5]);
LED6 = (si<Light[6]);
LED7 = (si<Light[7]);
......
}
主函数中循环处理
for(i=0;i<=100;i++)// 渐亮 char i
{
for(j=0;j<8;j++)
Light[j] = i;
delay(10);
}
delay(200);
for(i=100;i>=0;i--)// 渐暗 100是满亮 0灭,1-99 亮度
{
for(j=0;j<8;j++)
Light[j] = i;
delay(10);
}
delay(200);
第2个回答  2013-04-02
脉宽从0开始到100%,再又从100%回来
相似回答