标题: 新人调这个循迹代码有点问题,小车动不了,请大神帮忙看看 [打印本页]

作者: jr3775311    时间: 2017-5-15 23:05
标题: 新人调这个循迹代码有点问题,小车动不了,请大神帮忙看看
#include <reg52.h>  

sbit P1_0= P1^0;   
sbit P1_1= P1^1;  

sbit P1_2= P1^2;  
sbit P1_3= P1^3;  

sbit P1_4= P1^4;  
sbit P1_5= P1^5;

sbit P1_6= P1^6;  
sbit P1_7= P1^7;

sbit L1 = P3^4;  
sbit L2 = P3^5;  
sbit L3 = P3^6;

unsigned char leftspeed        =0;
unsigned char rightspeed=0;
unsigned char left_pwm=0 ;
unsigned char right_pwm=0;
unsigned  int  time=0;
bit leftext=1 ;
bit rightext=1;
void leftmoto_qianjin()
{
leftspeed=7;
P1_0=1;
P1_1=0;
P1_2=1;
P1_3=0;
}
void leftmoto_houtui()
{
leftspeed=7;
P1_0=0;
P1_1=1;
P1_2=0;
P1_3=1;
}
void rightmoto_qianjin()
{
rightspeed=5;
P1_4=1;
P1_5=0;
P1_6=1;
P1_7=0;
}
void rightmoto_houtui()
{
rightspeed=5;
P1_4=0;
P1_5=1;
P1_6=0;
P1_7=1;
}
void left_moto_speed()
{
if(leftext)
{
  if(left_pwm<=leftspeed)
  {
   P1_5=1;
   P1_7=1;
  }
  else
  {
   P1_5=0;
   P1_7=0;
  }
}
else
{
  P1_5=0;
  P1_7=0;

}
}
void right_moto_speed()
{
   if(rightext)
{
  if(right_pwm<=rightspeed)
  {
   P1_1=1;
   P1_3=1;
  }
  else
  {
   P1_1=0;
   P1_3=0;
  }
}
else
{
  P1_1=0;
  P1_3=0;

}
}
        void timer0()interrupt 1   using 2
{
     TH0=0XFc;          
         TL0=0X18;
         time++;
         left_pwm++;
         right_pwm++;
         left_moto_speed();
         right_moto_speed();
}
void main(void)
{
        TMOD=0X01;
        TH0= 0XFc;       
        TL0= 0X18;
        TR0= 1;
        ET0= 1;
        EA = 1;

while(1)
{                         
leftmoto_houtui();
rightmoto_houtui();
}   
}


作者: yzwzfyz    时间: 2017-5-16 08:06
单片机走一步1个us左右,电机转动一步是个加速的过程序,学过F=M*a吧。在1us内要将电机转动一格,用多大的力呢?
现在知道问题出在哪儿了吗?
作者: 呆萌侠    时间: 2017-5-16 10:06
你这个是三极管控制的小车吗。直接两个逻辑信号就控制了。是否可以把图和工程贴上来这样更有助于分析问题。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1