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

📄 base.lst

📁 这是我自己参加竞赛时写的
💻 LST
📖 第 1 页 / 共 2 页
字号:
 233   1              START=0;
 234   1              LASTS=1;
 235   1              time1=1;
 236   1              time2=1;
 237   1              counter1=170;
 238   1              counter2=30;
 239   1              EA=1;           
 240   1              while(1)
 241   1              {        
C51 COMPILER V8.02   BASE                                                                  09/05/2007 14:31:49 PAGE 5   

 242   2                      LEDG=~LEDG;             
 243   2                      avge=pingjun();
 244   2                      if(xianshi==1)
 245   2                      {BCD_H_L(avge-200,0); }    
 246   2                      a=IN0;
 247   2                      bb=IN1;
 248   2                      c=IN2;
 249   2                      //d=IN3;
 250   2                      //e=IN4;
 251   2                      f=IN5;
 252   2                      g=IN6;
 253   2                      if(backward==1)
 254   2                      {
 255   3                              START=1;
 256   3                              LASTS=0;
 257   3                              BACK=0;
 258   3                              LASTB=1;
 259   3                              judgementback(90,20,20);
 260   3                      }
 261   2                      if(forward==1)
 262   2                      { 
 263   3                              START=1;
 264   3                              LASTS=0;
 265   3                              BACK=1; //前进
 266   3                              LASTB=0;
 267   3                              judgement(90,20,20);            
 268   3                      }
 269   2                 if(black==1)         
 270   2                 {
 271   3                      START=1;
 272   3                              LASTS=0;
 273   3                      TR1=1; //开定时器
 274   3                              time2=0;            
 275   3                              judgement(90,20,20);
 276   3                      }
 277   2                 if(keykey==1) 
 278   2                      {
 279   3                              chazhi1=abs((int)(avge-avge0));
 280   3                              if(chazhi1>10)           //chazhi1>=20
 281   3                              {
 282   4                                      START=1;
 283   4                                      LASTS=0;
 284   4                                      counter2=30;
 285   4                                      if(avge>(avge0+chazhi-3)) 
 286   4                                      { 
 287   5                                              BACK=0;
 288   5                                              LASTB=1;
 289   5                                              //delayms(5);
 290   5                                              judgementback(0,50,15);
 291   5                                      }
 292   4                                      if(avge<(avge0-chazhi)) 
 293   4                                      {
 294   5                        
 295   5                                              BACK=1;
 296   5                                              LASTB=0;
 297   5                                              //delayms(5);
 298   5                                              judgement(0,50,15);
 299   5                        
 300   5                                      }       
 301   4                              }               
 302   3                              /*/else if((chazhi1<20)&&())
 303   3                              //{     
C51 COMPILER V8.02   BASE                                                                  09/05/2007 14:31:49 PAGE 6   

 304   3                                  counter2=30;
 305   3                                      if(avge>(avge0+chazhi-3)) 
 306   3                                      { 
 307   3                                               START=1;                                        
 308   3                                               BACK=0;
 309   3                                               //delayms(5);
 310   3                                               judgementback(0,50,15);
 311   3                                      }
 312   3                                      if(avge<(avge0-chazhi)) 
 313   3                                      {
 314   3                                              START=1;
 315   3                                              BACK=1;
 316   3                                              //delayms(5);
 317   3                                              judgement(0,50,15);
 318   3                                       }      
 319   3                              //}*/           
 320   3                              else     
 321   3                              {
 322   4                                      START=0;
 323   4                                      LASTS=1;
 324   4                                      TR1=1; //开定时器
 325   4                                      time1=0; 
 326   4                                      time2=1;
 327   4                                                              
 328   4                              }       
 329   3              }
 330   2                 
 331   2              }
 332   1      }
 333          /*PCA中断子程序*/
 334          void PCA_ISR (void) interrupt 9
 335          {
 336   1              
 337   1              CCF0 = 0;                       /*清匹配中断标志*/
 338   1      
 339   1      } 
 340           /*键盘中断子程序*/
 341          void led(void)  interrupt 19
 342          { 
 343   1              uchar key,t;
 344   1              EA=0;   
 345   1              key=CH452_Read();   
 346   1              if(0x62==key)
 347   1              {
 348   2                      delayms(2);
 349   2                      avge0=avge;
 350   2                      black=0;        
 351   2                      BCD_H_L(avge0-200,1); 
 352   2          }
 353   1              if(0x63==key)
 354   1              {       
 355   2                      delayms(2);
 356   2                      black=1;
 357   2                      xianshi=0;
 358   2                      TR0=1;
 359   2                      for(t=0;t<8;t++)
 360   2                      CH452_Write((CH452_DIG0+ (t<<8))|16);
 361   2                      CH452_Write(CH452_DIG1);
 362   2                      stage_clk_start();
 363   2              }
 364   1              if(0x7A==key)
 365   1              {
C51 COMPILER V8.02   BASE                                                                  09/05/2007 14:31:49 PAGE 7   

 366   2                      delayms(2);
 367   2                      counter1=counter1+10;
 368   2                      CH452_Write(CH452_DIG3 | 1);
 369   2              }         
 370   1              if(0x7B==key)   
 371   1              {
 372   2                      delayms(2);
 373   2                      counter1=counter1-10;
 374   2                      CH452_Write(CH452_DIG3 | 0);
 375   2              }         
 376   1              EA=1;
 377   1      }
 378          
 379          /*定时器0中断子程序*/
 380           void T0_ISR(void) interrupt 1  using 0
 381          {
 382   1              TR0=0;
 383   1              TF0=0;
 384   1              TH0=0x7D        ;                                       
 385   1              TL0=0xCC        ;       //0xCC由0xCB+1得来
 386   1              TR0=1;
 387   1              if(T0_OF<10)
 388   1                      T0_OF++;
 389   1              else
 390   1              {       
 391   2                      
 392   2                      if(sec<59)
 393   2                              sec++;
 394   2                      else
 395   2                      {
 396   3                              sec=0;
 397   3                              min++;
 398   3                              CH452_Write(CH452_DIG3 | min);                  //先写min,因为人眼分辨不出              
 399   3                              CH452_Write(0x1FB);
 400   3                      }
 401   2                      CH452_Write(CH452_DIG1 | (sec%10));
 402   2                      CH452_Write(CH452_DIG2 | (sec/10));
 403   2                      if(stage_clk_flag)
 404   2                      {
 405   3                              stage_sec++;
 406   3                              CH452_Write(CH452_DIG4 | (stage_sec%10));
 407   3                              if(stage_sec/10)  CH452_Write(CH452_DIG5 | (stage_sec/10));
 408   3                      }
 409   2                      T0_OF=0;
 410   2              }       
 411   1      }
 412          
 413          /*定时器1中断子程序*/
 414          void TIMER1_ISR (void) interrupt 3 using 1
 415          {
 416   1              uchar i;
 417   1              TR1=0;
 418   1              TF1=0;
 419   1              TH1=0x7D;
 420   1              TL1=0xFB;
 421   1              TR1=1;
 422   1              if(time1==1)    //执行黑线判断程序17s
 423   1              {
 424   2                 if(--counter1==0)
 425   2                 {
 426   3                     TR1=0;   //关定时器
 427   3                         time1=0;     //标志
C51 COMPILER V8.02   BASE                                                                  09/05/2007 14:31:49 PAGE 8   

 428   3                         keykey=1;//执行角度黑线判断程序
 429   3                         black=0;     //不执行黑线判断程序
 430   3                 }
 431   2                
 432   2              }
 433   1              if(time2==1)      //判断3s后5s显示
 434   1              { if(--counter2==0)
 435   2                 {
 436   3                     TR1=0; //关定时器                   
 437   3                         time2=0;//标志
 438   3                         keykey=0;               
 439   3                         stage_clk_flag=0;//stage_clk_stop();//显示平衡的时间
 440   3                         CH452_Write(CH452_TWINKLE | 0x30);
 441   3                         for(i=5;i>0;i--)
 442   3                              {       
 443   4                                      CH452_Write(CH452_DIG7 | i);
 444   4                                      SPOKER=1;
 445   4                                      delay_s(1);
 446   4                                      SPOKER=0;
 447   4                                      delay_s(1);
 448   4                              }
 449   3                         CH452_Write(CH452_DIG7);//计数显示   
 450   3                         stage_clk_start();
 451   3                 forward=1;//平衡后前进
 452   3                                         
 453   3                 } 
 454   2              }
 455   1      
 456   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2035    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     60    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     31      25
   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 + -