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

📄 无刷0621.lst

📁 采用stc12c5404ad的51系列内核无刷控制器程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 386   1      //--查霍尔是否更新--------   
 387   1        if(hehc_bl!=hehc)           //判断霍尔是否变化,成立执行语句1后退出
 388   1        {hehc_bl=hehc;              //语句2,霍尔变化存入新的数据到变量中
 389   2         he_cs_sj1=hehc;he_cs_bz1=1;
 390   2         if(he_cs_bz1==1){he_cs_sj2=hehc;he_cs_bz2=1;}
 391   2         if(he_cs_bz2==1){he_cs_sj3=hehc;he_cs_bz3=1;}
 392   2        //----------------------------------------
 393   2         if(he_cs_bz1==1)
 394   2           {if(he_cs_bz2==1)
 395   3             {if(he_cs_bz3==1)
 396   4               {if(he_cs_sj1&he_cs_sj2&he_cs_sj3!=0x00)
 397   5                  {zs_js++;he_cs_bz1=0;he_cs_bz2=0;he_cs_bz3=0;}
 398   5               }
 399   4             }
 400   3           }
 401   2      //--------------------
 402   2        }
 403   1      
 404   1      }
 405          //**********电流自动调整函数******************************************************
 406          void dl_tz(void)
 407          { set_p17_adc();
 408   1        do
 409   1         {get_ad_dy();}
 410   1        while(adc_data>=20);
 411   1         {pwm_bls=adc_data*10+pwm_bl;
 412   2          if(pwm_bls>=241){pwm_bls=241;}
 413   2          he_gzjc();pwm_out();zb_fx();dgdz();
 414   2         }
 415   1        pwm_bls=pwm_bl;
 416   1      }
 417          //********************转把工作状态分析函数****************************************
 418          //函数出口--pwm_bl里有查表后数据,PWM输出程序直接读出放入PWM占空比寄存器
 419          //ccap0h,ccap1h,ccap2h中即可
 420          //********************************************************************************
 421          void zb_fx(void)
 422          {  //---连续3次测量转把电压-------- 
 423   1         set_p13_adc();                  //调转把电压转换通道 
 424   1         get_ad_dy();                    //第一次测量转把电压                                                   
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
C51 COMPILER V6.12  _轤_0621                                                               06/28/2005 07:25:16 PAGE 8   

             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -               
 425   1         pwm_bl=pwmout[adc_data];        //在数组中查出对应的AD转换PWM值
 426   1         if(pwm_bl==1)                   //为1成立执行大的语句1后退出,不成立执行语句2后退出
 427   1         //语句1,转把电压等于1说明转把在1.3v以下或4.5v以上停止输出闪LED
 428   1           {
 429   2            hehc_bl=0;                   //霍尔存储旧数据的变量及时清0否则很难起动
 430   2            pca_pwm0=0x03;               //停止所有输出             
 431   2            pca_pwm1=0x03;
 432   2            pca_pwm2=0x03;
 433   2            TR0=0;zs_ds_js=0;zs_js=0;    //关测速定时器,定时计数器清0,转速度计数器清0
 434   2            pwmal=0;pwmbl=0;pwmcl=0;     //关3个下桥
 435   2            timebj=15;                   //定时器1中断12次闪烁一次LED
 436   2            TR1=1;zbyx_bz=0;             //开定时器1-LED闪烁,转把归0标志位为0,pwm输出就无效
 437   2           }
 438   1         else
 439   1         //语句2,转把电压不等于1说明在1.3v-4.5v之间正常行驶数据
 440   1           {led=1;zbyx_bz=1;TR0=1;}      //关定时器1指示灯,转把有效标志位为1,pwm输出有效 
 441   1      }
 442          //**********************软启动************************************
 443          //dg_rqd()
 444          //{dgdz();
 445           //if(pwm_bl!=pwm_blj)                             
 446            // {for(pwm_bls=241;pwm_bl!=pwm_bls;pwm_bls--)
 447          	// {he_gzjc();pwm_out();}pwm_blj=pwm_bl;
 448          //	}
 449           //else
 450           //  {if(shache_bz==1)
 451            //   {for(pwm_bls=241;pwm_bl!=pwm_bls;pwm_bls--)
 452          //	   {he_gzjc();pwm_out();}pwm_blj=pwm_bl;shache_bz=0;
 453          //	  }
 454          //	 else
 455          //	  {he_gzjc();pwm_out();}
 456          //	}
 457          //}
 458          //********************防盗锁电机函数**********************************************
 459          fd_dg()
 460          {while(fd==0)
 461   1      {
 462   2      {int fd_he;
 463   3       fd_he=P1&0X07;
 464   3       if(fd_he!=fd_hej)
 465   3      {fd_hej=fd_he;
 466   4          //switch(fd_he)                               //多分支语句根据霍尔位置输出对应节拍
 467   4            // {case  0x01:{
 468   4            pca_pwm0=0x03;pca_pwm2=0x03;pwmbl=0;pwmcl=0;
 469   4            ccap1h=10;pwmal=1;pca_pwm1=0x00;delay(20);
 470   4            pwmal=0;pca_pwm1=0x03;
 471   4            pwmal=1;pwmbl=1;pwmcl=1;delay(300);
 472   4                                   //-------
C51 COMPILER V6.12  _轤_0621                                                               06/28/2005 07:25:16 PAGE 9   

 473   4                                   //pwmcl=1;pca_pwm0=0x00;delay(1);
 474   4                                  // pwmcl=0;pca_pwm0=0x03;delay(2);
 475   4                      // break;}  //第1拍ccap0h刷新参数开C下桥A上桥
 476   4             //-------------------------------------------------------------
 477   4             // case  0x03:{pca_pwm0=0x03;pca_pwm1=0x03;pwmbl=0;pwmcl=0;
 478   4              //           ccap2h=10;pwmal=1;pca_pwm2=0x00;delay(20);
 479   4               //                    pwmal=0;pca_pwm2=0x03;
 480   4               //                    pwmal=1;pwmbl=1;pwmcl=1;delay(200);
 481   4                                  //--------
 482   4                                  // pwmcl=1;pca_pwm1=0x00;delay(1);
 483   4                                  // pwmcl=0;pca_pwm1=0x03;delay(2);
 484   4               //          break;}  //第2拍ccap1h刷新参数开C下桥b上桥
 485   4             //-------------------------------------------------------------    
 486   4             // case  0x02:{pca_pwm0=0x03;pca_pwm1=0x03;pwmal=0;pwmcl=0;
 487   4                  //       ccap2h=10;pwmbl=1;pca_pwm2=0x00;delay(20);
 488   4                   //                pwmbl=0;pca_pwm2=0x03;
 489   4                    //               pwmal=1;pwmbl=1;pwmcl=1;delay(200);
 490   4                   //               //--------
 491   4                                   //pwmal=1;pca_pwm1=0x00;delay(1);
 492   4                    //               //pwmal=0;pca_pwm1=0x03;delay(2);
 493   4                    //     break;}  //第3拍ccap1h刷新参数开a下桥b上桥
 494   4             //-------------------------------------------------------------  
 495   4            //  case  0x06:{pca_pwm1=0x03;pca_pwm2=0x03;pwmal=0;pwmcl=0;
 496   4              //           ccap0h=10;pwmbl=1;pca_pwm0=0x00;delay(20);
 497   4              //                     pwmbl=0;pca_pwm0=0x03;
 498   4              //                     pwmal=1;pwmbl=1;pwmcl=1;delay(200);
 499   4                                  //---------
 500   4                                   //pwmal=1;pca_pwm2=0x00;delay(1);
 501   4                                   //pwmal=0;pca_pwm2=0x03;delay(2);
 502   4               //          break;}  //第4拍ccap2h刷新参数开a下桥c上桥
 503   4             //-------------------------------------------------------------  
 504   4             // case  0x04:{pca_pwm1=0x03;pca_pwm2=0x03;pwmal=0;pwmbl=0;
 505   4             //            ccap0h=10;pwmcl=1;pca_pwm0=0x00;delay(20);
 506   4             //                      pwmcl=0;pca_pwm0=0x03;
 507   4              //                     pwmal=1;pwmbl=1;pwmcl=1;delay(200);
 508   4              //                    //---------
 509   4                                   //pwmbl=1;pca_pwm2=0x00;delay(1);
 510   4                                   //pwmbl=0;pca_pwm2=0x03;delay(2);
 511   4              //           break;}  //第5拍ccap2h刷新参数开b下桥c上桥
 512   4             //-------------------------------------------------------------  
 513   4             // case  0x05:{pca_pwm0=0x03;pca_pwm2=0x03;pwmal=0;pwmbl=0;
 514   4               //          ccap1h=10;pwmcl=1;pca_pwm1=0x00;delay(20);
 515   4              //                     pwmcl=0;pca_pwm1=0x03;
 516   4              //                     pwmal=1;pwmbl=1;pwmcl=1;delay(200);
 517   4                                  //----------
 518   4                                  // pwmbl=1;pca_pwm0=0x00;delay(1);
 519   4              //                    // pwmbl=0;pca_pwm0=0x03;delay(2);
 520   4              //           break;}  //第6拍ccap0h刷新参数开b下桥a上桥     
 521   4            // }
 522   4        }
 523   3      }
 524   2      }
 525   1      }
 526          //********************主函数******************************************************
 527          main()
 528          { 
 529   1        sd_csh();                     //调上电初始化函数
 530   1        qy_jc();                      //调欠压检测函数
 531   1        sd_ffc();                     //调上电防飞车函数,等待归0后才往下执行
 532   1        he_gzjc();                    //调霍尔故障检测函数,无故障才往下执行
 533   1       while(1)               
 534   1        {
C51 COMPILER V6.12  _轤_0621                                                               06/28/2005 07:25:16 PAGE 10  

 535   2          qy_jc();
 536   2         if(fd==0){fd_hej=P1&0x07;fd_dg();}//如果防盗口为低电平执行防盗程序
 537   2         //--------------
 538   2        else                               //否则执行正常程序
 539   2        {
 540   3         if(dz_bz1!=1){zb_fx();}           //1>调转把分析函数
 541   3         if(zbyx_bz==1)                    //如果转把标志位为1转把有效,就执行语句体否则不执行
 542   3           {dl_tz();dgdz();
 543   4            he_gzjc();pwm_out();
 544   4           }     //语句体,调霍尔分析函数,调PWM输出函数
 545   3         sc_stop();                   //调刹车断电检测函数
 546   3        }
 547   2        //-----------------------
 548   2       }
 549   1      }
 550          //********************************************************************************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1613    ----
   CONSTANT SIZE    =    256    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     66       4
   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 + -