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

📄 s_ motor-key.lst

📁 STC89C52单片机控制步进电机的正反转、速度及其外围电路图。
💻 LST
字号:
C51 COMPILER V7.10   S__MOTOR_KEY                                                          04/12/2009 20:07:59 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE S__MOTOR_KEY
OBJECT MODULE PLACED IN S_ MOTOR-key.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE S_ MOTOR-key.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1           
   2              
   3          #include <reg52.h>       //51芯片管脚定义头文件
   4          #include <intrins.h>     //内部包含延时函数 _nop_();
   5          
   6          #define uchar unsigned char
   7          #define uint  unsigned int
   8          
   9          uchar code FFW[8]={0x1F,0x3F,0x2F,0x6F,0x4F,0xCF,0x8F,0x9F};
  10          uchar code REV[8]={0x9F,0x8F,0xCF,0x4F,0x6F,0x2F,0x3F,0x1F};
  11          //uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
  12          //uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
  13          
  14          sbit  K1   = P3^4;       //正转
  15          sbit  K2   = P3^5;       //反转
  16          sbit  K3   = P3^6;       
  17          sbit  K4   = P3^7;               //停止
  18          sbit  BEEP = P2^3;       //蜂鸣器
  19                
  20          /********************************************************/
  21          /*                                                  
  22          /* 延时t毫秒 
  23          /* 11.0592MHz时钟,延时约1ms                                     
  24          /*                                                      
  25          /********************************************************/
  26          void delay(uint t)
  27          {                           
  28   1         uint k;
  29   1         while(t--)
  30   1         {
  31   2           for(k=0; k<125; k++)
  32   2           { }
  33   2         }
  34   1      }
  35          
  36          /**********************************************************/
  37          void delayB(uchar x)    //x*0.14MS
  38           {
  39   1         uchar i;
  40   1         while(x--)
  41   1         {
  42   2           for (i=0; i<13; i++)
  43   2           { }
  44   2         }
  45   1       }
  46          
  47          /**********************************************************/
  48          void beep()
  49           {
  50   1         uchar i;
  51   1         for (i=0;i<180;i++)
  52   1          { 
  53   2           delayB(5);
  54   2           BEEP=!BEEP;                 //BEEP取反
  55   2          } 
C51 COMPILER V7.10   S__MOTOR_KEY                                                          04/12/2009 20:07:59 PAGE 2   

  56   1           BEEP=1;                    //关闭蜂鸣器
  57   1       }
  58          
  59          /********************************************************/
  60          /*
  61          /*步进电机正转
  62          /*
  63          /********************************************************/
  64          void  motor_ffw()
  65           { 
  66   1         uchar i;
  67   1         uint  j;
  68   1         for (j=0; j<12; j++)         //转1*n圈 
  69   1          { 
  70   2                  if(K4==0)
  71   2              {break;}                //退出此循环程序
  72   2            for (i=0; i<8; i++)       //一个周期转30度
  73   2              {
  74   3                P2 = FFW[i];          //取数据
  75   3                delay(10);            //调节转速
  76   3              }
  77   2          }
  78   1       }
  79          
  80          /********************************************************/
  81          /*
  82          /*步进电机反转
  83          /*
  84          /********************************************************/
  85          void  motor_rev()
  86          {
  87   1           uchar i;
  88   1               uint  j;
  89   1               for (j=0; j<12; j++)       //转1×n圈
  90   1            {
  91   2                  if(K4==0)
  92   2               {break;}               //退出此循环程序
  93   2              for (i=0; i<8; i++)     //一个周期转30度
  94   2              {
  95   3                P2 = REV[i];          //取数据
  96   3                delay(10);            //调节转速
  97   3              }
  98   2            }
  99   1       }
 100          
 101          /********************************************************
 102          *                                                       
 103          *  主程序                                               
 104          *                                                      
 105          *********************************************************/
 106          
 107          main()
 108           { 
 109   1            uchar r,N=5;             //N 步进电机运转圈数
 110   1                P2=0xDF;
 111   1         while(1)
 112   1          {  
 113   2            if(K1==0)
 114   2                {
 115   3              beep();
 116   3                      for(r=0;r<N;r++)
 117   3               { 
C51 COMPILER V7.10   S__MOTOR_KEY                                                          04/12/2009 20:07:59 PAGE 3   

 118   4                         motor_ffw();       //电机正转
 119   4                         if(K4==0)
 120   4                 {beep();break;}    //退出此循环程序
 121   4                   }
 122   3            }
 123   2                else if(K2==0)
 124   2             { 
 125   3                  beep();
 126   3                      for(r=0;r<N;r++)
 127   3               {
 128   4                     motor_rev();       //电机反转
 129   4                         if(K4==0)
 130   4                 {beep();break;}    //退出此循环程序
 131   4                       }
 132   3             }
 133   2                else  
 134   2                      P2 = 0x0F;
 135   2          }
 136   1       }
 137          
 138          /********************************************************/                 


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