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

📄 workstep.lst

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


C51 COMPILER V7.06, COMPILATION OF MODULE WORKSTEP
OBJECT MODULE PLACED IN .\output\WorkStep.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE WorkStep.C OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(.\output\Work
                    -Step.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          **文   件   名: WorkStep.C
  14          **创   建   人: 刘宝贵
  15          **最后修改日期: 
  16          **描        述: 工作步骤处理
  17          **
  18          **--------------历史版本信息----------------------------------------------------------------------------
  19          ** 修改人: 
  20          ** 版  本: 
  21          ** 日 期: 
  22          ** 描 述: 
  23          **
  24          **--------------当前版本修订------------------------------------------------------------------------------
  25          ** 修改人: 
  26          ** 日 期:
  27          ** 描 述:
  28          **
  29          **------------------------------------------------------------------------------------------------------
  30          ********************************************************************************************************/
  31          
  32          #include"includes.h"
  33          uint8 bdata ErrorType;
  34          sbit DeviceError   = ErrorType^0;//设备故障
  35          sbit DeviceDLError = ErrorType^1;//断流故障
  36          sbit DeviceGLError = ErrorType^2;//过流故障
  37          sbit DeviceGYError = ErrorType^3;//过压故障
  38          sbit DeviceGWError = ErrorType^4;//充电机过温故障
  39          sbit DeviceGWErrorIO = P1^6;     //过温信号输入端
  40          //sbit GL = ErrorType^0;
  41          //sbit GL = ErrorType^0;
  42          /*********************************************************************************************************
  43          ** 函数名称: TaskWorkStep
  44          ** 功能描述: 工步处理
  45          ** 输 入:   无
  46          ** 输 出:   无
  47          ** 全局变量: 
  48          ** 调用模块: ClearDA
  49          **
  50          ** 作 者: 刘宝贵
  51          ** 日 期: 2004年4月28日
  52          **-------------------------------------------------------------------------------------------------------
  53          ** 修改人:
  54          ** 日 期:
C51 COMPILER V7.06   WORKSTEP                                                              01/22/2007 09:50:21 PAGE 2   

  55          **-------------------------------------------------------------------------------------------------------
  56          *********************************************************************************************************/
  57          void TaskWorkStep(void) _task_ 3
  58          {
  59   1          RunKeySetupStep = 0;
  60   1          Stop();
  61   1          while (1)
  62   1          {
  63   2              while(State != RUN || Step > STEP_MAX)
  64   2              {
  65   3                  os_wait(K_TMO, 50/OS_MSEL_PER_TICKS, 0);
  66   3              }
  67   2              for(;Step <= STEP_MAX;Step++)
  68   2              {
  69   3                  ErrorType = 0;//清除告警信息
  70   3                  EepromWriteByte(E2Step ,Step);
  71   3                  EepromWriteByte(E2ProgramNo ,ProgramNo);
  72   3                  if(RunKeySetupStep==1)
  73   3                  {
  74   4                      Step--;
  75   4                      RunKeySetupStep = 0;
  76   4                      EepromWriteByte(E2Step ,Step);
  77   4                  }
  78   3                  LoadSingleStep(ProgramNo,Step);//读取工步
  79   3                  if(CheckSingleStep() == 0)//检测读取的工步是否合法 0:不合法。
  80   3                  {
  81   4                      Mode=99;
  82   4                  }
  83   3                  if(Mode==99 || Step == STEP_MAX)
  84   3                  {
  85   4                      RunToStop();
  86   4                      Step          = 0;
  87   4                      EepromWriteByte(E2Step ,Step);
  88   4                      ProgramNo     = 0;
  89   4                      EepromWriteByte(E2ProgramNo ,ProgramNo);
  90   4                      State         = STOP;
  91   4                      EepromWriteByte(E2State ,State);
  92   4                      LastTimeS = 0;
  93   4                      EepromWriteWord(E2LastTimeS   ,(unsigned int)(LastTimeS>>16) );
  94   4                      EepromWriteWord(E2LastTimeS +2,(unsigned int)LastTimeS );
  95   4                      AmountQ10S = 0;
  96   4                      EepromWriteWord(E2AmountQ10S   ,(unsigned int)(AmountQ10S>>16) );
  97   4                      EepromWriteWord(E2AmountQ10S +2,(unsigned int)AmountQ10S );
  98   4                      break;
  99   4                  }
 100   3                  AmountQ10S = 0;
 101   3                  switch(Mode)
 102   3                  {
 103   4                      case 11://静电
 104   4                      {
 105   5                          while(1)
 106   5                          {
 107   6                              if(State==RUN)
 108   6                              {
 109   7                                  Stop();
 110   7                                  if(LastTimeS/60>=JumpTimeM)
 111   7                                  {
 112   8                                      break;
 113   8                                  }
 114   7                                  if(RunKeySetupStep==1)
 115   7                                  {
 116   8                                      break;
C51 COMPILER V7.06   WORKSTEP                                                              01/22/2007 09:50:21 PAGE 3   

 117   8                                  }
 118   7                              }
 119   6                              else if(State==PAUSE)
 120   6                              {
 121   7                                  while(State==PAUSE)
 122   7                                  {
 123   8                                      os_wait(K_TMO,100/OS_MSEL_PER_TICKS,0);
 124   8                                  }
 125   7                              }
 126   6                              else if(State == STOP)
 127   6                              {
 128   7                                  Step = STEP_MAX-1;
 129   7                                  break;
 130   7                              }
 131   6                              os_wait(K_TMO,500/OS_MSEL_PER_TICKS,0);
 132   6                          }
 133   5                      }break;
 134   4                      case 22://充电 分为恒流充电和恒压充电两种 恒流时不能设置控制电压 恒压时不能设电压转换条件
 135   4                      case 33://再充电 按设置电流值进行恒流充电控制,直至人为结束该阶段
 136   4                      {
 137   5                          if(SetupU==0)//恒流充电 转换条件有 时间 电压 电量 
 138   5                          {
 139   6                              StopToCharge();
 140   6                              while(1)
 141   6                              {
 142   7                                  if(State==RUN)
 143   7                                  {
 144   8                                      if(RunKeySetupStep==1)
 145   8                                      {
 146   9                                          RunToStop();
 147   9                                          break;
 148   9                                      }
 149   8                                      if(LastTimeS/60>=JumpTimeM || MeasureU >= JumpU || AmountQ10S/36000 >= Jum
             -pQ)
 150   8                                      {
 151   9                                          RunToStop();
 152   9                                          break;
 153   9                                      }
 154   8                                  }
 155   7                                  else if(State==PAUSE)
 156   7                                  {
 157   8                                      RunToStop();
 158   8                                      while(State==PAUSE)
 159   8                                      {
 160   9                                          os_wait(K_TMO,100/OS_MSEL_PER_TICKS,0);
 161   9                                      }
 162   8                                      StopToCharge();
 163   8                                  }
 164   7                                  else if(State == STOP)
 165   7                                  {
 166   8                                      RunToStop();
 167   8                                      Step = STEP_MAX-1;
 168   8                                      break;
 169   8                                  }
 170   7                                  os_wait(K_TMO,500/OS_MSEL_PER_TICKS,0);
 171   7                              }
 172   6                          }
 173   5                          else if(JumpU==0)//恒压充电 转换条件有 时间 电量,过程是先恒流充到设定电压再恒压到转换
             -条件
 174   5                          {
 175   6                              unsigned char count;
 176   6                              count = 0;
C51 COMPILER V7.06   WORKSTEP                                                              01/22/2007 09:50:21 PAGE 4   

 177   6                              StopToCharge();
 178   6                              while(1)//恒流恒压充电充到转换条件
 179   6                              {
 180   7                                  if(State==RUN)
 181   7                                  {
 182   8                                      if(MeasureRealU > SetupU)//电压大于设定值
 183   8                                      {
 184   9                                          if(MeasureRealU - SetupU > 10)//实时的测量值比设定值大1V以上5秒钟调一

⌨️ 快捷键说明

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