39、基于51单片机红外循迹、红外避障、遥控小车系统设计(原理图+PCB图+程序+开题报告+参考论文)

一、设计简介:

本设计是基于51单片机红外循迹、红外避障、遥控小车系统设计,主要实现以下功能:

1.开机默认红外遥控模式,通过遥控器上的前后左右可以调节行驶方向。


2.按下2键切换为红外避障模式,单侧遇到障碍物转动躲避,双侧均有障碍物向后旋转掉头躲避;


3.按下3键为红外循迹模式,循迹过程中如果红外避障探头检测到有障碍物,小车会停止前进。


4.遥控器左上角的红色按键可以让小车停止运行,并切换为红外遥控模式。

主要硬件组成:

51单片机+最小系统+L293D电机驱动模块+稳压电路+按键电路+红外避障电路+红外遥控电路+红外循迹电路

二、原理图   

三、PCB图 

四、程序源码 

部分代码: 

  if(f==1)
    {
        if(Tc>Inum1&&Tc<Inum3) 
        {
            Im[m/8]=Im[m/8]>>1|0x80; m++; 
        }
        if(Tc>Inum2&&Tc<Inum1) 
        {
         Im[m/8]=Im[m/8]>>1; m++; //取码
        }
        if(m==32) 
        {
         m=0;  
         f=0;
         if(Im[2]==~Im[3]) 
        {
           IrOK=1; 
        }
        else IrOK=0;   //取码完成后判断读码是否正确
        }
               //准备读下一码
   }
 
}
/************************************************************************/
//全速前进
void  run(void)
{  
     Left_moto_go ;   //左电机往前走
     Right_moto_go ;  //右电机往前走
}
 
//全速后退
     void  backrun(void)
{
     Left_moto_back ;   //左电机后退
     Right_moto_back ;  //右电机后退
}
 
//右转
     void  rightrun(void)
{
     Left_moto_go ;   //左电机前进
     Right_moto_Stop ;  //右电机停止
}
 
//左转
     void  leftrun(void)
{
     Left_moto_Stop ;   //左电机停止
     Right_moto_go ;  //右电机前进
}
//STOP
     void  stoprun(void)
{
     Left_moto_Stop ;   //左电机停止
     Right_moto_Stop ;  //右电机停止
}
//向右原地打转(掉头)
void  rightspin(void)

     Left_moto_go  ;   //左电机往前走
     Right_moto_back   ;  //右电机往前走    
}
 
 
/*********************************************************************/         
/*--主函数--*/
void main(void)
{
     
    m=0;
    f=0;
 
    IT0=1;
    EX0=1;
 
    TMOD=0x11;  
    TH0=0;
    TL0=0;
    TR0=1;
    EA=1;
    yk=1;
    bz=0;
    xj=0;
 
 
    
    delay(100);       
 
 
    while(1)                            /*无限循环*/
    { 
 
        if(IrOK==1)               //如果处理好后进行红外处理
        {
            switch(Im[2])
               {
                case 0x0C:  yk=1;bz=0;x

五、资源获取

 

本项目包含的所有文件都可以点击下面的名片,发送 “ 39、基于51单片机红外循迹、红外避障、遥控小车系统设计 ” 获取!
项目纯手打,不是免费的哦~
希望可以帮到你哈!

#include #include "qudong.h" #include "duankou.h" #include "lcd1602.h" #include "celv.h" #define uchar unsigned char #define uint unsigned int #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) //****************************************************************************** //全局变量 //****************************************************************************** float voltage=6.0; //实际电压值 int RS1=100; int LS1=100; int RS0=100; int LS0=100; char heixian=0x03; //不等于0x03表示检测到信号,等于0x03表示没检测到信号 char ji_shu=0; //表示第几次检测到黑线 char youxinhao=0; //=1表示检测到信号,=0表示没有检测到信号 uint total_time_count=0;//时间相关变量 uint start_low_speed=0; uint end_low_speed=0; uint end_all=0; uint start_all=0; uint LM_cap_new=0; //测速相关变量 uint LM_cap_old=0; uint LM_cap_count=0; uint LM_mai_kuai=0; float real_LM_speed=0.0; float top_speed=0; float average_speed=0; uint RM_cap_new=0; uint RM_cap_old=0; uint RM_cap_count=0; uint RM_mai_kuai=0; float real_RM_speed=0.0; float total_distance=0; //测量值转化为实际值相关变量 float dis1=0; float dis0=0; uint low_speed_time=0; uint total_time=0; //****************************************************************************** //系统时钟初始化,aclk=32768k,mclk=XT2,SMCLK = XT2。 //****************************************************************************** void Init_clock(void) { DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO数字晶振最高频率 BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL选择高速晶振最高频率 BCSCTL2 |=SELM_2+SELS; //MCLK=8M,SMCLK = XT2,系统主时钟选择高速晶振 do //清除振荡器失效标志,等振荡器稳定。 { IFG1&=~OFIFG; for(unsigned int i=0XFF;i>0;i--); } while((IFG1&OFIFG)!=0); } #pragma vector=ADC_VECTOR //ADC12 interrupt service routine __interrupt void ADC12_ISR (void) { if(ADC12MEM0<2816)P6OUT&=~BIT3; //欠压指示灯亮 else P6OUT|=BIT3; } //*************************
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值