基于单片机的智能小车设计(红外避障) - 图文(8)

2019-05-18 23:24

轮式移动机器人的设计报告

//EX1=1; //同意开启外部中断1

IT1=1; //设定外部中断1为低边缘触发类型 EA=1; //总中断开启 ControlCar(8); //初始化小车运行状态 while(1) //程序主循环 {

if(P3_2 == 0) } }

//----------红外遥控------------------------------------------------------------- void IR_IN() interrupt 2 using 0 //定义INT2外部中断函数 {

unsigned char j,k,N=0; //定义临时接收变量

EX1 = 0; //关闭外部中断,防止再有信号到达 delayms(15); //延时时间,进行红外消抖 if (IRIN==1) //判断红外信号是否消失 {

EX1 =1; //外部中断开

return; //返回 }

while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。 {

delayms(1); //延时等待 }

31

{

delay_nms(10); if(P3_2 == 0) {

temp++; }

if(temp > 3) { temp = 1; }

switch(temp) {

case 1: ShowPort = LedShowData[1];Robot_Traction();EX1 = 0;break; }

case 2: ShowPort = LedShowData[2];Robot_Avoidance();EX1 = 0;break; case 3: ShowPort = LedShowData[3];EX1 = 1;break; while(!P3_2); }

轮式移动机器人的设计报告

for (j=0;j<4;j++) //采集红外遥控器数据 {

for (k=0;k<8;k++) //分次采集8位数据 {

while (IRIN) //等 IR 变为低电平,跳过4.5ms的前导高电平信号。 {

delayms(1); //延时等待 }

while (!IRIN) //等 IR 变为高电平 {

delayms(1); //延时等待 }

while (IRIN) //计算IR高电平时长 {

delayms(1); //延时等待 N++; //计数器加加 if (N>=30) //判断计数器累加值 {

EX1=1; //打开外部中断功能

return; //返回

} }

IRCOM[j]=IRCOM[j] >> 1; //自动补零

if (N>=8) //判断数据长度 {

IRCOM[j] = IRCOM[j] | 0x80; //数据最高位补1 }

N=0; //清零位数计录器 } } if

(IRCOM[2]!=~IRCOM[3]) //判断地址码是否相同 {

EX1=1; //打开外部中断 return; //返回 }

for(j=0;j<10;j++) //循环进行键码解析 {if(IRCOM[2]==RecvData[j]) //进行键位对应 {

// ControlCar(j);

32

进行数据位移操作并 轮式移动机器人的设计报告

ControlCar_yaokong(j); //数码管显示相应数码}

}

EX1 = 1; //外部中断开 }

//-------------------------------------------------------------------------------------------------------

33

轮式移动机器人的设计报告

附录2硬件原理图

34

轮式移动机器人的设计报告

附录3 实物图

35


基于单片机的智能小车设计(红外避障) - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:世界石油工业发展史论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: