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

📄 disp_task.lst

📁 这是atmel公司的89C51SND1C的mp3源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.20c  DISP_TASK                                                             07/10/2002 15:17:39 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE DISP_TASK
OBJECT MODULE PLACED IN ..\obj\disp_task.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\src\display\disp_task.c BROWSE INCDIR(..\src\system;..\..\..\lib) DEFINE
                    -(KEIL) DEBUG OBJECTEXTEND PRINT(.\disp_task.lst) OBJECT(..\obj\disp_task.obj) 

stmt level    source

   1          /*C**************************************************************************
   2          * $RCSfile: disp_task.c,v $
   3          *----------------------------------------------------------------------------
   4          * Copyright (c) 2002 Atmel.
   5          *----------------------------------------------------------------------------
   6          * RELEASE:      $Name: DEMO_FAT_1_2_5 $      
   7          * REVISION:     $Revision: 1.5 $     
   8          * FILE_CVSID:   $Id: disp_task.c,v 1.5 2002/06/06 15:20:49 ffosse Exp $       
   9          *----------------------------------------------------------------------------
  10          * PURPOSE:
  11          * This file contains the display task and attached routines
  12          *
  13          * NOTES:
  14          * Global Variables:
  15          *   - gl_cpt_tick:  global tick counter in data space
  16          *****************************************************************************/
  17          
  18          /*_____ I N C L U D E S ____________________________________________________*/
  19          
  20          #include "config.h"                         /* system configuration */
  21          #include "..\file\file.h"                   /* file definition */
  22          #include "..\display\disp.h"                /* display definition */
  23          #include "..\mass\sbc.h"                    /* SBC commands definition */
  24          #include "disp_task.h"                      /* display task definition */
  25          
  26          
  27          /*_____ M A C R O S ________________________________________________________*/
  28          
  29          
  30          /*_____ D E F I N I T I O N ________________________________________________*/
  31          
  32          extern  data    Byte    gl_cpt_tick;        /* general tick counter */
  33          
  34          static  bdata   bit     disp_scroll_on;     /* set to TRUE to scroll name */
  35          static  bdata   bit     disp_clock_on;      /* set to TRUE to start clock */
  36          static  data    Byte    disp_sec_cpt;       /* second counter */
  37          static  data    Byte    disp_min_cpt;       /* minute counter */
  38          static  data    char pdata *  disp_buffer;
  39          
  40          static  data    Byte    disp_state;         /* task state */
  41          
  42          
  43          /*_____ D E C L A R A T I O N ______________________________________________*/
  44          
  45          
  46          /*F**************************************************************************
  47          * NAME: disp_task_init
  48          *----------------------------------------------------------------------------
  49          * PARAMS:
  50          *
  51          * return:
  52          *----------------------------------------------------------------------------
  53          * PURPOSE: 
  54          *   Display task initialization
C51 COMPILER V6.20c  DISP_TASK                                                             07/10/2002 15:17:39 PAGE 2   

  55          *----------------------------------------------------------------------------
  56          * EXAMPLE:
  57          *----------------------------------------------------------------------------
  58          * NOTE:
  59          *----------------------------------------------------------------------------
  60          * REQUIREMENTS:
  61          *****************************************************************************/
  62          void disp_task_init (void)
  63          {
  64   1        disp_scroll_on = FALSE;
  65   1        disp_clock_on = FALSE;
  66   1        disp_state = DISP_IDLE;
  67   1        print_init();
  68   1      }
  69          
  70          
  71          /*F**************************************************************************
  72          * NAME: disp_task
  73          *----------------------------------------------------------------------------
  74          * PARAMS:
  75          *
  76          * return:
  77          *----------------------------------------------------------------------------
  78          * PURPOSE: 
  79          *   Display task handling display of clock and scrolling of file name
  80          *----------------------------------------------------------------------------
  81          * EXAMPLE:
  82          *----------------------------------------------------------------------------
  83          * NOTE:
  84          *----------------------------------------------------------------------------
  85          * REQUIREMENTS:
  86          *****************************************************************************/
  87          void disp_task (void)
  88          {
  89   1        switch (disp_state)
  90   1        {
  91   2          case DISP_IDLE:
  92   2          {
  93   3            if (sbc_wr_busy)
  94   3            {
  95   4              Lcd_cur_on();                       /* blinking cursor for .5 sec */
  96   4              sbc_wr_busy = FALSE;
  97   4              gl_cpt_tick = 0;
  98   4              disp_state = DISP_MS_BUSY;
  99   4            }
 100   3            break;
 101   3          }
 102   2      
 103   2          case DISP_INIT:
 104   2          {
 105   3            disp_state = DISP_TICK0;
 106   3            gl_cpt_tick = 0;
 107   3            disp_buffer = File_get_name();
 108   3            if (print_name(disp_buffer) != TRUE)  /* test if not short name */
 109   3            {
 110   4              disp_scroll_on = TRUE;              /* activate name scrolling */
 111   4            }
 112   3            else
 113   3            {
 114   4              disp_scroll_on = FALSE;             /* no scrolling */
 115   4            }
 116   3            break;
C51 COMPILER V6.20c  DISP_TASK                                                             07/10/2002 15:17:39 PAGE 3   

 117   3          }
 118   2      
 119   2          case DISP_TICK0:
 120   2          {
 121   3            if (gl_cpt_tick > DISP_TICK_500)      /* 1/2 sec expiration */
 122   3            {
 123   4              gl_cpt_tick -= DISP_TICK_500;
 124   4              if (disp_scroll_on)
 125   4              {
 126   5                if (print_name(disp_buffer))
 127   5                {
 128   6                  disp_buffer = File_get_name();
 129   6                }
 130   5                else
 131   5                {
 132   6                  disp_buffer++;
 133   6                }
 134   5              }
 135   4              disp_state = DISP_TICK1;
 136   4            }
 137   3            break;
 138   3          }
 139   2      
 140   2          case DISP_TICK1:
 141   2          {
 142   3            if (gl_cpt_tick > DISP_TICK_500)      /* 1/2 sec expiration */
 143   3            {
 144   4              gl_cpt_tick -= DISP_TICK_500;
 145   4              if (disp_scroll_on)
 146   4              {
 147   5                if (print_name(disp_buffer))
 148   5                {
 149   6                  disp_buffer = File_get_name();
 150   6                }
 151   5                else
 152   5                {
 153   6                  disp_buffer++;
 154   6                }
 155   5              }
 156   4              if (disp_clock_on)
 157   4              {
 158   5                disp_state = DISP_SEC;
 159   5              }
 160   4              else
 161   4              {
 162   5                disp_state = DISP_TICK0;
 163   5              }
 164   4            }
 165   3            break;
 166   3          }
 167   2      
 168   2          case DISP_SEC:
 169   2          {
 170   3            if (disp_sec_cpt == DISP_SEC_MIN)     /* 1 min expiration */
 171   3            {
 172   4              disp_sec_cpt = 0;
 173   4              print_sec(disp_sec_cpt);
 174   4              disp_state = DISP_MIN;
 175   4            }
 176   3            else
 177   3            {
 178   4              disp_sec_cpt++;
C51 COMPILER V6.20c  DISP_TASK                                                             07/10/2002 15:17:39 PAGE 4   

 179   4              print_sec(disp_sec_cpt);
 180   4              disp_state = DISP_TICK0;
 181   4            }
 182   3            break;
 183   3          }
 184   2      
 185   2          case DISP_MIN:
 186   2          {
 187   3            disp_min_cpt++;
 188   3            print_min(disp_min_cpt);

⌨️ 快捷键说明

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