控制步进电机,请问这个程序在循环了400次?为什么停不下来???求大神

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit FREE=P2^1;
sbit CP=P2^2;
sbit DIR=P2^3;
sbit key=P1^0;
void delay()
{
uint y;
for(y=114;y>0;y--)
;
}
void main()
{
uint i = 0;
FREE=0;
CP=0;
DIR=1;
key=1;
while(1)
{
if(key==0)
{
FREE=1;
i=400;
while(i--)//循环400次
{
CP=1;
delay();
CP=0;
delay();
}
FREE=0;//脱机
}
}
}

key 是个按键吗?当按下按键才开始转的 吗?

if(key==0)
{
while(key==0); //加一行,等待按键释放,试一下
FREE=1;
i=400;
while(i--)//循环400次
{
CP=1;
delay();
CP=0;
delay();
}
FREE=0;//脱机
}
有一个可能就是FREE=0;//脱机,这行没有起作用,没有停止,就是这个脚不起作用。
温馨提示:答案为网友推荐,仅供参考
相似回答