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

📄 kbd_drv.lst

📁 基于AT89C51SND1的MP3的程序设计(包括播放mp3和录音功能)
💻 LST
字号:
C51 COMPILER V7.06   KBD_DRV                                                               05/05/2005 12:12:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KBD_DRV
OBJECT MODULE PLACED IN kbd_drv.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lib_mcu\kbd\kbd_drv.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.\;.
                    -\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\kbd_drv.lst) OBJECT(kbd_drv.obj)

stmt level    source

   1          /*C**************************************************************************
   2          * NAME:         kbd_drv.c
   3          *----------------------------------------------------------------------------
   4          * Copyright (c) 2003 Atmel.
   5          *----------------------------------------------------------------------------
   6          * RELEASE:      snd1c-refd-nf-4_0_3      
   7          * REVISION:     1.10     
   8          *----------------------------------------------------------------------------
   9          * PURPOSE:
  10          * This file contains the keypad driver routines
  11          *
  12          * NOTES:
  13          * Driver Configuration:
  14          *   - KBD_EXIT_PD in config.h define as:
  15          *      TRUE:  to allow exit of power down by keyboard
  16          *      FALSE: to disallow exit of power down by keyboard
  17          *   - LOCK_ROW in config.h
  18          *   - KEY_LOCK in config.h
  19          * Global Variables:
  20          *   - gl_kbd_lock in bdata space
  21          *****************************************************************************/
  22          
  23          /*_____ I N C L U D E S ____________________________________________________*/
  24          
  25          #include "config.h"                         /* lib configuration header */
  26          #include "kbd_drv.h"                        /* Keyboard driver definition */
  27          
  28          
  29          /*_____ M A C R O S ________________________________________________________*/
  30          
  31          
  32          /*_____ D E F I N I T I O N ________________________________________________*/
  33          
  34          static  bdata   bit     gl_kbd_lock;
  35          
  36          /*_____ D E C L A R A T I O N ______________________________________________*/
  37          
  38          static  void    kbd_set_prio (Byte);
  39          static  void    kbd_install (void);
  40          
  41          
  42          /*F**************************************************************************
  43          * NAME: kbd_init
  44          *----------------------------------------------------------------------------
  45          * PARAMS:
  46          *
  47          * return:
  48          *----------------------------------------------------------------------------
  49          * PURPOSE: 
  50          *   Keyboard initialisation function
  51          *----------------------------------------------------------------------------
  52          * EXAMPLE:
  53          *----------------------------------------------------------------------------
  54          * NOTE:
C51 COMPILER V7.06   KBD_DRV                                                               05/05/2005 12:12:02 PAGE 2   

  55          *----------------------------------------------------------------------------
  56          * REQUIREMENTS:
  57          * ram/xram:
  58          * cycle:
  59          * stack: 
  60          * code:
  61          *****************************************************************************/
  62          void kbd_init (void)
  63          {
  64   1        gl_kbd_lock = (!LOCK_ROW);    /* Lock Key decoding */
  65   1        kbd_install();
  66   1      }
  67          
  68          
  69          /*F**************************************************************************
  70          * NAME: kbd_install
  71          *----------------------------------------------------------------------------
  72          * PARAMS:
  73          *
  74          * return:
  75          *----------------------------------------------------------------------------
  76          * PURPOSE: 
  77          *   Keyboard IT and columns mask init
  78          *----------------------------------------------------------------------------
  79          * EXAMPLE:
  80          *----------------------------------------------------------------------------
  81          * NOTE:
  82          *----------------------------------------------------------------------------
  83          * REQUIREMENTS:
  84          * ram/xram:
  85          * cycle:
  86          * stack: 
  87          * code:
  88          *****************************************************************************/
  89          void kbd_install (void)
  90          {
  91   1        if (gl_kbd_lock)
  92   1        {
  93   2          KBCON = KB_LCK;
  94   2              P_KBD = MSK_LCK;
  95   2        }
  96   1        else
  97   1        {
  98   2          KBCON = KB_STD;
  99   2              P_KBD = MSK_LCK;
 100   2        }
 101   1        KBSTA = KBSTA;                /* dummy read for clearing pending interrupt */
 102   1      }
 103          
 104          
 105          
 106          /*F**************************************************************************
 107          * NAME: kbd_decode
 108          *----------------------------------------------------------------------------
 109          * PARAMS:
 110          *
 111          * return:
 112          *   Decoded key pressed
 113          *----------------------------------------------------------------------------
 114          * PURPOSE: 
 115          *   Decode the key that generated an IT
 116          *----------------------------------------------------------------------------
C51 COMPILER V7.06   KBD_DRV                                                               05/05/2005 12:12:02 PAGE 3   

 117          * EXAMPLE:
 118          *----------------------------------------------------------------------------
 119          * NOTE:
 120          *----------------------------------------------------------------------------
 121          * REQUIREMENTS:
 122          * ram/xram:
 123          * cycle:
 124          * stack: 
 125          * code:
 126          *****************************************************************************/
 127          Byte kbd_decode (void)
 128          {
 129   1      Byte key;
 130   1      
 131   1        if (gl_kbd_lock)
 132   1        {
 133   2          gl_kbd_lock = FALSE;
 134   2          kbd_install();
 135   2          return (KEY_LOCK);
 136   2        }
 137   1        else
 138   1        {
 139   2                key = P_KBD;
 140   2            kbd_install();
 141   2            return (key);
 142   2         }
 143   1      }
 144          
 145          
 146          /*F**************************************************************************
 147          * NAME: kbd_int
 148          *----------------------------------------------------------------------------
 149          * PARAMS:
 150          *
 151          * return:
 152          *----------------------------------------------------------------------------
 153          * PURPOSE: 
 154          *   Keyboard interrupt function
 155          *----------------------------------------------------------------------------
 156          * EXAMPLE:
 157          *----------------------------------------------------------------------------
 158          * NOTE:
 159          *   This isr is called when a key is pressed to get out power-down Interrupt
 160          *   is re-enable in the install routine
 161          *----------------------------------------------------------------------------
 162          * REQUIREMENTS:
 163          * ram/xram:
 164          * cycle:
 165          * stack: 
 166          * code:
 167          *****************************************************************************/
 168          #if KBD_EXIT_PD
              Interrupt(kbd_int (void), IRQ_KBD)
              {
                Kbd_disable_int();              /* disable interrupt */
              }
              #endif
 174          
 175          
 176          


C51 COMPILER V7.06   KBD_DRV                                                               05/05/2005 12:12:02 PAGE 4   

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


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

⌨️ 快捷键说明

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