基于51单片机的c语言程序 智能小车系统设计

时间:2015-05-27 10:09:04
【文件属性】:
文件名称:基于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)

网友评论

  • 不错,内容还可以