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

標題: 單片機松手檢測問題,如何實現松手檢測,這里的有點問題 [打印本頁]

作者: LPY_1997    時間: 2018-9-28 21:54
標題: 單片機松手檢測問題,如何實現松手檢測,這里的有點問題
unsigned char key_scan(void)
{
   char  row;//DD
   char list;//áD
   char i;
   char val;
   unsigned char keyvalue[] = {0x77,0x7b,0x7d,0x7e,0xb7,0xbb,0xbd,0xbe,0xd7,0xdb,0xdd,0xde,0xe7,0xeb,0xed,0xee,};

  KEY = 0xf0;

  if(KEY != 0xf0)
  {
    delay();
    if(KEY != 0xf0)
    {
      row      = KEY&0xf0;
      KEY = 0x0f;
      list     = KEY&0x0f;
      val = row|list;
      for(i = 0; i < 16; i++)
      {
        if(val == keyvalue[i])
        {
         while(KEY != 0xf0);//松手檢測
          return i;
        }
      }
    }
  }
}


作者: HC6800-ES-V2.0    時間: 2018-9-29 08:26
看了你的程序,確實,松手檢測太簡單了,它的最大問題,就是不松手,則程序“死”在這個檢測語句處。
我是這樣寫的(不是我的首創,學習的時候,老師就是這樣教的)
  while((i<50)&&(k1==0))
   {
    Delay10ms(1);
                                    i++;
                            }
                            i=0;

作者: 歸依龍井    時間: 2018-9-29 10:40
KEY = 0xf0;你這是打算四個按鍵一起按嗎?
作者: wulin    時間: 2018-9-29 14:41
松手檢測寫錯了
錯誤:while(KEY != 0xf0);
正確:while(KEY != 0x0f);
作者: LPY_1997    時間: 2018-9-29 18:03
wulin 發表于 2018-9-29 14:41
松手檢測寫錯了
錯誤:while(KEY != 0xf0);
正確:while(KEY != 0x0f);

這樣寫也不行,我之前就是這樣寫的!
作者: 夢不虛存    時間: 2018-9-29 19:11
松手檢測可以通過簡單延時來實現,不過感覺有點浪費資源
作者: wulin    時間: 2018-9-29 20:12
LPY_1997 發表于 2018-9-29 18:03
這樣寫也不行,我之前就是這樣寫的!

是你的程序還有其它問題,這在你的程序基礎上完善后的仿真。
#include<reg52.h>
#define KEY P1
unsigned char j;
unsigned char i;
unsigned char  code table[]={
        0x01,0x02,0x03,0x04,
        0x05,0x06,0x07,0x08,
        0x09,0x0a,0x0b,0x0c,
        0x0d,0x0e,0x0f,0x10};
void delay(unsigned int x)
{
        unsigned char i;
        while(x--)
        {
                for(i=123;i>0;i--);
        }
}
void key_scan(void)
{
   char  row;//DD
   char list;//áD

   char val;
   unsigned char keyvalue[] = {0x77,0x7b,0x7d,0x7e,0xb7,0xbb,0xbd,0xbe,0xd7,0xdb,0xdd,0xde,0xe7,0xeb,0xed,0xee,};

        KEY = 0xf0;
        if(KEY != 0xf0)
        {
                delay(20);
                if(KEY != 0xf0)
                {
                        row = KEY&0xf0;
                        KEY = 0x0f;
                        list= KEY&0x0f;
                        val = row|list;
                        for(i = 0; i < 16; i++)
                        {
                                if(val == keyvalue)
                                {
                                        j=table;
                                        while(KEY != 0x0f);//松手檢測
                                        break;
                                }
                        }
                }
        }
}

void main()
{

    while(1)
    {
                key_scan();
                P3=j;
        }
}





作者: zl2168    時間: 2018-9-30 06:44
什么叫單片機松手檢測?
作者: yousunny    時間: 2018-9-30 09:17
其實想問的應該是  怎么檢查按鍵是否彈起吧?(上升沿)而不是松手檢測?
作者: mrhan1992    時間: 2018-9-30 09:28
這個和物理按鍵消抖原理不是一樣的么?如果松開按鍵為高電平的話,那就判斷1秒鐘,如果還是高電平的話不就是松手了?同理按下為低電平的話,那判斷1秒,如果還是低電平不就是松手了?
作者: ljh2688    時間: 2018-9-30 11:13
主程序做檢測,做好標記,用定時器測量時間和釋放即可
作者: LPY_1997    時間: 2018-9-30 21:14
wulin 發表于 2018-9-29 20:12
是你的程序還有其它問題,這在你的程序基礎上完善后的仿真。
#include
#define KEY P1

數組好像寫的有點問題,仿真結果確定正確嗎
作者: zl2168    時間: 2018-10-1 11:59
實例5  4種不同方式鍵控信號燈
作者: zl2168    時間: 2018-10-1 12:00
本帖最后由 zl2168 于 2018-10-1 16:07 編輯

給你介紹上升沿、上升沿延遲、下降沿、下降沿延遲等多種按鍵觸發狀態
單片機應用系統中,根據按鍵閉合和釋放狀態,有多種不同的鍵控方式,可編寫不同的程序予以實現。
本例要求按以下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, 下載次數: 7)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1.書中電路和程序設計有詳細說明,程序語句條條有注解。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人一级片在线观看 | 亚洲视频一区 | 亚洲成人av一区二区 | 国产精品永久久久久久久www | 成人免费福利视频 | 成年男女免费视频网站 | 成人在线电影网站 | 午夜精品久久 | 亚洲国产精品一区二区三区 | www亚洲精品| 羞羞的视频免费在线观看 | h视频在线播放 | 国产综合久久久久久鬼色 | 狠狠狠色丁香婷婷综合久久五月 | 午夜精品一区二区三区在线视 | 999免费视频 | 麻豆视频在线免费观看 | 国户精品久久久久久久久久久不卡 | 国产一区二区三区免费 | 国产一区视频在线 | 51ⅴ精品国产91久久久久久 | 请别相信他免费喜剧电影在线观看 | 亚洲精品久久久久久一区二区 | 成人在线精品 | 伊人网综合在线观看 | 精品国产一区二区三区久久影院 | 中文区中文字幕免费看 | 日本欧美视频 | 午夜欧美 | 午夜在线观看视频 | 精品久久久久久久 | 毛片入口 | 人人射人人| 成人欧美一区二区三区在线观看 | 免费午夜剧场 | 精品久久久久久久人人人人传媒 | 黄色免费av| av中文字幕在线播放 | h在线播放 | 久久99精品久久久久久狂牛 | 精品国产伦一区二区三区观看方式 |