您的位置:首页 > 其它

步进电机正反转

2015-05-02 10:49 197 查看
main.c

#include<reg51.h>
#include<function.h>
#include<keyscan.h>

#define speed 1

sbit PH1 = P1^0;      //定义管脚
sbit PH2 = P1^1;
sbit I01 = P1^2;
sbit I11 = P1^3;
sbit I02 = P1^4;
sbit I12 = P1^5;

void delay(int time){
int i,j;

for(j=0; j <= time; j++)
for(i =0 ; i <= 120; i++);
}

void init()
{
PH1 = 0;
I01 = 0;
I11 = 0;

PH2 = 1;
I02 = 1;
I12 = 1;
delay(speed);
PH1 = 0;
I01 = 0;
I11 = 0;

PH2 = 1;
I02 = 1;
I12 = 1;
delay(speed);
}

void Go1() //    !a=>!b=>a=>b=>!a
{
PH1 = 0;
I01 = 0;
I11 = 0;

PH2 = 0;
I02 = 1;
I12 = 1;
delay(speed);
//okay;
PH1 = 1;
I01 = 1;
I11 = 1;

PH2 = 0;
I02 = 0;
I12 = 0;
delay(speed);

PH1 = 1;
I01 = 0;
I11 = 0;

PH2 = 1;
I02 = 1;
I12 = 1;
delay(speed);

PH1 = 0;
I01 = 1;
I11 = 1;

PH2 = 1;
I02 = 0;
I12 = 0;
delay(speed);

PH1 = 0;
I01 = 0;
I11 = 0;

PH2 = 0;
I02 = 1;
I12 = 1;
delay(speed);

}
void Go2()
{
PH1 = 0;
I01 = 0;
I11 = 0;

PH2 = 1;
I02 = 1;
I12 = 1;
delay(speed);
PH1 = 1;
I01 = 1;
I11 = 1;

PH2 = 1;
I02 = 0;
I12 = 0;
delay(speed);

PH1 = 1;
I01 = 0;
I11 = 0;

PH2 = 0;
I02 = 1;
I12 = 1;
delay(speed);

PH1 = 0;
I01 = 1;
I11 = 1;

PH2 = 0;
I02 = 0;
I12 = 0;
delay(speed);

PH1 = 0;
I01 = 0;
I11 = 0;

PH2 = 1;
I02 = 1;
I12 = 1;
delay(speed);

}

void main()
{
uchar key;
initialKeyScan();
init();
while(1)
{
key = keyScan();

switch(key)
{
case 0x00:{Go1(); break;}

case 0x01:{Go2(); break;}
}
key = 0x10;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单片机 步进电机