51单片机两个led同时移位

51单片机一个独立按键怎么同时控制一个LED灯移位(按第一次k1,D1亮;然后按K2,led移位;按第二次k1,D1再次亮;再按K2,两个灯一起移位)

浅答一下,题主可以通过记录按键按下次数来实现。程序思路如下

uint8 gKey1Count = 0;   // 记录按键k1按下次数变量
uint8 gKey2Count = 0;   // 记录按键k2按下次数变量

// 按下k1
// 等于1还是0取决于按键电路设计
if (k1 == 0)
{
    delay(10);   // 延时消抖

    // 按键k1第一次被按下
    if (k1 == 0 && gKey1Count == 0)
    {
        // 等于0还是1取决于LED电路设计
        D1 =0;   // D1点亮
        gKey1Count  = gKey1Count  + 1;   // 按键k1按下次数加1
    }
     // 按键k1第二次被按下
    if (k1 == 0 && gKey1Count == 1)
    {
        // 等于0还是1取决于LED电路设计
        D1 =0;   // D1点亮
        gKey1Count  = 0;   // 清零计数变量
    }

    // 按下k2
    // 等于1还是0取决于按键电路设计
    if (k2 == 0)
    {
        delay(10);   // 延时消抖

        // 按键k2第二次被按下
        if (k2 == 0 && gKey2Count  == 0)
        {
            // LED位移不知道具体意思
            gKey2Count  = gKey2Count  + 1;   // 按键k2按下次数加1
        }
        // 按键k2第二次被按下
        if (k2 == 0 && gKey2Count  == 1)
        {
            // 两个灯一起点亮
            gKey2Count  = 0;   // 清零计数变量
        }
    }
}

有帮助请采纳!谢谢!