转载:步进电机,自己控制转的圈数(程序中改动)
时间:10-02
整理:3721RD
点击:
步进电机,自己控制转的圈数(程序中改动)
//********************************************************************************
//* 描述: 28BYJ-48步进电机转的圈数控制 *
//* 电机使用端口:P1.0、P1.1、P1.2、P1.3 *
//* 单双八拍工作方式:A-AB-B-BC-C-CD-D-DA *
//********************************************************************************
#include <reg51.h>//头文件
//* 单双八拍工作方式:A-AB-B-BC-C-CD-D-DA *
char code zh[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
void delay(char x)//延时程序
{
char i;
while(x--)
{
for(i=0; i<120; i++);
}
}
void motor(unsigned int a)//a即想要转的圈数
{
unsigned char b;
unsigned int c;
for (c=0; c<8*64*a; c++)
{
for (b=0; b<8; b++)
{
P1 = zh[b];
delay(1);
}
}
}
void main()//主程序
{
motor(2); //转2圈(可以改动)
delay(1000);
while(1) ;
}
本文来自电子工程师之家
//********************************************************************************
//* 描述: 28BYJ-48步进电机转的圈数控制 *
//* 电机使用端口:P1.0、P1.1、P1.2、P1.3 *
//* 单双八拍工作方式:A-AB-B-BC-C-CD-D-DA *
//********************************************************************************
#include <reg51.h>//头文件
//* 单双八拍工作方式:A-AB-B-BC-C-CD-D-DA *
char code zh[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
void delay(char x)//延时程序
{
char i;
while(x--)
{
for(i=0; i<120; i++);
}
}
void motor(unsigned int a)//a即想要转的圈数
{
unsigned char b;
unsigned int c;
for (c=0; c<8*64*a; c++)
{
for (b=0; b<8; b++)
{
P1 = zh[b];
delay(1);
}
}
}
void main()//主程序
{
motor(2); //转2圈(可以改动)
delay(1000);
while(1) ;
}
本文来自电子工程师之家
写的很简单,要是我加点注释就好了,呵呵
你可以复制到你的文档里,加上你的注释贴出来
很好很好正需要这个
在proteus中运行的不对啊
很好哈
很好、、、、、、、、、
看看了 ,回复
看看。
好啊!给力
给力!
表示用了很好,问一下,这个可以进行调速吗?肯请小编指教!
谢谢小编分享
还不错 还不错。
谢谢小编分享 好人一生平安
才开始学单片机,圈数控制的那段程序看不太懂,为什么那就是转a*1圈,,求解释
啊啊啊啊啊啊啊啊啊啊
很好很好正需要这个
这个程序很给力,正好在做这个,挺好