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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3748|回復: 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 單片機教程網

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