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

📄 +

📁 51单片机配套C程序
💻
字号:
/*-----------------------------------------------
  名称:步进电机
  内容:1、本程序用于测试4相步进电机常规驱动 
        2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来
        3、速度不可以调节的过快,不然就没有力矩转动了
		4、按s4(设置成独立按键模式)可以控制正反转 
 ------------------------------------------------*/

#include <reg52.h>

unsigned char Flag;//定义正反转和停止标志位
sbit KEY = P3^3;


unsigned char code F_Rotation[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //正转表格
unsigned char code B_Rotation[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //反转表格
/******************************************************************/
/*                    延时函数                                    */
/******************************************************************/
void Delay(unsigned int i)//延时
{
 while(--i);
}
/******************************************************************/
/*                   主函数                                       */
/******************************************************************/
main()
{
 
 unsigned char i;

  
  EX1=1;         //外部中断0开
  IT1=1;         //边沿触发
  EA=1;          //全局中断开

 while(Flag==0)            
 {
  P0=0x71;//显示 F 标示正转
  for(i=0;i<8;i++)      //4相
     {
     P1=F_Rotation[i];  //输出对应的相 可以自行换成反转表格
     Delay(200);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
	 }
  }
while(Flag==1)
 { 
  P0=0x7C;//显示 b 标示反转
  for(i=0;i<8;i++)      //4相
     {
     P1=B_Rotation[i];  //输出对应的相 
     Delay(200);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
	 }
  }
while(Flag==2)  //停止
 { 
  P0=0x6D;//   显示 S
  P1=0;
  }
}
/******************************************************************/
/*                   中断入口函数                                 */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
 Delay(500);
 if(!KEY)
 {
 
 Flag++;         //s3按下触发一次
 if(Flag==3)
   Flag=0;
  }
 }

⌨️ 快捷键说明

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