旋风智能小车:巡线入库程序详解

需积分: 0 0 下载量 195 浏览量 更新于2024-09-21 收藏 155KB PDF 举报
本文档主要介绍了"旋风"智能小车的巡线入库演示程序,由作者雷刚在2006年3月25日编写。该程序设计的目标是控制小车在安装有路面传感器的环境中进行自动行驶和入库,通过调整电机速度来适应不同地面环境。程序使用了51单片机的寄存器和输入输出引脚,如P1、P2和P3口,以及一些特殊功能寄存器(例如红外发射和接收信号)。 核心部分包括以下几个知识点: 1. **硬件配置**: - 定义了多个输入输出引脚,如`sbitLeftW_F`、`sbitLeftW_B`等,分别控制左右轮的前进和后退,以及前端红外发射和接收。 - 使用`P3^2`和`P3^3`引脚检测左右路面状态,通过`sbitroad_left`和`sbitroad_right`标识。 - LED控制信号分别通过`sbitsmg1`和`sbitsmg2`引脚实现。 2. **程序变量与数据结构**: - `uchar codetable[]` 是一个预定义的编码表,可能用于处理红外传感器的信号解读。 - `uint count` 可能用于计数或状态跟踪。 - `uchar datair_data_0` 和 `uchar datair_data_1` 分别存储当前和上一次路面传感器的状态。 3. **延时函数**: - 提供了两个标准延时函数,`delay160us()` 和 `delay()`,用于程序中的定时控制,如在检测到红外信号变化时调整小车的动作。 4. **程序逻辑**: - 循环结构(嵌套for循环)用于实现精确的延时控制,确保程序响应的精确性。 - 可能的程序流程包括: - 检测路面传感器数据(通过`datair_data_0`和`datair_data_1`),根据接收到的信号调整小车方向和速度。 - 当接收到反射的红外信号时,判断是否接近目标区域,如库位。 - 根据`codetable`转换红外数据,决定小车的前进、后退或转向动作。 - 在遇到障碍物时,通过调整电机速度或改变运动方向,使小车能够避开并继续向库位靠近。 5. **适应性**: - 程序设计考虑到了地面环境的变化,用户可以根据实际需要调整电机的速度,以应对不同地面材质对传感器反应的影响。 这篇文档详细介绍了如何通过编程实现一款智能小车的巡线入库功能,涉及到硬件接口控制、传感器数据处理、定时控制和适应性设计等方面,展示了在嵌入式系统中实现机器人自主导航的基本原理和技术。