欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機LED燈出現不滅或一直閃爍怎么解決?

查看數: 7141 | 評論數: 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-3-4 14:18

正文摘要:

#include<reg52.h>      //52系列單片機頭文件 #define uchar unsigned char     //宏定義 #define uint unsigned int sbit led1=P2^0;sbit led2=P2^1; sbit led3 ...

回復

ID:471161 發表于 2019-3-5 16:45
wulin 發表于 2019-3-4 18:05
這樣寫就沒有問題了

C:\Users\Administrator\Desktop\12.jpg想加多個按鍵依次點亮LED循環怎么寫
ID:484376 發表于 2019-3-5 09:28
寫的很詳細,感謝分享!
ID:484462 發表于 2019-3-4 19:59
是不是 延時太短了
ID:10947 發表于 2019-3-4 18:48
每個分支里,亮燈1秒后滅燈
ID:213173 發表于 2019-3-4 18:05
這樣寫就沒有問題了
  1. #include<reg52.h>      //52系列單片機頭文件
  2. #define uchar unsigned char     //宏定義
  3. #define uint unsigned int

  4. sbit led1=P2^0;
  5. sbit led2=P2^1;
  6. sbit led3=P2^2;
  7. sbit led4=P2^3;
  8. sbit led5=P2^4;
  9. sbit led6=P2^5;
  10. sbit led7=P2^6;
  11. sbit led8=P2^7;
  12. sbit led9=P3^0;

  13. sbit key1=P3^1;
  14. sbit key2=P3^2;
  15. sbit key3=P3^3;
  16. sbit key4=P3^4;

  17. uchar flag;
  18. //uchar flag2;
  19. /*************************延時函數*****************************/

  20. void delay1ms(uint y)
  21. {
  22.         uint j;
  23.         while(y--)
  24.         for(j=0;j<120;j++);
  25. }

  26. /*************************子函數******************************/

  27. void keyscan()
  28. {
  29.         if(key1==0)  //確認按鍵是否被按下
  30.         {
  31.                 delay1ms(5);    //延時消抖動
  32.                 if(key1==0)     //消抖后在判斷按鍵是否按下
  33.                 {
  34.                         if(flag<9)
  35.                                 flag++;
  36.                         switch(flag)
  37.                         {
  38.                                 case 1:led1=0;break;
  39.                                 case 2:led2=0;break;
  40.                                 case 3:led3=0;break;
  41.                                 case 4:led4=0;break;
  42.                                 case 5:led5=0;break;
  43.                                 case 6:led6=0;break;
  44.                                 case 7:led7=0;break;
  45.                                 case 8:led8=0;break;
  46.                                 case 9:led9=0;break;
  47.                         }
  48.                         while(!key1);   //等待按鍵釋放
  49.                 }
  50.         }
  51.         if(key2==0)                                //確認按鍵是否被按下
  52.         {
  53.                 delay1ms(5);    //延時消抖動
  54.                 if(key2==0)     //消抖后在判斷按鍵是否按下
  55.                 {
  56.                         if(flag>0)
  57.                                 flag--;
  58.                         switch(flag)
  59.                         {
  60.                                 case 0:led1=1;break;
  61.                                 case 1:led2=1;break;
  62.                                 case 2:led3=1;break;
  63.                                 case 3:led4=1;break;
  64.                                 case 4:led5=1;break;
  65.                                 case 5:led6=1;break;
  66.                                 case 6:led7=1;break;
  67.                                 case 7:led8=1;break;
  68.                                 case 8:led9=1;break;
  69.                         }
  70.                         while(!key2);   //等待按鍵釋放
  71.                 }
  72.         }
  73. }

  74. /*************************主函數******************************/

  75. void main()
  76. {
  77.         while(1)
  78.         {
  79.                 keyscan();
  80.         }
  81. }


復制代碼

評分

參與人數 1黑幣 +1 收起 理由
魔法少女 + 1 贊一個!

查看全部評分

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表