基于单片机智能小车循迹程序

上传人:876****10 文档编号:142028477 上传时间:2020-08-15 格式:DOC 页数:20 大小:120KB
返回 下载 相关 举报
基于单片机智能小车循迹程序_第1页
第1页 / 共20页
基于单片机智能小车循迹程序_第2页
第2页 / 共20页
基于单片机智能小车循迹程序_第3页
第3页 / 共20页
基于单片机智能小车循迹程序_第4页
第4页 / 共20页
基于单片机智能小车循迹程序_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于单片机智能小车循迹程序》由会员分享,可在线阅读,更多相关《基于单片机智能小车循迹程序(20页珍藏版)》请在金锄头文库上搜索。

1、基于单片机智能小车循迹程序 作者: 日期:#include #include #define uint unsigned int#define uchar unsigned char/*/ uchar led_data9=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80; uchar circle=0,cir_comp=0,cir_count=0;/设定圈数,实际圈数 uchar turn_count=0; bit end=0; /圈数跑完标志/*/sbit xg0=P10;/左寻轨对管sbit xg1=P11;/中间寻轨对管sbit xg2=P12;

2、/右寻轨对管sbit xz=P13;/感应挡板对管/*/sbit Q_IN1=P20; /车前左轮控制 sbit Q_IN2=P21;sbit Q_IN3=P22; /车前右轮控制sbit Q_IN4=P23; sbit H_IN1=P24; /车尾左轮控制sbit H_IN2=P25;sbit H_IN3=P26; /车尾右轮控制sbit H_IN4=P27;sbit Q_ENA=P30; /车前左轮使能,PWMsbit Q_ENB=P31; /车前右轮使能,sbit H_ENA=P36; /车尾左轮使能,sbit H_ENB=P37; /车尾右轮使能,/*/#define stra_q_l

3、 100 /直线行走时,四个轮子占空比调试#define stra_q_r 100#define stra_h_l 100#define stra_h_r 100#define turn_q_l 100 /转弯时四个轮子的占空比调试#define turn_q_r 100#define turn_h_l 100#define turn_h_r 100 #define turnr_time 2900/右转弯时的延时常数#define turnl_time 3000 /左转弯时的延时常数#define dt_time 5800 /原地掉头时延时常数#define over_time 1000 /停

4、止延时#define back_time 2500 /走完环形,回到直道延时转弯#define black_time 1500 /过黑线的时间#define correct_l_time 700 /左矫正时间#define correct_r_time 700 /右矫正时间#define hou_time 200/*/ uchar q_duty_l,q_duty_r,h_duty_l,h_duty_r,/车前后左右轮占空比 i=0,j=0,k=0,m=0;/*/ void delay_cir(uint n) uchar x; while(n-) for(x=0; x250;x+); ; /*/

5、void delay(uint ct)/ 延时函数 uint t; t=ct; while(t-);/*/void straight() /直走 q_duty_l=stra_q_l; q_duty_r=stra_q_r; h_duty_l=stra_h_l; h_duty_r=stra_h_r; Q_IN1=1; Q_IN2=0; Q_IN3=1; Q_IN4=0; H_IN1=1; H_IN2=0; H_IN3=1; H_IN4=0; /*/void houtui()/后退 q_duty_l=stra_q_l; q_duty_r=stra_q_r; h_duty_l=stra_h_l; h_

6、duty_r=stra_h_r; Q_IN1=0; Q_IN2=1; Q_IN3=0; Q_IN4=1; H_IN1=0; H_IN2=1; H_IN3=0; H_IN4=1; /*/void turn_left()/左转 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_h_l; h_duty_r=turn_h_r; Q_IN1=0; /左轮反转 Q_IN2=1; H_IN1=0; H_IN2=1; Q_IN3=1; /右轮正转 Q_IN4=0; H_IN3=1; H_IN4=0; delay(turnl_time);/*/void tu

7、rn_right() /右转 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_q_l; h_duty_r=turn_q_r; Q_IN1=1; /左轮正转 Q_IN2=0; H_IN1=1; H_IN2=0; Q_IN3=0;/右轮反转 Q_IN4=1; H_IN3=0; H_IN4=1; delay(turnr_time);/*/void turn_round() /原地掉头 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_h_l; h_duty_r=turn_h_r; Q_IN1

8、=0; /左轮反转 Q_IN2=1; H_IN1=0; H_IN2=1; Q_IN3=1; /右轮正转 Q_IN4=0; H_IN3=1; H_IN4=0; delay(dt_time);/*/void over() /小车停止 Q_IN1=0; Q_IN2=0; Q_IN3=0; Q_IN4=0; H_IN1=0; H_IN2=0; H_IN3=0; H_IN4=0; /*/void correct_right() /左偏,向右矫正 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_q_l; h_duty_r=turn_q_r; Q_IN

9、1=1; /左轮正转 Q_IN2=0; H_IN1=1; H_IN2=0; Q_IN3=0;/右轮反转 Q_IN4=1; H_IN3=0; H_IN4=1; delay(correct_r_time);void correct_left() /右偏,向左矫正 q_duty_l=turn_q_l; q_duty_r=turn_q_r; h_duty_l=turn_h_l; h_duty_r=turn_h_r; Q_IN1=0; /左轮反转 Q_IN2=1; H_IN1=0; H_IN2=1; Q_IN3=1; /右轮正转 Q_IN4=0; H_IN3=1; H_IN4=0; delay(corr

10、ect_l_time);/*/void xunji() if(xg1=1) turn_count+;over();delay(over_time);if(turn_count=1)straight(); delay(black_time);elseif(turn_count=2)houtui(); delay(hou_time); turn_left();elseif(turn_count=3)houtui(); delay(hou_time); turn_right();elseif(turn_count=4)houtui(); delay(hou_time); turn_right();elseif(turn_count=5)straight(); delay(black_time);elseif(turn_count=6)houtui(); delay(hou_time); turn_right();elseif(turn_count=7)houtui(); delay(hou_time); turn_right(); straight(); delay(back_time); turn_left();elseif(turn_count=8)straight(); delay(black_time);elseif(turn_count=9)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号