欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于AVR單片機的智能小車
[打印本頁]
作者:
mz_gzw
時間:
2018-9-20 15:49
標題:
基于AVR單片機的智能小車
基于AVR單片機的智能小車,加入了紅外模塊和超聲波模塊,用來避障
P80920-154542.jpg
(3.72 MB, 下載次數: 201)
下載附件
2018-9-20 15:47 上傳
作者:
admin
時間:
2018-9-20 17:32
好東東 樓主能分享一下源碼和資料嗎?
作者:
mz_gzw
時間:
2018-9-20 17:57
#include <mega32a.h>
#include <delay.h>
void dao_car(void); //倒車
void r_zhuan(void);//右轉
void l_zhuan(void);//左轉
void q_jing(void);//前進
void stop_car(void);//停車
void time0_init(void);//定時器初值
void sonic_scan(void);//超聲波掃描
void r_hong(void);//右邊紅外檢測
void l_hong(void);//左邊紅外檢測
volatile int n,a;
char temp;
void main(void)
{
DDRA=0x00;
DDRB=0XFF;
DDRD=0xff;
PORTA=0xff;
PORTB=0XFE;
PORTD=0xff;
temp=1;
n=0;
a=0;
time0_init();
while (1)
{
r_hong();//右紅外
l_hong();//左紅外
sonic_scan();
if (temp==0)
{
if(PINA.2==1)
{
dao_car(); //倒車
delay_ms(30);
}
r_zhuan();//右轉
r_zhuan();//右轉
r_zhuan();//右轉
r_zhuan();//右轉
//////////////////////////////////////////////////////////////////////////////
sonic_scan();//超波聲掃描
if (temp==0)
{
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
}
else
{
goto exit;
}
//////////////////////////////////////////////////////////////////////////////////
sonic_scan();//超波聲掃描
if (temp==0)
{
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
}
}
exit:
q_jing();//前進
}
}
void q_jing(void) //前進
{
PORTD.7=1;
PORTD.6=0;
PORTD.5=0;
PORTD.4=1;
}
//////////////////////////////////////////////////////////////////////////////////////
void l_zhuan(void) //左轉
{
PORTD.7=0;
PORTD.6=1;
PORTD.5=0;
PORTD.4=1;
delay_ms(10);
stop_car();
delay_ms(20);
}
/////////////////////////////////////////////////////////////////////////////////////////////
void r_zhuan(void)//右轉
{
PORTD.7=1;
PORTD.6=0;
PORTD.5=1;
PORTD.4=0;
delay_ms(10);
stop_car();
delay_ms(20);
}
//////////////////////////////////////////////////////////////////////////////////////////////
void dao_car(void)//倒車
{
PORTD.7=0;
PORTD.6=1;
PORTD.5=1;
PORTD.4=0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void stop_car(void)//停車
{
PORTD.7=1;
PORTD.6=1;
PORTD.5=1;
PORTD.4=1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
interrupt [TIM0_OVF] void timer0_ovf_isr(void)//定時器0中斷溢出
{
TCNT0 = 255;
n++;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
void time0_init(void)//定時器初值
{
SREG=0X80;
TCCR0 = 0x00;
TCNT0 = 255;
TIMSK= 0x01;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
void sonic_scan(void)//超聲波掃描
{
while(1)
{
PORTB.0=1;
delay_us(20);
PORTB.0=0;
while(1)
{
if(PINA.4==1)
{
break;
}
}
TCCR0 = 0x02;
n=0;
while(1)
{
if(PINA.4==0)
{
TCCR0 = 0x00;
break;
}
}
n=n/58;
if(n==0)
{
temp=0;
break;
}
else
{
temp=1;
break;
}
}
delay_ms(1);
}
//////////////////////////////////////////////////////////////////////////////////////////
void r_hong(void)//右邊紅外檢測
{
if (PINA.0==0)
{
l_zhuan();//左轉
}
}
//////////////////////////////////////////////////////////////////////////////
void l_hong(void)//左邊紅外檢測
{
if (PINA.1==0)
{
r_zhuan();//右轉
}
}
復制代碼
作者:
mz_gzw
時間:
2018-9-20 17:59
#include <mega32a.h>
#include <delay.h>
void dao_car(void); //倒車
void r_zhuan(void);//右轉
void l_zhuan(void);//左轉
void q_jing(void);//前進
void stop_car(void);//停車
void time0_init(void);//定時器初值
void sonic_scan(void);//超聲波掃描
void r_hong(void);//右邊紅外檢測
void l_hong(void);//左邊紅外檢測
volatile int n,a;
char temp;
void main(void)
{
DDRA=0x00;
DDRB=0XFF;
DDRD=0xff;
PORTA=0xff;
PORTB=0XFE;
PORTD=0xff;
temp=1;
n=0;
a=0;
time0_init();
while (1)
{
r_hong();//右紅外
l_hong();//左紅外
sonic_scan();
if (temp==0)
{
if(PINA.2==1)
{
dao_car(); //倒車
delay_ms(30);
}
r_zhuan();//右轉
r_zhuan();//右轉
r_zhuan();//右轉
r_zhuan();//右轉
//////////////////////////////////////////////////////////////////////////////
sonic_scan();//超波聲掃描
if (temp==0)
{
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
}
else
{
goto exit;
}
//////////////////////////////////////////////////////////////////////////////////
sonic_scan();//超波聲掃描
if (temp==0)
{
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
l_zhuan();//左轉
}
}
exit:
q_jing();//前進
}
}
void q_jing(void) //前進
{
PORTD.7=1;
PORTD.6=0;
PORTD.5=0;
PORTD.4=1;
}
//////////////////////////////////////////////////////////////////////////////////////
void l_zhuan(void) //左轉
{
PORTD.7=0;
PORTD.6=1;
PORTD.5=0;
PORTD.4=1;
delay_ms(10);
stop_car();
delay_ms(20);
}
/////////////////////////////////////////////////////////////////////////////////////////////
void r_zhuan(void)//右轉
{
PORTD.7=1;
PORTD.6=0;
PORTD.5=1;
PORTD.4=0;
delay_ms(10);
stop_car();
delay_ms(20);
}
//////////////////////////////////////////////////////////////////////////////////////////////
void dao_car(void)//倒車
{
PORTD.7=0;
PORTD.6=1;
PORTD.5=1;
PORTD.4=0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void stop_car(void)//停車
{
PORTD.7=1;
PORTD.6=1;
PORTD.5=1;
PORTD.4=1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
interrupt [TIM0_OVF] void timer0_ovf_isr(void)//定時器0中斷溢出
{
TCNT0 = 255;
n++;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
void time0_init(void)//定時器初值
{
SREG=0X80;
TCCR0 = 0x00;
TCNT0 = 255;
TIMSK= 0x01;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
void sonic_scan(void)//超聲波掃描
{
while(1)
{
PORTB.0=1;
delay_us(20);
PORTB.0=0;
while(1)
{
if(PINA.4==1)
{
break;
}
}
TCCR0 = 0x02;
n=0;
while(1)
{
if(PINA.4==0)
{
TCCR0 = 0x00;
break;
}
}
n=n/58;
if(n==0)
{
temp=0;
break;
}
else
{
temp=1;
break;
}
}
delay_ms(1);
}
//////////////////////////////////////////////////////////////////////////////////////////
void r_hong(void)//右邊紅外檢測
{
if (PINA.0==0)
{
l_zhuan();//左轉
}
}
//////////////////////////////////////////////////////////////////////////////
void l_hong(void)//左邊紅外檢測
{
if (PINA.1==0)
{
r_zhuan();//右轉
}
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1