求大神看个程序

2019-07-15 21:36发布

就是这个程序,用按键控制步进电机正反转,为什么只有按键一直摁着电机才转,松开就不转了





#include<reg52.h> //头文件一般无需改动
#include<intrins.h> //头文件一般无需改动
#define uchar unsigned char
#define uint  unsigned int
uchar code FFW[8]={0x1f,0x3f,0x2f,0x6f,0x4f,0xcf,0x8f,0x9f};//正转驱动值
uchar code REV[8]={0x8f,0xcf,0x4f,0x6f,0x2f,0x3f,0x1f,0x9f};//反转驱动值
sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3=P3^4;
uint a;     
/*********************************************************/
void delayus(unsigned int i)//延时函数
{
  unsigned int j;
  for(;i>0;i--)
    for(j=10;j>0;j--);
}
void delayms(uint i)//延时函数
{
  unsigned int j;
  for(;i>0;i--)
    for(j=100;j>0;j--);
}
/***********************************************************/


void  motor_rev() //反转
  {uchar i;
for (i=0;i<8;i++)//8拍   1个脉冲即1拍=3.75°
                           {
                                 P1=REV[i];//赋驱动值
                                delayus(a); //改变转速,不过不要超过步进电机的最快值  延时一下
                           }

  }
   void  motor_ffw()        //正转
  {uchar i;
for (i=0;i<8;i++)//8拍   1个脉冲即1拍=3.75°
                           {
                                 P1=FFW[i];//赋驱动值
                                delayus(a); //改变转速,不过不要超过步进电机的最快值  延时一下
                           }

  }
void main()
{
                a=9;
                
                EA=1;          //全局中断开
                EX0=1;         //外部中断0开
                IT0=1;         //边沿触发
        while(1)

      {
          if(KEY1==0)
          {

                       motor_ffw();  
                        //电机正转
       
          
           }
           else if(KEY2==0)
           {
                       motor_rev();  
                        //电机反转
                         
                   }

           else if(KEY3==0)
           {
                        P1 = 0xf0;
                 }
        }                       
          }
         

/********************************************************/


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
longgyue
1楼-- · 2019-07-16 21:43
南关忆北 发表于 2013-11-23 10:13
多谢,刚才试了下,好了

不客气   这段程序慢慢理解就会明白的
朱枫
2楼-- · 2019-07-16 22:47
这个要给正转和反转 一个状态变量 就行了

一周热门 更多>