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

📄 kbd_task.lst

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


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

stmt level    source

   1          /*C**************************************************************************
   2          * $RCSfile: kbd_task.c,v $
   3          *----------------------------------------------------------------------------
   4          * Copyright (c) 2002 Atmel.
   5          *----------------------------------------------------------------------------
   6          * RELEASE:      $Name: DEMO_FAT_1_2_5 $      
   7          * REVISION:     $Revision: 1.2 $     
   8          * FILE_CVSID:   $Id: kbd_task.c,v 1.2 2002/06/07 15:44:39 ffosse Exp $       
   9          *----------------------------------------------------------------------------
  10          * PURPOSE:
  11          * This file contains the keyboard task and attached routines
  12          *
  13          * NOTES:
  14          * Global Variables:
  15          *   - gl_key_press: bit in bdata space
  16          *   - gl_key:       byte in idata space
  17          *   - gl_kbd_tick:  byte in data space
  18          *****************************************************************************/
  19          
  20          /*_____ I N C L U D E S ____________________________________________________*/
  21          
  22          #include "config.h"                         /* system configuration */
  23          #include "..\..\..\..\lib_demob\board.h"    /* board definition */
  24          #include "..\..\..\..\lib\kbd\kbd_drv.h"    /* Keyboard driver definition */
  25          #include "kbd_task.h"                       /* Keyboard task definition */
  26          
  27          
  28          /*_____ M A C R O S ________________________________________________________*/
  29          
  30          
  31          /*_____ D E F I N I T I O N ________________________________________________*/
  32          
  33          extern  bdata   bit     gl_key_press;   /* set to TRUE if a key is decoded */
  34          extern  idata   Byte    gl_key;         /* value of the key pressed */
  35          extern  data    Byte    gl_kbd_tick;    /* keypad tick counter */
  36          
  37          static  Byte    kbd_state;              /* keyboard task state */
  38          
  39          
  40          /*_____ D E C L A R A T I O N ______________________________________________*/
  41          
  42          
  43          /*F**************************************************************************
  44          * NAME: kbd_task_init
  45          *----------------------------------------------------------------------------
  46          * PARAMS:
  47          *
  48          * return:
  49          *----------------------------------------------------------------------------
  50          * PURPOSE: 
  51          *   Keyboard task initialisation
  52          *----------------------------------------------------------------------------
  53          * EXAMPLE:
  54          *----------------------------------------------------------------------------
C51 COMPILER V6.20c  KBD_TASK                                                              07/10/2002 15:17:39 PAGE 2   

  55          * NOTE:
  56          *----------------------------------------------------------------------------
  57          * REQUIREMENTS:
  58          *****************************************************************************/
  59          void kbd_task_init (void)
  60          {
  61   1        kbd_state = KBD_IDLE;
  62   1        gl_key_press = FALSE;         /* no key pressed */
  63   1        gl_key = NO_KEY;
  64   1        kbd_init();                   /* keyboard initialization */
  65   1      }
  66          
  67          
  68          /*F**************************************************************************
  69          * NAME: kbd_task
  70          *----------------------------------------------------------------------------
  71          * PARAMS:
  72          *
  73          * return:
  74          *----------------------------------------------------------------------------
  75          * PURPOSE: 
  76          *   Keyboard task
  77          *----------------------------------------------------------------------------
  78          * EXAMPLE:
  79          *----------------------------------------------------------------------------
  80          * NOTE:
  81          *----------------------------------------------------------------------------
  82          * REQUIREMENTS:
  83          *****************************************************************************/
  84          void kbd_task (void)
  85          {
  86   1        switch (kbd_state)
  87   1        {
  88   2          case KBD_IDLE:
  89   2            if (Kbd_key_pressed())
  90   2            {
  91   3              gl_kbd_tick = KBD_DEBOUNCE_INIT;  /* init debounce timer */
  92   3              kbd_state = KBD_DEBOUNCE;
  93   3            }
  94   2            break;
  95   2      
  96   2          case KBD_DEBOUNCE:
  97   2            if (gl_kbd_tick > KBD_DEBOUNCE_TEMPO)
  98   2            {
  99   3              kbd_state = KBD_DECODE;
 100   3            }
 101   2            break;
 102   2      
 103   2          case KBD_DECODE:
 104   2            gl_key = kbd_decode();              /* read key pressed */
 105   2            if (gl_key != NO_KEY)               /* if real key pressed */
 106   2              gl_key_press = TRUE;              /* signal to other tasks */
 107   2            kbd_state = KBD_IDLE;
 108   2            break;
 109   2      
 110   2          default:
 111   2            break;
 112   2        }
 113   1      }
 114          
 115          /*F**************************************************************************
 116          * NAME: kbd_set_stop
C51 COMPILER V6.20c  KBD_TASK                                                              07/10/2002 15:17:39 PAGE 3   

 117          *----------------------------------------------------------------------------
 118          * PARAMS:
 119          *
 120          * return:
 121          *----------------------------------------------------------------------------
 122          * PURPOSE: 
 123          *   Simulate STOP key press
 124          *----------------------------------------------------------------------------
 125          * EXAMPLE:
 126          *----------------------------------------------------------------------------
 127          * NOTE:
 128          *   Called from mode task before switching to download state
 129          *----------------------------------------------------------------------------
 130          * REQUIREMENTS:
 131          *****************************************************************************/
 132          void kbd_set_stop (void)
 133          {
 134   1        gl_key = KEY_STOP;
 135   1        gl_key_press = TRUE;
 136   1        kbd_state = KBD_IDLE;
 137   1      }
 138          
 139          
 140          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     80    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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