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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:17109 發(fā)表于 2017-12-9 20:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 ll13536121668 于 2017-12-19 15:58 編輯

現(xiàn)在的是按一次打開LED燈、再按一次關(guān)LED燈      改點(diǎn)動(dòng)方式    鍵按下,led燈亮,松開,led燈關(guān)。   、各位師傅請(qǐng)幫小弟看看程序還須增加什么語句能實(shí)現(xiàn)點(diǎn)動(dòng)方式開關(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)計(jì)數(shù)變量                        
  17.         
  18.         if(key1==0)                                                        //檢測按鍵1按下
  19.         {
  20.                 if(key1_sign==0)
  21.                 {
  22.                         count1++;                                        //消抖計(jì)數(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;                                                //消抖計(jì)數(shù)1清0
  34.         }

  35.         if(key2==0)        //檢測按鍵1按下
  36.         {
  37.                 if(key2_sign==0)
  38.                 {
  39.                         count2++;                                        //消抖計(jì)數(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;                                                //消抖計(jì)數(shù)2清0
  51.         }

  52.         if(key3==0)                                                        //檢測按鍵1按下
  53.         {
  54.                 if(key3_sign==0)
  55.                 {
  56.                         count3++;                                        //消抖計(jì)數(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;                                                //消抖計(jì)數(shù)3清0
  68.         }

  69.         if(key4==0)                                                        //檢測按鍵1按下
  70.         {
  71.                 if(key4_sign==0)
  72.                 {
  73.                         count4++;                                        //消抖計(jì)數(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;                                                //消抖計(jì)數(shù)4清0
  85.         }
  86. }
  87. /************主程序************/
  88. void main()
  89. {
  90.         while(1)
  91.         {
  92.                 key_scan();                                                //按鍵掃描程序
  93.         }
  94. }
復(fù)制代碼


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

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

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

使用道具 舉報(bào)

沙發(fā)
ID:260572 發(fā)表于 2017-12-12 12:29 | 只看該作者
判斷行不行
回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除
地板
ID:260696 發(fā)表于 2017-12-12 15:51 | 只看該作者
判斷按鍵有沒有松開。
回復(fù)

使用道具 舉報(bào)

5#
ID:17109 發(fā)表于 2017-12-12 16:00 | 只看該作者

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

使用道具 舉報(bào)

6#
ID:17109 發(fā)表于 2017-12-12 16:27 | 只看該作者
lxmxyw 發(fā)表于 2017-12-12 15:51
判斷按鍵有沒有松開。

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

使用道具 舉報(bào)

7#
ID:17109 發(fā)表于 2017-12-12 16:29 | 只看該作者
lxmxyw 發(fā)表于 2017-12-12 15:51
判斷按鍵有沒有松開。

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

使用道具 舉報(bào)

8#
ID:260727 發(fā)表于 2017-12-12 16:46 來自觸屏版 | 只看該作者
ll13536121668 發(fā)表于 2017-12-12 16:29
增加什么語句能實(shí)現(xiàn)點(diǎn)動(dòng)方式開關(guān)LED

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

使用道具 舉報(bào)

9#
ID:256523 發(fā)表于 2017-12-12 17:58 | 只看該作者
對(duì)不起兄弟,這個(gè)不會(huì)。我是小白,試試能不能掙點(diǎn)黑
回復(fù)

使用道具 舉報(bào)

10#
無效樓層,該帖已經(jīng)被刪除
11#
ID:260765 發(fā)表于 2017-12-12 18:03 | 只看該作者
對(duì)不起兄弟,這個(gè)不會(huì)。我是小白,試試能不能掙點(diǎn)黑
回復(fù)

使用道具 舉報(bào)

12#
ID:260784 發(fā)表于 2017-12-12 19:05 | 只看該作者
改為點(diǎn)動(dòng)方式可以在每個(gè)else語句內(nèi)清完標(biāo)志后增加一條語句:ledx=0;//
回復(fù)

使用道具 舉報(bào)

13#
無效樓層,該帖已經(jīng)被刪除
14#
無效樓層,該帖已經(jīng)被刪除
15#
無效樓層,該帖已經(jīng)被刪除
16#
ID:260784 發(fā)表于 2017-12-12 19:18 | 只看該作者
在每個(gè)else語句清完標(biāo)志后增加:led(x)=0;或著led(x)=1;//根據(jù)硬件電路選擇
回復(fù)

使用道具 舉報(bào)

17#
ID:260871 發(fā)表于 2017-12-12 21:54 | 只看該作者
試試多加一個(gè)類似消抖的判斷
回復(fù)

使用道具 舉報(bào)

18#
無效樓層,該帖已經(jīng)被刪除
19#
ID:17109 發(fā)表于 2017-12-13 10:47 | 只看該作者
rongshubaihe 發(fā)表于 2017-12-12 19:05
改為點(diǎn)動(dòng)方式可以在每個(gè)else語句內(nèi)清完標(biāo)志后增加一條語句:ledx=0;//

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表