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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我寫了一段行列按鍵掃描程序松手檢測加那里?求高手指點

[復制鏈接]
跳轉到指定樓層
樓主
ID:166459 發表于 2017-3-11 17:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
uchar keyscan()
{
uchar keyl,keyh;
uchar key;  
         {
         P1=0Xf0;
         keyl=P1;  
         keyl=keyl&0xf0;   
         if(keyl!=0xf0)     
                {
                 delay(5);
                   if(keyl!=0xf0)  
                      {
                           keyl=P1&0xf0; //1110 0000  
                           keyl=keyl|0x0f;//1110 1111
                           P1=keyl;                                          
                           keyh=P1;                                               
                           keyh=keyh&0x0f;//0000 1110       
                           keyl=keyl&0xf0;//1110 0000
                           key=keyl+keyh; //1110 1110         
                          }
                }
                switch(key)
                    {
                             case 0xee: num=4;
                             break;
                                 case 0xde: num=3;
                             break;
                                  case 0xbe: num=2;
                             break;
                        }       
                   }                                                                              
return num;          
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:7485 發表于 2017-3-11 19:48 | 只看該作者
檢測到有鍵按下后(一般是某IO=0),延時后該IO=1即為該鍵已放開。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:155507 發表于 2017-3-12 10:30 | 只看該作者
  1. uchar keyscan()
  2. {
  3.         uchar keyl,keyh;
  4.         uchar key;  
  5.         {
  6.                 P1=0Xf0;
  7.                 keyl=P1;  
  8.                 keyl=keyl&0xf0;   
  9.                 if(keyl!=0xf0)     
  10.                 {
  11.                         delay(5);
  12.                         if(keyl!=0xf0)  
  13.                         {
  14.                                 keyl=P1&0xf0; //1110 0000  
  15.                                 keyl=keyl|0x0f;//1110 1111
  16.                                 P1=keyl;                                          
  17.                                 keyh=P1;                                                
  18.                                 keyh=keyh&0x0f;//0000 1110        
  19.                                 keyl=keyl&0xf0;//1110 0000
  20.                                 key=keyl+keyh; //1110 1110  
  21.                                 while((P1&0xf0)!=0xf0);//等待松開并輸出      
  22.                         }
  23.                 }
  24.                 switch(key)
  25.                 {
  26.                 case 0xee: num=4;
  27.                         break;
  28.                 case 0xde: num=3;
  29.                         break;
  30.                 case 0xbe: num=2;
  31.                         break;
  32.                 }        
  33.         }                                                                              
  34.         return num;         
  35. }

復制代碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:166459 發表于 2017-3-13 10:04 | 只看該作者
修改后,按鍵數字不變化,
回復

使用道具 舉報

5#
ID:166459 發表于 2017-3-13 10:20 | 只看該作者
ahshmj 發表于 2017-3-11 19:48
檢測到有鍵按下后(一般是某IO=0),延時后該IO=1即為該鍵已放開。

檢測到有鍵按下后,延時,確認,松開,執行按下的內容該I,要這樣的結果
回復

使用道具 舉報

6#
ID:151348 發表于 2017-3-13 16:53 | 只看該作者
2樓的方法應該可行,關鍵就是while((P1&0xf0)!=0xf0);//等待松開并輸出   

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:103117 發表于 2017-3-13 17:13 | 只看該作者
加在按鍵執行完后面key(!key)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:167675 發表于 2017-3-13 18:17 | 只看該作者
不需要松手檢測吧 畫蛇添竹了吧 是微動開關嗎 只要防抖動就行了

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:111634 發表于 2017-3-13 21:44 | 只看該作者
有兩種方式,一種是確認按鍵按下就動作,另一種是確認按鍵按下后等待按鍵釋放后再動作。
回復

使用道具 舉報

10#
ID:7485 發表于 2017-3-14 14:50 | 只看該作者
horishi 發表于 2017-3-13 10:20
檢測到有鍵按下后,延時,確認,松開,執行按下的內容該I,要這樣的結果

看不明白你說的是什么問題了。你說的“檢測到有鍵按下后,延時,確認,松開,執行按下的內容該I,要這樣的結果”,這是按鍵應有的功能。

你是不是要說“一直按住不放,執行一個功能,松開后執行另一個功能”?

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

11#
ID:166459 發表于 2017-3-15 09:38 | 只看該作者
你是不是要說“一直按住不放,執行一個功能,松開后執行另一個功能”?
這個不對

我是說“一個功能 在按住時不執行,松開后才執按鍵應有的功能。即松手檢測
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产一区二区三区在线观看 | 久久99精品国产99久久6男男 | 狠狠色综合网站久久久久久久 | 国产成人小视频 | 国内精品久久久久 | 精品日韩一区二区 | 色婷婷综合网 | 亚洲日本欧美日韩高观看 | 欧美精品网站 | 亚洲综合久久精品 | 欧美日韩久 | 日韩中文视频 | 伊人爽| 一区二区三区欧美大片 | 成年人在线观看 | 一区二区三区久久 | 亚洲va欧美va天堂v国产综合 | 久久精品黄色 | 日韩激情视频一区 | 99精品网 | 91久久看片 | 在线成人免费av | 男女羞羞视频在线免费观看 | 亚洲美女网站 | 日韩手机在线视频 | 99热激情| 国产主播第一页 | 国产蜜臀| 精精国产视频 | 亚洲视频一区在线 | 日韩一区中文字幕 | 国产亚洲一区二区三区在线观看 | 久久久久久网站 | 久久99国产精一区二区三区 | 日韩欧美一区在线 | 欧美日本在线 | 久久久久国产一区二区三区 | 一级毛片在线播放 | 精品久久一区二区三区 | 日韩色视频 | 久久久久亚洲精品国产 |