【文件属性】:
文件名称:基于51单片机的c语言程序 智能小车系统设计
文件大小:24KB
文件格式:ZIP
更新时间:2015-05-27 10:09:04
单片机c语言 智能小车
部分源程序如下:
#include
#define kongzhi_GLOBAL 1
#include
uchar PWM_t,PWM_t0; //PWM_t为脉冲宽度(0~100)时间为0~10ms
uchar time_count; //定时计数
uint number,number1;
uchar flag; //flag为小车状态标志,0:停止,1:前进,2:后退
uchar flag2; //flag2为小车状态恢复寄存区,当小车遇到障碍物停止,等到障碍物排除之后,小车在停止之前的状态就寄存在flag2中
uchar flag3; //flag3为小车避障停止延时标志,初始化为0,等待障碍排除之后赋值为1,开始计时,数秒之后恢复停止前的行进状态
uchar flag4; //--flag4为看门狗复位后状态恢复寄存区
uchar kind = 0; //传感器的种类
/********************************************************
*函数名称:void bizhang()
*函数功能:遇到障碍物时的处理函数
*函数入口:无
*函数出口:无
********************************************************/
void bizhang()
{
zhang_ai = 1;
if(zhang_ai == 0)
{
flag2=flag;
flag=0;
while(zhang_ai == 0)
{
keyboard();
xunji();
stop();
WDT_CONTR=0x3b;
}
flag3=1;
}
}
/********************************************************
*函数名称:void stop()
*函数功能:到达目标点的控制函数
*函数入口:无
*函数出口:无
********************************************************/
void stop()
{
stop_1=1; //目标站点1
if(stop_1==0)flag=0;
stop_2=1; //目标站点2
if(stop_2==0)flag=0;
stop_3=1; //目标站点3
if(stop_3==0)flag=0;
}
/*******************************************************
*函数名称:void xunji()
*函数功能:查询传感器反馈回来的路线状况,生成相应代码
*函数入口:无
*函数出口:无
********************************************************/
void xunji()
{
uchar jiekou;
spy=0xff;
if(flag==1)
{
jiekou=spy&0x0f;
switch(jiekou)
{
/*****左转*****/
case 0x0d:kind=1;break; //0b0000 1101
case 0x0c:kind=2;break; //0b0000 1100
case 0x0e:kind=2;break; //0b0000 1110
/*****右转*****/
case 0x0b:kind=3;break; //0b0000 1011
case 0x07:kind=4;break; //0b0000 0111
case 0x03:kind=4;break; //0b0000 0011
case 0x00:flag=0;break; //0b0000 0000
default:kind=0;break;
}
}
spy=0xff;
if(flag==2)
{
jiekou=spy&0xf0;
switch(jiekou)
{
/*****左转*****/
case 0xd0:kind=3;break; //Ob1101 0000
case 0xc0:kind=4;break; //0b1100 0000
case 0xe0:kind=4;break; //0b1110 0000
/*****右转*****/
case 0xb0:kind=1;break; //0b1011 0000
case 0x70:kind=2;break; //0b0111 0000
case 0x30:kind=2;break; //0b0011 0000
case 0x00:flag=0;break; //0b0000 0000
default:kind=0;break;
}
}
}
/*******************************************************
*函数名称:void delay()
*函数功能:软件滤波,去抖动
*函数入口:无
*函数出口:无
********************************************************/
void delay()
{
uchar i,k;
for(i=20;i>0;i--)
【文件预览】:
8.2 智能小车系统设计
----code()
--------kongzhi.c(8KB)
--------main.c(922B)
--------kongzhi.h(2KB)
--------kongzhi.c~(8KB)
--------lcd.c(6KB)
--------include.h(793B)
--------lcd.h(1KB)
----sch()
--------智能小车.Sch(48KB)