怎么通过按键控制步进电机的转动还是停止?

2019-07-15 13:24发布

本帖最后由 看起来很无聊 于 2016-7-17 11:29 编辑

这是我自己写的一个程序,刚开始步进电机是停止的,按下按键后步进电机转动,但是再按下按键时,步进电机并不会停止。应该怎么改呢或者有什么思路其他的方法?
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^4;                                         //暂停还有停止
unsigned char code F_Rotation[4]={0x03,0x06,0x0c,0x09};//正转表格
unsigned char code B_Rotation[4]={0x03,0x09,0x0c,0x06};//反转表格

void delay(uchar i)//延时
{
     uchar j;
     while( i--){
         for(j=0;j<250;j++)
             {;}
     }
}

void main()
{

    uchar i,j;
    uchar flag=0; //控制步进电机停止还是运转
    if(key1==0) {
       delay(5);
       if(key1==0)
       {
           flag=~flag;
           while(!key1);
        }
    }

while(flag)
{
      j=0;
      for(i=0;i<192;i++)
      {
          P1 = 0x00;
          P1 = F_Rotation[j];//这里只有正转是为了测试
          j++;
          if(j>=4) j=0;
          delay(2);
      }
      delay(200);
  }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。