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

📄 key.bak

📁 nec16位单片机读U盘播放MP3源码
💻 BAK
字号:
#pragma sfr
#pragma di
#pragma ei
#pragma nop

#include "define.h"
#include "common.h"
unsigned char keyvld,keyvld_old ;
unsigned char key_flag ;
bit key_flag_F ;
unsigned char key_tmr ;
unsigned char key_data[3] ;
unsigned char play_mode ;
/****** flash precess variable   ******/
unsigned char sound_counter;
extern unsigned int S2_count;
//***************function declare******************
void Key_init(void);
void Key_hd(void);
void Key_scan(void);
unsigned char Key_judge(void);
void Con_key(void);
//***************8*********************************


 /****************************/
 /****************************/
 void Key_init(void)
 {
  unsigned char i;
  for(i=0;i<3;i++)key_data[i] = 0 ;
  key_tmr = 0;
  keyvld = 0;
  keyvld_old = 0 ;
  key_flag_F = (bit)0;
  play_mode=0;
  return;
  }

  /****************************/
  /****************************/
void Key_hd(void)
{
 Key_scan();
 if(key_tmr != 0)
    key_tmr--;
 else {
      key_tmr = 2 ;  // value:2  ; 
	  if(Key_judge() == KEYOK)  // KEYOK = 1 
	     Con_key();
	  }
 return;
 }

void Key_scan(void)
{
  key_data[0] = (~P12)&0xf8;    // get P12.5,P12.6,P12.7
  key_data[2]=key_data[1];
  key_data[1]=key_data[0];
  return;	   
}

unsigned char  Key_judge(void)
{
     if(key_data[0] == key_data[1])
     {
		if(key_data[1] == key_data[2])return(1);
     }
     else return(0);
}

void Con_key(void)
{
  switch(key_data[1])
  {
   case 0x80:
         keyvld = S1_KEY; // S1_KEY = 1 
		 break;
   case 0x40:
         keyvld = S2_KEY;
		 break;
   case 0x20:
         keyvld = S3_KEY;
	     break;
   case 0x10:
         keyvld = S4_KEY;
		 break;
   case 0x08:
         keyvld = S5_KEY;
	     break;
	     
  default :
	     keyvld = NOKEY;
		 break;
   }
   if(keyvld == NOKEY)
      {
	     keyvld_old = keyvld ;
		 key_flag_F = 0;
      }
   else 
   	{
   	if(keyvld != keyvld_old)
        {
        	if(keyvld!=S2_KEY)
        	{
	           key_flag_F = 1;
	           keyvld_old = keyvld;
	           S2_count=0;
        	}
        	else 
        	{
        	   S2_count=1;
        	  keyvld_old=keyvld;
	       }
	  }
   	else if(keyvld==S2_KEY)
   		{
		if (S2_count>600) 
	          { 
	            key_flag_F = 1;
	            keyvld_old = keyvld;
	            S2_count=0;
        	   }      	
   		}
   	}
      return;
  }

⌨️ 快捷键说明

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