|
|
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code zheng[]={0xfc,0xf6,0xf3,0xf9 }; //2相勵(lì)磁正轉(zhuǎn)表
uchar code fan[]={0xf9,0xf3,0xf6,0xfc }; //2相勵(lì)磁反轉(zhuǎn)表
uchar code ting[]={0x00};
sbit k1=P3^0; //定義K1開關(guān)
sbit zheng_LED=P2^1 ;
sbit fan_LED=P2^2;
uint m=1;
void delay(uint x) //延時(shí)函數(shù)
{
uchar i;
while(x--) //i=x即延時(shí)約x毫秒
for(i=0;i<60;i++);
}
/********以下是步進(jìn)電機(jī)正轉(zhuǎn)函數(shù)********/
void setp_motor_zheng(uchar n)
{ uchar i,j;
for(i=0;i<5*n;i++) //轉(zhuǎn)n圈
{
for(j=0;j<4;j++)
{
P1=zheng[j]; //取正轉(zhuǎn)數(shù)據(jù)
delay(250); //轉(zhuǎn)一個(gè)角度停留的時(shí)間,可調(diào)節(jié)轉(zhuǎn)速
}
}
}
/********以下是步進(jìn)電機(jī)反轉(zhuǎn)函數(shù)********/
void setp_motor_fan(uchar n)
{ uchar i,j;
for(i=0;i<5*n;i++) //轉(zhuǎn)n圈
{
for(j=0;j<4;j++)
{
P1=fan[j]; //取反轉(zhuǎn)數(shù)據(jù)
delay(250); //轉(zhuǎn)一個(gè)角度停留的時(shí)間,可調(diào)節(jié)轉(zhuǎn)速
}
}
}
/********以下是行程開關(guān)中斷子程序********/
sbit k2=P3^1;
/********以下是主程序********/
void main(void)
{
while(m--) //電機(jī)轉(zhuǎn)m圈
{ if(k1==1) //K1送入高電平
{ delay(10);
if(k1==1)
{ zheng_LED=1;
fan_LED=0;
setp_motor_zheng(3); //調(diào)用電機(jī)正轉(zhuǎn)函數(shù)
}
}
else //K1送入低電平
{
delay(10);
zheng_LED=0;
fan_LED=1;
setp_motor_fan(3); //調(diào)用電機(jī)反轉(zhuǎn)函數(shù)
}
}
}
|
評分
-
查看全部評分
|