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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機按鍵松手后就滅了,為什么

  [復制鏈接]
跳轉到指定樓層
樓主
單片機按鍵松手后就滅了,為什么
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2014-12-10 01:51 | 只看該作者
程序貼上來看看
回復

使用道具 舉報

板凳
ID:65770 發表于 2014-12-10 06:39 | 只看該作者
admin 發表于 2014-12-10 01:51
程序貼上來看看

#include<reg52.h>
sbit key=P3^0;
sbit led1=P2^0;
sbit key1=P3^1;
sbit led3=P2^2;
void main()
{
unsigned int i;
unsigned char a;
         
         while(1)
         {        a=1;
                 if(key==0)
                 {
                  
                 for(i=0;i<100;i++);
                 if(key==0)
                 {
                   led1=0;
                  a++;               
                 }
                 {
                if(key1==0)
                  for(i=0;i<100;i++);
                                  if(key==2)  led1=1;


                   }
                 
                  
                }
          
        }
}
回復

使用道具 舉報

地板
ID:67992 發表于 2014-12-10 10:37 | 只看該作者
提問題之前要說明程序要實現的功能,才好幫你分析。
回復

使用道具 舉報

5#
ID:223443 發表于 2017-7-31 19:26 | 只看該作者
應該是循環問題吧!
回復

使用道具 舉報

6#
ID:223443 發表于 2017-7-31 19:27 | 只看該作者
admin 發表于 2014-12-10 01:51
程序貼上來看看

應該是連續循環問題吧
回復

使用道具 舉報

7#
ID:223667 發表于 2017-7-31 21:21 | 只看該作者
董亞偉 發表于 2014-12-10 06:39
#include
sbit key=P3^0;
sbit led1=P2^0;

沒看懂 key為什么可以等于2呢不是只有0和1嗎 條件都不成立  還有if語句可以這樣嵌套的嗎
回復

使用道具 舉報

8#
ID:221453 發表于 2017-8-1 18:38 | 只看該作者
加一個while循環程序就好了
回復

使用道具 舉報

9#
ID:223988 發表于 2017-8-2 08:26 | 只看該作者
因為你 沒有 保持 。
回復

使用道具 舉報

10#
ID:219921 發表于 2017-8-2 10:10 | 只看該作者
判斷key==2? 還有   為什么要判斷兩次key==0啊
回復

使用道具 舉報

11#
ID:224024 發表于 2017-8-2 10:21 | 只看該作者
程序沒有掛起
回復

使用道具 舉報

12#
ID:224028 發表于 2017-8-2 10:34 | 只看該作者
#include<reg52.h>
sbit key=P3^0;
sbit led1=P2^0;
sbit key1=P3^1;
sbit led3=P2^2;
void main()
{
unsigned int i;
unsigned char a;
         
         while(1)
         {        a=1;
               
                 if(key==0)
                 {
                   led1=0;
                   for(i=0;i<100;i++);
                  a++;               
                 }
                 {
                if(key1==0)
                  for(i=0;i<100;i++);
                                  if(key==2)  led1=1;


                   }
                 
                  
                }
         
        }
}
回復

使用道具 舉報

13#
ID:221909 發表于 2017-8-2 11:08 | 只看該作者
董亞偉 發表于 2014-12-10 06:39
#include
sbit key=P3^0;
sbit led1=P2^0;

LED加電阻了嗎,好像不能直接接正極。再有就是好像還要加入去抖動吧,我也是剛學,前幾天看杜洋的視頻了好像有講這個,你可以看看
回復

使用道具 舉報

14#
ID:224096 發表于 2017-8-2 14:08 | 只看該作者
同求解,謝謝各位
回復

使用道具 舉報

15#
ID:224086 發表于 2017-8-2 14:13 | 只看該作者
key==2怎么會亮?
回復

使用道具 舉報

16#
ID:137261 發表于 2017-8-5 11:18 | 只看該作者
你這個程序key=2是啥?
回復

使用道具 舉報

17#
ID:225017 發表于 2017-8-5 16:52 | 只看該作者
董亞偉 發表于 2014-12-10 06:39
#include
sbit key=P3^0;
sbit led1=P2^0;

沒有松手檢測把
回復

使用道具 舉報

18#
ID:224474 發表于 2017-8-6 11:28 | 只看該作者
應為你設置的是檢測一次,如果連續檢測的話可以用眼石判斷來實現。
回復

使用道具 舉報

19#
ID:225341 發表于 2017-8-7 06:47 | 只看該作者
因為你沒有保存到上一個值,,它只要低電平就亮,高電平就滅,所以必須先保存到這個之后,按下就會亮
回復

使用道具 舉報

20#
ID:225626 發表于 2017-8-7 23:00 | 只看該作者
少了一個松手檢測吧
回復

使用道具 舉報

21#
ID:220121 發表于 2017-8-8 08:50 | 只看該作者
定義兩個狀態 bit  按下為1,抬起為0 當抬起時將狀態取反
回復

使用道具 舉報

22#
ID:225669 發表于 2017-8-8 10:35 | 只看該作者
   if(key==2)  led1=1;   按鍵只有01 狀態,怎么是2啊 ,
回復

使用道具 舉報

23#
ID:204589 發表于 2017-8-8 10:50 | 只看該作者
少了松手檢測吧
回復

使用道具 舉報

24#
ID:225682 發表于 2017-8-8 10:52 | 只看該作者
定義一個變量,按下取反。
回復

使用道具 舉報

25#
ID:225017 發表于 2017-8-8 20:16 | 只看該作者
加個松手檢測或者消抖不行。
回復

使用道具 舉報

26#
ID:226857 發表于 2017-8-11 10:23 | 只看該作者
增加一個記錄狀態的變量
回復

使用道具 舉報

27#
ID:226896 發表于 2017-8-11 11:11 | 只看該作者
加一個標志位看看
回復

使用道具 舉報

28#
ID:111634 發表于 2017-8-12 20:34 | 只看該作者
程序有問題
回復

使用道具 舉報

29#
ID:78850 發表于 2017-8-12 23:03 | 只看該作者
加個延時,把key==2改成key==1試試
回復

使用道具 舉報

30#
ID:218870 發表于 2017-8-13 05:59 | 只看該作者
要達到的要求是什么?
回復

使用道具 舉報

31#
ID:218870 發表于 2017-8-13 05:59 | 只看該作者
觸發方式
回復

使用道具 舉報

32#
ID:111634 發表于 2017-8-13 08:39 | 只看該作者
本帖最后由 zl2168 于 2017-8-16 17:23 編輯

實例5  4種不同鍵控方式


單片機應用系統中,根據按鍵閉合和釋放狀態,有多種不同的鍵控方式,可編寫不同的程序予以實現。本例要求按以下4種不同方式分別鍵控VD0~ VD3。



① 無鎖按鍵:S0按下,VD0亮;S0釋放,VD0暗;

② 無鎖按鍵(前沿有效):S1按下,VD1亮;S1釋放,VD1延時2s后暗。

③ 無鎖按鍵(后沿有效):S2按下,VD2不亮;S2釋放,VD2亮,并延時2s后暗。

模擬有鎖按鍵:S3按第一次,VD3亮,并繼續保持;按第二次,VD3才暗。



Proteus仿真一下,確認有效。
實例5 不同方式鍵控燈.rar (31.72 KB, 下載次數: 15)
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1.書中電路和程序設計有詳細說明,程序語句條條有注解。


回復

使用道具 舉報

33#
ID:223097 發表于 2017-8-13 15:16 | 只看該作者
沒消抖吧
回復

使用道具 舉報

34#
ID:226108 發表于 2017-8-13 18:46 | 只看該作者
我也是同樣的問題
回復

使用道具 舉報

35#
ID:219008 發表于 2017-8-14 18:11 | 只看該作者
少了一個去抖動程序
回復

使用道具 舉報

36#
ID:227635 發表于 2017-8-14 20:24 | 只看該作者
你用兩個if只是去抖,并不能掛起程序,應該用while語句
回復

使用道具 舉報

37#
ID:208108 發表于 2017-8-15 12:04 | 只看該作者
  if(key==2)  led1=1; 這個沒看明白,假如條件成立等同于if(key==1)  led1=1;
你這個并沒有嵌套在上一個for循環里,是和第一個if同級的,當然松手會滅了。
回復

使用道具 舉報

38#
ID:227744 發表于 2017-8-15 15:39 | 只看該作者
不會的,肯定沒問題
回復

使用道具 舉報

39#
ID:227750 發表于 2017-8-15 16:19 | 只看該作者
用一個變量記錄按鍵狀態就可以了,按一下亮,按一下滅,相應的狀態也要改變
回復

使用道具 舉報

40#
ID:227792 發表于 2017-8-15 20:14 | 只看該作者
幫你頂吧!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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