毕业设计论文+智能循迹避障小车设计 下载本文

内容发布更新时间 : 2024/5/18 20:04:45星期一 下面是文章的全部内容请认真阅读。

附录一 循迹加红外避障综合程序

#include

#define uint unsigned int #define uchar unsigned char #define out P2

sbit zuo1=P0^1; sbit zuo2=P0^0; sbit you1=P0^3; sbit you2=P0^2;

sbit zuod=P3^5; sbit youd=P3^6;

sbit qiand=P3^7; //左 右 前 3个红外传感器

sbit jiao=P0^6;

sbit D1=P2^0; sbit D2=P0^7;

uchar code ZM[]={

0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09, };

void delay(uint x) {

uchar i; while(x--)

for(i=0;i<123;i++); }

void delay_nus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us {

...

i=i/10; while(--i); }

void delay_nms(unsigned int n) //延时n ms {

n=n+1;

while(--n)

delay_nus(900); // }

void qian() {

zuo1=0;

zuo2=1; you1=0;

you2=1; }

void hou() {

zuo1=1;

zuo2=0; you1=1;

you2=0; }

void zuo() {

zuo1=0;

zuo2=1; you1=1;

you2=0; }

void you() {

zuo1=1;

...

延时 1ms,同时进行补偿//左边往前 //右边往前 //左边往后 //右边往后 //左边往前 //右边往后

zuo2=0; //左边往后 you1=0;

you2=1; //右边往前 }

void tingzhi() {

zuo1=0;

zuo2=0; //左边往后 you1=0;

you2=0; //右边往前 }

void main() {

while(1) {

if(zuod==0&youd==0) //如果左右两个传感器没有检测到黑线 {

qian(); //直走 out=ZM[1];

if(qiand==0) //如果在直走的过程中遇见障碍物 {

delay(50); //延时判断是否为干扰 if(qiand==0) //不是干扰 {

jiao=0; //蜂鸣器报警 tingzhi();

delay_nms (120);

hou(); //后退半秒 out=ZM[2];

delay(500);

you(); //右转200毫秒 out=ZM[4]; delay(200);

jiao=1; //取消报警

...

} } }

if(zuod==1&youd==0) //如果左边的传感器检测到黑线 {

while(1) {

zuo();

out=ZM[3]; //左转 D1=0;

if(zuod==0) //一直左转到传感器检测不到为止 {

D1=1;

break; //跳出循环 } } }

if(youd==1&zuod==0) {

while(1) {

you(); out=ZM[4]; D2=0;

if(youd==0) {

D2=1;

break; //道理同上 } } } } }

//效果:沿着黑线行走 中途遇见障碍物后退右转

...

附录二 实物图

单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。

...