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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4117|回復(fù): 12
收起左側(cè)

stc15w408as四只按鍵控制四只LED 單片機(jī)程序問題

[復(fù)制鏈接]
ID:17109 發(fā)表于 2017-12-9 20:54 | 顯示全部樓層 |閱讀模式
本帖最后由 ll13536121668 于 2017-12-19 15:58 編輯

現(xiàn)在的是按一次打開LED燈、再按一次關(guān)LED燈      改點(diǎn)動方式    鍵按下,led燈亮,松開,led燈關(guān)。   、各位師傅請幫小弟看看程序還須增加什么語句能實(shí)現(xiàn)點(diǎn)動方式開關(guān)LED燈勞煩大家謝謝

單片機(jī)源程序:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit key1=P1^3;                //按鍵1定義
  5. sbit key2=P1^2;                //按鍵2定義
  6. sbit key3=P1^1;                //按鍵3定義
  7. sbit key4=P1^0;                //按鍵4定義
  8. sbit led1=P3^6;                //led1端口
  9. sbit led2=P3^5;                //led2端口
  10. sbit led3=P3^4;                //led3端口
  11. sbit led4=P3^3;                //led4端口

  12. /********按鍵掃描程序*************/
  13. void key_scan()
  14. {
  15.         static bit key1_sign,key2_sign,key3_sign,key4_sign;//靜態(tài)位變量按鍵自鎖標(biāo)志
  16.         static uint count1,count2,count3,count4;//靜態(tài)計數(shù)變量                        
  17.         
  18.         if(key1==0)                                                        //檢測按鍵1按下
  19.         {
  20.                 if(key1_sign==0)
  21.                 {
  22.                         count1++;                                        //消抖計數(shù)1自+1
  23.                         if(count1>=1000)                        //按主循環(huán)周期100~2000調(diào)整
  24.                         {
  25.                                 key1_sign=1;                        //按鍵1自鎖標(biāo)志置1
  26.                                 led1=~led1;                         //led1取反                        
  27.                         }
  28.                 }
  29.         }
  30.         else                                                                //按鍵1抬起
  31.         {
  32.                 key1_sign=0;                                         //按鍵1自鎖標(biāo)志清0
  33.                 count1=0;                                                //消抖計數(shù)1清0
  34.         }

  35.         if(key2==0)        //檢測按鍵1按下
  36.         {
  37.                 if(key2_sign==0)
  38.                 {
  39.                         count2++;                                        //消抖計數(shù)2自+1
  40.                         if(count2>=1000)                        //按主循環(huán)周期100~2000調(diào)整
  41.                         {
  42.                                 key2_sign=1;                        //按鍵2自鎖標(biāo)志置1
  43.                                 led2=~led2;                         //led2取反                        
  44.                         }
  45.                 }
  46.         }
  47.         else                                                                //按鍵2抬起
  48.         {
  49.                 key2_sign=0;                                        //按鍵2自鎖標(biāo)志清0
  50.                 count2=0;                                                //消抖計數(shù)2清0
  51.         }

  52.         if(key3==0)                                                        //檢測按鍵1按下
  53.         {
  54.                 if(key3_sign==0)
  55.                 {
  56.                         count3++;                                        //消抖計數(shù)1自+1
  57.                         if(count3>=1000)                        //按主循環(huán)周期100~2000調(diào)整
  58.                         {
  59.                                 key3_sign=1;                        //按鍵3自鎖標(biāo)志置1
  60.                                 led3=~led3;                         //led3取反                        
  61.                         }
  62.                 }
  63.         }
  64.         else                                                                //按鍵3抬起
  65.         {
  66.                 key3_sign=0;                                        //按鍵3自鎖標(biāo)志清0
  67.                 count3=0;                                                //消抖計數(shù)3清0
  68.         }

  69.         if(key4==0)                                                        //檢測按鍵1按下
  70.         {
  71.                 if(key4_sign==0)
  72.                 {
  73.                         count4++;                                        //消抖計數(shù)4自+1
  74.                         if(count4>=1000)                        //按主循環(huán)周期100~2000調(diào)整
  75.                         {
  76.                                 key4_sign=1;                        //按鍵4自鎖標(biāo)志置1
  77.                                 led4=~led4;                         //led4取反                        
  78.                         }
  79.                 }
  80.         }
  81.         else                                                                //按鍵4抬起
  82.         {
  83.                 key4_sign=0;                                        //按鍵4自鎖標(biāo)志清0
  84.                 count4=0;                                                //消抖計數(shù)4清0
  85.         }
  86. }
  87. /************主程序************/
  88. void main()
  89. {
  90.         while(1)
  91.         {
  92.                 key_scan();                                                //按鍵掃描程序
  93.         }
  94. }
復(fù)制代碼


4個獨(dú)立按鍵控制4個LED.zip

20.98 KB, 下載次數(shù): 29

回復(fù)

使用道具 舉報

ID:260572 發(fā)表于 2017-12-12 12:29 | 顯示全部樓層
判斷行不行
回復(fù)

使用道具 舉報

ID:260696 發(fā)表于 2017-12-12 15:51 | 顯示全部樓層
判斷按鍵有沒有松開。
回復(fù)

使用道具 舉報

ID:17109 發(fā)表于 2017-12-12 16:00 | 顯示全部樓層

改點(diǎn)動方式    按一次開LED燈     放手就關(guān)LED燈   、各位師傅請幫小弟看看程序還須增加什么語句能實(shí)現(xiàn)點(diǎn)動方式開關(guān)LED燈勞煩大家謝謝
回復(fù)

使用道具 舉報

ID:17109 發(fā)表于 2017-12-12 16:27 | 顯示全部樓層
lxmxyw 發(fā)表于 2017-12-12 15:51
判斷按鍵有沒有松開。

按一次開LED燈    松開就關(guān)LED燈
回復(fù)

使用道具 舉報

ID:17109 發(fā)表于 2017-12-12 16:29 | 顯示全部樓層
lxmxyw 發(fā)表于 2017-12-12 15:51
判斷按鍵有沒有松開。

增加什么語句能實(shí)現(xiàn)點(diǎn)動方式開關(guān)LED
回復(fù)

使用道具 舉報

ID:260727 發(fā)表于 2017-12-12 16:46 來自觸屏版 | 顯示全部樓層
ll13536121668 發(fā)表于 2017-12-12 16:29
增加什么語句能實(shí)現(xiàn)點(diǎn)動方式開關(guān)LED

對不起兄弟,這個不會。我是小白,試試能不能掙點(diǎn)黑
回復(fù)

使用道具 舉報

ID:256523 發(fā)表于 2017-12-12 17:58 | 顯示全部樓層
對不起兄弟,這個不會。我是小白,試試能不能掙點(diǎn)黑
回復(fù)

使用道具 舉報

ID:260765 發(fā)表于 2017-12-12 18:03 | 顯示全部樓層
對不起兄弟,這個不會。我是小白,試試能不能掙點(diǎn)黑
回復(fù)

使用道具 舉報

ID:260784 發(fā)表于 2017-12-12 19:05 | 顯示全部樓層
改為點(diǎn)動方式可以在每個else語句內(nèi)清完標(biāo)志后增加一條語句:ledx=0;//
回復(fù)

使用道具 舉報

ID:260784 發(fā)表于 2017-12-12 19:18 | 顯示全部樓層
在每個else語句清完標(biāo)志后增加:led(x)=0;或著led(x)=1;//根據(jù)硬件電路選擇
回復(fù)

使用道具 舉報

ID:260871 發(fā)表于 2017-12-12 21:54 | 顯示全部樓層
試試多加一個類似消抖的判斷
回復(fù)

使用道具 舉報

ID:17109 發(fā)表于 2017-12-13 10:47 | 顯示全部樓層
rongshubaihe 發(fā)表于 2017-12-12 19:05
改為點(diǎn)動方式可以在每個else語句內(nèi)清完標(biāo)志后增加一條語句:ledx=0;//

師傅你好:在   else語句什樣增加一條語句:ledx=0;//     可以修改粘貼上傳戴圖看看嗎   勞煩師傅 謝謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 夜夜精品浪潮av一区二区三区 | 欧美精品在线播放 | av三级在线观看 | 中文字幕精 | 一区二区不卡视频 | 亚洲综合视频 | 2019天天操 | 亚洲一区三区在线观看 | 黄色毛片大全 | 日韩欧美国产精品一区二区 | 成人福利电影 | 国产日韩一区二区 | 在线看av网址 | 日韩欧美理论片 | 伊人春色在线观看 | 欧洲成人 | 精品国产伦一区二区三区观看方式 | 日韩欧美在线观看一区 | 精品综合久久久 | 二区av | 国产一二区在线 | 涩涩视频在线播放 | 久久日韩精品 | 精品免费国产一区二区三区四区 | 一a级片 | 亚洲一区二区免费看 | 久久网站免费视频 | 激情小视频 | 毛片一区二区三区 | 久久av在线播放 | 免费精品视频在线观看 | 久久综合九色综合欧美狠狠 | 福利影院在线看 | 四虎在线播放 | 成人午夜毛片 | 亚洲免费网址 | 久久一区二区三区电影 | 国产精品揄拍一区二区 | 久久久久久国产精品三区 | 中文字幕在线免费观看 | 免费观看羞羞视频网站 |