標(biāo)題: 循跡小車代碼及電路圖 [打印本頁]

作者: 帥帥的小伙    時(shí)間: 2018-5-29 20:59
標(biāo)題: 循跡小車代碼及電路圖
這個(gè)循跡小車的用的是占空比控制速度,如果使用的是舵機(jī)。那就將控制速度的代碼換成可以控制舵機(jī)轉(zhuǎn)向角度的函數(shù)。不知為什么沒法上傳代碼,那我就發(fā)文字。寫的很簡單,反應(yīng)的話我用的是89C51和12MHz的晶振沒有什么問題。

#include<reg52.h>
# define uint unsigned int
# define uchar unsigned char

sbit ENB=P2^2;   
sbit ENA=P2^5;          
sbit IN1=P2^4;   
sbit IN2=P2^3;          
sbit IN3=P2^0;   
sbit IN4=P2^1;          
sbit right3=P1^0;
sbit right2=P1^1;
sbit right1=P1^2;
sbit middle=P1^3;
sbit left1=P1^4;
sbit left2=P1^5;
sbit left3=P1^6;

uchar zkbENA=0;
uchar zkbENB=0;
uchar t=0;
uchar k=0;

void T0_time() interrupt 1
{
        t++;
        k++;
        if(t<zkbENA)        ENA=1;
        else        ENA=0;
        if(k<zkbENB)        ENB=1;
        else        ENB=0;
        if(k>100)  t=0;k=0;       
        if(t>101)        t=0,k=0;
        TH0=(65536-80)/256;
        TL0=(65536-80)%256;               
  }                                            

  void main()                                               
{  
        IN1=1;
        IN2=0;
        IN3=1;
        IN4=0;
          TMOD=0x01;
          TH0=(65535-100)/256;
          TL0=(65535-100)%256;
          EA=1;
          ET0=1;
          TR0=1;

          while(1)
          {               
        if(middle==0)
                {zkbENB=100;zkbENA=100;}       
        else if(right3==0)
                {zkbENA=0;zkbENB=80;}
        else if(left3==0)
                {zkbENA=80;zkbENB=0;}
        else if(right2==0)
                {zkbENA=20;zkbENB=90;}
        else if(left2==0)
                {zkbENA=90;zkbENB=20;}
        else if(right1==0)
                {zkbENA=70;zkbENB=100;}
        else if(left1==0)
                {zkbENA=100;zkbENB=70;}
        }
}  


如果需要面對更加復(fù)雜的有要求處理速度的情況,建議用機(jī)器指令寫

171ECF399448052A56BE6177560791AB_0..jpg (16.21 KB, 下載次數(shù): 54)

171ECF399448052A56BE6177560791AB_0..jpg

BE144D1324B441C145929985620BF15C_0..jpg (24.89 KB, 下載次數(shù): 49)

BE144D1324B441C145929985620BF15C_0..jpg





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1