按键控制步进马达正反转

2019-03-24 19:01发布

include <reg52.h>
#define uchar      unsigned char
#define uint       unsigned int
#define  dianji   P2
void  delay_50us(uint t);
uchar  F_zhuan[8]={0xE2,0xE6,0xE4,0xEC,0xE8,0xF8,0xF0,0xF2};
uchar  B_zhuan[8]={0xF2,0xF0,0xF8,0xE8,0xEC,0xE4,0xE6,0xE2};
sbit key1 = P0^6;
sbit key2 = P0^7;
void zheng(void)
{
  uint i;
  if(key2==0)
   {
   for(i=0;i<8;i++)
    {
     dianji=B_zhuan;
     delay_50us(100);
    }
   }
}
void fan(void)
{
  uint i;
  if(key1==0)
   {
   for(i=0;i<8;i++)
    {
     dianji=F_zhuan;
     delay_50us(100);
    }
   }
   
}
void main()
{
while(1)
{
   dianji=0x00;
   if(key1==1)
  {
    while(!key1)
    fan();
  }
   if(key2==1)
  {
    while(!key2)
    zheng();
  }
}   
}
void delay_50us(uint t)
{
  uchar j;
  for(;t>0;t--)
  {
   for(j=19;j>0;j--);
  }
}
哪错了,按键有时有效又时失灵 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。