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

📄 key_task.c

📁 atmel at89c51snd1c mp3芯片方案源码
💻 C
字号:
//key_task.c
#include "config.h"                         /* system configuration */
#include "lib_mcu\clock\clock.h"            /* clock definition */
#include "lib_mcu\kbd\key_drv.h"
#include "modules\song\song_drv.h"                       /* song driver definition */
#include "lib_mcu\remote\remote_drv.h"



Byte       key_mode;
Byte       key_mode_last;
extern     Byte    song_sound;                 /* save the selected sound */
extern     bit     gl_key_press;       /* TRUE when a key is decoded */
extern     Byte    gl_key;             /* value of the key pressed */
extern  bit       gl_rmt_ok;



////////////////////////////////////////////////////////////////////////////////
void key_song_task_init(void)
{
   key_mode_last =0xff;
   key_mode = MP3_PLAY_MODE;
   gl_key_press = 0;
}

////////////////////////////////////////////////////////////////////////////////
void key_cdrom_task_init(void)
{
    gl_key_press = 0;
}

////////////////////////////////////////////////////////////////////////////////
void key_cdrom_task(void)
{
   INT8U u8KeyCode;

   u8KeyCode = kbd_decode();  

   if(0 == u8KeyCode)
   {
      u8KeyCode = remote_value();
      switch(u8KeyCode)
      {
          case  REMOTE_1:
          case  REMOTE_2: 
          case  REMOTE_3:
          case  REMOTE_4: 
          case  REMOTE_5:
          case  REMOTE_6: 
          case  REMOTE_7:
          case  REMOTE_8: 
          case  REMOTE_9:
                gl_key_press = TRUE;
                gl_key = u8KeyCode;
          break;

          case  REMOTE_CHUP:
                gl_key_press = TRUE;
                gl_key = KEY_NEXT;
          break;

          case  REMOTE_CHDN:
                gl_key_press = TRUE;
                gl_key = KEY_PREV;
          break;

          case  REMOTE_MUTE:
                gl_key_press = TRUE;
                gl_key = KEY_PLAY;
          break; 

          case  REMOTE_POWN:
                gl_key_press = TRUE;
                gl_key = KEY_OPEN;
          break; 

          case  REMOTE_VOUP:
                gl_key_press = TRUE;
                gl_key = KEY_INC;
          break; 

          case  REMOTE_VODN:
                gl_key_press = TRUE;
                gl_key = KEY_DEC;
          break; 
      }
      gl_rmt_ok = 0;
      return; 
   }

   switch(u8KeyCode)
   {
      case KEY_0:
           gl_key_press = TRUE;
           gl_key = KEY_PLAY;
      break;

      case KEY_1:
           gl_key_press = TRUE;
           gl_key = KEY_OPEN;
      break;

      case KEY_2:
           gl_key_press = TRUE;
           gl_key = KEY_PREV;
      break;

      case KEY_3:
           gl_key_press = TRUE;
           gl_key = KEY_NEXT;
      break;

      default:
           gl_key_press = FALSE;
      break;
   }  
}



////////////////////////////////////////////////////////////////////////////////
void key_song_task(void)
{
   INT8U u8KeyCode;

   ////////////////key board detect///////////////
   u8KeyCode = kbd_decode();
   ////////////////remote detect//////////////////
   if(0 == u8KeyCode)
   {  
     u8KeyCode = remote_value();
	 switch(u8KeyCode)
	 {
	    case REMOTE_MUTE:
		     u8KeyCode = KEY_0;  
		break;

		case REMOTE_VOUP:
		     u8KeyCode = KEY_1;  
		break;

	    case REMOTE_CHUP:
		     u8KeyCode = KEY_3;  
		break;

		case REMOTE_CHDN:
		     u8KeyCode = KEY_2;  
		break;

		default:
		break;
	 }
     gl_rmt_ok = 0;
   }
 

   switch(key_mode)
   {
      //-------------------------------------------------------------------------
      case MP3_PLAY_MODE:
           switch(u8KeyCode)
           {
              case KEY_0:
                   gl_key_press = TRUE;
                   gl_key = KEY_PLAY;
              break;

              case KEY_1:
                   gl_key_press = TRUE;
                   gl_key = KEY_MODE;
                   key_mode = MP3_VOL_MODE;
                   song_sound = SND_VOLUME;
              break;

              case KEY_2:
                   gl_key_press = TRUE;
                   gl_key = KEY_PREV;
              break;

              case KEY_3:
                   gl_key_press = TRUE;
                   gl_key = KEY_NEXT;
              break;

              default:
                   gl_key_press = FALSE;
              break;
           }
      break;
      //-------------------------------------------------------------------------
      case MP3_VOL_MODE:
           switch(u8KeyCode)
           {
              case KEY_0:
                   gl_key_press = TRUE;
                   gl_key = KEY_PLAY;
              break;

              case KEY_1:
                   gl_key_press = TRUE;
                   gl_key = KEY_MODE;
                   key_mode = MP3_BASS_MODE;
                   song_sound = SND_BASS;
              break;

              case KEY_2:
                   gl_key_press = TRUE;
                   gl_key = KEY_DEC;
              break;

              case KEY_3:
                   gl_key_press = TRUE;
                   gl_key = KEY_INC;
              break;

              default:
                   gl_key_press = FALSE;
              break;

           }
      break;
      //-------------------------------------------------------------------------
      case MP3_BASS_MODE:
           switch(u8KeyCode)
           {
              case KEY_0:
                   gl_key_press = TRUE;
                   gl_key = KEY_PLAY;
              break;

              case KEY_1:
                   gl_key_press = TRUE;
                   gl_key = KEY_MODE;
                   key_mode = MP3_MED_MODE;
                   song_sound = SND_MEDIUM;
              break;

              case KEY_2:
                   gl_key_press = TRUE;
                   gl_key = KEY_DEC;
              break;

              case KEY_3:
                   gl_key_press = TRUE;
                   gl_key = KEY_INC;
              break;

              default:
                   gl_key_press = FALSE;
              break;

           }
      break;
      //-------------------------------------------------------------------------
      case MP3_MED_MODE:
           switch(u8KeyCode)
           {
              case KEY_0:
                   gl_key_press = TRUE;
                   gl_key = KEY_PLAY;
              break;

              case KEY_1:
                   gl_key_press = TRUE;
                   gl_key = KEY_MODE;
                   key_mode = MP3_TRE_MODE;
                   song_sound = SND_TREBLE;
              break;

              case KEY_2:
                   gl_key_press = TRUE;
                   gl_key = KEY_DEC;
              break;

              case KEY_3:
                   gl_key_press = TRUE;
                   gl_key = KEY_INC;
              break;

              default:
                   gl_key_press = FALSE;
              break;

           }
      break;
      //-------------------------------------------------------------------------
      case MP3_TRE_MODE:
           switch(u8KeyCode)
           {
              case KEY_0:
                   gl_key_press = TRUE;
                   gl_key = KEY_PLAY;
              break;

              case KEY_1:
                   gl_key_press = TRUE;
                   gl_key = KEY_MODE;
                   key_mode = MP3_BOOST_MODE;
                   song_sound = SND_BBOOST;
              break;

              case KEY_2:
                   gl_key_press = TRUE;
                   gl_key = KEY_DEC;
              break;

              case KEY_3:
                   gl_key_press = TRUE;
                   gl_key = KEY_INC;
              break;

              default:
                   gl_key_press = FALSE;
              break;

           }
      break;
      //-------------------------------------------------------------------------
      case MP3_BOOST_MODE:
           switch(u8KeyCode)
           {
              case KEY_0:
                   gl_key_press = TRUE;
                   gl_key = KEY_PLAY;
              break;

              case KEY_1:
                   gl_key_press = TRUE;
                   gl_key = KEY_MODE;
                   key_mode = MP3_PLAY_MODE;
              break;

              case KEY_2:
                   gl_key_press = TRUE;
                   gl_key = KEY_NOBOOST;
              break;

              case KEY_3:
                   gl_key_press = TRUE;
                   gl_key = KEY_BOOST;
              break;

              default:
                   gl_key_press = FALSE;
              break;
           }  
      break;
      //-------------------------------------------------------------------------
      default:
	  break;
   }
}




⌨️ 快捷键说明

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