⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.h

📁 逆变、电瓶充电、数控电源、开关电源
💻 H
字号:
#ifndef _key_H__
#define _key_H__

#define uchar unsigned char
#define uint unsigned int
#define row0_scan XBYTE[0x8FEF]
#define row1_scan XBYTE[0x8FDF]
#define row2_scan XBYTE[0x8FBF]
#define row3_scan XBYTE[0x8F7F]//行地址
//按键编码
unsigned char code key_value_tab[4][4]=
{
	 7,8,9,10,
	 4,5,6,11,
	 1,2,3,12,
     14,0,13,15
};	

uint key=0;
uint press_time;
uchar key_input_display=0;
uint  dac_value;
sbit fmq=P3^0;

uchar  key_scan( void )
{
	uchar i=0;
	static uchar row=0,line=0,value=0;
	for(i=0;i<4;i++)
	{
	   switch(i)
	    {
		    case 0 : value=row0_scan;  break;
            case 1 : value=row1_scan;  break;
            case 2 : value=row2_scan;  break;
            case 3 : value=row3_scan;  break;
            default: break;
		 }
	   if((value & 0x0f) != 0x0f)	//判断是否有键按下
		 {
          value &= 0x0f;
          row=i;
          switch(value)
				{
					case 0x0e: line=0;  break;
					case 0x0d: line=1;  break;
					case 0x0b: line=2;  break;
	                case 0x07: line=3;  break;
					default:   break;
				}
          return(key_value_tab[row][line]); 
		 }
   }
   return(0xff);
}

void input_dac_value()
{
	uchar temp=0;
	static uchar flag=0;
	temp = key_scan();
	
	if(temp==0xff) flag=1;
	
	if((temp != 0xff) && (flag==1)) 
	  {         
	    flag=0;
	    key = temp;
		fmq=0;
	    if(key<10 && (key_input_display==1)) 
	    {	
		  press_time++; 
	      switch(press_time)
		     {
			     case 2:  dac_value=key*1000; break;					
				 case 3:  dac_value=dac_value+key*100  ;  break;
	             case 4:  dac_value=dac_value+key*10;  break;
	         	 case 5:  dac_value=dac_value+key;  break;
				 default: break;
			  } 
		  }
	
		switch(key)
	    {
		   case 14: {key_input_display=1; press_time++; key=0; fmq=0;}; break;//设置
		   case 13: {key_input_display=0; press_time=0; fmq=0;};  break;//确认                    
		   case 15: {dac_value=0;fmq=0;}; break;//清零
		   case 10:	{dac_value+=10;fmq=0;}; break;//递加
		   case 11: {dac_value-=10;fmq=0;}; break;//递减
	       default: break;
	    }
	  }  	  
} 
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -