标题: 请教单片机按键顺序点灯的思路 [打印本页]

作者: 风继续吹    时间: 2019-10-11 18:18
标题: 请教单片机按键顺序点灯的思路
请教各位大神,我是新手,     单片机32个IO口中设置3个按键,如先触发第一个按键后29个IO口正向顺序亮灯,间 隔为1秒,等待触发第二个按键后灯正向顺序关灯, 如先触发第二个按键时逆向亮灯,再等待触发第一个按键后逆向关灯。第三个按键为全开和顺序开的选择,请问程序的思路是如何呢?
作者: xianfajushi    时间: 2019-10-11 22:12
这个简单主循环中搞定,计数29个中分别按8,16,24,29进行判断,再设3个状态变量即可。
作者: xianfajushi    时间: 2019-10-11 22:20

以上16个LED例子可供思路参考。


作者: xianfajushi    时间: 2019-10-11 22:21

#include "reg51.h"
#include<intrins.h>       
void LedXunHuan()
{
    unsigned char i = 0, t = 0, Cnt = 0;
    while(1)
    {
        if(!i) P1 = 0xff;
        else if(i==9)P1 = 254;
        else if(i>8) P1 = _crol_(P1,1); else P1<<=1;//逐个递亮,_crol_(P1,1);单个亮,点亮16个的把其中一个P1改为P2即可.
        Cnt=89;
        while(Cnt) if(!++t) --Cnt;
        if(++i>16)i=0;//if(i++>=8)i=0;if(++i>=9)i=0;等价3式
    }
}
void main()
{
    LedXunHuan();
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1