单片机 步进电机 驱动程序 ULN2003 28BYJ-48 5线4相电机

单片机 步进电机 驱动程序 ULN2003 28BYJ-48 5线4相电机_第1张图片

/***************   writer:shopping.w   ******************/
#include 
#define uint	unsigned int
#define uchar	unsigned char
uchar code FFW[] =
{
     
	0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09
};

uchar code REV[] =
{
     
	0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01
};

sbit	K1	= P3 ^ 0;
sbit	K2	= P3 ^ 1;
sbit	K3	= P3 ^ 2;

void DelayMS( uint ms )
{
     
	uchar i;
	while ( ms-- )
	{
     
		for ( i = 0; i < 120; i++ )
			;
	}
}


void SETP_MOTOR_FFW( uchar n )
{
     
	uchar i, j;
	for ( i = 0; i < 5 * n; i++ )
	{
     
		for ( j = 0; j < 8; j++ )
		{
     
			if ( K3 == 0 )
				break;
			P1 = FFW[j];
			DelayMS( 25 );
		}
	}
}


void SETP_MOTOR_REV( uchar n )
{
     
	uchar i, j;
	for ( i = 0; i < 5 * n; i++ )
	{
     
		for ( j = 0; j < 8; j++ )
		{
     
			if ( K3 == 0 )
				break;
			P1 = REV[j];
			DelayMS( 25 );
		}
	}
}


void main()
{
     
	uchar N = 3;
	while ( 1 )
	{
     
		if ( K1 == 0 )
		{
     
			P0 = 0xfe;
			SETP_MOTOR_FFW( N );
			if ( K3 == 0 )
				break;
		}else if ( K2 == 0 )
		{
     
			P0 = 0xfd;
			SETP_MOTOR_REV( N );
			if ( K3 == 0 )
				break;
		}else  {
     
			P0	= 0xfb;
			P1	= 0x03;
		}
	}
}

你可能感兴趣的:(单片机,步进电机,单片机,程序)