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

📄 keyproc.lst

📁 一个带收音的功放程序, VFD显示驱动用一个非常实用的方法, 稍加修改即可换成不同的VFD, 功放芯片用M61538
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.20   KEYPROC                                                               07/16/2005 13:42:40 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE KEYPROC
OBJECT MODULE PLACED IN ..\output\keyproc.obj
COMPILER INVOKED BY: C:\Keil51\C51\BIN\C51.EXE ..\source\KERNEL\keyproc.c BROWSE DEBUG OBJECTEXTEND CODE PRINT(..\output
                    -\keyproc.lst) OBJECT(..\output\keyproc.obj)

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)
C51 COMPILER V7.20   KEYPROC                                                               07/16/2005 13:42:40 PAGE 2   

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

 117   4                                                  && (KEY_TEMP[0] == KEY_5PLUS))
 118   4                                      {
 119   5                                              I2C_PutByte(A24C02, Channel_Test, 0xFF);                                        
 120   5                                      }
 121   4                              }
 122   3      
 123   3                      }
 124   2                  //飞梭旋钮按键有效
 125   2                      else if(1 == Jog_KeyAct)
 126   2                      {
 127   3                              if(1 == Jog_Key)
 128   3                                      Current_Key = VOLUME_UP_KEY;
 129   3                              else if(2 == Jog_Key)
 130   3                                      Current_Key = VOLUME_DOWN_KEY;
 131   3                              Jog_KeyAct = 0;
 132   3                              Jog_Key = 0;
 133   3                      }
 134   2                      //面板按键有效
 135   2                      else if(1 == Panel_KeyAct)
 136   2                      {
 137   3                              if(8 == Panel_Key)
 138   3                                      Current_Key = POWER_KEY;                        
 139   3                              else if(4 == Panel_Key)
 140   3                                      Current_Key = SOURCE_KEY;
 141   3                              else                            
 142   3                                      Current_Key = NO_KEY;
 143   3                              Panel_KeyAct = 0;
 144   3                              Panel_Key = 0;
 145   3                      }                               
 146   2                      if(Current_Key == POWER_KEY)
 147   2                      {       
 148   3                              Power_Proc();
 149   3                      }
 150   2                      else if(POWER_Status == 1)
 151   2                      {
 152   3                              {
 153   4                                      if( (Current_Key != MEMORY_KEY ) && (Current_Key != KEY_0)
 154   4                                              &&(Current_Key != KEY_1 ) && (Current_Key != KEY_2)
 155   4                                              &&(Current_Key != KEY_3 ) && (Current_Key != KEY_4)
 156   4                                              &&(Current_Key != KEY_5PLUS))
 157   4                                              
 158   4                                              Memory_Start = 0;//记忆标志清零
 159   4                                      
 160   4                                      switch(Current_Key)
 161   4                                      {
 162   5                                       
 163   5                                              //FL-FR音量调节加函数,音量的调节使用M62429
 164   5                                              case VOLUME_UP_KEY:
 165   5                                                       Proc_Volume_UP();                                               
 166   5                                                       break;
 167   5                               
 168   5                                              case VOLUME_DOWN_KEY:
 169   5                                                       Proc_Volume_DOWN(); 
 170   5                                                       break;
 171   5              
 172   5                                              case SOURCE_KEY:        
 173   5                                                       Mute_Switch = 0;
 174   5                                                       AV_STANDBY = 0;
 175   5                                                       if(Current_State == CH5)
 176   5                                                       {
 177   6                                                               Current_State =  TUNER;
 178   6                                                       }
C51 COMPILER V7.20   KEYPROC                                                               07/16/2005 13:42:40 PAGE 4   

 179   5                                                       else
 180   5                                                               Current_State++;
 181   5                                                       Source_Set();  
 182   5                                                       TO_MAIN_DISPLAY = 40;
 183   5                                                       break;                                                                                 
 184   5                                                       
 185   5                                              case FUNCTION_KEY:                                               
 186   5                                                       Proc_FUNCTION_Key();                                           
 187   5                                                       break;
 188   5                                                       
 189   5                                              case KEY_MINUS:  
 190   5                                              case KEY_PLUS:  
 191   5                                                       Proc_KEYPLUSorMinus();
 192   5                                                       break;
 193   5                                                       
 194   5                                              case CHANNEL_STEPR_KEY:
 195   5                                                       Tuner_Step(0);
 196   5                                                       break;
 197   5                                                       
 198   5                                              case CHANNEL_STEPF_KEY:
 199   5                                                       Tuner_Step(1);
 200   5                                                       break;  
 201   5                                                       
 202   5                                              case CHANNEL_FF_KEY:
 203   5                                                       if(Current_State == TUNER)
 204   5                                                               Proc_Tuner_FF_KEY();                                                                                           
 205   5                                                       break;
 206   5                                                       
 207   5                                              case CHANNEL_FB_KEY:
 208   5                                                       if(Current_State == TUNER)
 209   5                                                               Proc_Tuner_FB_KEY();                                            
 210   5                                                       break;
 211   5                                                       
 212   5                                              case AUTO_SCAN_KEY: 
 213   5                                                       if(Current_State == TUNER)
 214   5                                                               Proc_Tuner_AUTOSCAN_KEY();                                              
 215   5                                                       break;
 216   5      
 217   5                                              case CHANNEL_NEXT_KEY:
 218   5                                                       if(Current_State == TUNER)
 219   5                                                              Proc_Tuner_NEXT_KEY();
 220   5                                                       break;
 221   5                                                       
 222   5                                              case CHANNEL_PREV_KEY:
 223   5                                                       if(Current_State == TUNER)
 224   5                                                              Proc_Tuner_PREV_KEY();
 225   5                                                       break;
 226   5                                                       
 227   5                                              case FMAM_KEY:
 228   5                                                       if(Current_State == TUNER)
 229   5                                                       {
 230   6                                                               AV_STANDBY = 1;
 231   6                                                               Proc_FMAM_Change();
 232   6                                                               AV_STANDBY = 0;
 233   6                                                       }
 234   5                                                       break;
 235   5                                                       

⌨️ 快捷键说明

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