keyproc.lst

来自「一个带收音的功放程序, VFD显示驱动用一个非常实用的方法, 稍加修改即可换成不」· LST 代码 · 共 804 行 · 第 1/5 页

LST
804
字号
C51 COMPILER V7.20   KEYPROC                                                               06/30/2005 14:02:57 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE KEYPROC
OBJECT MODULE PLACED IN keyproc.OBJ
COMPILER INVOKED BY: C:\Keil51\C51\BIN\c51.exe keyproc.c DB OE SMALL ROM(LARGE)

line level    source

   1          #include "reg52.h"
   2          #include "intrins.h"
   3          #include "..\..\inc\globedef.h"
   4          #include "..\..\inc\keyproc.h"
   5          #include "..\..\inc\vfddef.h"
   6          #include "..\..\inc\delay.h"
   7          #include "..\..\inc\m61538.h"
   8          #include "..\..\inc\keydef.h"
   9          #include "..\..\inc\tuner.h"
  10          #include "..\..\inc\i2c.h"
  11          code    BYTE    IR_KEY_TBL[] =
  12          {
  13                  NO_KEY,                //0
  14                  KEY_1,                 //1
  15                  VOLUME_UP_KEY,         //2      
  16                  KEY_3,                 //3      
  17                  KEY_4,                 //4
  18                  KEY_0,                 //5
  19                  KEY_5PLUS,             //6
  20                  CHANNEL_STEPR_KEY,     //7
  21                  CHANNEL_STEPF_KEY,     //8
  22                  MEMORY_KEY,            //9
  23                  CHANNEL_PREV_KEY,      //10
  24                  CHANNEL_NEXT_KEY,      //11
  25                  KEY_MINUS,             //12
  26                  FUNCTION_KEY,          //13
  27                  KEY_PLUS,              //14
  28                  NO_KEY,                //15
  29                  NO_KEY,                //16
  30                  NO_KEY,                //17
  31                  FMAM_KEY,              //18
  32                  VOLUME_DOWN_KEY,       //19
  33                  CHANNEL_FB_KEY,        //20
  34                  CHANNEL_FF_KEY,        //21
  35                  MUTE_KEY,              //22
  36                  NO_KEY,                //23
  37                  KEY_PLUS,              //24
  38                  FUNCTION_KEY,          //25
  39                  POWER_KEY,             //26
  40                  MEMORY_KEY,            //27
  41                  AUTO_SCAN_KEY,         //28
  42                  NO_KEY,                //29
  43                  KEY_2,                 //30
  44                  SOURCE_KEY,            //31
  45                  NO_KEY                 //32             
  46          };
  47          
  48          /*=======================================================
  49          设置输入源选择
  50          =======================================================*/
  51          void Source_Set()
  52          {       
  53   1              VFD_ICON_Display(0);
  54   1              switch(Current_State)
  55   1              {
C51 COMPILER V7.20   KEYPROC                                                               06/30/2005 14:02:57 PAGE 2   

  56   2      
  57   2                      case TUNER: 
  58   2                                              CD4053_SELECT = 0;
  59   2                                              Pin_4052B = 1;
  60   2                                              Pin_4052A = 1;
  61   2                                              VFD_DisplayString("TUNER", 5);  
  62   2                                              Change_Tuner_Mode();
  63   2                                              //Tuner();
  64   2                                              break;
  65   2                      case AUX1: 
  66   2                                              CD4053_SELECT = 0;
  67   2                                              Pin_4052B = 0;
  68   2                                              Pin_4052A = 1;
  69   2                                              VFD_DisplayString("AUX 1", 5);
  70   2                                              
  71   2                                              break;                  
  72   2                      case AUX2: 
  73   2                                              CD4053_SELECT = 0;
  74   2                                              Pin_4052B = 0;
  75   2                                              Pin_4052A = 0;
  76   2                                              VFD_DisplayString("AUX 2", 5);
  77   2                                              break;
  78   2                      case CH5: 
  79   2                                              CD4053_SELECT = 1;                                      
  80   2                                              VFD_DisplayString("6CH  ", 5);
  81   2                                              
  82   2                                              break;
  83   2              }
  84   1              
  85   1      }
  86          
  87          
  88          
  89          /*=====================================================================
  90                                    按键处理函数
  91          POWER_KEY具有最高优先级别
  92          在MUTE状态下,只有POWER_KEY和VOLUME_KEY有作用
  93          有三种按键输入,VFD面板按键,遥控输入按键,飞梭滚轮输入按键
  94          =====================================================================*/
  95          void KEY_Proc()
  96          {       
  97   1              static BYTE KEY_TEMP[3];
  98   1              
  99   1              if((1 == Panel_KeyAct) || (1 == IR_KeyAct) || (1 == Jog_KeyAct))
 100   1              {
 101   2                      //遥控按键有效
 102   2                      if(1 == IR_KeyAct)
 103   2                      {
 104   3                              if(Remote_value < 64)
 105   3                                      Current_Key  =  IR_KEY_TBL[Remote_value];
 106   3                              else
 107   3                                      Current_Key  =  NO_KEY;
 108   3                              
 109   3                              IR_KeyAct = 0;
 110   3      
 111   3                              //恢复出厂默认值, 方便开机时频率设置成默认值
 112   3                              if(POWER_Status == 0)//power_off状态
 113   3                              {
 114   4                                      KEY_TEMP[2] = KEY_TEMP[1];
 115   4                                      KEY_TEMP[1] = KEY_TEMP[0];
 116   4                                      KEY_TEMP[0] = Current_Key;
 117   4                                      if((KEY_TEMP[2] == FUNCTION_KEY) && (KEY_TEMP[1] == KEY_0) 
C51 COMPILER V7.20   KEYPROC                                                               06/30/2005 14:02:57 PAGE 3   

 118   4                                                  && (KEY_TEMP[0] == KEY_5PLUS))
 119   4                                      {
 120   5                                              I2C_PutByte(A24C02, Channel_Test, 0xFF);                                        
 121   5                                      }
 122   4                              }
 123   3      
 124   3                      }
 125   2                  //飞梭旋钮按键有效
 126   2                      else if(1 == Jog_KeyAct)
 127   2                      {
 128   3                              if(1 == Jog_Key)
 129   3                                      Current_Key = VOLUME_UP_KEY;
 130   3                              else if(2 == Jog_Key)
 131   3                                      Current_Key = VOLUME_DOWN_KEY;
 132   3                              Jog_KeyAct = 0;
 133   3                              Jog_Key = 0;
 134   3                      }
 135   2                      //面板按键有效
 136   2                      else if(1 == Panel_KeyAct)
 137   2                      {
 138   3                              if(8 == Panel_Key)
 139   3                                      Current_Key = POWER_KEY;                        
 140   3                              else if(4 == Panel_Key)
 141   3                                      Current_Key = SOURCE_KEY;
 142   3                              else                            
 143   3                                      Current_Key = NO_KEY;
 144   3                              Panel_KeyAct = 0;
 145   3                              Panel_Key = 0;
 146   3                      }                               
 147   2                      if(Current_Key == POWER_KEY)
 148   2                      {       

⌨️ 快捷键说明

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