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

📄 stepping motor-simple-02.lst

📁 用s51控制电机正,反转,汇编,c源程序,步进电机加速-减速运行
💻 LST
字号:
C51 COMPILER V8.02   STEPPING_MOTOR_SIMPLE_02                                              12/22/2006 09:48:07 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE STEPPING_MOTOR_SIMPLE_02
OBJECT MODULE PLACED IN STEPPING MOTOR-SIMPLE-02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE STEPPING MOTOR-SIMPLE-02.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************/
   2          /*                                                                */
   3          /* ME500单片机开发系统演示程序 - 步进电机加减速运行               */
   4          /*                                                                */
   5          /* 步进电机启动时,转速由慢到快逐步加速。                         */
   6          /* 步进电机匀速运行                                               */ 
   7          /* 步进电机由快到慢逐步减速到停止                                 */
   8          /*                                                                */
   9          /* 版本: V1.0 (2006/11/20)                                       */
  10          /* 作者: gguoqing (Email: gguoqing@willar.com)                   */
  11          /* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界)*/
  12          /* 时间: 2006/07/03                                              */
  13          /*                                                                */
  14          /*【版权】COPYRIGHT(C)伟纳电子 www.willar.com ALL RIGHTS RESERVED */
  15          /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!      */
  16          /*                                                                */
  17          /******************************************************************/
  18              
  19          #include <reg51.h>       //51芯片管脚定义头文件
  20          #include <intrins.h>     //内部包含延时函数 _nop_();
  21          
  22          #define uchar unsigned char
  23          #define uint  unsigned int
  24          
  25          sbit  K1=P1^4;
  26          uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
  27          //uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
  28          uchar rate ;        
  29          /********************************************************/
  30          /*                                                  
  31          /* 延时
  32          /* 11.0592MHz时钟,                                    
  33          /*                                                      
  34          /********************************************************/
  35          void delay()
  36           {                           
  37   1         uchar k;
  38   1         uint s;
  39   1         k = rate;
  40   1         do
  41   1         {
  42   2          for(s = 0 ; s <1000 ; s++) ;                
  43   2         }while(--k);
  44   1       }
  45          /********************************************************/
  46          /*
  47          /*步进电机正转
  48          /*
  49          /********************************************************/
  50          void  motor_ffw()
  51           { 
  52   1         uchar i;
  53   1       
  54   1          for (i=0; i<8; i++)     //一个周期转30度
  55   1          {
C51 COMPILER V8.02   STEPPING_MOTOR_SIMPLE_02                                              12/22/2006 09:48:07 PAGE 2   

  56   2            P1 = FFW[i];        //取数据
  57   2            delay();            //调节转速
  58   2          }
  59   1       }
  60          
  61          /********************************************************
  62          *                                                       
  63          *步进电机运行                                               
  64          *                                                      
  65          *********************************************************/
  66          void  motor_turn()
  67          { 
  68   1         uchar x;
  69   1         rate=0x0a;
  70   1         x=0x80;
  71   1         do
  72   1           {
  73   2                motor_ffw();          //加速
  74   2            rate--;
  75   2               }while(rate!=0x01);
  76   1      
  77   1         do
  78   1           {     
  79   2                 motor_ffw();        //匀速
  80   2                 x--;
  81   2               }while(x!=0x01);
  82   1               
  83   1         do
  84   1           {
  85   2                motor_ffw();         //减速
  86   2            rate++;
  87   2               }while(rate!=0x0a);    
  88   1      }
  89          
  90          /********************************************************
  91          *                                                       
  92          *  主程序                                               
  93          *                                                      
  94          *********************************************************/
  95          main()
  96          {     
  97   1         
  98   1         P1=0xf0; 
  99   1      
 100   1         while(1)
 101   1        {
 102   2          P1=0xf0;
 103   2              if(K1==0)
 104   2          {
 105   3            motor_turn();
 106   3          }
 107   2        } 
 108   1      }
 109          
 110          /********************************************************/                         


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     83    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V8.02   STEPPING_MOTOR_SIMPLE_02                                              12/22/2006 09:48:07 PAGE 3   

   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 + -