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

📄 步进电机.lst

📁 单片机的实用程序代码
💻 LST
字号:
C51 COMPILER V7.50   步絖电籣                                                              09/01/2011 13:53:08 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 步絖电籣
OBJECT MODULE PLACED IN 步进电机.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 步进电机.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2          * 名称 : 步进电机.c
   3          * 功能 : 通过P1.3,P1.4,P1.5,P1.6四个IO口,来控制步进电机。
   4                           杜邦线的连接线,可以参考使用说明的1.3节。
   5          /***********************************************************************/
   6          #include <reg52.h> 
   7          #define uchar unsigned char
   8          #define uint  unsigned int
   9           
  10          sbit KEY1 = P3^2;   //步进电机顺时针方向转
  11          sbit KEY2 = P3^3;   //步进电机逆时针方向转
  12          sbit KEY3 = P3^4;       //步进电机调速
  13          
  14          uchar  Step = 0;
  15          bit FB_flag = 0;
  16          
  17          unsigned char code F_Rotation[8]={0x08,0x18,0x10,0x30,0x20,0x60,0x40,0x48};    //顺时针转表格
  18          unsigned char code B_Rotation[8]={0x48,0x40,0x60,0x20,0x30,0x10,0x18,0x08};    //逆时针转表格
  19          
  20          /********************************************************************
  21          * 名称 : Delay_1ms()
  22          * 功能 : 延时子程序,延时时间为 1ms * x
  23          * 输入 : x (延时一毫秒的个数)
  24          * 输出 : 无
  25          ***********************************************************************/
  26          void Delay(uint i)
  27          {
  28   1              uchar x,j;
  29   1              for(j=0;j<i;j++)
  30   1              for(x=0;x<=148;x++);    
  31   1      }
  32          
  33          void KEY(void)
  34          {
  35   1              if(KEY1 == 0)      //按P3.2,实现步进电机的顺时针转动
  36   1              {
  37   2                      Delay(15);
  38   2                      if(KEY1 == 0)
  39   2                      {
  40   3                              FB_flag = 0;
  41   3                      }
  42   2                      Delay(200);
  43   2              }
  44   1              if(KEY2 == 0)           //按P3.3,实现步进电机的逆时针转动
  45   1              {
  46   2                      Delay(15);
  47   2                      if(KEY2 == 0)
  48   2                      {
  49   3                              FB_flag = 1;
  50   3                      }
  51   2                      Delay(200);
  52   2              }
  53   1              if(KEY3 == 0)           //按P3.4,实现步进电机的调速
  54   1              {
  55   2                      Delay(15);
C51 COMPILER V7.50   步絖电籣                                                              09/01/2011 13:53:08 PAGE 2   

  56   2                      if(KEY3 == 0)
  57   2                      {
  58   3                              Step++;
  59   3                              if(Step == 3)
  60   3                              {
  61   4                                      Step = 0;
  62   4                              }
  63   3                      }
  64   2                      Delay(200);
  65   2              }
  66   1      }
  67          main()
  68          {
  69   1              uchar i; 
  70   1              //uint k = 0;
  71   1              while(1)
  72   1              { 
  73   2                      KEY();                                          //按键处理函数
  74   2                      for(i=0;i<8;i++)                //因为有8路的控制时序
  75   2              {
  76   3                              //k++;
  77   3                              //if(k == 4096) while(1);
  78   3                              if(FB_flag == 0)
  79   3                              {
  80   4                              P1 = F_Rotation[i];  //顺时针转动
  81   4                              }
  82   3                              else
  83   3                              {
  84   4                                      P1 = B_Rotation[i];      //逆时针转动
  85   4                              }
  86   3                      Delay(1+Step);           //改变这个参数可以调整电机转速
  87   3                      }
  88   2              }
  89   1      }



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    126    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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