51单片机花样流水灯求解

2019-07-15 09:02发布

P0,P1口直接驱动16路LED,定时时间到灭一路(定时器0假设5S,从P1.7开始到P0.0结束)而且灭的这路效果为渐灭。有一个按键有俩功能,选择整体亮度(高、中、低亮度),控制定时时间(假设5S、10S、30S)。只用51单片机直接做,求大牛指点迷津。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
wjz01002
2019-07-16 15:55
人中狼 发表于 2018-1-10 13:09
做一个计数变量,用来确定该灭哪一路,然后比较重复的做法就是在
void jmie0 ()
{

谢谢大牛。还有一步就是按键可控制整体(16路)亮度共三档(高中低)现在共有3种时间5S、10S、30S每种时间有高中低三种亮度,也就是共9个模式。
void init()
{
    TMOD=0x01;             //
    TH0=(65536-50000)/256; //
    TL0=(65536-50000)%256;

        ET0=1;                 //
    TR0=1;                 //
       
}

void time0() interrupt 1   //
{       
        TH0=(65536-50000)/256;//50ms
    TL0=(65536-50000)%256;
        p++;
} 这个是定时的基准时间50MS

void bight()
{
        for (pwm=time;pwm>0;pwm--)
                {
                        P0=P1=0XFF;
                        delay(6);
                        P0=P1=0X00;
                        delay(4);
                }
               
}
void light()
{
        for (pwm=time;pwm>0;pwm--)
                {
                        P0=P1=0XFF;
                        delay(1);
                        P0=P1=0X00;
                        delay(9);
                }
}这个使用for循环写了俩亮度,中和低

我用同样的方法switch  一个变量来计按键次数来进入相应的时间控制程序,但整体亮度就没反应,这个该怎么组下呢?

一周热门 更多>