智能小汽车在PROTEUS下的仿真设计(避障)_智能避障小车设计

2020-02-28 其他范文 下载本文

智能小汽车在PROTEUS下的仿真设计(避障)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“智能避障小车设计”。

智能小车在PROTEUS下的仿真设计

#include

//头文件 #define uchar unsigned char //宏定义 #define uint unsigned int

//宏定义 sbit IN1=P2^0;

sbit IN2=P2^1;

sbit IN3=P2^6;

//定义驱动 sbit IN4=P2^7;sbit EN1=P2^2;sbit EN2=P2^5;sbit C0=P0^0;//右1传感器 sbit C1=P0^1;//右2传感器 sbit C2=P0^2;//左2传感器 sbit C3=P0^3;//左2传感器 sbit STOP=P2^3;//障碍物传感器 sbit QQ=P2^4;//扬声器 uchar

code table[]={0xbf,0x86,0x5b,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//定义表格

uchar

si,fen,miao,shi,ge;//定义 时:分:秒;和十位个位。uchar i,aa,bb, tt=0,=0;void delay(uint z)//延时函数 {

} void init()//对函数初始化 {

TMOD=0x11;

TH0=(65536-20000)/256;//TH0装初值

TL0=(65536-20000)%256;//TL0装初值

TH1=(65536-2000)/256;

//TH1装初值

TL1=(65536-2000)%256;

//TL1装初值

EA=1;

ET0=1;

ET1=1;

//开中断

TR0=1;

TR1=1;

P3=0x00;

P1=0x00;} void timer0()interrupt 1 //T0中断函数 { uint x,y;for(x=z;x>0;x--)for(y=50;y>0;y--);TH0=(65536-20000)/256;//TH0装初值 TL0=(65536-20000)%256;//TL0装初值

tt++,=1;if(tt==50){

tt=0;

miao++;

if(miao==60)

{

fen++;miao=0;

}

if(fen==24)

{

fen=0,si++;

}

} }

void timer1()interrupt 3 //T1中断函数 { TH1=(65536-2000)/256;//TH1装初值

TL1=(65536-2000)%256;//TL1装初值

if(aa==i)

{

EN1=1;}

if(bb==9)

//产生PWM波

{ EN1=0,aa=0,bb=0;}

aa++,bb++;} void keyscan()//键盘扫描 {

if(C0&&C1&&C2&&C3==1)

{ delay(6);if(C0&&C1&&C2&&C3==1)

{

P3=0x00;

P1=0xbf;

EN2=1,EN1=1,IN1=1,IN2=1;ET1=0;miao=0, fen=0, si=0;

while(C0&&C1&&C2&&C3==1);

}

} } void main()//主函数 {

IN1=1,IN2=0;EN2=1;

init();//调用初始化函数

while(1){

P0=0XFF;if(STOP==0)//有障碍物

{

EN2=1,EN1=1,IN1=1,IN2=1;ET1=0;QQ=0;

} if(STOP==1)//无障碍物 {

QQ=1;

ET1=1;IN1=1,IN2=0;EN2=1;

if(C0|C1|C2|C3==0)//没有脱轨

{

i=2;

}

P0=0XFF;

if(C0|C1|C2|C3==1)//有脱轨

{

i=5;

if(C0==1)//右1传感器检测到黑线

{

IN3=1, IN4=0;

delay(5);

IN3=0, IN4=0;

}

if(C1==1)//右2传感器检测到黑线

{

IN3=1, IN4=0;

delay(15);

IN3=0, IN4=0;

}

if(C3==1)//左1传感器检测到黑线

{

IN3=0, IN4=1;

delay(5);

IN3=0, IN4=0;

}

if(C2==1)//左2传感器检测到黑线

{

IN3=0, IN4=1;

delay(15);

IN3=0, IN4=0;}

}

} if(==1)

{

=0;

shi=miao/10;//分离秒的十位 ge=miao%10;//分离秒的个位

P3=0xdf;

P1=table[ge];//显示秒的个位

delay(5);

P3=0xef;

P1=table[shi];//显示秒的十位

delay(5);

shi=fen/10;//分离分的十位 ge=fen%10;//分离分的个位

P3=0xf7;

P1=table[ge];//显示分的个位

delay(5);

P3=0xfb;

P1=table[shi];//显示分的十位

delay(5);

shi=si/10;//分离时的十位 ge=si%10;//分离时的个位

P3=0xfd;

P1=table[ge];//显示时的个位

delay(5);

P3=0xfe;

P1=table[shi];//显示时的十位

delay(5);

}

keyscan();//调用键盘扫描函数 } }

仿真电路图

《智能小汽车在PROTEUS下的仿真设计(避障).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
智能小汽车在PROTEUS下的仿真设计(避障)
点击下载文档
相关专题 智能避障小车设计 设计 小汽车 智能 智能避障小车设计 设计 小汽车 智能
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文