标题:
51单片机步进电机驱动实例
[打印本页]
作者:
ufomiai
时间:
2019-4-21 17:33
标题:
51单片机步进电机驱动实例
步进电机驱动程序,多种驱动方式,包含电路图
电路原理图如下:
步进马达电路图.jpg
(56.9 KB, 下载次数: 57)
下载附件
2019-4-21 17:30 上传
捕获.PNG
(16.57 KB, 下载次数: 31)
下载附件
2019-4-21 17:30 上传
单片机源程序如下:
/**************************************************************************************
* 标题: 步进电机试验四 *
* *
* 通过本例程了解步进马达使用及驱动程序编写 *
* 双四拍工作方式: *
* AB-BC-CD-DA (即一个脉冲,转 7.5 度) *
* *
* 请学员一定要消化掉本例程, *
*
**************************************************************************************/
#include "reg52.h"
//Motor
sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;
///////////////////////////////////////
//步进电机驱动
unsigned char MotorStep=0;
unsigned int MotorTimer = 0;
unsigned int TIM,CT;
void InitMotor()
{
F1 = 1;
F2 = 1;
F3 = 1;
F4 = 1;
}
void SetMotor()
{
// if(Speed == 0) return;
switch(MotorStep)
{
case 0:
if(TIM)
{
F1 = 0;
F2 = 0;
F3 = 1;
F4 = 1;
MotorStep = 1;
TIM=0;
}
break;
case 1:
if(TIM)
{
F1 = 1;
F2 = 0;
F3 = 0;
F4 = 1;
MotorStep = 2;
TIM=0;
}
break;
case 2:
if(TIM)
{
F1 = 1;
F2 = 1;
F3 = 0;
F4 = 0;
MotorStep = 3;
TIM=0;
}
break;
case 3:
if(TIM)
{
F1 = 0;
F2 = 1;
F3 = 1;
F4 = 0;
MotorStep = 0;
TIM=0;
}
break;
}
}
void system_Ini()
{
TMOD|= 0x11;
TH0=0xDC; //11.0592M
TL0=0x00;
IE = 0x8A;
TR0 = 1;
}
main()
{ system_Ini();
InitMotor();
while(1)
{
SetMotor();
}
}
/*************************************
[ t1 (0.5ms)中断] 中断中做 PWM 输出
------------1000/(0.02ms*250)=200Hz
*************************************/
void Tzd(void) interrupt 1
{
TH0 = 0xfe; //11.0592
TL0 = 0x33;
if( CT++==20)
{TIM=1;
CT=0;
}
}
复制代码
所有资料51hei提供下载:
步进马达.rar
(614.18 KB, 下载次数: 76)
2019-4-21 17:26 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
lengot
时间:
2019-12-18 20:32
谢谢分享。刚学啥都不会。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1