资源简介
#include "main.h"
void delay(u8 time)
{
u8 m,n;
for(n=0;n<time;n++)
for(m=0;m<2;m++){}
}
void checkDistance()
{
//若能探测到后车存在则全速运行,否则慢速运行等待后车
slowORfast = (distance) ? 1 : 0;
}
u8 borderlineScan()
{
u8 aa = 0;
if(!line1)/*((!line1) || (!line5))*/ aa = 1; //左边检测
else if((!line2) || (!line6)) aa = 2; //右边检测
else if((!line3) || (!line4)) aa = 3;//中间检测
if(aa) led = 0;
else led = 1;
return aa;
}
、、、、、、、、、、、、、、、、、
代码片段和文件信息
#include “driver.h“
static void ZhiXian(u8 kuaiman);
static void ZuoZhuan();
static void YouZhuan();
static void ZuoDaZhuan();
static void ChaoChe();
DRIVER car = {
0
0
0
20
35
150
ZhiXian
YouZhuan
ZuoZhuan
ZuoDaZhuan
ChaoChe
};
void ZhiXian(u8 kuaiman)
{
if(kuaiman)//快速
{
F2=0;
F4=0;
F3=1;
F1=1;
while(1)
{
if (car.N==180)
{
F3=0;
F1=0;
}
if (car.N==200)break;
car.N++;
}
car.N=0;
}
else//慢速
{
F2=0;
F4=0;
F3=1;
F1=1;
while(1)
{
if (car.N==car.Z)
{
F3=0;
F1=0;
}
if (car.N==200)break;
car.N++;
}
car.N=0;
}
}
void ZuoZhuan()
{
F1=1;
F2=0;
F4=0;
for(car.i = 0;car.i < 80;car.i ++)
{
F3=1;
while(1)
{
if (car.N==car.X)
F3=0;
if (car.N==100)break;
car.N++;
}
car.N=0;
}
}
void YouZhuan()
{
F3=1;
F4=0;
F2=0;
for(car.i = 0;car.i < 80;car.i ++)
{
F1=1;
while(1)
{
if (car.N==car.X)
F1=0;
if (car.N==100)break;
car.N++;
}
car.N=0;
}
}
void ZuoDaZhuan()
{
//for(car.i = 0;car.i < 2;car.i ++)
{
for(car.j = 0;car.j < 80;car.j ++)
{
ZhiXian(1);
}
}
F1=1;
F2=0;
F4=0;
for(car.i = 0;car.i < 470;car.i ++)
{
F3=1;
while(1)
{
if (car.N==car.Y)
F3=0;
if (car.N==100)break;
car.N++;
}
car.N=0;
}
}
void ZuoXiaoZhuan()
{
F1=1;
F2=0;
F4=0;
for(car.i = 0;car.i < 300;car.i ++)
{
F3=1;
while(1)
{
if (car.N == 50)
F3=0;
if (car.N==120)break;
car.N++;
}
car.N=0;
}
}
void YouXiaoZhuan()
{
F3=1;
F4=0;
F2=0;
for(car.i = 0;car.i < 300;car.i ++)
{
F1=1;
while(1)
{
if (car.N==50)
F1=0;
if (car.N==120)break;
car.N++;
}
car.N=0;
}
}
void ChaoChe()
{
u8 yanzi;
//此处忽略超车区虚线标志(在主函数中已经关闭边界扫描定时器)
ZuoXiaoZhuan();//介于左方向大转和右边越界左转幅度之间
YouXiaoZhuan();//方向修正
TR1 = 1;//开启边界扫描,防止在超车时冲出超车带
for(yanzi = 0;yanzi < 90000;yanzi ++)
ZhiXian(1);//全速超车
TR1 = 0;//出超车带,再次忽略虚线
YouXiaoZhuan();//出超车区
ZuoXiaoZhuan();//方向回正
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14430 2011-10-30 20:58 cars\cars
文件 3308 2011-10-30 20:58 cars\cars.hex
文件 55 2011-10-30 20:58 cars\cars.lnp
文件 20087 2011-10-30 20:58 cars\cars.M51
文件 177 2011-11-02 10:18 cars\cars.plg
文件 74700 2011-10-30 21:00 cars\cars.uvgui.Administrator
文件 74700 2011-10-30 20:58 cars\cars.uvgui_Administrator.bak
文件 57936 2011-11-02 10:20 cars\cars.uvopt
文件 13928 2011-10-31 16:05 cars\cars.uvproj
文件 57939 2011-10-31 16:05 cars\cars_uvopt.bak
文件 13958 2011-10-30 20:58 cars\cars_uvproj.bak
文件 2334 2011-09-06 10:05 cars\driver.c
文件 496 2011-09-03 17:18 cars\driver.h
文件 8043 2011-10-30 20:58 cars\driver.LST
文件 8257 2011-10-30 20:58 cars\driver.OBJ
文件 3391 2011-11-15 13:08 cars\main.c
文件 738 2011-09-06 10:03 cars\main.h
文件 9117 2011-10-30 20:58 cars\main.LST
文件 9148 2011-10-30 20:58 cars\main.OBJ
目录 0 2011-11-15 13:07 cars
----------- --------- ---------- ----- ----
372742 20
相关资源
- 基于单片机的声控小车设计
- nrf905无线双向通信
- STC单片机原理图库和PCB库
- 基于STC89C52RC单片机的交通灯设计
- 基于STC89C52RC的超声波测距系统设计
- 智能小车设计方案
- 基于51单片机循迹、红外避障、遥控综
- 基于图像识别的循迹车路径识别算法
- 语音控制小车
- wifi小车上位机代码
- msp430循迹小车
- 适合初学者借鉴的arduino智能小车代码
- 红外PID循迹模块双向循迹小车
- 寻迹小车代码
- 基于STM32步进电机红外代码循迹小车主
- STC89C52单片机最小系统原理图、PCB文件
- 智能超声波避障小车C程序
- 智能消防小车含完整原理图word 版论文
- 跷跷板小车程序PID算法
- stm32 超声波避障小车1
- 基于AT89S52的红外巡线小车源码
- 电子大赛交流文章不用单片机的智能
- 在vrep环境下的人工势场法仿真
- MSP430小车控制
- Arduino 平衡小车
- 避障小车原理图
- 凌阳SPCE061A 语音遥控小车 源程序
- 电子设计大赛 自动往返小车
- RC522基于STC89C52 带上位机C源程序
- 智能循迹小车电路图和程序及仿真图
评论
共有 条评论