标题: 求正反转可控的步进电机的编程教学 [打印本页]
作者: 椅子阿斯 时间: 2017-6-25 10:53
标题: 求正反转可控的步进电机的编程教学
求各位大佬能帮帮忙,小弟在这里感谢大佬啦!!!
作者: 51mcu 时间: 2017-6-26 06:42
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uint time;
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit M1=P3^3;
bit qt,zf,DD,m1,m2; //启动停止及正反转标志位
void t0() interrupt 1 //定时器0中断,定时1ms//
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
time++;
}
void delay(uint dtime) //延时
{
TR0=1;
while(time<=dtime);
time=0;
TR0=0;
}
void moto(bit cf,uchar n,uint dtime) //电机驱动子程序,
{
uchar idata zhpai[4]={0x08,0x02,0x04,0x01};//反转
uchar idata fpai[4]={0x01,0x04,0x02,0x08};//正转
uchar i,l=0;
if(cf==0)
for(i=0;i<n;i++)
{
P2=zhpai[l];// //反转
l++;
delay(dtime);
if(l>4)
l=0;
}
else
{
for(i=0;i<n;i++)
{
P2=fpai[l]; //正转
l++;
delay(dtime);
if(l>4)l=0;
}
}
}
void main()
{
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;
TR0=1;
qt=0;
zf=0;
M1=1;
m1=1;
m2=1;
DD=0;
while(1)
{
if(k1==0) //停止按键处理程序
{
while(k1==0);
qt=0;
}
if(k2==0) //正转按键处理程序
{
while(k2==0);
zf=0;
}
if(k3==0)
{
while(k3==0); //反转按键处理程序
zf=1;
}
if(k4==0)
{
while(k4==0); //启动按键处理程序
qt=1;
}
if(k5==0)
{
moto(1,4,200);//正转
}
if(k6==0)
{
moto(0,4,200);//反转
}
if(qt==1)
{
if(zf==1)
moto(0,4,200);//反转
else
moto(1,4,200);//正转
}
}
}
作者: HC6800-ES-V2.0 时间: 2017-6-26 09:43
我这里有一个教程,附带程序。
-
-
五线四相步进电机教学.doc
1.34 MB, 下载次数: 36
作者: zl2168 时间: 2017-6-26 20:05
本帖最后由 zl2168 于 2017-6-26 20:22 编辑
实例99 驱动二相步进电机
实例99 二相步进电机.rar
(36.2 KB, 下载次数: 22)
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
作者: zl2168 时间: 2017-6-27 11:24
本帖最后由 zl2168 于 2017-6-27 19:29 编辑
实例98 驱动四相步进电机
实例98 四相步进电机.rar
(35.83 KB, 下载次数: 14)
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
作者: 094424 时间: 2019-4-24 19:05
大神,膜拜
作者: 阿鎏尼克 时间: 2019-4-24 21:20
全是大神,膜拜
作者: 牛牛牛牛牛牛 时间: 2019-6-4 14:04
void Z_run(unsigned int rod) { unsigned int i,j,k=3; for(j=0;j<rod;j++) { for(i=0;i<8;i++) { P1=bushu[7-i]; delays(k); } if(j==(22-k*7)) { k--; if(k==0) { k=1; } } } } void D_run(unsigned int rod) { unsigned int i,j,k=7; for(j=0;j<rod;j++) { for(i=0;i<8;i++) { P1=bushu[i]; delays(k); } if(j==(50-k*7)) { k--; if(k==0) { k=1; } } } }
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |