标题: 单片机按键程序 [打印本页]

作者: jiaolian586    时间: 2019-6-18 08:56
标题: 单片机按键程序
#include        "config.h"
u8 xdata Kget,Kin,tkey,fkey,skey,key_buf[16];
u8 xdata JYM[2];
u8 xdata         SET_CAIDAN_one;
/*****************************************************************************

函数功能:按键处理程序

入口参数:

出口参数:

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


void key_F1()
{   

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

return;
}



/*================键盘读取功能散转子程序========*/
void   keyrcl()               
{if(Kin!=Kget)//有按键没处理        
   {           
         switch(key_buf[Kget])

         {case 0x08://F1,设置
                   {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) //缓冲区满
                  Kin=0;
                   key_buf[Kin]=skey;//键值保存
          }
     }
       fkey = skey;
       skey = tkey;
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1