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

📄 motor.lst

📁 步进电机加减速运行程序 步进电机启动时
💻 LST
字号:
C51 COMPILER V7.06   MOTOR                                                                 05/03/2007 09:38:49 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MOTOR
OBJECT MODULE PLACED IN motor.OBJ
COMPILER INVOKED BY: E:\Program Files\C51\BIN\C51.EXE motor.c BROWSE DEBUG OBJECTEXTEND SRC(.\motor.SRC)

stmt level    source

   1          /******************************************************************/
   2          /*****************************************************************/ 
   3          /*                                                                                                        
             -                       
   4          /*                 步进电机加减速运行程序                                                                 
             -                                                                                                           
   5          /*               步进电机启动时,转速由慢到快逐步加速。                                                   
             -                   
   6          /*               步进电机匀速运行                                                                         
             -                              
   7          /*               步进电机由快到慢逐步减速到停止 
   8          /*                                                                                                        
             -                                                                                                                        
             -                    
   9          /******************************************************************/
  10              
  11          #include <reg52.h>       
  12          #include <string.h>    
  13          
  14          #define uchar unsigned char
  15          #define uint  unsigned int
  16          
  17          sbit  addr0 = P1^4;
  18          sbit  addr1 = P1^5;
  19          sbit  addr2 = P1^6;
  20          sbit  addr3 = P1^7;
  21          
  22          uchar code FFW[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转数组
  23          uchar code REV[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//反转数组
  24          uchar rate ;        
  25          /********************************************************/
  26          /*                                                  
  27          /* 延时
  28          /* 11.0592MHz时钟,                                    
  29          /*                                                      
  30          /********************************************************/
  31          void delay()
  32           {                           
  33   1         uchar k;
  34   1         uint s;
  35   1         k = rate;
  36   1         do
  37   1          {
  38   2             for(s = 0 ; s <100 ; s++) ;  
  39   2          }while(--k);
  40   1       }
  41          
  42          
  43          void delay2(uchar k)
  44           {  
  45   1                               
  46   1         uchar s;
  47   1         for(s = 0 ; s <k ; s++) ;  
  48   1      
  49   1         }
C51 COMPILER V7.06   MOTOR                                                                 05/03/2007 09:38:49 PAGE 2   

  50          
  51          /********************************************************/
  52          /*
  53          /*步进电机正转
  54          /*
  55          /********************************************************/
  56          void  motor_ffw()
  57          { 
  58   1         uchar i;
  59   1       
  60   1          for (i=0; i<8; i++)      //一个周期转30度
  61   1          {  
  62   2             P0 = FFW[i];//取数据
  63   2             addr0 = 1;
  64   2             addr1 = 0;
  65   2             addr2 = 1;
  66   2             addr3 = 1;
  67   2             addr3 = 0;
  68   2             delay();                 //调节转速
  69   2          }
  70   1      }
  71          
  72          /********************************************************/
  73          /*
  74          /*步进电机反转
  75          /*
  76          /********************************************************/
  77          void  motor_rev()
  78          { 
  79   1         uchar i;
  80   1       
  81   1          for (i=0; i<8; i++)      //一个周期转30度
  82   1          {  
  83   2             P0 = REV[i]; //取数据
  84   2             addr0 = 1;
  85   2             addr1 = 0;
  86   2             addr2 = 1;
  87   2             addr3 = 1;
  88   2             addr3 = 0;
  89   2             delay();                 //调节转速
  90   2          }
  91   1      }
  92          
  93          /********************************************************
  94          *                                                       
  95          *步进电机运行                                               
  96          *                                                      
  97          *********************************************************/
  98          void  motor_turn()
  99          { 
 100   1         uchar x;
 101   1         rate=0x30;
 102   1         x=0xf0;
 103   1         do
 104   1           {
 105   2              motor_ffw();               //正转加速
 106   2              rate--;
 107   2           }while(rate!=0x0a);
 108   1      
 109   1         do
 110   1           {     
 111   2              motor_ffw();               //正转匀速
C51 COMPILER V7.06   MOTOR                                                                 05/03/2007 09:38:49 PAGE 3   

 112   2             x--;
 113   2           }while(x!=0x01);
 114   1        
 115   1         do
 116   1           {
 117   2              motor_ffw();              //正转减速 
 118   2              rate++;
 119   2           }while(rate!=0x30);    
 120   1         do
 121   1           {
 122   2              motor_rev();               //反转加速
 123   2              rate--;
 124   2           }while(rate!=0x0a);
 125   1      
 126   1         do
 127   1           {     
 128   2              motor_rev();               //反转匀速
 129   2             x--;
 130   2           }while(x!=0x01);
 131   1        
 132   1         do
 133   1           {
 134   2              motor_rev();               //反转减速 
 135   2              rate++;
 136   2           }while(rate!=0x30);    
 137   1      }
 138          
 139          /********************************************************
 140          *                                                       
 141          *  主程序                                               
 142          *                                                      
 143          *********************************************************/
 144          main()
 145          {     
 146   1         
 147   1         P1=0xf0; 
 148   1      
 149   1         while(1)
 150   1        {
 151   2             P0 = 0x00;//ULN2003输出高电平
 152   2             addr0 = 1;
 153   2             addr1 = 0;
 154   2             addr2 = 1;
 155   2             addr3 = 1;
 156   2             addr3 = 0;
 157   2             delay2(255);
 158   2      
 159   2             motor_turn();
 160   2      
 161   2        } 
 162   1      }
 163          
 164          
 165          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    156    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
C51 COMPILER V7.06   MOTOR                                                                 05/03/2007 09:38:49 PAGE 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 + -