|
附件A 源程序
#include <reg52.h>
sbit p00 = P0^0;
sbit p01 = P0^1;
sbit p02 = P0^2;
unsigned char code Forward[4]={0xFC,0xF9,0xF3,0xF6};//正轉(zhuǎn)表格
unsigned char code Return[8]={0xF7,0xF3,0xFB,0xF9,0xFD,0xFC,0xFE,0xF6};//反轉(zhuǎn)表格
void delay(unsigned int i)//延時
{while(--i);}
/*********** 步進(jìn)電機(jī)正轉(zhuǎn)P0口的第三口,P0^2***********************/
void turnfor(void)
{unsigned char i;
while(1)
{
if(p00 == 0)
{delay(1000);
if(p00 == 0)
break;
}
if(p01 == 0)
{
if(p01 == 0)
break;
}
for(i = 0; i < 4; i++)
{
P1 = Forward[i];
delay(2000);
}
}
}
/********************步進(jìn)電機(jī)反轉(zhuǎn) P0口的第二口,P0^1*********************/
void retur(void)
{
unsigned char i;
while(1)
{
if(p00 == 0)
{
delay(1000);
if(p00 == 0)
break;
}
if(p02 == 0)
{delay(1000);
if(p02 == 0)
break;
}
for(i = 0; i < 8; i++)
{P1 = Return[i];
delay(2000);
}
}
}
/*****************步進(jìn)電機(jī)停止轉(zhuǎn)動 P0口的第一口,P0^0*******************/
void stop(void)
{
while(1)
{
if(p01 == 0)
{
delay(1000);
if(p01 == 0)
break;
}
if(p02 == 0)
{if(p02 == 0)
break;
}
}
}
/************************步進(jìn)電機(jī)轉(zhuǎn)動主函數(shù)*******************************/
void Main(void)
{stop();
while(1)
{if(p00 == 0)
{delay(1000);
if(p00 == 0)
stop();
}
if(p01 == 0)
{delay(1000);
if(p01 == 0)
retur();
}
if(p02 == 0)
{delay(1000);
if(p02 == 0)
turnfor();
}
}
}
|
|