[51单片机] 单键控制LED闪烁

[复制链接]
1084|3
 楼主| 安哥斯拉 发表于 2019-4-22 10:20 来自手机 | 显示全部楼层 |阅读模式
设置一个按键,一个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 | 显示全部楼层
判断按键,进入循环
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部