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

📄 +

📁 51单片机配套C程序
💻
字号:
C51 COMPILER V7.50   步絖电籣                                                              05/28/2010 16:06:39 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            名称:步进电机
   3            内容:1、本程序用于测试4相步进电机常规驱动 
   4                  2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来
   5                  3、速度不可以调节的过快,不然就没有力矩转动了
   6                          4、按s4(设置成独立按键模式)可以控制正反转 
   7           ------------------------------------------------*/
   8          
   9          #include <reg52.h>
  10          
  11          unsigned char Flag;//定义正反转和停止标志位
  12          sbit KEY = P3^3;
  13          
  14          
  15          unsigned char code F_Rotation[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //正转表格
  16          unsigned char code B_Rotation[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //反转表格
  17          /******************************************************************/
  18          /*                    延时函数                                    */
  19          /******************************************************************/
  20          void Delay(unsigned int i)//延时
  21          {
  22   1       while(--i);
  23   1      }
  24          /******************************************************************/
  25          /*                   主函数                                       */
  26          /******************************************************************/
  27          main()
  28          {
  29   1       
  30   1       unsigned char i;
  31   1      
  32   1        
  33   1        EX1=1;         //外部中断0开
  34   1        IT1=1;         //边沿触发
  35   1        EA=1;          //全局中断开
  36   1      
  37   1       while(Flag==0)            
  38   1       {
  39   2        P0=0x71;//显示 F 标示正转
  40   2        for(i=0;i<8;i++)      //4相
  41   2           {
  42   3           P1=F_Rotation[i];  //输出对应的相 可以自行换成反转表格
  43   3           Delay(200);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
  44   3               }
  45   2        }
  46   1      while(Flag==1)
  47   1       { 
  48   2        P0=0x7C;//显示 b 标示反转
  49   2        for(i=0;i<8;i++)      //4相
  50   2           {
  51   3           P1=B_Rotation[i];  //输出对应的相 
  52   3           Delay(200);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
  53   3               }
  54   2        }
  55   1      while(Flag==2)  //停止
C51 COMPILER V7.50   步絖电籣                                                              05/28/2010 16:06:39 PAGE 2   

  56   1       { 
  57   2        P0=0x6D;//   显示 S
  58   2        P1=0;
  59   2        }
  60   1      }
  61          /******************************************************************/
  62          /*                   中断入口函数                                 */
  63          /******************************************************************/
  64          void ISR_Key(void) interrupt 2 using 1
  65          {
  66   1       Delay(500);
  67   1       if(!KEY)
  68   1       {
  69   2       
  70   2       Flag++;         //s3按下触发一次
  71   2       if(Flag==3)
  72   2         Flag=0;
  73   2        }
  74   1       }


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