普中教程里的四线双极性步进电机,我想做成用按键实现正反转,可是没有达到我的目的。
我是小白,希望能给解答一下#include<reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit motor= P1;
sbitk1= P2^7;
sbitk2= P2^6;
#define speed 200
void delay(u16 i)
{
while(i--);
}
void keypros()
{
u8 a[]={0xfd,0xfe,0xf7,0xfb};
u8 b[]={0xfe,0xfd,0xfb,0xf7};
u8 i,j;
if(k1==0)
{
delay(10);
if(k1==0)
{ for(i=0;i<4;i++)
{
motor=a;
delay(200);
}
}
while(!k1);
}
if(k2==0)
{
delay(10);
if(k2==0)
{
for(j=0;j<4;j++)
{
motor=b;
delay(200);
}
}
while(!k2);
}
}
void main()
{motor=0x00;
keypros();
/*while(1)
{
}*/
}
本帖最后由 wx_JUGMqXG2 于 2019-7-29 17:35 编辑
对于这个程序,我猜其运行的现象是闪一下就没有结果了。如果猜对的话,那就是犯了单片机程序的大忌。
没有把主程序放到while(1)循环中。
建议把检测按键的程序写成一个函数,再把运行电机的写成一个函数,然后两个函数在main程序中while循环中一调用
页:
[1]