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

📄 motor.lst

📁 在STC系列的单片机上验证通过的
💻 LST
字号:
C51 COMPILER V7.06   MOTOR                                                                 05/09/2007 09:05:50 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

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  lck = P3^5;//模块初始化片选的锁存信号
  18          sbit  HC138A = P1^5;
  19          sbit  HC138B = P1^6;
  20          sbit  HC138C = 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/09/2007 09:05:50 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             delay();                 //调节转速
  64   2          }
  65   1      }
  66          
  67          /********************************************************/
  68          /*
  69          /*步进电机反转
  70          /*
  71          /********************************************************/
  72          void  motor_rev()
  73          { 
  74   1         uchar i;
  75   1       
  76   1          for (i=0; i<8; i++)      //一个周期转30度
  77   1          {  
  78   2             P0 = REV[i]; //取数据
  79   2             delay();                 //调节转速
  80   2          }
  81   1      }
  82          
  83          /********************************************************
  84          *                                                       
  85          *步进电机运行                                               
  86          *                                                      
  87          *********************************************************/
  88          void  motor_turn()
  89          { 
  90   1         uchar x;
  91   1         rate=0x30;
  92   1         x=0xf0;
  93   1         do
  94   1           {
  95   2              motor_ffw();               //正转加速
  96   2              rate--;
  97   2           }while(rate!=0x0a);
  98   1      
  99   1         do
 100   1           {     
 101   2              motor_ffw();               //正转匀速
 102   2             x--;
 103   2           }while(x!=0x01);
 104   1        
 105   1         do
 106   1           {
 107   2              motor_ffw();              //正转减速 
 108   2              rate++;
 109   2           }while(rate!=0x30);    
 110   1         do
 111   1           {
C51 COMPILER V7.06   MOTOR                                                                 05/09/2007 09:05:50 PAGE 3   

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


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