51单片机花样流水灯求解

2019-07-15 09:02发布

P0,P1口直接驱动16路LED,定时时间到灭一路(定时器0假设5S,从P1.7开始到P0.0结束)而且灭的这路效果为渐灭。有一个按键有俩功能,选择整体亮度(高、中、低亮度),控制定时时间(假设5S、10S、30S)。只用51单片机直接做,求大牛指点迷津。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
wjz01002
1楼-- · 2019-07-17 04:39
人中狼 发表于 2018-1-10 14:17
要看你整合后的程序是怎么样的,整体亮度的调节应该和时间控制部分都在一个switch里

void keyscan()
{
        if (k1==0)
                Delayms(20);
                if (k1==0)
                {        while (!k1);               
                        cs++;
                        if (cs==4)
                                cs=1;
                                        }       
                switch (cs)
                {
                        case 1:
                                //hight();//亮度最亮,进入计时并显示
                                       
                                led_3 ();
                                break;                               
                        case 2:
                                //bight();//中亮
                                led_3 ();
                                break;
                        case 3:
                                //light();//低亮
                                led_3 ();
                                break;
                       
                        case 4:hight();break;        //¾²Ö¹×´Ì¬                               
                        case 5:bight();break;                               
                        case 6:light();break;
                               
                        case 7:        //¶¨Ê±°ëСʱ
                                led_2();
                                break;
                        case 8:
                                led_2();
                                break;
                        case 9:
                                led_2();
                                break;
                        case 10:                //¶¨Ê±30Ãë
                                led_1();
                                break;
                        case 11:
                                led_1();
                                break;
                        case 12:
                                led_1();
                                break;
       
        }
}

亮度调节和时间控制在switch里但是只能进一个程序,,,哪个在前进哪个
人中狼
2楼-- · 2019-07-17 07:04
   if (cs==4)
                                cs=1;
这里限定了cs只能到4,可以改成   if (cs==12)试试看
wjz01002
3楼-- · 2019-07-17 09:18
人中狼 发表于 2018-1-10 15:10
if (cs==4)
                                cs=1;
这里限定了cs只能到4,可以改成   if (cs==12)试试看

4只是用于前边测试用,只要一组成了,其他的肯定就好了嘛,就case=1之后,要么进调亮程序,要么进计时程序。。不能一起么这个?
人中狼
4楼-- · 2019-07-17 13:44
 精彩回答 2  元偷偷看……
fight281
5楼-- · 2019-07-17 15:25

一周热门 更多>