舵机转动测距避障

舵机转动测距避障

ID:44821597

大小:44.01 KB

页数:7页

时间:2019-10-30

舵机转动测距避障_第1页
舵机转动测距避障_第2页
舵机转动测距避障_第3页
舵机转动测距避障_第4页
舵机转动测距避障_第5页
资源描述:

《舵机转动测距避障》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#defineucharunsignedchar#defineuintunsignedintsbitK1=P1^0;//P1.0到P1.4为寻线检测端sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;sbitK5=P1^4;sbitKIN1=P1^5;//P1.5P1.6是避障检测端sbitKIN2=P1^6;sbitout1=P2^1;//P2.0到P2.3是电机驱动输出控制端sbitout2=P2^2;sbitout3=P2^4;sbitout4=P2^5;sbitTrig=P3^4;//产生脉冲引脚sbitEch

2、o=P3^2;//回波引脚sbitbeem=P3^7;//蜂鸣器控制引脚sbitPWM=P1^7;//舵机pwm//uintdistance[4];//测距接收缓冲区uintdistance1;ucharge,shi,bai,temp,flag,outcomeH,outcomeL,PDATA;//自定义寄存器bitsucceed_flag;//测量成功标志unsignedlongxdatarec_code;unsignedlongxdatatime_us;unsignedcharxdatarec_cnt;unsignedcharxdatakbuf;ucharsdata,fl

3、ag;//sdata是红外遥控接收键值变量flag是启动小车或停止小车变量uintj,a;ucharpro;bitrec_b;bitkey_save;bitkeyp;voidchaoshengbo();voidconversion(uinttemp_data);voiddelay_20us();voiddelay_ms(uintx);voiddelay(uintt)//延时程序1{ucharj;while(t--){for(j=5;j>0;j--);}}voidbeep()//蜂鸣器提示音{beem=0;delay(1000);beem=1;delay(1000);beem

4、=0;delay(1000);beem=1;delay(1000);}voidInit()//初始化{flag=0;Trig=0;TMOD=0x11;//T/C1采用16位定时器/计数器ET1=1;//定时器1开中断ET0=1;TH0=0x00;TL0=0x00;TH1=0xff;TL1=0xce;TR1=0;TR0=0;//定时计数器启动计数EX0=1;//外部中断0关中断PT1=1;EA=1;//CPU开中断}//--------------------------------------------------//-------超声波测距---------------

5、-------------voidchaoshengbo(){uintdistance_data;EA=0;Trig=1;delay_20us();Trig=0;//产生一个20us的脉冲,在Trig引脚while(Echo==0);//等待Echo回波引脚变高电平succeed_flag=0;//清测量成功标志TH0=0;//定时器1清零TL0=0;//定时器1清零EX0=1;//打开外部中断TR0=1;//启动定时器1EA=1;delay_ms(1);if(succeed_flag==1){distance_data=outcomeH;//测量结果的高8位distanc

6、e_data<<=8;//放入16位的高8位distance_data=distance_data

7、outcomeL;//与低8位合并成为16位结果数据distance_data=(distance_data/25)*43/100;}a=distance_data;distance1=a;}voiddelay_us(uintx){do{x--;}while(x>1);}voiddelay_ms(uintx){while(x!=0){delay_us(500);x--;}}baidong(){TR1=1;pro=24;//90°delay_ms(100);pro=10;//小

8、于10°delay_ms(100);pro=36;//大于160°delay_ms(100);pro=24;//90°delay_ms(100);TR1=0;}voidtimer0()interrupt3//定时0.1ms{TH1=0xff;TL1=0xce;j++;if(j<=pro){PWM=1;}else{PWM=0;}if(j==400)//周期20ms{j=0;PWM=~PWM;}}//左转voidcomeleft(){out1=0;out2=1;out3=1;out4=0;delay_ms(40);}/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。