找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 997|回复: 2
收起左侧

寻迹小车求助,刚学的小白想问问大佬们

[复制链接]
ID:987663 发表于 2021-12-3 17:50 | 显示全部楼层 |阅读模式
使用STC15F2K60S2的芯片,要求就是图上的要求,是真的很懵逼啊,咋个整的,跪求大佬
1638524823933.jpg
回复

使用道具 举报

ID:155507 发表于 2021-12-3 21:34 | 显示全部楼层
你搜一下,论坛有一堆可参考

基于51单片机制作的避障寻迹小车
http://www.51hei.com/bbs/dpj-210555-1.html

寻迹避障小车电路、程序、电路分析、设计下载
http://www.51hei.com/bbs/dpj-78319-1.html
回复

使用道具 举报

ID:984895 发表于 2021-12-7 14:24 | 显示全部楼层
    寻迹避障程序

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RM1=P0^0;
sbit RM2=P0^1;//右电机

sbit LM1=P0^2;
sbit LM2=P0^3;//左电机

sbit bzh=P2^6;
sbit RAD=P0^6;//红外接收右电机转
sbit LBD=P0^7;//红外接收左电机转

sbit rs=P3^5;//     LCD的RS  
sbit rw=P3^6;//    LCD的R/W
sbit en=P3^7;//    LCD的E   

void lcd_string(uchar *strpoint);

void delay(uint a)
{ uint b,c;
  for(b=a;b>0;b--)
    for(c=120;c>0;c--);
}
uchar i=0;

void checkbusy()//检查LCD忙
{      uchar dat;
rs=0;      //rs=1为数据,=0为命令.
rw=1;    //rw=1为读,=0为写.
    do
      {
      P1=0x00;
      en=1; //E信号下降沿锁存DB7~DBO
      dat=P1; //读入P1的值
      en=0; //锁存
      dat=0x80 & dat;    //BUSY:1内部在工作,0正常状态
       }while(!(dat==0x00));rw=0;
}
void sentcom(uchar com)
{ checkbusy(); //检查Busy
   rs=0;
   en=0;
   P1=com;
   delay(5);
   en=1;
   delay(5);
   en=0;
   }

void sentdata(uchar date) //写数据
{
  checkbusy();
  rs=1;
  en=0;
  P1=date;
  delay(5);
  en=1;
  delay(5);                                                                                                                 
  en=0;
}



//初始化     LCM  
void     lcd_init()   
    {   

              sentcom(0x38);//功能设置,一次送8位数据,基本指令集   
              sentcom(0x0C);//0000,1100       整体显示,游标off,游标位置off   
              sentcom(0x01);//0000,0001     清DDRAM   
              sentcom(0x02);//0000,0010     DDRAM地址归位   
              sentcom(0x80);//1000,0000     设定DDRAM     7位地址000,0000到地址计数器AC   

    }

void lcd_string(char*strpoint)//在当前显示位置显示LCD字符串
{      register i=0;
while(strpoint[ i]!=0){
        sentdata(strpoint[ i]);
        i++;
        }
}
void  stop()
{
     lcd_init();
  sentcom(0x80);
  lcd_string("现代创新实训室 ");//C编译系统本省也具有转换功能,所以也可以这样写
  sentcom(0x90);
  lcd_string("寻迹避障一体小车");                           
  sentcom(0x88);
  lcd_string("--指导:");                           
  sentcom(0x98);
  lcd_string("--设计: ");
}
void  tracing()
{
  sentcom(0x80);
  lcd_string("现代创新实训室 ");
  sentcom(0x90);
  lcd_string("--指导:");                              
  sentcom(0x88);
  lcd_string("--设计:  ");                          
  sentcom(0x98);
  lcd_string("  小车寻迹中---");
}
void  bypass()
{
  sentcom(0x80);
  lcd_string("现代创新实训室 ");
  sentcom(0x90);
  lcd_string("--指导:");                              
  sentcom(0x88);
  lcd_string("--设计:  ");                          
  sentcom(0x98);
  lcd_string("  小车避障中---");
}
void find()
{tracing();
  while(bzh==1)
{      if(LBD&&RAD==1)
           {      
               RM1=1;LM1=1;
               RM2=0;LM2=0;
               }     
         if(RAD==0)
           {                    
               RM1=0;LM1=1;
               RM2=0;LM2=0;
               if(LBD==0)
                   {
                       RM1=1;LM1=1;
                   RM2=0;LM2=0;
                       delay(i);     
                      }
           }                                                                  
        if(LBD==0)
          {      
               RM1=1;LM1=0;
               RM2=0;LM2=0;
               if(RAD==0)
                      {
                             RM1=1;LM1=1;
                             RM2=0;LM2=0;
                             delay(i);
                      }     
           }
    }        
}         
void bizhan()
{    bypass();
if(bzh==0)
        {     
               RM1=1;LM1=0;
               RM2=0;LM2=1;
               delay(100);
        }
}
void main()
{  stop();
delay(2000);      
   while(1)
{
    find();
bizhan();
}            
}
来自基于51单片机制作的避障寻迹小车
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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