标题:
步进电机控制转速Proteus仿真与程序
[打印本页]
作者:
风吹鸡蛋皮
时间:
2017-6-13 13:34
标题:
步进电机控制转速Proteus仿真与程序
欢迎采纳。
步进电机控制转速仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(12.62 KB, 下载次数: 85)
下载附件
2017-6-13 16:51 上传
0.png
(54.41 KB, 下载次数: 69)
下载附件
2017-6-13 16:51 上传
单片机源程序如下:
#include <reg52.h>
sbit A1=P2^0; //定义步进电机连接端口
sbit B1=P2^1;
sbit C1=P2^2;
sbit D1=P2^3;
sbit button1=P3^0;
sbit button2=P3^1;
sbit button3=P3^2;
#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
unsigned char Speed;
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main()
{
Speed=200; //调整速度
while(1)
{
if(button1==0)//若按下p31
{
Coil_A1 //遇到Coil_A1 用{A1=1;B1=0;C1=0;D1=0;}代替
DelayMs(Speed); //改变这个参数可以调整电机转速 ,
Coil_B1
DelayMs(Speed);
Coil_C1
DelayMs(Speed);
Coil_D1
DelayMs(Speed);
}
if(button2==0)//若按下p31
{
Coil_D1 //遇到Coil_A1 用{A1=1;B1=0;C1=0;D1=0;}代替
DelayMs(Speed); //改变这个参数可以调整电机转速 ,
Coil_C1
DelayMs(Speed);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
步进电机控制.rar
(20.9 KB, 下载次数: 66)
2017-6-13 13:34 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
江南听雨
时间:
2017-6-18 16:56
加个好友可以吗QQ1129948805,我有点问题想要请教
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1