第一范文网 - 专业文章范例文档资料分享平台

智能小车循迹、避障、红外遥控C语言代码

来源:用户分享 时间:2025/5/29 4:25:08 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

}

/************************************ 自动避障模块

************************************/

void display(uchar temp) //判断障碍距离小车的距离,左转180,前进,峰呤器报警1602显示

{ uint ge,shi,bai,i;

if((temp<=20)&&(temp>2)) //小于15厘米 小车后退 再左转 { back(); left_180(); } if(count>=20) {bai=temp/100; //1602显示数据 date_data[5]=bai; shi=(temp0)/10; date_data [6]=shi; ge=temp0; date_data[7]=ge; for(i=0;i<8;i++) { LCD1602_WriteCom(0x80+i); LCD1602_WriteData(date_data[i]+48); } count=0; } }

void bizhang_test() { int i,j=0;

uchar distance_dat; delay(50); for(i=0;i<8;i++) { LCD1602_WriteCom(0x80+i); LCD1602_WriteData(ENCHAR_PuZh7[i]); } while(1) { run(); EA=0; //关总中断 TRIG=1; // 发射20us脉冲信号 delay(30);

'.

.

TRIG=0;

while(ECHO==0); //等待接收信号 state=0; //标志清零 EA=1; //开总中断 EX0=1; //打开外部中断0 P3.2外部中断0引脚 此时为高电平 TH0=0x00; //定时器0 初值 TL0=0x00;

TF0=0; // 定时器0方式1计数溢出标志 TR0=1; // 定时器0方式1启动定时器1

while(state!=1);

EX0=0; // 关闭外部中断0 TR0=0; // 关闭定时器0中断 TF0=0; // 定时器1方式1计数溢出标志 if(state==1) //检测到障碍物计算离障碍物的距离 { time=(timeH*4.352+timeL*0.017); //设定超声波的速度为340m/s 计数一次1us distance_dat=time; } else //未检测到障碍物 无返回信号 {

distance_dat=0; } distance[j]=distance_dat; j++; if(j==3) { if(distance[0]>distance[1]) {} else { distance[0]=distance[1]; } if(distance[0]>distance[2]) {} else { distance[0]=distance[2]; } if(distance[0]>distance[3]) {} else { distance[0]=distance[3];

'.

定时 } distance_dat=distance[0]; j=0; display(distance_dat); } count++; } }

void xunji_test() { int i; delay(50); for(i=0;i<8;i++) {

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh6[i]); } while(1) {

// delay(10); state_1=HW;

DAT=state_1&(0x0f); //判断低4位的状态 switch(DAT) { case 0x00: run(); break; case 0x01: right_120(); break; case 0x02: right_90(); break; case 0x04: left_90(); break; case 0x06: run(); break; case 0x03: right_120(); break; case 0x08: left_120();

'.

.

每隔5ms检测一次 .

break; case 0x0c: left_120(); break; default: run(); break; } } }

void hongwai_test() { int i; delay(60); for(i=0;i<8;i++) { LCD1602_WriteCom(0x80+i); LCD1602_WriteData(ENCHAR_PuZh8[i]); } // TR1=1; while(1) { Number=IRCOM[2]; switch(Number) {

case 0x18:

'.

PWM=0X56; //前进 for(i=0;i<8;i++) { LCD1602_WriteCom(0x80+i); LCD1602_WriteData(ENCHAR_PuZh1[i]); } break; case 0x08: PWM=0X50; //右两轮正转 左转 for(i=0;i<8;i++) { LCD1602_WriteCom(0x80+i); LCD1602_WriteData(ENCHAR_PuZh4[i]); } break; case 0x1c: PWM=0X00;

智能小车循迹、避障、红外遥控C语言代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c02g7x8dmco6m3qp9xkwe9ersa9ps1u00x8u_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top