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

📄 ser.lst

📁 全功能交通灯设计智能交通灯.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:

 242          {
 243   1              
 244   1              
 245   1                      if(dat_c>=23&&dat_c<=56)
 246   1              {
 247   2                      if(26<dat_c&&dat_c<=56)
 248   2                      {
 249   3                              P0=0xeb; 
 250   3      
 251   3                              cshi=1;
 252   3                              P2=dis[(dat_c-26)%10];
 253   3                              cshi=0;;
 254   3                              delay(5);
 255   3                              guan();
 256   3                              cge=1;
 257   3                              P2=dis[(dat_c-26)/10];
 258   3                              cge=0;
 259   3                              delay(5);
 260   3                              guan();
 261   3              
 262   3                      }
 263   2              if(dat_c>=23&&dat_c<=26)
 264   2                      {       
 265   3                                      P0=0xe2;//黄灯
 266   3                                      
 267   3                              cshi=1;
 268   3                              cge=1;
 269   3                              P2=dis[(dat_c-23)%10];
 270   3                              cge=0;
 271   3                              delay(5);
 272   3              guan();                         
 273   3                      }
 274   2              }
 275   1              
 276   1              if(dat_c<23)
 277   1              {
 278   2                      if(dat_c>3&&dat_c<23)
 279   2                      {
 280   3                               P0=0xdd;//红灯
 281   3              guan();
 282   3      
 283   3                              cshi=1;
 284   3                              P2=dis[(dat_c-3)%10];
 285   3                              cshi=0;
 286   3                                      delay(5);
 287   3              guan();
 288   3      
 289   3                              cge=1;
 290   3                              P2=dis[(dat_c-3)/10];
 291   3                              cge=0;
 292   3                              delay(5);
 293   3         guan();
 294   3                      }
 295   2                      if(dat_c<=3)
 296   2                      {                       
 297   3                                      zge=1; 
 298   3                                      zshi=1;
 299   3                                      cge=1;
 300   3                              P2=0xff;
 301   3                                      cshi=0;
 302   3                                      P2=dis[(dat_c)%10];
 303   3                                      delay(1);
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 6   

 304   3                                      cshi=1;
 305   3       guan();
 306   3                      }
 307   2      
 308   2              }       
 309   1      }
 310          
 311          void keyscan()  //键盘扫描子程序,KEY1功能键,KEy2减一键,KEY3加一键
 312          {
 313   1              
 314   1              if(key1==0)
 315   1              {
 316   2                      delay(5);
 317   2                      if(key1==0)
 318   2                      {
 319   3                              key1num++;
 320   3                              while(!key1)
 321   3                              {
 322   4                                      display(num,num1);
 323   4                              }
 324   3                              if(key1num==1)
 325   3                              {
 326   4                                      TR0=0;
 327   4                              }
 328   3                              if(key1num==3)
 329   3                              {
 330   4                                      key1num=0;
 331   4                                      TR0=1;
 332   4                              }
 333   3                      }
 334   2              }
 335   1              if(key1num!=0)  //先判断功能设置键
 336   1              {
 337   2                      if(key2==0)
 338   2                      {
 339   3                              delay(5);
 340   3                              if(key2==0)
 341   3                              {
 342   4                                      if(key1num==1)
 343   4                                      {
 344   5                                              while(!key2)
 345   5                                              {
 346   6                                                      displayz(num);
 347   6                                              }
 348   5                                              num++;
 349   5                                              if(num==56)
 350   5                                              {
 351   6                                                      num=0;
 352   6                                              }
 353   5                                      }
 354   4                                      if(key1num==2)
 355   4                                      {
 356   5                                              while(!key2)
 357   5                                              {
 358   6                                                      displayc(num1);
 359   6      
 360   6                                              }
 361   5                                                      num1++;
 362   5                                                      if(num1==56)
 363   5                                                      num1=0;
 364   5                                      }
 365   4                              }
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 7   

 366   3                      }
 367   2                      if(key3==0)                      //减一键
 368   2                      {
 369   3                              delay(5);
 370   3                              if(key3==0)
 371   3                              {
 372   4                                      if(key1num==1)
 373   4                                      {
 374   5                                              while(!key3)
 375   5                                              {
 376   6                                                      displayz(num);
 377   6                                              }
 378   5                                              num--;
 379   5                                              if(num==0)
 380   5                                              {
 381   6                                                      num=56;
 382   6                                              }
 383   5                                      }
 384   4                                      if(key1num==2)
 385   4                                      {
 386   5                                              while(!key3)
 387   5                                              {
 388   6                                                      displayc(num1);
 389   6      
 390   6                                              }
 391   5                                              num1--;
 392   5                                              if(num1==0)
 393   5                                              num1=56;
 394   5                                      }
 395   4                              }
 396   3                      }
 397   2              }
 398   1      
 399   1      
 400   1      }
 401          
 402          void main()                     //程序主函数
 403          {
 404   1              
 405   1              init();         //初始化程序
 406   1              while(1)
 407   1              {
 408   2                      if(count==20)   //自动倒计时功能
 409   2                      {
 410   3                              count=0;
 411   3                              num--;
 412   3                              num1--;
 413   3                              if(num==0)
 414   3                              num=56;
 415   3                              if(num1==0)
 416   3                              num1=56;
 417   3                      }
 418   2                              if(key1num!=0)          //控制显示模式
 419   2                              {
 420   3                                      if(key1num==1)
 421   3                                      {
 422   4                                              displayz(num);
 423   4                                      }
 424   3                                      if(key1num==2)
 425   3                                      {
 426   4                                              displayc(num1);
 427   4                                      }
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 8   

 428   3                              }
 429   2                              if(key1num==0)
 430   2                              {
 431   3                                display(num,num1);
 432   3                              }
 433   2      
 434   2                      keyscan();
 435   2               }
 436   1      }
 437          void t0(void ) interrupt 1  //定时器T0  中断计时用
 438          {
 439   1              TH0=(65535-50000)/256;
 440   1              TL0=(65535-50000)%256;
 441   1              count++;        
 442   1      }
 443          ////////////////////////////////////////////
 444          //串口通信////////////////
 445          //发送0x00,数码管停止,发送0xff,计时起动///
 446          //发送0x01,设置主通道的时间//////////
 447          //发送0x02   设置次通道的时间////////
 448          void ser() interrupt 4
 449          {
 450   1              RI=0;    //软件清零
 451   1      //      P1=SBUF;
 452   1              a=SBUF;    //读SBUF的值
 453   1      //      SBUF=a;
 454   1              if(a==0x00)
 455   1              {
 456   2                      flag=1;   //标志位
 457   2                      TR0=0;    //停止计数器
 458   2              }
 459   1              if(a==0xff)
 460   1              {
 461   2                      TR0=1;     //标志位
 462   2                      flag=0;    //启动
 463   2              }
 464   1              if(flag==1)
 465   1              {
 466   2                      if(a==0x01)
 467   2                      {
 468   3                              num=SBUF;  //设置主通道的通车时间
 469   3                      }
 470   2                      if(a==0x02)
 471   2                      {
 472   3                              num1=SBUF; //设置次通道的通车时间
 473   3                      }
 474   2              }
 475   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1207    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       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 + -