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

📄 bskz.lst

📁 这是9个步进电机控制程序,每个都编译通过,并在使用中,可以共同商讨.联系:guanggu346 @163.com
💻 LST
字号:
C51 COMPILER V7.50   BSKZ                                                                  05/01/1985 17:56:26 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BSKZ
OBJECT MODULE PLACED IN bskz.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bskz.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //步进电机变速(加速,匀速,减速)控制
   2          //2007年6月16日
   3          //王志炎
   4          
   5          #include<reg51.h>
   6          sbit A=P1^6;//第一相
   7          sbit D=P1^7;//第二相
   8          sbit H=P3^2;//第三相
   9          sbit C=P3^3;//第四相
  10          sbit I=P1^4;//高电平正转,低电平反转
  11          unsigned char j;
  12          unsigned char t;
  13          
  14          void Delay(unsigned char i)
  15          {
  16   1      do
  17   1      {
  18   2      TH0 = 0xFF;
  19   2      TL0 = 0xF0;
  20   2      TR0 = 1; //启动定时器
  21   2      while ( !TF0 ); //等待定时器溢出
  22   2      TR0 = 0; //停止定时器
  23   2      TF0 = 0; //清除溢出标志
  24   2      } while ( --i!= 0 ); //循环t 次
  25   1      }
  26          
  27          void z_biansu(unsigned char t)//正转变速
  28          {
  29   1      for(j=0;j<4;j++)                                                        
  30   1      
  31   1      switch(j)
  32   1      {
  33   2      case 0:
  34   2           D=1;
  35   2           H=0;
  36   2               C=0;
  37   2           A=0;
  38   2      Delay(30+t*2);
  39   2      break;
  40   2      case 1:
  41   2           D=0;
  42   2           H=1;
  43   2               C=0;
  44   2           A=0;
  45   2      Delay(30+t*2);
  46   2      break;
  47   2      case 2:
  48   2           D=0;
  49   2           H=0;
  50   2               C=1;
  51   2           A=0;
  52   2      Delay(30+t*2);
  53   2      break;
  54   2      case 3:
  55   2           D=0;
C51 COMPILER V7.50   BSKZ                                                                  05/01/1985 17:56:26 PAGE 2   

  56   2           H=0;
  57   2               C=0;
  58   2           A=1;
  59   2      Delay(30+t*2);
  60   2      break;
  61   2      default:break;
  62   2      }
  63   1      }
  64          void f_biansu(unsigned char t)//反转变速
  65          {
  66   1      for(j=0;j<4;j++)                                                        
  67   1      
  68   1      switch(j)
  69   1      {
  70   2      case 0:
  71   2           D=0;
  72   2           H=0;
  73   2               C=0;
  74   2           A=1;
  75   2      Delay(30+t*2);
  76   2      break;
  77   2      case 1:
  78   2           D=0;
  79   2           H=0;
  80   2               C=1;
  81   2           A=0;
  82   2      Delay(30+t*2);
  83   2      break;
  84   2      case 2:
  85   2           D=0;
  86   2           H=1;
  87   2               C=0;
  88   2           A=0;
  89   2      Delay(30+t*2);
  90   2      break;
  91   2      case 3:
  92   2           D=1;
  93   2           H=0;
  94   2               C=0;
  95   2           A=0;
  96   2      Delay(30+t*2);
  97   2      break;
  98   2      default:break;
  99   2      }
 100   1      }
 101          
 102          void z_yunsu()//正转匀速
 103          {
 104   1      for(j=0;j<4;j++)                                                        
 105   1      switch(j)
 106   1      {
 107   2      case 0:
 108   2           D=1;
 109   2           H=0;
 110   2               C=0;
 111   2           A=0;
 112   2      Delay(30);
 113   2      break;
 114   2      case 1:
 115   2           D=0;
 116   2           H=1;
 117   2               C=0;
C51 COMPILER V7.50   BSKZ                                                                  05/01/1985 17:56:26 PAGE 3   

 118   2           A=0;
 119   2      Delay(30);
 120   2      break;
 121   2      case 2:
 122   2           D=0;
 123   2           H=0;
 124   2               C=1;
 125   2           A=0;
 126   2      Delay(30);
 127   2      break;
 128   2      case 3:
 129   2           D=0;
 130   2           H=0;
 131   2               C=0;
 132   2           A=1;
 133   2      Delay(30);
 134   2      break;
 135   2      default:break;
 136   2      }
 137   1      
 138   1      }
 139          
 140          void f_yunsu()//反转匀速
 141          {
 142   1      for(j=0;j<4;j++)                                                
 143   1      
 144   1      switch(j)
 145   1      {
 146   2      case 0:
 147   2           D=0;
 148   2           H=0;
 149   2               C=0;
 150   2           A=1;
 151   2      Delay(30);
 152   2      break;
 153   2      case 1:
 154   2           D=0;
 155   2           H=0;
 156   2               C=1;
 157   2           A=0;
 158   2      Delay(30);
 159   2      break;
 160   2      case 2:
 161   2           D=0;
 162   2           H=1;
 163   2               C=0;
 164   2           A=0;
 165   2      Delay(30);
 166   2      break;
 167   2      case 3:
 168   2           D=1;
 169   2           H=0;
 170   2               C=0;
 171   2           A=0;
 172   2      Delay(30);
 173   2      break;
 174   2      default:break;
 175   2      }
 176   1      }
 177          
 178          //主函数
 179           void main(void)
C51 COMPILER V7.50   BSKZ                                                                  05/01/1985 17:56:26 PAGE 4   

 180          {
 181   1      if(I==1)//正转
 182   1        {
 183   2        for(t=30;t>0;t--)//正转加速,走30步
 184   2        z_biansu(t); 
 185   2      
 186   2      
 187   2      for(t=200;t>0;t--)//正转匀速,走200步
 188   2        z_yunsu();
 189   2      
 190   2         for(t=0;t<30;t++)//正转减速,走30步
 191   2         z_biansu(t); 
 192   2      }
 193   1      
 194   1      else //反转
 195   1      {
 196   2      for(t=30;t>0;t--)//反转加速,走30步
 197   2        f_biansu(t);
 198   2         
 199   2      for(t=200;t>0;t--)//反转匀速,走200步
 200   2      
 201   2       f_yunsu();
 202   2      
 203   2      for(t=0;t<30;t++)//反转减速,走30步
 204   2       f_biansu(t);
 205   2      }  
 206   1      }


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