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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

分享一些單片機按鍵程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:165188 發表于 2018-9-16 21:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*==================
  按鍵讀鍵函數
==================*/   
void ReadKey(void)
{  
uchar ReadData;   
ReadData=(((~(P3&0XF0))&0XF0)|(P3&0X0F));  //將前四位取反,即P3.7-P3.4 保留P3.3-P3.0的數據,【目的為將按鍵位取反,不影響其他位】   
    Trg  = ReadData & (~Cont);      // 只要有按鍵按下,在對應位會有一個脈沖,后四位不確定。如P3.4按下了,會出現一次0X1F;P3.5按下了,會出現一次0X2F;
    Cont = ReadData;                // 有按鍵按下,會出現對應編碼。
if(Cont&0xf0) // 如果按鍵不放,不處理  
   {
     KeyCnt++;   // 讀鍵次數
  KeyEffect=Cont;
  if(KeyCnt>=1000)KeyCnt=1000;
     return;
   }
else       // 鍵值發生改變
   {     
     
     if((KeyCnt>=10)&&(KeyCnt<=90))   //多次讀鍵消抖      
     {      
        KeyCnt=0;
   KeyEffect=(KeyEffect&0xf0)+80;
   KeyOpt();
   send_char_com(KeyEffect);
        if(Cont&0x10)
   {  
    BeepCnt=0x10;
    Keyflg_S2=1;
   
   }
     }      
  else if(KeyCnt>=150)   //長按      
     {                        
   BeepCnt=0x10;
      KeyCnt=0;
     }
   }  
}
/*===============
  按鍵處理子函數
=================*/
void KeyOpt(void)         
{  
  switch(KeyEffect)
  {     
    case 0:              // 空鍵  
    {      
      break;
    }
case 0xd0:              // S4鍵(P1.3)  
   {      
    BeepCnt=0x10;  
  Keyflg_S5^=1;
  LED1^=1;
      break;
   }
   case 0x90:            // S5鍵(P1.4)   
   {
    BeepCnt=0x10;
    Keyflg_S4^=1;
  LED2^=1;
      break;
    }
case 0x70:              // S6鍵(P1.5)  
   {      
    BeepCnt=0x10;
    Keyflg_S3^=1;
  LED3^=1;      
      break;
   }
    case 0x60:              // S6鍵(P1.5)  
   {      
    BeepCnt=0x10;
    Keyflg_S2^=1;
  LED4^=1;      
      break;
   }  
   default: break;
  }
}   


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

使用道具 舉報

沙發
ID:66287 發表于 2018-9-17 15:36 | 只看該作者
通過三個邏輯變量運算,確定按鍵的按下、長按、抬起,確實較妙。如果配以狀態機,則程序會更簡潔。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜桃久久| 亚洲国产精品99久久久久久久久 | 国产精品一区二区久久精品爱微奶 | 波多野结衣一区二区 | www.youjizz.com日韩| 久久久久国产一区二区三区四区 | 欧美成人手机在线 | 人人九九| 欧美精三区欧美精三区 | 久久99久久99久久 | 精品成人在线视频 | 成人欧美在线 | 久久不卡区 | 亚洲第一区久久 | 亚洲国产精品99久久久久久久久 | 亚洲精品一区二区三区丝袜 | 色接久久| 麻豆亚洲 | 在线电影日韩 | 日韩在线| 日本一区二区三区四区 | 亚洲黄色视屏 | 剑来高清在线观看 | 丝袜美腿一区二区三区动态图 | 亚洲综合第一页 | 欧美精品一区二区三区在线 | 自拍偷拍第1页 | 蜜臀久久 | 精品少妇一区二区三区在线播放 | 国产精品视频中文字幕 | 日韩高清av | 久久神马| 美美女高清毛片视频免费观看 | 成人午夜视频在线观看 | 成人午夜在线观看 | 亚洲美女网站 | 亚洲精品99 | 性欧美精品一区二区三区在线播放 | 色精品 | 国内精品久久久久久久影视简单 | hsck成人网 |