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

📄 menu.lst

📁 这是一个成熟的用于驱动步进马达的程序,我们用于调试螺钉的.
💻 LST
字号:
C51 COMPILER V8.15   MENU                                                                  10/29/2008 21:06:48 PAGE 1   


C51 COMPILER V8.15, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN MENU.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MENU.C COMPACT BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include "TypeDefines.h"
   3          #include "delay.h"
   4          #include "MENU.h"
   5          #include "1335c51.h"
   6          
   7          
   8          uchar idata KeyFuncIndex = 0;
   9          uchar idata LastKeyIndex = 0;
  10          void (*KeyFuncPtr)();           //按键功能函数指针
  11          
  12          void (*ptr)();
  13          
  14          typedef struct
  15          {
  16                  uchar KeyStateIndex;    //当前状态索引号
  17              uchar KeyEsState;           //按下“ESC”键时转向的状态索引号
  18                  uchar KeyMeState;               //按下“MENU”键时转向的状态索引号
  19              uchar KeyLeState;           //按下“LEFT”键时转向的状态索引号
  20              uchar KeyUpState;           //按下“UP”键时转向的状态索引号
  21                  uchar KeyDnState;               //按下“DOWN”键时转向的状态索引号      
  22                  uchar KeyRiState;               //按下“RIGHT”键时转向的状态索引号
  23                  uchar KeyCrState;               //按下“ENTER”键时转向的状态索引号     
  24                  void (*CurrentOperate)();//当前状应该执行的功能操作
  25          }KbdTabStruct;
  26          
  27          
  28          KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]=
  29          {
  30            //   E   M    L   U   D   R   C    *
  31            
  32            {0,  0, 1,   0,  0,  0,  0, 0, &operation0},
  33            {1,  0, 13, 10, 2,  3,  4, 13, &operation1},
  34            {2,  0, 13, 10, 2,  3,  4, 13, &operation2},
  35            {3,  0, 13, 10, 2,  3,  4, 13, &operation3},
  36            {4,  0, 13, 1,  5,  6,  7, 13, &operation4},
  37            {5,  0, 13, 1,  5,  6,  7, 13, &operation5},
  38            {6,  0, 13, 1,  5,  6,  7, 13, &operation6},
  39            {7,  0, 13, 4,  8,  9,  10,13, &operation7},
  40            {8,  0, 13, 4,  8,  9,  10,13, &operation8},
  41            {9,  0, 13, 4,  8,  9,  10,13, &operation9},
  42            {10, 0, 13, 7,  11, 12, 1, 13, &operation10},
  43            {11, 0, 13, 7,  11, 12, 1, 13, &operation11},
  44            {12, 0, 13, 7,  11, 12, 1, 13, &operation12},
  45          
  46            {13, 0, 25, 22, 14, 15, 16,25, &operation13},
  47            {14, 0, 25, 22, 14, 15, 16,25, &operation14},
  48            {15, 0, 25, 22, 14, 15, 16,25, &operation15},
  49            {16, 0, 25, 13, 17, 18, 19,25, &operation16},
  50            {17, 0, 25, 13, 17, 18, 19,25, &operation17},
  51            {18, 0, 25, 13, 17, 18, 19,25, &operation18},
  52            {19, 0, 25, 16, 20, 21, 22,25, &operation19},
  53            {20, 0, 25, 16, 20, 21, 22,25, &operation20},
  54            {21, 0, 25, 16, 20, 21, 22,25, &operation21},
  55            {22, 0, 25, 19, 23, 24, 13,25, &operation22},
C51 COMPILER V8.15   MENU                                                                  10/29/2008 21:06:48 PAGE 2   

  56            {23, 0, 25, 19, 23, 24, 13,25, &operation23},
  57            {24, 0, 25, 19, 23, 24, 13,25, &operation24},
  58                                                                                                   
  59            {25, 0, 0, 34, 26, 27, 28,0, &operation25},
  60            {26, 0, 0, 34, 26, 27, 28,0, &operation26},
  61            {27, 0, 0, 34, 26, 27, 28,0, &operation27},
  62            {28, 0, 0, 25, 29, 30, 31,0, &operation28},
  63            {29, 0, 0, 25, 29, 30, 31,0, &operation29},
  64            {30, 0, 0, 25, 29, 30, 31,0, &operation30},
  65            {31, 0, 0, 28, 32, 33, 34,0, &operation31},
  66            {32, 0, 0, 28, 32, 33, 34,0, &operation32},
  67            {33, 0, 0, 28, 32, 33, 34,0, &operation33},
  68            {34, 0, 0, 31, 35, 36, 25,0, &operation34},
  69            {35, 0, 0, 31, 35, 36, 25,0, &operation35},
  70            {36, 0, 0, 31, 35, 36, 25,0, &operation36}       
  71                  
  72          };
  73          
  74          uchar GetKeyInput(void)                  //按键扫描及处理程序
  75          {
  76   1              uchar KeyValue;
  77   1      /*
  78   1              if(STOP==0)
  79   1              {
  80   1                      delay_xms(30);
  81   1                      if(STOP==0)
  82   1                      {
  83   1                              return KEY_STOP;
  84   1                      }
  85   1              }
  86   1              else if(START==0)
  87   1              {
  88   1                      delay_xms(30);
  89   1                      if(START==0)
  90   1                      {
  91   1                              return KEY_START;
  92   1                      }
  93   1              }
  94   1              
  95   1              else if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0)&&(STOP==0)&&(START==0))
  96   1              {
  97   1                      delay_xms(30);
  98   1                      if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0)&&(STOP==0)&&(START==0))
  99   1                      {
 100   1                              return KEY_ADJUST;
 101   1                      }
 102   1              }
 103   1      
 104   1      */
 105   1              if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==1))          //按下“ESC”键
 106   1                  {
 107   2                  delay_xms(30);
 108   2                  if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==1))
 109   2                  {
 110   3                          KeyValue = 1;
 111   3                  }
 112   2                  }
 113   1              else if((KEY_1==1)&&(KEY_2==1)&&(KEY_3==0))     //按下“MENU”键
 114   1                  {
 115   2                  delay_xms(30);
 116   2                  if((KEY_1==1)&&(KEY_2==1)&&(KEY_3==0))
 117   2                  {
C51 COMPILER V8.15   MENU                                                                  10/29/2008 21:06:48 PAGE 3   

 118   3                          KeyValue = 2;
 119   3                  }
 120   2                  }
 121   1              else if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==0))     //按下“LEFT”键
 122   1                  {
 123   2                  delay_xms(30);
 124   2                  if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==0))
 125   2                  {
 126   3                          KeyValue = 3;
 127   3                  }
 128   2                  }
 129   1              else if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==1))      //按下“UP”键
 130   1                  {
 131   2                  delay_xms(30);
 132   2                  if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==1))
 133   2                  {
 134   3                          KeyValue = 4;
 135   3                  }
 136   2                  }
 137   1              else if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==1))      //按下“DOWN”键
 138   1                  {
 139   2                  delay_xms(30);
 140   2                  if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==1))
 141   2                  {
 142   3                          KeyValue = 5;
 143   3                  }
 144   2                  }
 145   1              else if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==0))      //按下“RIGHT”键
 146   1                  {
 147   2                  delay_xms(30);
 148   2                  if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==0))
 149   2                  {
 150   3                          KeyValue = 6;
 151   3                  }
 152   2                  }
 153   1              else if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0))          //按下“ENTER”键
 154   1                  {
 155   2                  delay_xms(30);
 156   2                  if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0))
 157   2                  {
 158   3                          KeyValue = 7;
 159   3                  }
 160   2                  }
 161   1          else
 162   1              {
 163   2                  KeyValue = 0;
 164   2              }
 165   1                                                                                                              
 166   1              switch(KeyValue)
 167   1              {
 168   2              case 0:                         //没有键按下
 169   2                  {
 170   3                      return 0;
 171   3                  }
 172   2                      case 1:                         //按下“ESC”键,找出新的状态索引号
 173   2                              {       
 174   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyEsState;
 175   3                                      break;
 176   3                              }
 177   2                      case 2:                         //按下“MENU”键,找出新的状态索引号
 178   2                              {
 179   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyMeState;
C51 COMPILER V8.15   MENU                                                                  10/29/2008 21:06:48 PAGE 4   

 180   3                                      break;
 181   3                              }
 182   2                      case 3:                         //按下“LEFT”键,找出新的状态索引号
 183   2                              {
 184   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyLeState;
 185   3                                      break;
 186   3                              }
 187   2                      case 4:                         //按下“UP”键,找出新的状态索引号
 188   2                              {
 189   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyUpState;
 190   3                                      break;
 191   3                              }
 192   2                      case 5:                         //按下“DOWN”键,找出新的状态索引号
 193   2                              {
 194   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyDnState;
 195   3                                      break;
 196   3                              }
 197   2                      case 6:                         //按下“RIGHT”键,找出新的状态索引号
 198   2                              {
 199   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyRiState;
 200   3                                      break;
 201   3                              }
 202   2                      case 7:                         //按下“ENTER”键,找出新的状态索引号
 203   2                              {
 204   3                                      KeyFuncIndex = KeyTab[KeyFuncIndex].KeyCrState;
 205   3                                      break;
 206   3                              }
 207   2                      default:                                //按键出错处理
 208   2                          return 1;
 209   2              }
 210   1              KeyFuncPtr = KeyTab[KeyFuncIndex].CurrentOperate;
 211   1              (*KeyFuncPtr)();                        //执行当前按键操作
 212   1              LastKeyIndex=KeyFuncIndex;
 213   1              return 0;                                       
 214   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    479    ----
   CONSTANT SIZE    =   1441    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =      6       1
   DATA SIZE        =   ----    ----
   IDATA SIZE       =      2    ----
   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 + -