標(biāo)題:
尋跡小車求助,剛學(xué)的小白想問問大佬們
[打印本頁]
作者:
德瑪西亞杯
時(shí)間:
2021-12-3 17:50
標(biāo)題:
尋跡小車求助,剛學(xué)的小白想問問大佬們
使用STC15F2K60S2的芯片,要求就是圖上的要求,是真的很懵逼啊,咋個(gè)整的,跪求大佬
1638524823933.jpg
(2.98 MB, 下載次數(shù): 43)
下載附件
2021-12-3 17:47 上傳
作者:
angmall
時(shí)間:
2021-12-3 21:34
你搜一下,論壇有一堆可參考
基于51單片機(jī)制作的避障尋跡小車
http://www.torrancerestoration.com/bbs/dpj-210555-1.html
尋跡避障小車電路、程序、電路分析、設(shè)計(jì)下載
http://www.torrancerestoration.com/bbs/dpj-78319-1.html
作者:
235cdk
時(shí)間:
2021-12-7 14:24
尋跡避障程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RM1=P0^0;
sbit RM2=P0^1;//右電機(jī)
sbit LM1=P0^2;
sbit LM2=P0^3;//左電機(jī)
sbit bzh=P2^6;
sbit RAD=P0^6;//紅外接收右電機(jī)轉(zhuǎn)
sbit LBD=P0^7;//紅外接收左電機(jī)轉(zhuǎn)
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為數(shù)據(jù),=0為命令.
rw=1; //rw=1為讀,=0為寫.
do
{
P1=0x00;
en=1; //E信號下降沿鎖存DB7~DBO
dat=P1; //讀入P1的值
en=0; //鎖存
dat=0x80 & dat; //BUSY:1內(nèi)部在工作,0正常狀態(tài)
}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) //寫數(shù)據(jù)
{
checkbusy();
rs=1;
en=0;
P1=date;
delay(5);
en=1;
delay(5);
en=0;
}
//初始化 LCM
void lcd_init()
{
sentcom(0x38);//功能設(shè)置,一次送8位數(shù)據(jù),基本指令集
sentcom(0x0C);//0000,1100 整體顯示,游標(biāo)off,游標(biāo)位置off
sentcom(0x01);//0000,0001 清DDRAM
sentcom(0x02);//0000,0010 DDRAM地址歸位
sentcom(0x80);//1000,0000 設(shè)定DDRAM 7位地址000,0000到地址計(jì)數(shù)器AC
}
void lcd_string(char*strpoint)//在當(dāng)前顯示位置顯示LCD字符串
{ register i=0;
while(strpoint[ i]!=0){
sentdata(strpoint[ i]);
i++;
}
}
void stop()
{
lcd_init();
sentcom(0x80);
lcd_string("現(xiàn)代創(chuàng)新實(shí)訓(xùn)室 ");//C編譯系統(tǒng)本省也具有轉(zhuǎn)換功能,所以也可以這樣寫
sentcom(0x90);
lcd_string("尋跡避障一體小車");
sentcom(0x88);
lcd_string("--指導(dǎo):");
sentcom(0x98);
lcd_string("--設(shè)計(jì): ");
}
void tracing()
{
sentcom(0x80);
lcd_string("現(xiàn)代創(chuàng)新實(shí)訓(xùn)室 ");
sentcom(0x90);
lcd_string("--指導(dǎo):");
sentcom(0x88);
lcd_string("--設(shè)計(jì): ");
sentcom(0x98);
lcd_string(" 小車尋跡中---");
}
void bypass()
{
sentcom(0x80);
lcd_string("現(xiàn)代創(chuàng)新實(shí)訓(xùn)室 ");
sentcom(0x90);
lcd_string("--指導(dǎo):");
sentcom(0x88);
lcd_string("--設(shè)計(jì): ");
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單片機(jī)制作的避障尋跡小車
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1