安哥斯拉 发表于 2019-4-22 10:20

单键控制LED闪烁

设置一个按键,一个LED。按下按键LED开始闪烁:亮1秒,灭0.5秒,再次按下按键,闪烁停止。

xh14061507021 发表于 2019-4-22 11:03

加我QQ给你程序1833493142

ayb_ice 发表于 2019-4-22 11:03

本帖最后由 ayb_ice 于 2019-4-22 16:40 编辑

void Delay_10ms(void)
{
      //...
}

sbit LED = P1^0;      //0=ON
sbit KEY = P1^1;      //0=PUSH
bit bBkpKey;
bit bFlag;

void main(void)
{
      while (1)
      {
                //KEy
                bit bTmp = !KEY;
                if (bTmp && !bBkpKey)
                {
                        bFlag = !bFlag;
                }
                bBkpKey = bTmp;
               
                //LED
                if (bFlag)
                {
                        static u8 ucLedTime;
                        ucLedTime++;
                        if (ucLedTime < 100)
                        {
                              LED = 0;
                        }
                        else
                        if (ucLedTime >= 150)
                        {
                              ucLedTime = 0;
                              LED = 1;
                        }
                }
                else
                {
                        LED = 0;
                }
               
                //SYNC
                Delay_10ms();
      }
      
}

516785076 发表于 2019-4-22 16:26

判断按键,进入循环
页: [1]
查看完整版本: 单键控制LED闪烁