×
单片机 > 单片机程序设计 > 详情

单片机AT89C51 正反转可控的步进电机

发布时间:2021-12-20 发布时间:
|

单片机AT89C51 正反转可控的步进电机

单片机源程序:

/*************** 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;

}

}

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址