标题:
51单片机控制步进电机正反转的proteus仿真与源码
[打印本页]
作者:
LYH123
时间:
2018-5-2 20:15
标题:
51单片机控制步进电机正反转的proteus仿真与源码
51单片机用C实现控制步进电机正反转
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(16.02 KB, 下载次数: 100)
下载附件
2018-5-3 01:54 上传
0.png
(45.12 KB, 下载次数: 63)
下载附件
2018-5-3 01:54 上传
单片机源程序如下:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char //------8拍-----
uchar code zz[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正转
uchar code fz[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反转
void delay(uint ms)
{ uint t;
while(ms--)
for(t=0;t<120;t++);
}
void motor_zz(uint n)
{ uint i,j;
for(i=0;i<5*n;i++)
{ for(j=0;j<8;j++)
{ if(P3==0xfb)
break;
P1=zz[j];
delay(20);
}
}
}
void motor_fz(uint n)
{ uint i,j;
for(i=0;i<5*n;i++)
{
for(j=0;j<8;j++)
{if(P3==0xfb)
break;
P1=fz[j];
delay(20);
}
}
}
void main()
{
uint N=3;
while(1)
{
P3=0xff;
if(P3==0xfe)
{while(P3==0xfe);
P0=0xfe;
motor_zz(N);
if(P3==0xfb)
break;
}
else if(P3==0xfd)
{
while(P3==0xfd);
P0=0xfd;
motor_fz(N);
if(P3==0xfb)
break;}
else
{
P0=0xfb;
P1=0x03;
}
}
}
复制代码
所有资料51hei提供下载:
51控制步进电机正反转.rar
(15.84 KB, 下载次数: 336)
2018-5-2 20:13 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
a1240197210
时间:
2018-12-5 22:05
ganxie
作者:
chenfynh
时间:
2019-1-15 10:45
感谢分享,
作者:
哥的一把刀
时间:
2019-3-30 14:51
感谢分项哦,
作者:
tyk2012
时间:
2019-4-3 15:42
感谢分享
作者:
sjy123
时间:
2019-5-1 00:28
感谢分享
作者:
3九2七
时间:
2019-6-18 19:24
为啥我按开关电机不转
作者:
1036951883
时间:
2019-11-25 09:13
太感谢了
作者:
不羁大康哥
时间:
2019-12-4 14:36
正需要。谢谢
作者:
坏牧羊人
时间:
2020-5-9 09:43
for(i=0;i<5*n;i++) 请问为什么要加这句啊
作者:
末末末么
时间:
2020-6-15 16:14
为什么反转不动呢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1