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

📄 s_ motor-key.lst

📁 用51MUC控制的步进电机正反转程序
💻 LST
字号:
C51 COMPILER V7.10   S__MOTOR_KEY                                                          10/12/2008 20:04:48 PAGE 1   


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

line level    source

   1           
   2          /******************************************************************
   3          /*                                                                *
   4          /* AOKE210E单片机开发系统演示程序                                                             *
   5          /*                                                                *
   6          /* 版本: V2.0 (2007/11/20)                                       *
   7          /* 作者: 高山流水 (Email: aoke999@sohu.com)                      *
   8          /* 网站: www.aokemcu.cn(奥科电子)                                *
   9          /*                                                                *
  10          /*                                                                *
  11          /******************************************************************/
  12              
  13          #include <reg51.h>       //51芯片管脚定义头文件
  14          #include <intrins.h>     //内部包含延时函数 _nop_();
  15          
  16          #define uchar unsigned char
  17          #define uint  unsigned int
  18          
  19          uchar code FFW[8]={0x1F,0x3F,0x2F,0x6F,0x4F,0xCF,0x8F,0x9F};
  20          uchar code REV[8]={0x9F,0x8F,0xCF,0x4F,0x6F,0x2F,0x3F,0x1F};
  21          //uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
  22          //uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
  23          
  24          sbit  K1   = P3^4;       //正转
  25          sbit  K2   = P3^5;       //反转
  26          sbit  K3   = P3^6;       
  27          sbit  K4   = P3^7;               //停止
  28          sbit  BEEP = P2^3;       //蜂鸣器
  29                
  30          /********************************************************/
  31          /*                                                  
  32          /* 延时t毫秒 
  33          /* 11.0592MHz时钟,延时约1ms                                     
  34          /*                                                      
  35          /********************************************************/
  36          void delay(uint t)
  37          {                           
  38   1         uint k;
  39   1         while(t--)
  40   1         {
  41   2           for(k=0; k<125; k++)
  42   2           { }
  43   2         }
  44   1      }
  45          
  46          /**********************************************************/
  47          void delayB(uchar x)    //x*0.14MS
  48           {
  49   1         uchar i;
  50   1         while(x--)
  51   1         {
  52   2           for (i=0; i<13; i++)
  53   2           { }
  54   2         }
  55   1       }
C51 COMPILER V7.10   S__MOTOR_KEY                                                          10/12/2008 20:04:48 PAGE 2   

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

 118           { 
 119   1            uchar r,N=5;             //N 步进电机运转圈数
 120   1                P2=0xDF;
 121   1         while(1)
 122   1          {  
 123   2            if(K1==0)
 124   2                {
 125   3              beep();
 126   3                      for(r=0;r<N;r++)
 127   3               { 
 128   4                         motor_ffw();       //电机正转
 129   4                         if(K4==0)
 130   4                 {beep();break;}    //退出此循环程序
 131   4                   }
 132   3            }
 133   2                else if(K2==0)
 134   2             { 
 135   3                  beep();
 136   3                      for(r=0;r<N;r++)
 137   3               {
 138   4                     motor_rev();       //电机反转
 139   4                         if(K4==0)
 140   4                 {beep();break;}    //退出此循环程序
 141   4                       }
 142   3             }
 143   2                else  
 144   2                      P2 = 0x0F;
 145   2          }
 146   1       }
 147          
 148          /********************************************************/                 


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