![超声波避障小车程序设计_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/bd521f9e-2595-4e03-b8b1-60f56702db8c/bd521f9e-2595-4e03-b8b1-60f56702db8c1.gif)
![超声波避障小车程序设计_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/bd521f9e-2595-4e03-b8b1-60f56702db8c/bd521f9e-2595-4e03-b8b1-60f56702db8c2.gif)
![超声波避障小车程序设计_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/bd521f9e-2595-4e03-b8b1-60f56702db8c/bd521f9e-2595-4e03-b8b1-60f56702db8c3.gif)
![超声波避障小车程序设计_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/bd521f9e-2595-4e03-b8b1-60f56702db8c/bd521f9e-2595-4e03-b8b1-60f56702db8c4.gif)
![超声波避障小车程序设计_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/bd521f9e-2595-4e03-b8b1-60f56702db8c/bd521f9e-2595-4e03-b8b1-60f56702db8c5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、word/*/ /5路超声波避障实验:51单片机 + HC-SR04超声波 / /*/ #include <AT89x52.H> /器件配置文件 #include <intrins.h> #define RX1
2、60;P3_6 /小车左侧超声波HC-SR04接收端 #define TX1 P1_7 /发送端 #define RX2 P3_3 /左前方超声波 #define T
3、X2 P0_2 #define RX3 P2_4 /正前方超声波 #define TX3 P2_5 #define RX4 P3_5 /右前方超
4、声波 #define TX4 P3_4 #define RX5 P3_7 /右侧超声波 #define TX5 P1_6
5、0;#define Left_moto_pwm P1_5 /PWM信号端 #define Right_moto_pwm P1_4 /PWM信号端 /定义小车驱动模块输入IO口 sbit IN1=P10; sbit IN2=P11; sbit IN3=P12;
6、;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; /左电机向前走
7、0; #define Left_moto_back IN1=1,IN2=0,EN1=1; /左边电机向后走 #define Left_moto_Stop EN1=0; /左边电机停转 #define Right_moto_g
8、o 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
9、0;=0;/变量定义 unsigned char push_val_left =0;/ 左电机占空比N/20 unsigned char pwm_val_right =0; unsigned char push_val_right=0;/ 右电机占空比N/20 unsigned int time=0;
10、60; unsigned int timer=0; unsigned long S1=0; unsigned long S2=0; unsigned long S3=0; unsigned long S4=0;
11、 unsigned long S5=0; void delay_1ms(unsigned char x) /1ms延时函数,100ms以内可用 unsigned char i; while(x-)
12、0;for(i=124;i>0;i-); /*/ void Count1() /计算左侧超声波距离的函数 while(!RX1); /当RX1为零时等待 TR0=1; /开启计数 while(RX1);&
13、#160; /当RX1为1计数并等待 TR0=0; /关闭计数 time=TH0*256+TL0; TH0=0; TL0=0; S1=(time*1.7)/100; /算出来是CM
14、160;void Count2() /计算函数 while(!RX2); /当RX2为零时等待 TR0=1; /开启计数 while(RX2); /当RX2为1计数并等待 TR0=0; /关闭计数 time=TH0
15、*256+TL0; TH0=0; TL0=0; S2=(time*1.7)/100; /算出来是CM void Count3() /计算函数
16、60; while(!RX3); /当RX3为零时等待 TR0=1; /开启计数 while(RX3); /当RX3为1计数并等待 TR0=0; /关闭计数 time=TH0
17、*256+TL0; TH0=0; TL0=0; S3=(time*1.7)/100; /算出来是CM void Count4() /计算函数
18、60; while(!RX4); /当RX4为零时等待 TR0=1; /开启计数 while(RX4); /当RX4为1计数并等待 TR0=0; /关闭计数 time=TH0*256+TL0;
19、60;TH0=0; TL0=0; S4=(time*1.7)/100; /算出来是CM void Count5() /计算函数
20、60; while(!RX5); /当RX5为零时等待 TR0=1; /开启计数 while(RX5); /当RX5为1计数并等待 TR0=0; /关闭计数 time=TH0*256+TL0; TH0=0; TL0=0;
21、60; S5=(time*1.7)/100; /算出来是CM void leftrun(void) push_val_left=20; push_val_right=20; Left_moto_
22、back /左电机往后走 Right_moto_go /右电机往前走 /*/ /右转 void rightrun(void) push_val_left=20; push_val_right=20; Left_moto_go /左电机往前
23、走 Right_moto_back /右电机往后走 /*/ /停止 void stoprun(void) Left_moto_Stop /左电机停 Right_moto_Stop /右电机停 /*/ /*
24、 PWM调制电机转速
25、60; */ /*/ /* 左电机调速
26、60; */ /*调节push_val_left的值改变电机转速,占空比 */ void pwm_out_left_moto(void)
27、60; if(Left_moto_stop) if(pwm_val_left<=push_val_left)
28、60; Left_moto_pwm=1; else &
29、#160;Left_moto_pwm=0; if(pwm_val_left>=20) pwm_val_left=0; else
30、60; Left_moto_pwm=0; /*/ /*
31、 右电机调速 */
32、; void pwm_out_right_moto(void) if(Right_moto_stop) if(pwm_val_right<=push_val_right)
33、 Right_moto_pwm=1; else Right_moto_pwm=0;
34、0; if(pwm_val_right>=20) pwm_val_right=0; else
35、160; Right_moto_pwm=0; /*/ void timer0() interrupt 1
36、160;/T0中断 /*/ /*TIMER1中断效劳子函数产生PWM信号*/ void timer1()interrupt 3 TH1=(65536-1000)/256; /1ms定时 TL1=(65536-1000)%256;
37、160; timer+; pwm_val_left+; pwm_val_right+; pwm_out_left_moto(); pwm_out_right_moto(); /* */ void main(void)
38、60; TMOD=0x11; /设T0为方式1,GATE=1; TH0=0; TL0=0; TH1=(65536-1000)/256; /1ms定时 TL1=(65536-1000)%256; ET0=1; &
39、#160; /允许T0中断 ET1=1; /允许T1中断 TR1=1; /开启定时器 EA=1; /开启总中断 while(1)
40、0; TX1=1; /开启超声波1探测 delay_1ms(1); TX1=0; Count1(); /测距 TX2=1; delay_
41、1ms(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);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国保健杯盒市场调查研究报告
- 2025年自动平圆烫金机项目可行性研究报告
- 2025至2031年中国缎档提花纯棉面巾行业投资前景及策略咨询研究报告
- 2025年环氧/聚酯混合型粉末涂料项目可行性研究报告
- 2025至2031年中国液晶显示器机壳行业投资前景及策略咨询研究报告
- 2025年日夜转换红外防水摄像机项目可行性研究报告
- 2025至2031年中国小型断路器配件行业投资前景及策略咨询研究报告
- 2025年多频超声波治疗仪项目可行性研究报告
- 2025年卧式玻璃清洗烘干机项目可行性研究报告
- 2025年低应力保护胶项目可行性研究报告
- 2025年下学期八年级物理备课组工作计划
- 2024版医院布草洗涤承包合同:医疗设施布草清洗外包协议3篇
- 孩子教育金规划
- 2024中考病句训练20题附答案 (一)
- 聘任全职围棋教练合同范例
- 呼吸科护理培训简介
- 建筑施工合同:水库大坝工程
- 华大新高考联盟2025届高三11月教学质量测评生物含答案
- 期末复习(试题)-2024-2025学年三年级上册数学苏教版
- 心水病的中医护理方案
- 体育赛事直播服务投标管理办法
评论
0/150
提交评论