久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1604|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

小白求助51單片機(jī)切換流水燈模式該怎么設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1003831 發(fā)表于 2022-1-29 20:55 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
問題是不會寫按鍵切換模式的代碼
比如說按一下是閃爍模式
再按一下是呼吸燈模式
再按一下是跑馬燈模式
一個(gè)按鍵控制八個(gè)led燈
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:941788 發(fā)表于 2022-1-30 07:53 | 只看該作者
用一串if,按鍵按下進(jìn)入下一個(gè)循環(huán)就像這樣
if(按鍵按下&&計(jì)數(shù)變量為x)
{
     函數(shù)體;
    if(按鍵按下)
     {
       計(jì)數(shù)變量增加1;//進(jìn)入到下一個(gè)函數(shù)中
      }
}
不知道我說的你能否明白
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2022-1-30 15:39 | 只看該作者
給個(gè)栗子
  1. #include <reg52.h>

  2. typedef         unsigned char        u8;  //0 to 255
  3. typedef         unsigned int        u16;  //0 to 65535
  4. typedef         unsigned long        u32;  //0 to 4294967295

  5. sbit KEY_32 = P3^2;
  6. u8 mode = 0;
  7. u16 TMR_XX_PRE = 6000;
  8. u8 index = 0;
  9. void key_Proc()
  10. {
  11.         static u16 Delay_XD=0;
  12.         if(!KEY_32)
  13.         {
  14.                 if(Delay_XD<0xFFFF)Delay_XD++;
  15.                 if(Delay_XD==250)
  16.                 {
  17.                                 mode = ++mode %4;               
  18.                                 index = 0;
  19.                                 P1 = 0xFF;                       
  20.                 }
  21.         }
  22.         else
  23.                 Delay_XD = 0;
  24. }
  25. void Led_Flow()
  26. {
  27.         static u16 TMR_XX_ACC;
  28.         if(++TMR_XX_ACC >= TMR_XX_PRE)
  29.         {TMR_XX_ACC=0;
  30.                 switch (mode)
  31.                 {
  32.                         case 0:
  33.                                 P1 = ~(0x01 << index);
  34.                                 index = ++index %8;
  35.                                 break;
  36.                         case 1:
  37.                                 P1 = ~(0x80 >> index);
  38.                                 index = ++index %8;
  39.                                 break;
  40.                         case 2:
  41.                                 if(index < 8)
  42.                                         P1 &= ~(0x01 <<index);
  43.                                 else
  44.                                         P1 |= (0x01 <<(index-8));
  45.                                 if(++index >15)
  46.                                 {
  47.                                         index = 0;
  48.                                 }
  49.                                 break;
  50.                 }
  51.         }
  52. }
  53. void main()
  54. {
  55.     while (1)
  56.     {
  57.                         key_Proc();
  58.                         Led_Flow();
  59.     }
  60. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

地板
ID:316468 發(fā)表于 2022-1-31 01:19 | 只看該作者
用一串if語句可以,用一個(gè)switch也可以
if(ann==0)               //宏定義把實(shí)際端口映射到變量ann上, 如果有按鈕按下
{delay(10);            //延時(shí)消抖
if(ann==0)
{
  i++;                 //i變量加1,為后面選擇做準(zhǔn)備
   }  
  }
  
if(i>2)
   {i=0;}   //給變量i設(shè)定一個(gè)邊界。
switch (i)
                {
                        case 0:閃爍模式程序;break;
                        case 1:呼吸燈模式;break;
                        case 2:跑馬燈模式;break;
                        default:break;  
                  }
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产精品国产偷麻豆 | 天天综合国产 | 成人精品国产 | 99福利视频 | 亚洲国产视频一区 | 天堂一区二区三区 | 中文字幕一区二区三区四区五区 | 欧产日产国产精品v | 久久久妇女国产精品影视 | 欧美9999| 国内自拍视频在线观看 | 色欧美综合 | 一区二区蜜桃 | 黄色一级大片在线免费看产 | 一级a爱片久久毛片 | 久久久国产一区 | www4虎| 日本欧美国产 | 色99视频 | 精品一区二区三区电影 | 国产精品欧美一区二区三区不卡 | 中文字幕亚洲免费 | 成人久久一区 | 中文福利视频 | 91在线免费视频 | 黄色一级大片在线免费看产 | 久久久久国产精品午夜一区 | 日韩三级在线观看 | 精品久久av | 国产精品一卡二卡三卡 | 香蕉视频在线播放 | 国产精品a一区二区三区网址 | 亚洲国产精品视频 | 国产成人亚洲精品自产在线 | 国产成人精品一区二三区在线观看 | 国产福利91精品一区二区三区 | 久久激情五月丁香伊人 | 在线成人免费观看 | 国产精品99久久久久久宅男 | 伊人艹| 日韩高清在线 |