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

📄 moter.lst

📁 步进电机加减速运行程序 步进电机启动时
💻 LST
字号:
C51 COMPILER V7.50   MOTER                                                                 04/19/2008 21:54:23 PAGE 1   


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

line 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          
  18          uchar code FFW[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转数组
  19          uchar code REV[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//反转数组
  20          uchar rate ;        
  21          /********************************************************/
  22          /*                                                  
  23          /* 延时
  24          /* 11.0592MHz时钟,                                    
  25          /*                                                      
  26          /********************************************************/
  27          void delay()
  28           {                           
  29   1         uchar k;
  30   1         uint s;
  31   1         k = rate;
  32   1         do
  33   1          {
  34   2             for(s = 0 ; s <100 ; s++) ;  
  35   2          }while(--k);
  36   1       }
  37          
  38          
  39          void delay2(uchar k)
  40           {  
  41   1                               
  42   1         uchar s;
  43   1         for(s = 0 ; s <k ; s++) ;  
  44   1      
  45   1         }
  46          
  47          /********************************************************/
  48          /*
  49          /*步进电机正转
C51 COMPILER V7.50   MOTER                                                                 04/19/2008 21:54:23 PAGE 2   

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

 112   2           }while(rate!=0x0a);
 113   1      
 114   1         do
 115   1           {     
 116   2              motor_rev();               //反转匀速
 117   2             x--;
 118   2           }while(x!=0x01);
 119   1        
 120   1         do
 121   1           {
 122   2              motor_rev();               //反转减速 
 123   2              rate++;
 124   2           }while(rate!=0x30);    
 125   1      }
 126          
 127          /********************************************************
 128          *                                                       
 129          *  主程序                                               
 130          *                                                      
 131          *********************************************************/
 132          main()
 133          {     
 134   1         
 135   1         P0=0xf0; 
 136   1      
 137   1         while(1)
 138   1        {
 139   2             P0 = 0x00;//ULN2003输出高电平
 140   2      
 141   2             delay2(255);
 142   2      
 143   2             motor_turn();
 144   2      
 145   2        } 
 146   1      }
 147          


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