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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6106|回復: 6
打印 上一主題 下一主題
收起左側

如何通過單片機程序實現按下按鍵led閃爍,松開停止閃爍

[復制鏈接]
跳轉到指定樓層
樓主
ID:218360 發表于 2017-11-26 21:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       請教下如何通過簡單的程序實行按下按鍵指示燈閃爍,松開停止閃爍,我用是是STC90C516單片機芯片,可以用51來寫。我附上源碼,請各位指點下,正在學習51單片機


  1. #include <STC90.H>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned char
  5. sbit key=P2^0;
  6. sbit key1=P2^1;
  7. void Delay200ms()                //@12.000MHz
  8. {
  9.         unsigned char i, j, k;

  10.         _nop_();
  11.         _nop_();
  12.         i = 3;
  13.         j = 189;
  14.         k = 92;
  15.         do
  16.         {
  17.                 do
  18.                 {
  19.                         while (--k);
  20.                 } while (--j);
  21.         } while (--i);
  22. }
  23. void Delay40ms()                //@12.000MHz
  24. {
  25.         unsigned char i, j, k;

  26.         _nop_();
  27.         _nop_();
  28.         i = 2;
  29.         j = 95;
  30.         k = 43;
  31.         do
  32.         {
  33.                 do
  34.                 {
  35.                         while (--k);
  36.                 } while (--j);
  37.         } while (--i);
  38. }

  39. void Delay10ms()                //@12.000MHz
  40. {
  41.         unsigned char i, j;

  42.         i = 117;
  43.         j = 184;
  44.         do
  45.         {
  46.                 while (--j);
  47.         } while (--i);
  48. }

  49. void main()
  50. {
  51.          uchar  a;
  52.          P1=0Xff;
  53.         while(1)
  54.         {        
  55.         
  56.                 if(key==0)
  57.                 {
  58.                   Delay10ms();
  59.                   
  60.                   if(key==0)
  61.                   {
  62.                           a++;
  63.                         if(a==9)          //如果a=9,那么就進行清零
  64.                         {
  65.                         a=0;
  66.                         while(key==0);         //循環在按鍵判斷
  67.                   }
  68.                
  69.                  }
  70.         
  71.                 switch(a)
  72.                         {
  73.                                 case 1:P1=0X00;        Delay200ms();break;          //燈全亮
  74.                                 case 2:P1=0X7f;        Delay200ms();break;          //第一亮
  75.                                 case 3:P1=0Xbf;        Delay200ms();break;         //第二個亮
  76.                                 case 4:P1=0Xdf;        Delay200ms();break;
  77.                                 case 5:P1=0Xef;        Delay200ms();break;
  78.                                 case 6:P1=0Xf7;        Delay200ms();break;
  79.                                 case 7:P1=0Xfb;        Delay200ms();break;
  80.                                 case 8:P1=0Xfd;        Delay200ms();break;
  81.                                 case 0:P1=0Xfe;        Delay200ms();break;        //第8個亮
  82.                         
  83.                         }
  84.                
  85.                   
  86.                 }
  87.                 if(key1==0)
  88.                 {
  89.                   Delay10ms();
  90.                   
  91.                   if(key1==0)
  92.                   {
  93.                           P1=0X00;
  94.                         Delay40ms();
  95.                         P1=0Xff;
  96.                         Delay10ms();
  97.                         //while(1);
  98.                         while (key==0);
  99.                         
  100.                   }
  101.                   
  102.                  
  103.                           
  104.                   
  105.                   

  106.                 }
  107.                  
  108.         }
  109. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2017-11-27 07:25 | 只看該作者
把key1的代碼調整一下即可:
                if(key1==0)
                {
                        Delay10ms();       
                        if(key1==0)
                        {
                                while(!key1)
                                {
                                        P1=0X00;
                                        Delay40ms();
                                        P1=0Xff;
                                        Delay10ms();
                                }
//                                while (key==0);
                        }
                }       
回復

使用道具 舉報

板凳
ID:218360 發表于 2017-11-27 15:54 | 只看該作者
wulin 發表于 2017-11-27 07:25
把key1的代碼調整一下即可:
                if(key1==0)
                {

謝謝,晚上回家改下測試下
回復

使用道具 舉報

地板
ID:218360 發表于 2017-11-28 21:45 | 只看該作者
wulin 發表于 2017-11-27 07:25
把key1的代碼調整一下即可:
                if(key1==0)
                {

還是沒有解決問題,按下按鍵,還是不能閃爍,必須要一直按住按鍵
回復

使用道具 舉報

5#
ID:213173 發表于 2017-11-29 07:44 | 只看該作者
打雜的 發表于 2017-11-28 21:45
還是沒有解決問題,按下按鍵,還是不能閃爍,必須要一直按住按鍵

你要的就是:按下按鍵指示燈閃爍,松開停止閃爍、
回復

使用道具 舉報

6#
ID:218360 發表于 2017-11-29 12:22 | 只看該作者
wulin 發表于 2017-11-29 07:44
你要的就是:按下按鍵指示燈閃爍,松開停止閃爍、

是松開按鍵還是可以閃爍,不是按下閃爍,現在就可以按下閃爍了
回復

使用道具 舉報

7#
ID:255144 發表于 2017-11-29 13:40 | 只看該作者
按鍵的程序代碼,網上很多,可以下載自己改一下試試。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区三区 | 久久久这里只有17精品 | 国产成人jvid在线播放 | 欧美一区二区在线免费观看 | av毛片免费 | 欧美一区二区三区的 | 日韩国产一区二区 | 中文字幕一区二区三区四区五区 | 久久久99国产精品免费 | 97国产在线观看 | 在线免费观看黄网 | 国产午夜精品福利 | 精品国产一区二区三区久久久蜜月 | 你懂的在线视频播放 | 日本在线中文 | 精品久久久久一区二区国产 | 午夜影视大全 | com.国产| 黄色日本片 | 日韩精品一区二区三区在线播放 | 国产精品视频一区二区三 | 国产福利在线 | 九九免费观看视频 | 视频一区二区三区中文字幕 | 久久免费观看一级毛片 | 青娱乐av| 黄页网址在线观看 | 日韩久久综合网 | www.伊人.com| 视频精品一区二区三区 | 拍戏被cao翻了h承欢 | 国产精品亚洲一区二区三区在线观看 | 久久久久九九九九 | 国产视频一视频二 | 色网在线看 | 欧美精品在线一区二区三区 | 国产欧美精品 | 精品欧美一区二区三区久久久 | 男女羞羞视频在线看 | 成年人网站免费视频 | 成人欧美一区二区三区黑人孕妇 |