求单片机控制步进电机转动程序

如题所述

第1个回答  2013-06-11
#include<reg52.h>
#define A1 {a=1;b=0;c=0;d=0;}
#define B1 {a=0;b=1;c=0;d=0;}
#define C1 {a=0;b=0;c=1;d=0;}
#define D1 {a=0;b=0;c=0;d=1;}
#define OFF {a=0;b=0;c=0;d=0;}
#define uint unsigned int
#define uchar unsigned char
sbit d=P2^0;
sbit c=P2^1;
sbit b=P2^2;
sbit a=P2^3;
uint t=300;
bit k=0,sb=0;
void delay(uint t)
{
while(--t);
}
void main()
{
EA=1;

EX0=1;
IT0=1;
PX0=0;

EX1=1;
IT1=1;
PX1=0;

while(1)
{
OFF
while(!k&sb)
{
A1
delay(t);
B1
delay(t);
C1
delay(t);
D1
delay(t);
}
OFF
while(k&sb)
{
D1
delay(t);
C1
delay(t);
B1
delay(t);
A1
delay(t);
}
}
}
void fb() interrupt 0
{
if(!INT0)
{
delay(2500);
if(!INT0)
{
while(!INT0);
if(INT0)
{
delay(2000);
if(INT0)
k=!k;
}
}
}
}

void ss() interrupt 2
{
if(!INT1)
{
delay(2500);
if(!INT1)
{
while(!INT1);
if(INT1)
{
delay(2000);
if(INT1)
sb=!sb;
}
}
}
}本回答被提问者采纳