找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1271|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)按鍵程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:375265 發(fā)表于 2019-6-18 08:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include        "config.h"
u8 xdata Kget,Kin,tkey,fkey,skey,key_buf[16];
u8 xdata JYM[2];
u8 xdata         SET_CAIDAN_one;
/*****************************************************************************

函數(shù)功能:按鍵處理程序

入口參數(shù):

出口參數(shù):

*****************************************************************************/


void key_F1()
{   

return;
}
//=============================================================================
void key_F2()
{   
}
//==============================================================================
void key_F3()
{   

return;
}



/*================鍵盤讀取功能散轉(zhuǎn)子程序========*/
void   keyrcl()               
{if(Kin!=Kget)//有按鍵沒處理        
   {           
         switch(key_buf[Kget])

         {case 0x08://F1,設(shè)置
                   {key_F1();                                                                        
                                        break;//鍵啟
                   }
                      case 0x10://F2,+
                           { key_F2();//data_order=0xE3;mrx[3]=0x55;mrx[5]=0xaa ;
                                       break;
                                           }
                       case 0x20://F3 -
                           {   key_F3();                                    
                                       break;
                                             }
                                       
          default : ;      //無效
          }
     Kget=Kget+1;
         if(Kget>=16)
         Kget=0;         
         KEY_PULL_flag=1;
         T200ms =0;
         energy_save_flag=0;                  
  }  
   return;
}
//=鍵值保存子程序===============================
void   keyread()          using 2
{
   u8 temp;
   temp =  P2 ;      //讀取按鍵信息
   temp = (~ temp)&0x38;      //取反
   tkey = temp;
   if(tkey == skey)  //去抖有效
     { if(fkey!=skey)  //判斷是否新鍵按下
         {        
          Kin=Kin+1;
                  if(Kin>=16) //緩沖區(qū)滿
                  Kin=0;
                   key_buf[Kin]=skey;//鍵值保存
          }
     }
       fkey = skey;
       skey = tkey;
}

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表