您的位置 首页 新品

超声波测距模块+AVR单片机控制程序

【超声波测距模块】-【机器人的耳朵】includeavrioh>includeavriom16h>includeutildelayh>intmain(void){DDRA=0x00;

超声波测距模块】-【机器人的耳朵】

#include<avr/io.h>#include#includeint main(void){DDRA=0x00;PORTA=0x00;    //PA口初始化DDRD=0xff;PORTD=0xff;    //PD口初始化char j,i;int h,u,l;while(1){j=1;     //激活while(j)循环i=1;     //激活while(i)循环u=6000;     //复原检测循环     PORTA&=(1<<0);   //PA0脚高电平_delay_us(20);   //延时20USPORTA&=~(1<<0);   //PA0脚低电平。发送20US的高电平脉冲while(j){if(PINA&(1<<1))  //判别PA1有无回来高电平{while(i){h=0;    //初始计数变量_delay_us(10);  //延时及计数h=h+10;    //计数累加10usif(!(PINA&(1<<1))) //判别PA1口是否跳转到低电平{i=0;   //至while值为零j=0;   //检测完结,跳出while(j)l=h*3;   //计算出mmif(250>=l){PORTD=0b00000001;}else if(500>=l&&l>=250){PORTD=0b00000010;}else if(750>=l&&l>=500){PORTD=0b00000100;}else if(1000>=l&&l>=750){PORTD=0b00001000;}else if(1250>=l&&l>=1000){PORTD=0b00010000;}else if(1500>=l&&l>=1250){PORTD=0b00100000;}else if(1750>=l&&l>=1500){PORTD=0b01000000;}else if(2000>=l&&l>=1750){PORTD=0b10000000;}else{PORTD=0b00000000;}_delay_ms(600);   //检测完结,推迟显现}}}_delay_us(10);  //当PA1未回来高电平开端循环检测,距离10usu=u-1;    //循环程序固定循环U次if(u&0)    //当循环U次后,判别U是否为0,跳出while(j){j=0;}}   }}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/255510.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部