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

📄 main.lst

📁 基于单片机的三层电梯的源程序
💻 LST
字号:
C51 COMPILER V8.05a   MAIN                                                                 08/16/2008 15:42:16 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.C DEBUG OBJECTEXTEND

line level    source

   1          #include <AT89X51.H>
   2          //月亮微控  QQ:228939191
   3          /*******************输入输出分配*****************************************
   4          |    输入                       |       输出            |          
   5          |X13                                    |       Y13                             |
   6          |X12    门开关                  |       Y12                             |
   7          |X11    3楼到位                 |       Y11                             |
   8          |X10    2楼到位                 |       Y10                             |
   9          |X9             1楼到位                 |        Y9                             |
  10          |X8             到2楼                   |        Y8                             |
  11          |X7             到1楼                   |        Y7                             |
  12          |X6             3楼呼叫                 |        Y6     楼层报警        |
  13          |X5             到3楼                   |        Y5     门报警          |
  14          |X4             到1楼                   |        Y4     KM2电机上行     |
  15          |X3             2楼呼叫                 |        Y3     KM1电机下行     |
  16          |X2             到3楼                   |        Y2     三楼显示灯      |
  17          |X1             到2楼                   |        Y1     二楼显示灯      |
  18          |XO             1楼呼叫                 |        Y0     一楼显示灯      |
  19          */
  20          /********P0*********/
  21          sbit Y13 = 0x80;
  22          sbit Y12 = 0x81;
  23          sbit Y11 = 0x82;
  24          sbit Y10 = 0x83;
  25          sbit Y9 = 0x84;
  26          sbit Y8 = 0x85;
  27          sbit Y7 = 0x86;
  28          sbit Y6 = 0x87;
  29          /********P1*********/
  30          sbit X13 = 0x90;
  31          sbit X12 = 0x91;
  32          sbit X11 = 0x92;
  33          sbit X10 = 0x93;
  34          sbit X9 = 0x94;
  35          sbit X8 = 0x95;
  36          sbit X7 = 0x96;
  37          sbit X6 = 0x97;
  38          /* P2 */
  39          sbit Y0 = 0xA2;
  40          sbit Y1 = 0xA3;
  41          sbit Y2 = 0xA4;
  42          sbit Y3 = 0xA5;
  43          sbit Y4 = 0xA6;
  44          sbit Y5 = 0xA7; 
  45          /********P3*********/
  46          sbit X0 = 0xB2;
  47          sbit X1 = 0xB3;
  48          sbit X2 = 0xB4;
  49          sbit X3 = 0xB5;
  50          sbit X4 = 0xB6;
  51          sbit X5 = 0xB7;
  52          /*******辅助继电器***********/ 
  53          bit M0=1;
  54          bit M1=1;                               
  55          bit M2=1;                               
C51 COMPILER V8.05a   MAIN                                                                 08/16/2008 15:42:16 PAGE 2   

  56          bit M3=1;                               
  57          bit M4=1;                               
  58          bit M5=1;                               
  59          bit M6=1;                               
  60          bit M7=1;                               
  61          bit M8=1;                               
  62          bit M9=1;                               
  63          bit M10=1; 
  64          
  65          /************************一楼呼叫***************************************/
  66          void key1 (void)
  67          {   
  68   1      //呼叫  
  69   1      if (!X0)                                                                //呼叫键按下            
  70   1                      {
  71   2                              if      (X12) Y5 = 0;                   //门没有关闭,报警灯亮
  72   2                                      else (Y5 = 1);  
  73   2                              if (!X10|!X11)                          //在二楼或者三楼,电梯下行
  74   2                                      {
  75   3                                       M0 = 0;                                //电梯下行信号  
  76   3                                      }                       
  77   2                      }
  78   1      if      ((M0  == 0 && Y4 == 1)&& !X12)          //电梯下行信号,电梯没有上升,门开关OK
  79   1                      {
  80   2                              Y3 = 0;                                         //电梯开始下降
  81   2                              if (X9 == 0)                            //电梯到位      
  82   2                            {
  83   3                                       Y3 = 1;                                //电梯停止下降
  84   3                                       M0 = 1;                                //电梯下降信号停
  85   3                                       }
  86   2                       }                                                                              
  87   1      //到二楼
  88   1       if ((!X1 && !X12)&& !X9)                               //按到2楼 门开关OK 在1楼
  89   1             {
  90   2                              M1 = 0;                                         //电梯到二楼信号
  91   2                              if ( X10 == 1 && Y3 == 1)Y4 = 0;        //电梯没有在二楼  电梯没有下降 电梯开始上升        
  92   2                        }
  93   1       if (M1 == 0 && !X10 )                                  //电梯上升2楼 限位到了
  94   1                              {
  95   2                                      Y4 = 1;                                 //电梯停止      
  96   2                                      M1 = 1;                                 //电梯上升信号停止
  97   2                               }
  98   1       
  99   1      //到三楼
 100   1       if ((!X2 && !X12)&& !X9)                               //按到3楼 门开关OK 在1楼
 101   1                      {
 102   2                              M2 = 0;                                         //电梯到3楼信号
 103   2                              if (X11 == 1 && Y3 == 1)Y4 = 0;//电梯没有在3楼  电梯没有下降 电梯开始上升
 104   2                      }       
 105   1       if (M2 == 0 && !X11)                                   //电梯上升3楼 限位到了
 106   1                               {
 107   2                                      Y4 = 1;                                 //电梯停止
 108   2                                      M2 = 1;                                 //电梯上升信号停止
 109   2                                }
 110   1                              
 111   1      }
 112          /************************二楼呼叫*****************************************/
 113          void key2 (void)
 114          {   
 115   1       //呼叫         
 116   1      if (!X3)                
 117   1                      {
C51 COMPILER V8.05a   MAIN                                                                 08/16/2008 15:42:16 PAGE 3   

 118   2                              if      (X12) Y5 = 0;           //门没有关闭,报警
 119   2                                      else (Y5 = 1);  
 120   2                              if (!X9)                                //在1楼电梯上
 121   2                                      {
 122   3                                       M3 = 0;                        //电机上行信号  
 123   3                                      }
 124   2                              if (!X11)                               //在3楼电梯上
 125   2                                      {
 126   3                                       M4 = 0;                        //电机下行信号  
 127   3                                      }
 128   2                      }
 129   1      if      ((M3  == 0 && Y3 == 1)&& !X12) Y4 = 0;  //一楼到二楼
 130   1               
 131   1              if (M3  == 0 && X10 == 0)
 132   1                      {
 133   2                              Y4 = 1;
 134   2                              M3 = 1;
 135   2                      }                
 136   1      if      ((M4  == 0 && Y4 == 1)&& !X12) Y3 = 0;  //三楼到二楼    
 137   1              if (M4  == 0 && X10 == 0)
 138   1                      {
 139   2                              Y3 = 1;
 140   2                              M4 = 1;
 141   2                      }                                                                                               
 142   1      //到一楼
 143   1       if ((!X4 && !X12)&& !X10) M5 = 0;
 144   1              if ((M5 == 0 && X9 == 1) && Y4 == 1)Y3 = 0;
 145   1              if (M5 == 0 && !X9)
 146   1                       {
 147   2                              Y3 = 1;
 148   2                              M5 = 1;
 149   2                       }                      
 150   1      //到三楼
 151   1       if ((!X5 && !X12)&& !X10) M6 = 0;
 152   1              if ((M6 == 0 && X11 == 1) && Y3 == 1) Y4 = 0;
 153   1              if (M6 == 0 && !X11)
 154   1                      {
 155   2                              Y4 = 1;
 156   2                              M6 = 1;
 157   2                      }         
 158   1      }
 159          /*****************************************************************************/
 160          /************************三楼呼叫************************************/
 161          void key3 (void)
 162          {   
 163   1       
 164   1       //呼叫         
 165   1      if (!X6)                
 166   1                      {
 167   2                              if      (X12) Y5 = 0;           //门没有关闭,报警
 168   2                                      else (Y5 = 1);  
 169   2                              if (!X9)                                        //在1楼电梯上
 170   2                                      {
 171   3                                       M7 = 0;                                //电机上行信号  
 172   3                                      }
 173   2                              if (!X10)                               //在2楼电梯上
 174   2                                      {
 175   3                                       M8 = 0;                                //电机下行信号  
 176   3                                      }
 177   2                      }
 178   1      if      ((M7  == 0 && Y3 == 1)&& !X12) Y4 = 0;  //一楼到3楼
 179   1               
C51 COMPILER V8.05a   MAIN                                                                 08/16/2008 15:42:16 PAGE 4   

 180   1              if (M7  == 0 && X11 == 0)
 181   1                      {
 182   2                              Y4 = 1;
 183   2                              M7 = 1;
 184   2                      }                
 185   1      if      ((M8  == 0 && Y3 == 1)&& !X12) Y4 = 0;  //2楼到3楼      
 186   1              if (M8  == 0 && X11 == 0)
 187   1                      {
 188   2                              Y4 = 1;
 189   2                              M8 = 1;
 190   2                      }                                                                                               
 191   1      //到一楼
 192   1       if ((!X7 && !X12)&& !X11) M9 = 0;
 193   1              if ((M9 == 0 && X9 == 1) && Y4 == 1)Y3 = 0;
 194   1              if (M9 == 0 && !X9)
 195   1                       {
 196   2                              Y3 = 1;
 197   2                              M9 = 1;
 198   2                       }                      
 199   1      //到三楼
 200   1       if ((!X8 && !X12)&& !X11) M10 = 0;
 201   1              if ((M10 == 0 && X10 == 1) && Y3 == 1) Y3 = 0;
 202   1              if (M10 == 0 && !X10)
 203   1                      {
 204   2                              Y3 = 1;
 205   2                              M10 = 1;
 206   2                      }         
 207   1      } 
 208           
 209          /****主程序*********************************************/
 210          void main(void)
 211          {
 212   1              P0 = 0xFF;
 213   1              P1 = 0xFF;
 214   1              P2 = 0xFF;
 215   1              P3 = 0xFF;  
 216   1              while (1)
 217   1               {              
 218   2                      if (!X9)Y0 = 0;
 219   2                              else(Y0 = 1); 
 220   2                      if (!X10)Y1 = 0;
 221   2                              else(Y1 = 1);
 222   2                       if (!X11)Y2 = 0;
 223   2                                else(Y2 = 1);                                            
 224   2                      key1();                          //*一楼呼叫
 225   2                      key2();                          //*二楼呼叫
 226   2                      key3();                          //*三楼呼叫
 227   2               }
 228   1      }
 229          /*******************************************************/
 230          
 231          
 232          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    406    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.05a   MAIN                                                                 08/16/2008 15:42:16 PAGE 5   

   BIT SIZE         =     11    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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