避障寻迹找金属寻光c程序
从给定的C程序代码来看,这是一段用于控制机器人执行避障、寻迹、寻找金属和寻光功能的程序。下面将详细解析这段代码的关键知识点。 ### 避障寻迹找金属寻光C程序解析 #### 1. 程序结构与配置 程序的开头包含了必要的头文件`<reg51.h>`和自定义的`pin.h`(可能包含了GPIO引脚定义)。`TMOD`寄存器被设置为`0x01`,这是为了配置定时器0为工作模式1(16位定时器),以便于时间的精确控制。 #### 2. 主函数逻辑 主函数`xunji()`包含了一个无限循环,其内部首先检查按键输入`jianru`,并根据输入执行相应的操作,如清除LED显示或改变运行模式。之后,通过读取`P16`和`P17`端口的值来获取传感器数据,组合成一个字节变量`sensor`,用于判断机器人的环境状态。 #### 3. 控制电机运动 程序中的`DC()`函数用于控制电机的正转和反转,参数`zfzhuan`决定电机的转动方向(1表示正转,其他值表示反转),`RoundSpeed`决定了电机的转速。`DCzz()`和`DCfz()`分别实现了电机的正转和反转功能,通过控制两个电机引脚(`p25`和`p26`)的高低电平以及延时,实现电机的精准控制。 #### 4. 调整电机速度与方向 `buj()`函数用于调整电机的速度和方向,参数`T10`和`T11`用于配置定时器的初值,从而间接控制电机的运行时间。`bujzz()`和`bujfz()`分别控制电机的正转和反转,通过设置定时器0的高八位和低八位计数初值,实现电机运行时间和速度的微调。 #### 5. 传感器反馈控制 程序中通过`sensor`变量来反馈传感器的状态,根据不同的传感器读数,选择不同的电机控制策略。例如,当`sensor`等于`00`时,电机正转且速度为8;当`sensor`等于`01`时,除了正转外,还会调整电机方向以避开障碍物。 #### 6. 特殊情况处理 在遇到特定传感器读数(如`0x0B`)时,程序会基于保存的前一次读数`save`来做出决策,如改变电机的方向以适应新的环境变化,或者停止电机以避免碰撞。 #### 结论 该C程序设计了一套完整的机器人控制系统,能够根据传感器反馈实时调整电机的速度和方向,从而实现避障、寻迹、寻找金属和寻光的功能。通过精细的硬件控制和算法设计,确保了机器人在复杂环境下的稳定性和效率。对于学习嵌入式系统和机器人控制技术的人来说,这段代码提供了丰富的实践参考和理论依据,是理解和掌握这一领域关键技术的重要资料。
寻迹小车
**********************************************************************************/
//#include<reg51.h>
#include"pin.h"
//#include"delaynms.h"
int T10=0x00,T11=0x00;
xunji()
{
void DC(int zfzhuan,int RoundSpeed);
void buj(int zfzhuan,int T10,int T11);
uchar sensor=0xff,save=0xff;
EA=1;
ET0=1;
TMOD=0x01;
/***************(检测传感器状态)*********************************/
while(1)
{
jianru=key();
if(jianru!=0xff)
{
shuru[i]=tab(jianru); //将键盘输入存入shuru[]中
i++;
if(shuru[i-1]==10) //判断输入是不是清零
{
for(k=0;k<5;k++)
shuru[k]=16;
i=0;
}
if(shuru[i-1]==7) //回退模式
{
clear_led(4);
for(k=0;k<5;k++)
shuru[k]=16;
i=0;
break;
}
}
uchar sensor1=p16;
uchar sensor2=p17;
sensor=sensor1*10+sensor2;
if(sensor!=0x0B) save=sensor; //判断是否等于11,不等保存 //if(状态!=11) 存储
/* switch(检测传感器状态)
{
case 00: DC前进;buj不动; break;
case 01: DC前进;buj左转; break;
case 10: DC前进;buj右转; break;
case 11: DC停止;switch(save)
{
case 00:buj停止; break;
剩余5页未读,继续阅读
- w_liqin2012-07-07没有原理图啊
- thcity2012-09-09资料不全,只能简单看看了!
- Lane11022014-04-22东西不错,有用
- 粉丝: 56
- 资源: 38
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言和汇编语言的简单操作系统内核.zip
- (源码)基于Spring Boot框架的AntOA后台管理系统.zip
- (源码)基于Arduino的红外遥控和灯光控制系统.zip
- (源码)基于STM32的简易音乐键盘系统.zip
- (源码)基于Spring Boot和Vue的管理系统.zip
- (源码)基于Spring Boot框架的报表管理系统.zip
- (源码)基于树莓派和TensorFlow Lite的智能厨具环境监测系统.zip
- (源码)基于OpenCV和Arduino的面部追踪系统.zip
- (源码)基于C++和ZeroMQ的分布式系统中间件.zip
- (源码)基于SSM框架的学生信息管理系统.zip