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

📄 subprog.lst

📁 Keil单片机软件开发平台下的一个51系列单片机工程
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   SUBPROG                                                               01/22/2007 09:50:03 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SUBPROG
OBJECT MODULE PLACED IN .\output\SubProg.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SubProg.C OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(.\output\SubPr
                    -og.obj)

stmt level    source

   1          /*********************************************************************************************************
   2          **相控充电机主控器系统 软件设计:刘宝贵,硬件设计:刘宝贵 调试:刘宝贵
   3          **本系统使用编译器为 keil c51.exe V7.06
   4          **本系统使用汇编器为 keil A51.exe V7.07
   5          **本系统使用联接器为 keil BL51.exe V5.03
   6          **本系统使用 RTX_TINY
   7          **如果等程序有问题或者是Bug请与作者联系
   8          **与作者联系方法:邮箱:baoguiliu@163.com,baoguiliu@sohu.com 电话:0451-6677970-6738
   9          **
  10          **
  11          **VER1.0
  12          **--------------文件信息--------------------------------------------------------------------------------
  13          **文   件   名: SubProg.C
  14          **创   建   人: 刘宝贵
  15          **最后修改日期: 
  16          **描        述: 本项目所用子函数
  17          **
  18          **--------------历史版本信息----------------------------------------------------------------------------
  19          ** 修改人: 
  20          ** 版  本: 
  21          ** 日 期: 
  22          ** 描 述: 
  23          **
  24          **--------------当前版本修订------------------------------------------------------------------------------
  25          ** 修改人: 
  26          ** 日 期:
  27          ** 描 述:
  28          **
  29          **------------------------------------------------------------------------------------------------------
  30          ********************************************************************************************************/
  31          
  32          #include"includes.h"
  33          sbit ALE = P2^0;
  34          /*********************************************************************************************************
  35          ** 函数名称: ReadLoopTimes
  36          ** 功能描述: 在由蝶式键盘或通信重新启动工步运行时要读取所设定的循环次数
  37          ** 输 入:   
  38          ** 输 出:   将读出的巡环次数放入变量RemainLoopTimes并写入EEPROM
  39          ** 全局变量: 
  40          ** 调用模块: 
  41          **
  42          ** 作 者: 刘宝贵
  43          ** 日 期: 2006年1月17日
  44          **-------------------------------------------------------------------------------------------------------
  45          ** 修改人:
  46          ** 日 期:
  47          **-------------------------------------------------------------------------------------------------------
  48          *********************************************************************************************************/
  49          void ReadLoopTimes()
  50          {
  51   1          unsigned char i;
  52   1          for(i=0;i<STEP_MAX;i++)
  53   1          {
  54   2              Mode = EepromReadByte(ProgramNo*600 + i*20 + 2*0);
C51 COMPILER V7.06   SUBPROG                                                               01/22/2007 09:50:03 PAGE 2   

  55   2              if(Mode==99)
  56   2              {
  57   3                  RemainLoopTimes = 0;
  58   3                  EepromWriteByte(E2RemainLoopTimes ,RemainLoopTimes);
  59   3                  break;
  60   3              }
  61   2              if(Mode==77)//如果是设循环次数
  62   2              {
  63   3                  RemainLoopTimes = EepromReadByte(ProgramNo*600 + i*20 + 2*1);
  64   3                  EepromWriteByte(E2RemainLoopTimes ,RemainLoopTimes);
  65   3                  break;
  66   3              }
  67   2          }
  68   1          i = 0;
  69   1      }
  70          
  71          /*********************************************************************************************************
  72          ** 函数名称: CheckSingleStep
  73          ** 功能描述: 
  74          ** 输 入:   无
  75          ** 输 出:   0:此工步非法,1:此工步合法
  76          ** 全局变量: 
  77          ** 调用模块: 
  78          **
  79          ** 作 者: 刘宝贵
  80          ** 日 期: 2006年1月17日
  81          **-------------------------------------------------------------------------------------------------------
  82          ** 修改人:
  83          ** 日 期:
  84          **-------------------------------------------------------------------------------------------------------
  85          *********************************************************************************************************/
  86          unsigned char CheckSingleStep(void)
  87          {
  88   1          bit flag = 1;
  89   1          switch(Mode)
  90   1          {
  91   2              case 11://静电
  92   2              {
  93   3                  if(JumpTimeM>JUMP_TIME_M_MAX)
  94   3                  {
  95   4                      flag = 0;
  96   4                  }
  97   3              }break;
  98   2              case 22://充电
  99   2              case 33://再充电
 100   2              {
 101   3                  if(SetupU==0 && JumpU==0)
 102   3                  {
 103   4                      flag = 0;
 104   4                  }
 105   3                  if(SetupI>SETUP_I_MAX)
 106   3                  {
 107   4                      flag = 0;
 108   4                  }
 109   3                  if( SetupU>SETUP_U_MAX)
 110   3                  {
 111   4                      flag = 0;
 112   4                  }
 113   3                  if(JumpTimeM > JUMP_TIME_M_MAX)
 114   3                  {
 115   4                      flag = 0;
 116   4                  }
C51 COMPILER V7.06   SUBPROG                                                               01/22/2007 09:50:03 PAGE 3   

 117   3                  if(JumpU > JUMP_U_MAX)
 118   3                  {
 119   4                      flag = 0;
 120   4                  }
 121   3                  if(JumpQ > JUMP_Q_MAX )
 122   3                  {
 123   4                      flag = 0;
 124   4                  }
 125   3              }break;
 126   2              case 44://放电
 127   2              {
 128   3                  if(SetupU!=0 || JumpU==0)
 129   3                  {
 130   4                      flag = 0;
 131   4                  }
 132   3                  if(SetupI>SETUP_I_MAX)
 133   3                  {
 134   4                      flag = 0;
 135   4                  }
 136   3                  if( SetupU>SETUP_U_MAX)
 137   3                  {
 138   4                      flag = 0;
 139   4                  }
 140   3                  if(JumpTimeM > JUMP_TIME_M_MAX)
 141   3                  {
 142   4                      flag = 0;
 143   4                  }
 144   3                  if(JumpU > JUMP_U_MAX)
 145   3                  {
 146   4                      flag = 0;
 147   4                  }
 148   3                  if(JumpQ > JUMP_Q_MAX )
 149   3                  {
 150   4                      flag = 0;
 151   4                  }
 152   3              }break;
 153   2              case 88://反充电
 154   2              {
 155   3                  if(SetupU!=0 || JumpU!=0)
 156   3                  {
 157   4                      flag = 0;
 158   4                  }
 159   3                  if(SetupI>SETUP_I_MAX)
 160   3                  {
 161   4                      flag = 0;
 162   4                  }
 163   3                  if(JumpTimeM > JUMP_TIME_M_MAX)
 164   3                  {
 165   4                      flag = 0;
 166   4                  }
 167   3              }break;
 168   2              case 55://设置电量
 169   2              {
 170   3                  if(JumpQ > JUMP_Q_MAX)
 171   3                  {
 172   4                      flag = 0;
 173   4                  }
 174   3              }break;
 175   2              case 66://设置循环起始点
 176   2              {
 177   3              }break;
 178   2              case 77://设置循环次数
C51 COMPILER V7.06   SUBPROG                                                               01/22/2007 09:50:03 PAGE 4   

 179   2              {
 180   3                  if(LoopTimes > LOOP_TIMES_MAX)
 181   3                  {
 182   4                      flag = 0;
 183   4                  }
 184   3              }break;
 185   2              case 99://结束
 186   2              {
 187   3                  if(SetupCurrentDirection>1)
 188   3                  {
 189   4                      flag = 0;
 190   4                  }
 191   3              }break;
 192   2              default:
 193   2              {
 194   3                  flag = 0;
 195   3              }
 196   2          }
 197   1          if(ProgramNo>PROGRAM_NO_MAX || Step>STEP_MAX)
 198   1          {
 199   2              flag = 0;
 200   2          }
 201   1          return (flag);
 202   1      }
 203          /*********************************************************************************************************
 204          ** 函数名称: SaveSingleStep()
 205          ** 功能描述: 将内存中的单步工步信息存入串行EEPROM
 206          ** 输 入:   
 207          ** 输 出:   
 208          ** 全局变量: ProgramNo,Step,Mode,LoopTimes,SetupI,SetupU,IntervalTimeM,JumpTimeM,JumpU,JumpQ
 209          ** 调用模块: 
 210          ** 注  意:
 211          ** 作 者: 
 212          ** 日 期: 
 213          **-------------------------------------------------------------------------------------------------------
 214          ** 修改人:
 215          ** 日 期:
 216          **-------------------------------------------------------------------------------------------------------
 217          *********************************************************************************************************/
 218          void SaveSingleStep(void)
 219          {
 220   1          EepromWriteByte(ProgramNo*600 + Step*20 + 2*0 , Mode);
 221   1          EepromWriteByte(ProgramNo*600 + Step*20 + 2*1 , LoopTimes);
 222   1          EepromWriteWord(ProgramNo*600 + Step*20 + 2*2 , SetupI);
 223   1          EepromWriteWord(ProgramNo*600 + Step*20 + 2*3 , SetupU);
 224   1      //    EepromWriteWord(ProgramNo*600 + Step*20 + 2*4 , IntervalTimeM);
 225   1          EepromWriteWord(ProgramNo*600 + Step*20 + 2*5 , JumpTimeM);
 226   1          EepromWriteWord(ProgramNo*600 + Step*20 + 2*6 , JumpU);
 227   1          EepromWriteWord(ProgramNo*600 + Step*20 + 2*7 , JumpQ);
 228   1          if(Mode==99)
 229   1          {
 230   2              EepromWriteWord(E2SetupCurrentDirection , SetupCurrentDirection);
 231   2          }
 232   1      }
 233          /*********************************************************************************************************
 234          ** 函数名称: void LoadSingleStep(unsigned char ProgramNoTemp,unsigned char StepTemp)
 235          ** 功能描述: 将串行EEPROM中的单步工步信息存入内存
 236          ** 输 入:   
 237          ** 输 出:   
 238          ** 全局变量: ProgramNo,Step,Mode,LoopTimes,SetupI,SetupU,IntervalTimeM,JumpTimeM,JumpU,JumpQ
 239          ** 调用模块: 
 240          ** 注  意:
C51 COMPILER V7.06   SUBPROG                                                               01/22/2007 09:50:03 PAGE 5   

 241          ** 作 者: 
 242          ** 日 期: 
 243          **-------------------------------------------------------------------------------------------------------
 244          ** 修改人:
 245          ** 日 期:
 246          **-------------------------------------------------------------------------------------------------------
 247          *********************************************************************************************************/
 248          void LoadSingleStep(unsigned char ProgramNoTemp,unsigned char StepTemp)
 249          {
 250   1          Mode          = EepromReadByte(ProgramNoTemp*600 + StepTemp*20 + 2*0);
 251   1          LoopTimes     = EepromReadByte(ProgramNoTemp*600 + StepTemp*20 + 2*1);
 252   1          SetupI        = EepromReadWord(ProgramNoTemp*600 + StepTemp*20 + 2*2);
 253   1          SetupU        = EepromReadWord(ProgramNoTemp*600 + StepTemp*20 + 2*3);
 254   1          JumpTimeM     = EepromReadWord(ProgramNoTemp*600 + StepTemp*20 + 2*5);
 255   1          JumpU         = EepromReadWord(ProgramNoTemp*600 + StepTemp*20 + 2*6);
 256   1          JumpQ         = EepromReadWord(ProgramNoTemp*600 + StepTemp*20 + 2*7);

⌨️ 快捷键说明

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