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

2025-01-03 06:53:50
推荐回答(3个)
回答1:

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 = (siLED1 = (siLED2 = (siLED3 = (siLED4 = (siLED5 = (siLED6 = (siLED7 = (si......
}
主函数中循环处理
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:

脉宽从0开始到100%,再又从100%回来

回答3:

参考:

http://hi.baidu.com/do_sermon/item/329ae93772a97b83c2cf2987