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

📄 stepmotor.lst

📁 dallas ID号芯片DS2401的读取
💻 LST
字号:
C51 COMPILER V7.50   STEPMOTOR                                                             06/11/2008 15:16:27 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE STEPMOTOR
OBJECT MODULE PLACED IN StepMotor.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE StepMotor.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include "StepMotor.h"
   3          //*********************************步进电机的运行曲线表******
   4          code INT8U StepMotorCurve[256]=
   5          {       
   6                  0,              2,              3,              5,              6,              8,              9,              11,             13,             14,
   7                  16,             17,             19,             20,             22,             24,             25,             27,             28,             30,
   8                  31,             33,             34,             36,             38,             39,             41,             42,             44,             45,
   9                  47,             48,             50,             51,             53,             55,             56,             58,             59,             61,
  10                  62,             64,             65,             67,             68,             70,             71,             73,             74,             76,
  11                  77,             79,             80,             82,             83,             85,             86,             88,             89,             91,
  12                  92,             94,             95,             97,             98,             99,             101,    102,    104,    105,
  13                  107,    108,    109,    111,    112,    114,    115,    117,    118,    119,
  14                  121,    122,    123,    125,    126,    128,    129,    130,    132,    133,
  15                  134,    136,    137,    138,    140,    141,    142,    144,    145,    146,
  16                  147,    149,    150,    151,    152,    154,    155,    156,    157,    159,
  17                  160,    161,    162,    164,    165,    166,    167,    168,    170,    171,    
  18                  172,    173,    174,    175,    177,    178,    179,    180,    181,    182,
  19                  183,    184,    185,    186,    188,    189,    190,    191,    192,    193,    
  20                  194,    195,    196,    197,    198,    199,    200,    201,    202,    203,    
  21                  204,    205,    206,    207,    207,    208,    209,    210,    211,    212,
  22                  213,    214,    215,    215,    216,    217,    218,    219,    220,    220,
  23                  221,    222,    223,    224,    224,    225,    226,    227,    227,    228,
  24                  229,    229,    230,    231,    231,    232,    233,    233,    234,    235,
  25                  235,    236,    237,    237,    238,    238,    239,    239,    240,    241,
  26                  241,    242,    242,    243,    243,    244,    244,    245,    245,    245,
  27                  246,    246,    247,    247,    248,    248,    248,    249,    249,    249,
  28                  250,    250,    250,    251,    251,    251,    252,    252,    252,    252,
  29                  253,    253,    253,    253,    254,    254,    254,    254,    254,    255,
  30                  255,    255,    255,    255,    255,    255,    255,    255,    255,    255,
  31                  255,    255,    255,    255,    255,    255,
  32                  } ;
  33          //*******************************延时一个us**************************
  34          void Delay1us(void)
  35          {
  36   1              _nop_();
  37   1      }
  38          //*******************************延时n个us**************************
  39          void DelayNus(INT16U us)
  40          {
  41   1              while(us--)
  42   1              {
  43   2                      Delay1us();
  44   2                       _nop_();
  45   2                       _nop_();
  46   2              
  47   2              }
  48   1      }
  49          
  50          //****************************SPI0串口发送一个字节***************
  51          void SPI0SendOneByte(INT8U Value)
  52          {
  53   1      
  54   1      }
*** WARNING C280 IN LINE 51 OF STEPMOTOR.C: 'Value': unreferenced local variable
C51 COMPILER V7.50   STEPMOTOR                                                             06/11/2008 15:16:27 PAGE 2   

  55          //******************************HC595移位两个字节*******************
  56          void HC595Shift2Byte(INT8U ShiftData)
  57          {
  58   1              
  59   1              Load595Wait;    
  60   1              SPI0SendOneByte(ShiftData);
  61   1              SPI0SendOneByte(ShiftData);//这里要发送2次,因为有两个一样的值
  62   1              Load595Execuate;                        //更新数值
  63   1      }
  64                  
  65          //****************************依次装入256个曲线值****************
  66          void LoadCurveValue(void)
  67          {
  68   1              INT8U   i;
  69   1              for(i==0;i<0xff;i++)
  70   1                      {
  71   2                      HC595Shift2Byte(StepMotorCurve[i]);
  72   2                      DelayNus(StepMotorTurnSpeed);//延时越少电机转动得越快
  73   2                      }
  74   1              for(i==0;i<0xff;i++)
  75   1                      {
  76   2                      HC595Shift2Byte(StepMotorCurve[0xff-i]);
  77   2                      DelayNus(StepMotorTurnSpeed);//延时越少电机转动得越快
  78   2                      }
  79   1              //这里要进行半个正弦波的过程
  80   1      }
  81          //**************************步进电机走一步AB,A/B/,BA,B/A/,AB***********************
  82          void StepMotorWalkOneStep(INT8U Direction)
  83          {
  84   1              if(Direction==0)//向右转过程为AB-B/A/- A/B/-AB-BA-A/B/-B/A/-BA
  85   1              {
  86   2                      StepMotorPhase1H;//相位脚置高
  87   2                      StepMotorPhase2L;
  88   2                      LoadCurveValue();//执行了       AB,B/A/,
  89   2                      StepMotorPhase1H;
  90   2                      StepMotorPhase2H;
  91   2                      LoadCurveValue();//执行了 A/B/,AB
  92   2                      StepMotorPhase1L;//相位脚置高
  93   2                      StepMotorPhase2H;
  94   2                      LoadCurveValue();//执行了       BA,A/B/
  95   2                      StepMotorPhase1L;
  96   2                      StepMotorPhase2L;
  97   2                      LoadCurveValue();//执行了 B/A/,BA
  98   2              }
  99   1              else if(Direction==1)//向左转过程为AB-A/B/-B/A/-AB-BA-B/A-/A/B/-BA
 100   1              {
 101   2                      StepMotorPhase1H;//相位脚置高
 102   2                      StepMotorPhase2H;
 103   2                      LoadCurveValue();//执行了       AB,B/A/,
 104   2                      StepMotorPhase1H;
 105   2                      StepMotorPhase2L;
 106   2                      LoadCurveValue();//执行了 A/B/,AB
 107   2                      StepMotorPhase1L;//相位脚置高
 108   2                      StepMotorPhase2L;
 109   2                      LoadCurveValue();//执行了       BA,A/B/
 110   2                      StepMotorPhase1L;
 111   2                      StepMotorPhase2H;
 112   2                      LoadCurveValue();//执行了 B/A/,BA
 113   2              }
 114   1      }
 115          
 116          //********************** 步进电机走N步****************************
C51 COMPILER V7.50   STEPMOTOR                                                             06/11/2008 15:16:27 PAGE 3   

 117          void StepMotorWalkNStep(INT8U Direction,INT16U NStep)
 118          {
 119   1              while(NStep--)
 120   1                      {
 121   2                      StepMotorWalkOneStep(Direction);
 122   2                      }
 123   1      }
 124          
 125          
 126          
 127          
 128          
 129          
 130          
 131          
 132          
 133          
 134          
 135          
 136          
 137          
 138          
 139          
 140          
 141          
 142          
 143          
 144          
 145          
 146          
 147          
 148          
 149          
 150          
 151          
 152          
 153          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    216    ----
   CONSTANT SIZE    =    256    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -