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

📄 kbd_task.lst

📁 PLL的资料文档,包括资料
💻 LST
📖 第 1 页 / 共 5 页
字号:
  22      =1  void I2c_WriteByte (Byte address, Byte bByte);
  23      =1  int dts_scanByte(void);
  24      =1  void dts_IntToByte (Byte address,int bByte);
  25      =1  void dts_MemInit (void);
  26      =1  void dts_DispMem (void);
  27      =1  
  28      =1  void HT1621_getdata(Byte address,Byte bByte);
  29      =1  extern Byte code ht1621disp_Map[];
  30      =1  //extern        idata   char    ht1621disp_Buffer[9];
  31      =1  
  32      =1  extern  idata   char    DTS_buffer[6];
  33      =1  extern  idata   int             dts_frequency;
C51 COMPILER V8.01   KBD_TASK                                                              08/07/2006 11:16:10 PAGE 9   

  34      =1  extern  idata   int             Mem_frequency;
  35      =1  extern  data    Byte    Mem_add;
  36      =1  extern  bdata   bit             DtsMen_flag ;
  18          
  19          
  20          static  Byte    kbd_state;                  /* keyboard task state */
  21          /*F**************************************************************************
  22          * NAME: kbd_task_init
  23          *----------------------------------------------------------------------------
  24          * PARAMS:
  25          *
  26          * return:
  27          *----------------------------------------------------------------------------
  28          * PURPOSE: 
  29          *   Keyboard task initialisation
  30          *----------------------------------------------------------------------------
  31          * EXAMPLE:
  32          *----------------------------------------------------------------------------
  33          * NOTE:
  34          *----------------------------------------------------------------------------
  35          * REQUIREMENTS:
  36          *****************************************************************************/
  37          void kbd_task_init (void)
  38          {
  39   1        //kbd_state = KBD_IDLE;                       /*按键任务状态(BYTE)*/
  40   1        //gl_key_press = FALSE;         /* 按键是否压住标志?,no key pressed */
  41   1        //gl_key = NO_KEY;                            /*按键值,初使状态为空*/
  42   1              kbd_init();                   /* keyboard initialization */
  43   1      }
  44          
  45          /*F**************************************************************************
  46          * NAME: ref_mode_task
  47          *----------------------------------------------------------------------------
  48          * PARAMS:
  49          *
  50          * return:
  51          *----------------------------------------------------------------------------
  52          * PURPOSE: 
  53          *   Mode task 
  54          *----------------------------------------------------------------------------
  55          * EXAMPLE:
  56          *----------------------------------------------------------------------------
  57          * NOTE:
  58          *   STATES:
  59          *   MODE_BOOT     boot state
  60          *   MODE_DOWNLOAD file download mode
  61          *   MODE_SONG     song playing mode
  62          *   MODE_VOICE    voice playing & recording mode
  63          *   MODE_TOOL     tool mode
  64          *   MODE_IDLE     idle mode (switch back to first task)
  65          *----------------------------------------------------------------------------
  66          * REQUIREMENTS:
  67          *****************************************************************************/
  68          void ref_mode_task (void)
  69          {
  70   1              kbd_process();
  71   1              //if((!MPOWER)&&(gl_key != KEY_MainPower)){
  72   1              //      ;
  73   1              //      }
  74   1              //else {  
  75   1                      switch(gl_key)
  76   1                      {
C51 COMPILER V8.01   KBD_TASK                                                              08/07/2006 11:16:10 PAGE 10  

  77   2                              case    KEY_BAND:
  78   2                                              if(kbd_process()){
  79   3                                                      //P1_5 = ~P1_5;
  80   3                                                      if(vol_flag == High) break;
  81   3                                                      dts_AutoScan();
  82   3                                                      gl_key_repeat = TRUE;
  83   3                                                      gl_key = NO_KEY;
  84   3                                                      }
  85   2                                              break;
  86   2      
  87   2                              case    KEY_FF:
  88   2                                              if(kbd_process()){
  89   3                                                      if(vol_flag == High) break;
  90   3                                                      if(CDPOWER){
  91   4                                                              if(!DtsMen_flag){       /* if the state is setp ,dec and inc */
  92   5                                                                      dts_FerInc();
  93   5                                                                      dts_GetFer();
  94   5                                                                      disp_state = DISP_INIT;
  95   5                                                                      gl_key_repeat = TRUE;
  96   5                                                                      gl_key = NO_KEY;
  97   5                                                                      }
  98   4                                                              else {
  99   5                                                                      //Mem_add += 0x02;
 100   5                                                                      dts_MemWriteFer();
 101   5                                                                      }
 102   4                                                              }
 103   3                                                      }
 104   2                                              break;
 105   2      
 106   2                              case    KEY_FR:
 107   2                                              if(kbd_process()){
 108   3                                                      //P1_5 = ~P1_5;
 109   3                                                      if(vol_flag == High) break;
 110   3                                                      dts_FerDec();
 111   3                                                      dts_GetFer();
 112   3                                                      disp_state = DISP_INIT;
 113   3                                                      gl_key_repeat = TRUE;
 114   3                                                      gl_key = NO_KEY;
 115   3                                                      }
 116   2                                              break;
 117   2      
 118   2                              case    KEY_MainPower:
 119   2                                              if(kbd_process()){
 120   3                                                      MPOWER = ~MPOWER;
 121   3                                                      if(MPOWER) sch_scheduler_init();
 122   3                                                      vol_flag = Low;
 123   3                                                      disp_state = DISP_INIT;
 124   3                                                      gl_key_repeat = TRUE;
 125   3                                                      gl_key = NO_KEY;
 126   3                                                      }
 127   2                                              break;
 128   2      
 129   2                              case    KEY_VOL_INC:
 130   2                                              if(gl_kbd_tick>KEY_LOOP){
 131   3                                                      if(vol_value<32){
 132   4                                                              vol_value++;
 133   4                                                              I2c_WriteByte (SC7313_ADD, VOL_Step_Map[vol_value]);
 134   4                                                              gl_kbd_tick = 0;
 135   4                                                              vol_tick = 0;
 136   4                                                              disp_state = DISP_INIT;
 137   4                                                              vol_flag = High;
 138   4                                                              }
C51 COMPILER V8.01   KBD_TASK                                                              08/07/2006 11:16:10 PAGE 11  

 139   3                                                      }
 140   2                                                      if((vol_value == 32)&&(vol_flag == 0)){
 141   3                                                              vol_flag = High;
 142   3                                                              disp_state = DISP_INIT;
 143   3                                                              }
 144   2                                                      gl_key = NO_KEY;
 145   2                                              break;
 146   2      
 147   2                              case    KEY_VOL_DEC:
 148   2                                              if(gl_kbd_tick>KEY_LOOP){
 149   3                                                      if(vol_value>0){
 150   4                                                              vol_value--;
 151   4                                                              I2c_WriteByte (SC7313_ADD, VOL_Step_Map[vol_value]);
 152   4                                                              gl_kbd_tick = 0;
 153   4                                                              vol_tick = 0;
 154   4                                                              disp_state = DISP_INIT;
 155   4                                                              vol_flag = High;
 156   4                                                              }
 157   3                                                      }
 158   2                                                      if((vol_value == 0)&&(vol_flag == 0)){
 159   3                                                              vol_flag = High;
 160   3                                                              disp_state = DISP_INIT;
 161   3                                                              }
 162   2                                                      gl_key = NO_KEY;
 163   2                                              break;
 164   2      
 165   2                              case    KEY_EQ_PROG:
 166   2                                              if(kbd_process()){
 167   3                                                      if(vol_flag == High) break;
 168   3                                                      if(CDPOWER){
 169   4                                                              dts_MemReadFer();
 170   4                                                              }
 171   3                                                      gl_key_repeat = TRUE;
 172   3                                                      gl_key = NO_KEY;
 173   3                                                      }
 174   2                                              break;
 175   2      
 176   2                              case    KEY_ALBUM:
 177   2                                              if(kbd_process()){
 178   3                                                      //P1_5 = ~P1_5;
 179   3                                                      if(vol_flag == High) break;
 180   3                                                      if(CDPOWER){
 181   4                                                              //dts_MemReadFer();
 182   4                                                              DtsMen_flag = ~DtsMen_flag;
 183   4                                                              disp_state = DISP_INIT;
 184   4                                                              }
 185   3                                                      gl_key_repeat = TRUE;
 186   3                                                      gl_key = NO_KEY;
 187   3                                                      }
 188   2                                              break;
 189   2      
 190   2                              case    KEY_CD:
 191   2                                              if(kbd_process()){
 192   3                                                      CDPOWER = Low;
 193   3                                                      gl_key_repeat = TRUE;
 194   3                                                      gl_key = NO_KEY;
 195   3                                                      }
 196   2                                              break;
 197   2      
 198   2                              case    KEY_RADIO:
 199   2                                              if(kbd_process()){
 200   3                                                      CDPOWER = High;
C51 COMPILER V8.01   KBD_TASK                                                              08/07/2006 11:16:10 PAGE 12  

 201   3                                                      gl_key_repeat = TRUE;
 202   3                                                      gl_key = NO_KEY;
 203   3                                                      }
 204   2                                              break;
 205   2      
 206   2                              case    KEY_TAPE:
 207   2                                              if(kbd_process()){
 208   3                                                      TAPE_POWER = ~TAPE_POWER;
 209   3                                                      gl_key_repeat = TRUE;
 210   3                                                      gl_key = NO_KEY;
 211   3                                                      }
 212   2                                              break;
 213   2      
 214   2                              default : ;
 215   2                      }
 216   1              //}
 217   1      }
 218          
 219          /*F**************************************************************************
 220          * NAME: kbd_task
 221          *----------------------------------------------------------------------------
 222          * PARAMS:
 223          *
 224          * return:
 225          *----------------------------------------------------------------------------
 226          * PURPOSE: 
 227          *   Keyboard task
 228          *----------------------------------------------------------------------------
 229          * EXAMPLE:
 230          *----------------------------------------------------------------------------
 231          * NOTE:
 232          *----------------------------------------------------------------------------
 233          * REQUIREMENTS:
 234          *****************************************************************************/
 235          void kbd_task (void)                                    /*键盘时间间隔状态判断子程序*/
 236          {
 237   1              kbd_task_init();
 238   1              //gl_key = kbd_decode();            /* 读键盘键值,程序段在kbd_drv.c文件,read key pressed */
 239   1              //if(gl_key != NO_KEY) {
 240   1              if(kbd_decode()) {
 241   2                      DelayX1ms(8);                             /* 防抖动8mS */
 242   2                      }
 243   1                      if( kbd_decode()){
 244   2                              gl_key = kbd_decode();           /* Key value detect,return the key operation value */

⌨️ 快捷键说明

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