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

📄 laststop.lst

📁 motor_control.zip
💻 LST
📖 第 1 页 / 共 2 页
字号:
 234   1              LASTS=1;
 235   1              LASTB=0;
 236   1              time1=1;
 237   1              time2=1;
 238   1              counter1=170;
 239   1              counter2=30;
 240   1              EA=1;           
 241   1              while(1)
C51 COMPILER V8.02   LASTSTOP                                                              09/05/2007 15:15:53 PAGE 5   

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

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

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2034    ----
   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 + -