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

📄 6.lst

📁 51控制的十字路口交通灯 左右转 人行道
💻 LST
📖 第 1 页 / 共 2 页
字号:
 237   3       n=ST/10;
 238   3       SB2=0;
 239   3       P0=table[n];
 240   3       delay();
 241   3       delay();
C51 COMPILER V7.06   6                                                                     05/08/2006 21:50:17 PAGE 5   

 242   3       SB2=1;
 243   3       delay();
 244   3               if(add==0)
 245   3             {
 246   4                  for(k=0;k<20000;k++)
 247   4                   ;
 248   4                      if(add==0)
 249   4                      C1++;
 250   4              //if(C1==99);
 251   4                      // C1=0;
 252   4                      }
 253   3            if(dec==0)
 254   3              {
 255   4               for(k=0;k<20000;k++)
 256   4                   ;
 257   4                       if(dec==0)
 258   4                       C1--;
 259   4             // if(C1==0);
 260   4                      // C1=99;
 261   4                      }
 262   3            }
 263   2      C_A=1;
 264   2      for(k=0;k<40000;k++)
 265   2              ;
 266   2         while(menu!=0)
 267   2          {
 268   3           ST=D1;
 269   3          C_G=0;
 270   3          n=ST%10;
 271   3       SB1=0;
 272   3       P0=table[n];
 273   3       delay();
 274   3       delay();
 275   3       SB1=1;
 276   3       delay();
 277   3       n=ST/10;
 278   3       SB2=0;
 279   3       P0=table[n];
 280   3       delay();
 281   3       delay();
 282   3       SB2=1;
 283   3       delay();
 284   3               if(add==0)
 285   3             {
 286   4                 for(k=0;k<20000;k++)
 287   4                   ;
 288   4                      if(add==0)
 289   4                      D1++;
 290   4                      //if(D1==99)
 291   4              //      D1=0;
 292   4                      }
 293   3            if(dec==0)
 294   3              {
 295   4                  for(k=0;k<20000;k++)
 296   4                   ;
 297   4                       if(dec==0)
 298   4                       D1--;
 299   4                       //if(D1==0);
 300   4                       //D1=99;
 301   4                      }
 302   3            }
 303   2                C_G=1;
C51 COMPILER V7.06   6                                                                     05/08/2006 21:50:17 PAGE 6   

 304   2                if(menu==0)
 305   2              {for(k=0;k<10000;k++)
 306   3                   ;
 307   3                               if(menu==0)
 308   3                    { for(k=0;k<20000;k++)
 309   4                       ;
 310   4                      if(menu==0)
 311   4                         {for(k=0;k<50000;k++)
 312   5                          ;
 313   5                           exit=0;
 314   5                                               }
 315   4                                      }
 316   3                              }
 317   2                       
 318   2       }
 319   1        
 320   1      }
 321          void main(void)///////////////////////////////////////////////////////////////////
 322          {  
 323   1        A1=15;//主干转弯时间
 324   1        B1=60;//主干通行时间
 325   1        C1=10;//次干转弯时间
 326   1        D1=45;//次干通行时间
 327   1        a=A1;//15
 328   1        b=A1+B1;//75
 329   1        c=C1;//10
 330   1        d=C1+D1;//15
 331   1        if(menu==0)
 332   1        for(k=0;k<10000;k++)
 333   1              ;
 334   1        if(menu==0)
 335   1        settime();   
 336   1        init();
 337   1        a=A1;//15
 338   1        b=A1+B1;//75
 339   1        c=C1;//10
 340   1        d=C1+D1;//15
 341   1        while(1)
 342   1        {
 343   2          switch(CASE)
 344   2           {
 345   3             case 1:
 346   3                  PT=a;
 347   3                  ST=b;
 348   3      
 349   3                  C_R=0;//C go ahead forbit
 350   3                  D_R=0;//D go ahead forbit
 351   3                  A_A=0;//A road turn left allow
 352   3                  A_R=0;
 353   3                  B_A=0;//B road turn left allow
 354   3                  B_R=0;
 355   3                  while(!(PT==0&&ST==0))
 356   3                  {
 357   4                   if(PT<6&&ST<(B1+6)&&ST>PT)
 358   4                       { 
 359   5                         if(PT%2==1)
 360   5                             {
 361   6                              A_A=1;//A road turn left flash
 362   6                              B_A=1;//B road turn left flash
 363   6                                              }
 364   5                          else 
 365   5                              {
C51 COMPILER V7.06   6                                                                     05/08/2006 21:50:17 PAGE 7   

 366   6                              A_A=0;
 367   6                              B_A=0;
 368   6                                              }
 369   5                                }
 370   4                   if(PT==0&&ST==B1)
 371   4                      {
 372   5                         PT=B1;
 373   5                         A_A=1;//A road turn left forbid
 374   5                         B_A=1;//B road turn left forbid
 375   5                         A_G=0;//A road go ahead allow
 376   5                         A_R=1;
 377   5                         B_G=0;//B road go ahead allow
 378   5                         B_R=1;
 379   5                         
 380   5                        }
 381   4                   if(PT<6&&ST<6)
 382   4                              { 
 383   5                                   A_G=1;
 384   5                               B_G=1;
 385   5                               if(PT%2==1)
 386   5                                 {
 387   6                                  A_Y=1;//A road yellow light flash
 388   6                                  B_Y=1;//B road yellow light flash
 389   6                                          }
 390   5                              else 
 391   5                                 {
 392   6                                      A_Y=0;
 393   6                                  B_Y=0;
 394   6                                      }
 395   5                                 }
 396   4                   display(PT,ST);
 397   4                  }
 398   3                  A_G=1;//A road go ahead forbit
 399   3                  B_G=1;//B road go ahead forbit
 400   3                  CASE=2;
 401   3                  break;
 402   3               
 403   3             
 404   3             case 2:
 405   3                  PT=d;
 406   3                  ST=c;
 407   3                  A_R=0;//A road go ahead forbit
 408   3                  B_R=0;//B road go ahead forbit
 409   3                  C_A=0;//C road turn left allow
 410   3                  C_R=0;
 411   3                  D_A=0;//D road turn left allow
 412   3                  C_R=0;
 413   3                  while(!(PT==0&&ST==0))
 414   3                    { 
 415   4                        if(PT<(6+D1)&&ST<6&&PT>ST)
 416   4                       { 
 417   5                         if(PT%2==1)
 418   5                             {
 419   6                              C_A=1;//C road turn left flash
 420   6                              C_A=1;//C road turn left flash
 421   6                                              }
 422   5                          else 
 423   5                              {
 424   6                              C_A=0;
 425   6                              C_A=0;
 426   6                                              }
 427   5                                }
C51 COMPILER V7.06   6                                                                     05/08/2006 21:50:17 PAGE 8   

 428   4                      if(PT==D1&&ST==0)
 429   4                          {
 430   5                                ST=D1;
 431   5                            C_A=1;//C road turn left forbid
 432   5                            D_A=1;//D road turn left forbid
 433   5                            C_G=0;//C road go ahead allow
 434   5                                C_R=1;
 435   5                            D_G=0;//D road go ahead allow
 436   5                                D_R=1;
 437   5                            
 438   5                                       }
 439   4                      if(PT<6&&ST<6)
 440   4                              { 
 441   5                                   C_G=1;
 442   5                               D_G=1;
 443   5                               if(PT%2==1)
 444   5                                 {
 445   6                                  C_Y=1;//C road yellow light flash
 446   6                                  D_Y=1;//D road yellow light flash
 447   6                                          }
 448   5                              else 
 449   5                                 {
 450   6                                      C_Y=0;
 451   6                                  D_Y=0;
 452   6                                      }
 453   5                                 }
 454   4                      display(PT,ST);
 455   4                     }
 456   3                  C_G=1;//C road go ahead forbit
 457   3                  D_G=1;//C road go ahead forbit
 458   3                  CASE=1;
 459   3                  break;
 460   3                 
 461   3             }
 462   2         }
 463   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1246    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15       3
   IDATA SIZE       =   ----    ----
   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 + -