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

上传者: kaidada | 上传时间: 2021-12-15 20:33:55 | 文件大小: 24KB | 文件类型: -
部分源程序如下: #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--)

文件下载

评论信息

  • tianyiliang3 :
    不错,内容还可以
    2013-09-22

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明