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

📄 disp_task.lst

📁 atmel at89c51snd1c mp3芯片方案源码
💻 LST
字号:
C51 COMPILER V7.50   DISP_TASK                                                             02/16/2009 09:59:55 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DISP_TASK
OBJECT MODULE PLACED IN disp_task.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE modules\display\disp_task.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\disp_ta
                    -sk.lst) OBJECT(disp_task.obj)

line level    source

   1          
   2          #include "config.h"                 /* system configuration */
   3          #include "lib_mcu\kbd\key_drv.h"    /* Keyboard driver definition */
   4          #include "modules\song\song_drv.h"  /* song driver definition */
   5          #include "modules\file\file.h"      /* file definition */
   6          #include "disp_task.h"              /* display task definition */
   7          #include "lib_mcu\lcd\lcd_drv.h"                   /* display definition */
   8          #include <stdio.h>
   9          
  10          
  11          extern Byte    key_mode_last;
  12          extern Byte    key_mode;
  13          extern Byte    song_sound;
  14          
  15          extern  data    Byte    gl_cpt_tick;        /* general tick counter */
  16          
  17          static  data    Byte    disp_state;         /* task state */
  18          static  bdata   bit     disp_clock_on;      /* set to TRUE to start clock */
  19          static  data    Byte    disp_sec_cpt;       /* second counter */
  20          static  data    Byte    disp_min_cpt;       /* minute counter */
  21          static  bdata   bit     disp_clock_on;      /* set to TRUE to start clock */
  22          
  23          
  24          static  data    char pdata *  disp_buffer;
  25          
  26          
  27          
  28          void print_repeat(bit a)
  29          {
  30   1       a=a;
  31   1      }
  32          
  33          void print_state_error()
  34          {
  35   1      }
  36          
  37          void disp_name_stop()
  38          {
  39   1      }
  40          
  41          void disp_end_of_play()
  42          {
  43   1      }
  44          
  45          /////////////////////////////////////////////////////////////////////////////////////
  46          void print_init (void)
  47          {
  48   1        lcd_ini();                              /* lcd initialization */
  49   1      }
  50          
  51          ////////////////////////////////////////////////////////////////////////////////////
  52          void print_state_play(void)
  53          { 
  54   1        lcd_print_string(22,">>");
C51 COMPILER V7.50   DISP_TASK                                                             02/16/2009 09:59:55 PAGE 2   

  55   1      }
  56          
  57          ////////////////////////////////////////////////////////////////////////////////////
  58          void print_state_pause()
  59          {
  60   1       lcd_print_string(22,"||");
  61   1      }
  62          
  63          /*
  64          ////////////////////////////////////////////////////////////////////////////////////
  65          bit print_name (char pdata *string)
  66          {
  67          #if CONF_DISPLAY == LCD
  68            lcd_set_cur(POS_FILE);
  69            lcd_putchar(*string++);
  70            lcd_putchar(*string++);
  71            lcd_putchar(*string++);
  72            lcd_putchar(*string++);
  73            lcd_putchar(*string++);
  74            lcd_putchar(*string++);
  75            lcd_putchar(*string++);
  76            lcd_putchar(*string++);
  77            lcd_putchar(*string++);
  78            lcd_putchar(*string++);
  79            lcd_putchar(*string++);
  80            lcd_putchar(*string++);
  81            lcd_putchar(*string++);
  82            lcd_putchar(*string++);
  83            return (*string == '\0');
  84          #else
  85            if (string);
  86            return 1;
  87          #endif
  88          }
  89          */
  90          
  91          
  92          ////////////////////////////////////////////////////////////////////////////////////
  93          void print_file_name()
  94          {
  95   1      #if CONF_DISPLAY == LCD
  96   1        switch(File_type())                       /* print file type icon */
  97   1        {
  98   2          case FILE_DIR:
  99   2            lcd_print_string(18,"DIR");     /* select directory icon */
 100   2            break;
 101   2      
 102   2          case FILE_MP3:
 103   2            lcd_print_string(18,"MP3");      /* select song icon */
 104   2            break;
 105   2      
 106   2          case FILE_WAV:
 107   2            lcd_print_string(18,"WAV");     /* select voice icon */
 108   2            break;
 109   2      
 110   2          default:
 111   2            lcd_print_string(16,"   ");    /* select voice icon */
 112   2            break;
 113   2        }
 114   1      #endif
 115   1        //disp_name_start();                        /* start name display */
 116   1        disp_buffer = File_get_name();
C51 COMPILER V7.50   DISP_TASK                                                             02/16/2009 09:59:55 PAGE 3   

 117   1        lcd_print_string(0x40, disp_buffer);
 118   1      }
 119          
 120          
 121          ////////////////////////////////////////////////////////////////////////////////////
 122          void print_key_mode(void)
 123          {
 124   1         switch(key_mode)
 125   1         {
 126   2            case MP3_PLAY_MODE:
 127   2                 lcd_print_string(10,"PLAY");
 128   2                break;
 129   2      
 130   2            case MP3_VOL_MODE:
 131   2                 lcd_print_string(10,"VOLU");
 132   2                break;
 133   2      
 134   2            case MP3_BASS_MODE:
 135   2                 lcd_print_string(10,"BASS");
 136   2                break;
 137   2      
 138   2            case MP3_MED_MODE:
 139   2                 lcd_print_string(10,"MEDI");
 140   2                break;
 141   2      
 142   2            case MP3_TRE_MODE:
 143   2                 lcd_print_string(10,"TREB");
 144   2                break;
 145   2      
 146   2            case MP3_BOOST_MODE:
 147   2                 lcd_print_string(10,"BOOS");
 148   2                break;
 149   2      
 150   2                default:
 151   2                break;
 152   2         }
 153   1         
 154   1      }
 155          
 156          
 157          ///////////////////////////////////////////////////////////////////////////////
 158          void print_sound_level()
 159          {
 160   1        INT8U pStr[9] = "         ";
 161   1      
 162   1        INT16U u16Value;
 163   1      
 164   1        u16Value = song_get_level();
 165   1      
 166   1        switch (song_sound)
 167   1        {
 168   2           case SND_VOLUME:
 169   2                    sprintf(pStr, "VOLU:%02d\0", u16Value);
 170   2                lcd_print_string(0x51, pStr);
 171   2           break;
 172   2      
 173   2           case SND_BASS:
 174   2                    sprintf(pStr, "BASS:%02d\0", u16Value);
 175   2                lcd_print_string(0x51, pStr);
 176   2           break;
 177   2              
 178   2           case SND_MEDIUM:
C51 COMPILER V7.50   DISP_TASK                                                             02/16/2009 09:59:55 PAGE 4   

 179   2                    sprintf(pStr, "MEDI:%02d\0", u16Value);
 180   2                lcd_print_string(0x51, pStr);       
 181   2               break;
 182   2      
 183   2           case SND_TREBLE:
 184   2                    sprintf(pStr, "TREB:%02d\0", u16Value);
 185   2                lcd_print_string(0x51, pStr);       
 186   2               break;
 187   2      
 188   2           case SND_BBOOST:
 189   2                    sprintf(pStr, "BBST:%02d\0", u16Value);
 190   2                lcd_print_string(0x51, pStr);       
 191   2               break;
 192   2      
 193   2           case SND_NONDIS: 
 194   2                sprintf(pStr, "       ");
 195   2                lcd_print_string(0x51, pStr); 
 196   2           break;
 197   2         }               
 198   1      }
 199          
 200          
 201          ///////////////////////////////////////////////////////////////////////////////
 202          void print_min(INT8U u8Min)
 203          { 
 204   1         INT8U pStr[4];
 205   1         INT16U u16Min;
 206   1         u16Min = u8Min;
 207   1      
 208   1         sprintf(pStr, "%02d:\0", u16Min);
 209   1         lcd_print_string(0x4a, pStr);        
 210   1      }
 211          
 212          ///////////////////////////////////////////////////////////////////////////////
 213          void print_sec(INT8U u8Sec)
 214          {
 215   1         INT8U pStr[3];
 216   1         INT16U u16Sec;
 217   1         u16Sec = u8Sec;
 218   1      
 219   1         sprintf(pStr, "%02d\0", u16Sec);
 220   1         lcd_print_string(0x4d, pStr);
 221   1      }
 222          
 223          
 224          ///////////////////////////////////////////////////////////////////////////////
 225          void print_time(INT8U u8Min,INT8U u8Sec)
 226          {
 227   1         print_min(u8Min);
 228   1         print_sec(u8Sec);
 229   1      }
 230          
 231          
 232          ///////////////////////////////////////////////////////////////////////////////
 233          void disp_clock_reset (void)
 234          {
 235   1        disp_clock_on = FALSE;
 236   1        disp_sec_cpt = 0;
 237   1        disp_min_cpt = 0;
 238   1        print_time(0, 0);                         /* display 0:00 */
 239   1      }
 240          
C51 COMPILER V7.50   DISP_TASK                                                             02/16/2009 09:59:55 PAGE 5   

 241          
 242          ///////////////////////////////////////////////////////////////////////////////
 243          void disp_clock_start (void)
 244          {
 245   1        disp_clock_on = TRUE;
 246   1      }
 247          
 248          
 249          ///////////////////////////////////////////////////////////////////////////////
 250          void disp_clock_stop (void)
 251          {
 252   1        disp_clock_on = FALSE;
 253   1      }
 254          
 255          ///////////////////////////////////////////////////////////////////////////////
 256          void disp_cdrom_time(INT8U u8Track,INT8U u8Min,INT8U u8Sec)
 257          { 
 258   1         INT8U pStr[20];
 259   1      
 260   1         INT16U u16Track,u16Min,u16Sec;
 261   1         u16Track = u8Track;
 262   1         u16Min   = u8Min;
 263   1         u16Sec   = u8Sec;
 264   1         sprintf(pStr, "Track %02d  %02d:%02d", u16Track,u16Min,u16Sec);
 265   1         lcd_print_string(0x09, pStr);
 266   1      }
 267          
 268          
 269          
 270          
 271          
 272          ///////////////////////////////////////////////////////////////////////////////
 273          void disp_task_init(void)
 274          {  
 275   1         disp_clock_on = FALSE;
 276   1         disp_state = DISP_INIT;
 277   1         //print_init();
 278   1      }
 279          
 280          ///////////////////////////////////////////////////////////////////////////////
 281          void disp_task (void)
 282          {
 283   1        switch (disp_state)
 284   1        {
 285   2          case DISP_IDLE:
 286   2          {
 287   3             break;
 288   3          }
 289   2      
 290   2          case DISP_INIT:
 291   2          {
 292   3            disp_state = DISP_TICK0;
 293   3            gl_cpt_tick = 0;
 294   3            break;
 295   3          }
 296   2      
 297   2          case DISP_TICK0:
 298   2          {
 299   3            disp_state = DISP_TICK1;
 300   3            break;
 301   3          }
 302   2      
C51 COMPILER V7.50   DISP_TASK                                                             02/16/2009 09:59:55 PAGE 6   

 303   2          case DISP_TICK1:
 304   2          {
 305   3            if (gl_cpt_tick > DISP_TICK_SEC)      /* 1/2 sec expiration */
 306   3            {
 307   4              gl_cpt_tick -= DISP_TICK_SEC;
 308   4              if (disp_clock_on)
 309   4              {
 310   5                disp_state = DISP_SEC;
 311   5              }
 312   4              else
 313   4              {
 314   5                disp_state = DISP_TICK0;
 315   5              }
 316   4            }
 317   3            break;
 318   3          }
 319   2      
 320   2          case DISP_SEC:
 321   2          {
 322   3            if (disp_sec_cpt == DISP_SEC_MIN)     /* 1 min expiration */
 323   3            {
 324   4              disp_sec_cpt = 0;
 325   4              print_sec(disp_sec_cpt);
 326   4              disp_state = DISP_MIN;
 327   4            }
 328   3            else
 329   3            {
 330   4              disp_sec_cpt++;
 331   4              print_sec(disp_sec_cpt);
 332   4              disp_state = DISP_TICK0;
 333   4            }
 334   3            break;
 335   3          }
 336   2      
 337   2          case DISP_MIN:
 338   2          {
 339   3            disp_min_cpt++;
 340   3            print_min(disp_min_cpt);
 341   3            disp_state = DISP_TICK0;
 342   3            break;
 343   3          }
 344   2        }
 345   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    656    ----
   CONSTANT SIZE    =    159    ----
   XDATA SIZE       =   ----      43
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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