超声波避障小车程序设计

上传人:tiangk****ingyu 文档编号:70750785 上传时间:2022-04-06 格式:DOCX 页数:5 大小:16.91KB
收藏 版权申诉 举报 下载
超声波避障小车程序设计_第1页
第1页 / 共5页
超声波避障小车程序设计_第2页
第2页 / 共5页
超声波避障小车程序设计_第3页
第3页 / 共5页
资源描述:

《超声波避障小车程序设计》由会员分享,可在线阅读,更多相关《超声波避障小车程序设计(5页珍藏版)》请在装配图网上搜索。

1、/*/ 5 路超声波避障实验: 51 单片机 + HC-SR04超声波 /*/#include /器件配置文件#include #define RX1 P3_6/ 小车左侧超声波 HC-SR04接收端#define TX1 P1_7 /发送端#define RX2 P3_3 /左前方超声波#define TX2 P0_2#define RX3 P2_4 /正前方超声波#define TX3 P2_5#define RX4 P3_5 /右前方超声波#define TX4 P3_4#define RX5 P3_7 /右侧超声波#define TX5 P1_6#define Left_moto_pw

2、m P1_5 /PWM 信号端#define Right_moto_pwm P1_4 /PWM 信号端/ 定义小车驱动模块输入 IO 口sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit EN1=P14;sbit EN2=P15;bit Right_moto_stop=1;bit Left_moto_stop =1;#define Left_moto_go IN1=0,IN2=1,EN1=1; / 左电机向前走#define Left_moto_back IN1=1,IN2=0,EN1=1; / 左边电机向后走#define Lef

3、t_moto_Stop EN1=0; / 左边电机停转#define Right_moto_go IN3=1,IN4=0,EN2=1; / 右边电机向前走#define Right_moto_back IN3=0,IN4=1,EN2=1; / 右边电机向后走#define Right_moto_Stop EN2=0; / 右边电机停转unsigned char pwm_val_left =0;/ 变量定义unsigned char push_val_left =0;/ 左电机占空比 N/20unsigned char pwm_val_right =0;unsigned char push_va

4、l_right=0;/ 右电机占空比 N/20unsigned int time=0;unsigned int timer=0;unsigned long S1=0;unsigned long S2=0;unsigned long S3=0;unsigned long S4=0;unsigned long S5=0;void delay_1ms(unsigned char x) /1ms 延 时 函 数 ,100ms 以 内 可用 unsigned char i; while(x-) for(i=124;i0;i-); /*/void Count1() / 计算左侧超声波距离的函数 while

5、(!RX1); / 当 RX1为零时等待TR0=1; /开启计数while(RX1); / 当 RX1为 1 计数并等待TR0=0; /关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S1=(time*1.7)/100; / 算出来是 CM void Count2() / 计算函数 while(!RX2); / 当 RX2为零时等待TR0=1; /开启计数while(RX2); / 当 RX2为 1 计数并等待TR0=0; /关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S2=(time*1.7)/100; / 算出来是 CM void Count3()

6、/ 计算函数 while(!RX3); / 当 RX3 为零时等待TR0=1; /开启计数while(RX3); / 当 RX3为 1 计数并等待TR0=0; /关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S3=(time*1.7)/100; / 算出来是 CM void Count4() / 计算函数 while(!RX4); / 当 RX4为零时等待TR0=1; /开启计数while(RX4); / 当 RX4为 1 计数并等待TR0=0; /关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S4=(time*1.7)/100; / 算出来是 CM v

7、oid Count5() / 计算函数while(!RX5); / 当 RX5为零时等待TR0=1; /开启计数while(RX5); / 当 RX5为 1 计数并等待TR0=0; /关闭计数time=TH0*256+TL0;TH0=0;TL0=0;S5=(time*1.7)/100; / 算出来是 CMvoid leftrun(void) push_val_left=20;push_val_right=20;Left_moto_back / 左电机往后走 Right_moto_go / 右电机往前走 /*/ /右转void rightrun(void)push_val_left=20;pus

8、h_val_right=20;Left_moto_go / 左电机往前走 Right_moto_back / 右电机往后走 /*/ /停止void stoprun(void)Left_moto_Stop / 左电机停 Right_moto_Stop / 右电机停 /*/ /*PWM 调 制 电 机 转速 */ /*/* 左电机调速 */ /*调节 push_val_left 的值改变电机转速 ,占空比 */void pwm_out_left_moto(void)if(Left_moto_stop) if(pwm_val_left=20)pwm_val_left=0;else Left_moto

9、_pwm=0; /*/ /*右电机调速 */void pwm_out_right_moto(void) if(Right_moto_stop) if(pwm_val_right=20) pwm_val_right=0; else Right_moto_pwm=0; /*/void timer0() interrupt 1 /T0 中断 /*/ /*TIMER1 中断服务子函数产生 PWM 信号*/void timer1()interrupt 3 TH1=(65536-1000)/256; /1ms 定时 TL1=(65536-1000)%256;timer+;pwm_val_left+;pwm

10、_val_right+;pwm_out_left_moto();pwm_out_right_moto(); /* */void main(void)TMOD=0x11; / 设 T0 为方式 1,GATE=1;TH0=0;TL0=0;TH1=(65536-1000)/256; /1ms 定时TL1=(65536-1000)%256;ET0=1; /允许 T0 中断ET1=1; /允许 T1 中断TR1=1; /开启定时器EA=1; /开启总中断while(1) TX1=1; /开启超声波 1 探测delay_1ms(1);TX1=0;Count1(); / 测距TX2=1;delay_1ms(

11、1);TX2=0;Count2();TX3=1;delay_1ms(1);TX3=0;Count3();TX4=1;delay_1ms(1);TX4=0;Count4();TX5=1;delay_1ms(1);TX5=0;Count5();if(S320 & S120 & S520) / 进入狭窄通道 backrun(); / 倒车delay_1ms(100);else if(S320 & S1S5 ) /车子与障碍物 90 度垂直,左边距离小右转 rightrun(); else if(S320 & S5S1 ) /车子与障碍物 90 度垂直,右边距离小左转 leftrun(); else if(S220) rightrun(); / 车与障碍物呈 45 度角时,车的左边比车的右边距离小 ,右转 else if(S420) leftrun(); / 车与障碍物呈 45 度角时,车的右边比车的左边距离小 ,左转 else run();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!