找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1146|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机通过L298控制两个直流电机带动装置进行上下左右移动 程序问题

[复制链接]
跳转到指定楼层
楼主
ID:654785 发表于 2020-5-16 19:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过L298控制两个直流电机带动装置进行上下左右移动,条件是自动按键按下,装置按照设计的路径运动,当设置X2-X1小于50时,装置先下移,在右移到X2最后上移到Y1。通过proteus仿真时,自动按键按下后释放,装置只进行下移,需要不停的按下和释放自动按键才能完整的按照路径运动,去掉独立按键部分可以正常工作。下面是用到的程序。希望大佬可以帮我看看问题,单片机学的不太好。
sbit key_at = P1^6;//自动
sbit IN1 = P2^3;
sbit IN2 = P2^4;//电机a输入控制
sbit IN3 = P2^5;
sbit IN4 = P2^6;//电机a输入控制

sbit fa = P3^0;//左移时为1,右移时为0
sbit fb = P3^1;//下移时为1,上移时为0


int X,Y;//工作平台坐标
int X1 ; //电机a左限位
int X2 ; //电机a右限位
int Y1 ; //电机b上限位
int Y2; //电机b下限位


void initial()
{

  EA = 1;//打开总中断
  EX0 = 1;//打开外部中断0
  EX1 = 1;

  IT0 = 1;//设置外部中断0下降沿触发
  IT1 = 1;

}


void delay(uint z)
{
  uint i,j;
  for(i = z;i > 0;i--)
  for(j = 114;j > 0;j--);

}

void moto_auto()
{
  int n;
  int i;
  X1=85;
  Y1=170;
  X2=110;
  Y2=100;

  X=X1+numa;
  Y=Y1+numb;

  n=(X2-X1)/100;

  if(key_at==0)
  {
    delay(10);
    if(key_at==0)
   {
       while(!key_at);

        if((X2-X1-100*n)<=50)
        {                  
            if(Y>=Y1&&(X<(X1+100*n+10))&&(X>(X1+100*n-10)))
           {
                IN1=0;
                IN2=0;
                IN3=0;
                IN4=1;//下移
           }

          if(Y<=Y2&&(X<(X1+100*n+10))&&(X>(X1+100*n-10)))
         {
              IN1=1;
              IN2=0;
              IN3=0;
              IN4=0;//右移
         }

        if(Y<=Y2&&X>X2)
        {
            IN1=0;
            IN2=0;
            IN3=1;
            IN4=0;//上移
        }

         if(Y>=Y1&&X>X2)
        {
             IN1=0;
             IN2=0;
             IN3=0;
            IN4=0;//停止
        }
}  

}
}
}

void main()
{
  initial();
  while(1)
  {
    moto_auto();
  }
}


void Int0() interrupt 0
{
  if(fa==1)
  numa--;//左移减计数
  else
  numa++;//右移加计数
}

void Int1() interrupt 2
{
  if(fb==1)
  numb--;//下移减计数
  else
  numb++;//上移加计数
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:654785 发表于 2020-5-17 21:13 | 只看该作者
有大神指点一下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表