关于#c语言#的问题,请各位专家解答!

#九齐NY8A051D

void F_KeySacnPro(void)
{
       if( !KEY_ONOFF )
       {                 
              R_KeyCount++;
              if( R_KeyCount >= 5 )
              {        
                     if( !B_KeyFlag )
                     {
                            B_KeyFlag = 1;   //按键按下一次有效
                            IO_BEEP = 1;
            

                ??????????


                     }
                     else if( R_KeyCount >= 100 )
                     {
                   if( !B_LongKeyFlag )
                      {
                       B_LongKeyFlag = 1;  // 长按按键一次有效

                    if( B_Power )
                    {
                        B_Power = 0;
                    }
                      }

                     }

              }

       }
       else
       {
        if( !B_OnceKeyFlag && B_KeyFlag && !B_LongKeyFlag )
        {     // 要执行 短按松开有效 如果出现长按 就无效
            R_WorkMode++;
                     if( R_WorkMode >= 7 )   
                     {
                         R_WorkMode = 0;
                         B_Power = 0;
                     }                        
        }
              R_KeyCount = 0;    
              B_KeyFlag = 0;     
              B_LongKeyFlag = 0;
       }
}

如何用一个按键控制一个灯的常亮,慢闪,快闪循环

单片机吗

这个不难 你是代码不会写还是仿真

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7803759
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:队列的操作及应用,利用队列求解报数问题(数据结构)
  • 除此之外, 这篇博客: 别再问我推荐什么书籍和网课,这次把私藏很久的资料都贡献了(上),建议收藏!中的 视频 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、计算机网络微课堂

    https://www.bilibili.com/video/BV1c4411d7jb?p=1

    2、韩立刚计算机网络 谢希仁 第7版

    https://www.bilibili.com/video/BV1gV411h7r7?p=1

  • 您还可以看一下 李月喜老师的企业微信开发自建内部应用开发篇课程中的 开发文档如何阅读,如何寻求帮助,如何找到同行小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以提供一个示例代码,用C语言编写控制LED灯的程序。代码如下:

    #include <reg52.h>
    #define LED P2   //指定LED连接的端口
    sbit KEY = P3^0;   //指定按键连接的端口
    
    void delay_ms(int n)
    {
        int i, j;
        for(i = 0;i < n;i++)
            for(j = 0;j < 120;j++);
    }
    
    void main()
    {
        unsigned char mode = 0;   //0-常亮,1-慢闪,2-快闪
        unsigned char flash = 0;  //闪烁标志位
        LED = 0;    //LED初始状态为熄灭
    
        while(1)
        {
            if(!KEY)   //检测按键是否按下
            {
                delay_ms(100);  //按键消抖
                if(!KEY)
                {
                    mode++;   //切换模式
                    if(mode > 2)
                        mode = 0;
                    switch(mode)
                    {
                        case 0: flash = 0; LED = 1; break;  //常亮
                        case 1: flash = 1; break;           //慢闪
                        case 2: flash = 2; break;           //快闪
                    }
                }
            }
    
            switch(flash)
            {
                case 0: break;        //常亮
                case 1: delay_ms(500); LED = !LED; break;  //慢闪
                case 2: delay_ms(200); LED = !LED; break;  //快闪
            }
        }
    }
    

    此代码可以实现通过按键控制LED灯的常亮、慢闪、快闪循环等模式。具体操作是:按下按键切换模式,LED灯按照所选模式闪烁。上述代码中使用了定时延时函数delay_ms来控制LED灯的闪烁频率,也可以使用定时器或者外部中断来实现更高效的程序。此外,还通过宏定义指定了LED连接的端口和按键连接的端口,可以根据实际情况进行修改。