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

📄 md142as.lst

📁 64输入32输出单片机程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   MD142AS                                                               01/26/2004 20:24:40 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MD142AS
OBJECT MODULE PLACED IN MD142AS.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MD142AS.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-------------------------------------------------------------------------
   2          //      Filename :  Md142AS.C
   3          //      Language :  C for AT89S8252
   4          //      Revision :  1.0
   5          //  Initial Date :  13/03/2003
   6          //   Last Modify :
   7          //  System clock :  24.00MHZ
   8          //   Description :  ARMATURE EPOXY COATING
   9          //-------------------------------------------------------------------------
  10          
  11          #include <reg52.h>
  12          #include "plc64i32.h"
  13          #include "serial.h"
  14          
  15          //define input signal
  16          enum {LOAD_VERTUP=1,LOAD_VERTDN,LOAD_HORNFD,LOAD_HORNBD,INDUCTION1FD,INDUCTION1BD,
  17                ARM1UP=7,ARM1DN,ARM2UP,ARM2DN,ARM3UP,ARM3DN,AIR_MAGNET1UP,ARMAT_CHECK=14,
  18                AIR_MAGNET2UP=15,ARMAT_FULL,AIR_CHUCKUP,AIR_CHUCKDN,TRAN_HORNFD,TRAN_HORNBD,
  19                SHAFT_HOLDFD=21,SHAFT_HOLDBD,JIG_EJECTFD,JIG_EJECTBD,JIG_REMOVEFD,JIG_REMOVEBD,
  20                COMM_LOADFD=31,COMM_LOADBD,COMM_INSERTFD,COMM_INSERTBD,INDUCTION2FD,INDUCTION2BD,
  21                UNLOADUP=37,UNLOADDN,HEAT1=41,COOLANT1,HEAT2,COOLANT2,STARTL,STARTR=46};
  22          //-----------------------------------------
  23          //define output signal
  24          enum {LOAD_VERT=1,LOAD_HORN10,LOAD_HORN11,INDUCTION1,ARM1=6,ARM2,ARM3,AIR_MAGNET1=9,
  25                MAGFORCE1=10,AIR_MAGNET2,MAGFORCE2,AIR_CHUCK,TRAN_HORN10=15,TRAN_HORN11,
  26                SHAFT_HOLD=17,SPRAY_L,SPRAY_R=20,JIG_EJECT,JIG_REMOVE,COMM_LOAD10,COMM_LOAD11,
  27                COMM_INSERT=25,INDUCTION2=27,UNLOAD=29,VIBRATE,ROTATE,AIR=32};
  28          //--------------------------------------------------------------------------------
  29          //define manual operate valves' value
  30          enum {VALVE1=1,VALVE2,VALVE3,VALVE4,VALVE5,VALVE6,VALVE7,VALVE8,VALVE9,VALVE10,
  31                VALVE11,VALVE12,VALVE13,VALVE14,VALVE15,VALVE16,VALVE17,VALVE18,VALVE19};
  32          
  33          //----------------------------------------------------------
  34          void _init_machine();
  35          void _step_by_step();
  36          void _manual_operate();
  37          void _auto_operate();
  38          void _setup();
  39          
  40          unsigned char xdata datalist[8];
  41          char proc=0;
  42          unsigned heat1_time,heat1_time_set;
  43          unsigned heat2_time,heat2_time_set;
  44          unsigned spray_time,spray_time_set;
  45          bit spray_end,heat1_end,heat2_end;
  46          //---------------------------------------------------
  47          
  48          void main()
  49          {   char i;
  50   1          _init_system ();
  51   1          ReceStream.address = ID_Plc64I;
  52   1          // setup serial port control hardware (19200 BAUD @24MHZ)
  53   1          _init_serial (BAUD19200);
  54   1          _set_delay (100);
  55   1      
C51 COMPILER V7.06   MD142AS                                                               01/26/2004 20:24:40 PAGE 2   

  56   1          for (i=0;i<10;i++)
  57   1              TranStream.datablk[i] = _read_eepbyte(&datalist[i]);
  58   1          _trf_msge (ID_Panel,Datatrans,0x07);
  59   1          _set_delay (50);
  60   1      
  61   1          _init_machine();
  62   1          _outp_bit(LOAD_HORN10,OFF);
  63   1          _outp_bit(LOAD_HORN11,ON);
  64   1      
  65   1          _outp_bit(TRAN_HORN10,OFF);
  66   1          _outp_bit(TRAN_HORN11,ON);
  67   1          _set_delay (100);
  68   1          while(TRUE)
  69   1              {
  70   2                if(rece_com==Auto)
  71   2                  _auto_operate();
  72   2      
  73   2                if(rece_com==Manual)
  74   2                  _manual_operate();
  75   2      
  76   2                if(rece_com==Dataset)
  77   2                  _setup();
  78   2      
  79   2              }
  80   1      
  81   1      }
  82          //----------------------------------------------------------------------
  83          void _auto_operate()
  84          {
  85   1          unsigned cycle;
  86   1          char heat1_on,heat2_on,sequ=1;
  87   1          TranStream.datablk[2]=_read_eepbyte(&datalist[2]);
  88   1          TranStream.datablk[3]=_read_eepbyte(&datalist[3]);
  89   1          TranStream.datablk[4]=_read_eepbyte(&datalist[4]);
  90   1          _trf_msge (ID_Panel,Datatrans,0x05);
  91   1          _set_delay(10);
  92   1          if(TranStream.datablk[2]<11)
  93   1              heat2_time_set=TranStream.datablk[2]*100;
  94   1          else
  95   1              heat2_time_set=TranStream.datablk[2]*10;
  96   1      
  97   1          if(TranStream.datablk[3]<11)
  98   1              heat1_time_set=TranStream.datablk[3]*100;
  99   1          else
 100   1              heat1_time_set=TranStream.datablk[3]*10;
 101   1          if(TranStream.datablk[4]<11)
 102   1              spray_time_set=TranStream.datablk[4]*100;
 103   1          else
 104   1              spray_time_set=TranStream.datablk[4]*10;
 105   1      
 106   1          while( rece_com!=Exit )
 107   1          {
 108   2           if(rece_com==Start)
 109   2             {rece_com=OFF;
 110   3              while( rece_com!=Exit )
 111   3               {
 112   4                  switch(proc)
 113   4                  {
 114   5                  case 0:
 115   5                      if(_inp_bit(INDUCTION1BD)&&_inp_bit(INDUCTION2BD)&&
 116   5                         _inp_bit(TRAN_HORNBD))
 117   5                        {
C51 COMPILER V7.06   MD142AS                                                               01/26/2004 20:24:40 PAGE 3   

 118   6                         _outp_bit(LOAD_VERT,ON);
 119   6                         _outp_bit(AIR_MAGNET1,ON);
 120   6                         _outp_bit(ARM1,ON);
 121   6                         proc++;
 122   6                        }
 123   5                      break;
 124   5                  case 1:
 125   5                      if(_inp_bit(ARM1DN))
 126   5                      {
 127   6                          _set_delay(15);
 128   6                          _outp_bit(ARM1,OFF);
 129   6                          _outp_bit(UNLOAD,OFF);
 130   6                /*        _outp_bit(AIR_CHUCK,ON);
 131   6                          _set_delay(15);
 132   6                          _outp_bit(AIR_CHUCK,OFF);     //
 133   6                          _set_delay(15);                 //
 134   6                          _outp_bit(AIR_CHUCK,ON);      //
 135   6                          _set_delay(15);                 //
 136   6                          _outp_bit(ARM3,OFF);
 137   6                          while(!_inp_bit(ARM3UP));
 138   6      
 139   6                          _set_delay(20);
 140   6      
 141   6                          _outp_bit(COMM_INSERT,ON);
 142   6                          _set_delay(60);
 143   6                          _outp_bit(COMM_INSERT,OFF); */
 144   6                          proc++;
 145   6                      }
 146   5                      break;
 147   5                  case 2:
 148   5                      if(_inp_bit(LOAD_VERTUP)&&_inp_bit(INDUCTION1BD)&&_inp_bit(COMM_INSERTFD)&&_inp_bit(JIG_EJECTBD)&&
 149   5                         _inp_bit(JIG_REMOVEBD)&&_inp_bit(ARM1UP)&&_inp_bit(ARM2UP)&&_inp_bit(ARM3UP))
 150   5                        {
 151   6                          _outp_bit(LOAD_HORN11,OFF);
 152   6                          _outp_bit(LOAD_HORN10,ON);
 153   6      
 154   6                          _outp_bit(TRAN_HORN11,OFF);
 155   6                          _outp_bit(TRAN_HORN10,ON);
 156   6      
 157   6                /*        if(_inp_bit(COMM_LOADFD))
 158   6                              {
 159   6                                 _outp_bit(COMM_LOAD10,OFF);
 160   6                                 _outp_bit(COMM_LOAD11,ON);
 161   6                              }
 162   6                          if(_inp_bit(COMM_LOADBD))
 163   6                              {
 164   6                                 _outp_bit(COMM_LOAD11,OFF);
 165   6                                 _outp_bit(COMM_LOAD10,ON);
 166   6                              }   */
 167   6                        proc++;
 168   6                        }
 169   5                      break;
 170   5                  case 3:
 171   5                      if(_inp_bit(LOAD_HORNFD)&&_inp_bit(TRAN_HORNFD))
 172   5                        {
 173   6                         if(_inp_bit(ARMAT_CHECK))
 174   6                           {
 175   7                            heat1_on=TRUE;
 176   7                            cycle=0;  //
 177   7                           }
 178   6                         else
 179   6                           {
C51 COMPILER V7.06   MD142AS                                                               01/26/2004 20:24:40 PAGE 4   

 180   7                            heat1_on=FALSE;
 181   7                            cycle++;  //
 182   7                           }
 183   6                         _outp_bit(LOAD_VERT,OFF);
 184   6                         _outp_bit(ARM1,ON);
 185   6                         _outp_bit(ARM2,ON);
 186   6                         if(_inp_bit(INDUCTION2BD)&& !_inp_bit(ARMAT_FULL))
 187   6      
 188   6                            _outp_bit(ARM3,ON);
 189   6      
 190   6                         else
 191   6                            if(_inp_bit(ARMAT_FULL))
 192   6                              {
 193   7                               while(_inp_bit(ARMAT_FULL));
 194   7                               rece_com=0;
 195   7                               while( rece_com!=Start );
 196   7                               _outp_bit(ARM3,ON);
 197   7                               rece_com=0;
 198   7                              }
 199   6                         proc++;
 200   6                        }
 201   5                      break;
 202   5                  case 4:
 203   5                      if(_inp_bit(ARM1DN))
 204   5                      {
 205   6                         _set_delay(5);
 206   6                         _outp_bit(AIR_MAGNET1,OFF);
 207   6                         _outp_bit(ARM1,OFF);
 208   6      
 209   6                         _outp_bit(SHAFT_HOLD,ON);      
 210   6                         _outp_bit(ROTATE,ON);
 211   6                         _set_delay(10);
 212   6                         _outp_bit(VIBRATE,ON);
 213   6                         _outp_bit(SPRAY_L,ON);        //START TO SPRAY
 214   6                         _outp_bit(SPRAY_R,ON);
 215   6                         spray_time=spray_time_set+tick_clock;
 216   6      
 217   6                         proc++;
 218   6                      }
 219   5                      break;
 220   5                  case 5:
 221   5                      if(_inp_bit(LOAD_VERTDN)&&_inp_bit(ARM2DN)&&_inp_bit(ARM3DN))
 222   5                        {
 223   6                          _outp_bit(LOAD_HORN10,OFF);
 224   6                          _outp_bit(LOAD_HORN11,ON);
 225   6      
 226   6                         _outp_bit(AIR_MAGNET2,OFF);
 227   6                         if(_inp_bit(ARM3DN)&&_inp_bit(TRAN_HORNFD))
 228   6                         _outp_bit(AIR_CHUCK,OFF);
 229   6                         proc++;
 230   6                        }
 231   5                      break;
 232   5                  case 6:
 233   5                      if(_inp_bit(AIR_MAGNET2UP)&&_inp_bit(AIR_CHUCKUP)&&_inp_bit(UNLOADDN))
 234   5      
 235   5                        {
 236   6                         if(_inp_bit(ARMAT_FULL))    //IF HAS ARMATURE
 237   6                            heat2_on=TRUE;
 238   6                         else
 239   6                            heat2_on=FALSE;
 240   6                         _outp_bit(ARM2,OFF);
 241   6                         _outp_bit(ARM3,OFF);
C51 COMPILER V7.06   MD142AS                                                               01/26/2004 20:24:40 PAGE 5   

 242   6      
 243   6                         _outp_bit(INDUCTION1,ON);
 244   6                         _outp_bit(INDUCTION2,ON);
 245   6                         while(!_inp_bit(INDUCTION1FD)||!_inp_bit(INDUCTION2FD));
 246   6        //               if(heat1_on==FALSE)            //  no armature will stop heating
 247   6                         if(cycle>=5)      // heat five cycles if no arm.
 248   6                            _outp_bit(MAGFORCE1,OFF);
 249   6                         else
 250   6                            _outp_bit(MAGFORCE1,ON);    //heating
 251   6      
 252   6                         if(heat2_on==FALSE)            //  no armature will stop heating

⌨️ 快捷键说明

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