《智能小汽车在PROTEUS下的仿真设计(避障)(共9页).doc》由会员分享,可在线阅读,更多相关《智能小汽车在PROTEUS下的仿真设计(避障)(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 智能小车在PROTEUS下的仿真设计#include /头文件#define uchar unsigned char /宏定义#define uint unsigned int /宏定义sbit IN1=P20; sbit IN2=P21 ; sbit IN3=P26; /定义驱动sbit IN4=P27;sbit EN1=P22 ; sbit EN2=P25;sbit C0=P00; /右1传感器sbit C1=P01; /右2传感器sbit C2=P02;/左2传感器sbit C3=P03; /左2传感器sbit STOP=P23;/障碍物传感器sbit QQ=
2、P24;/扬声器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,ss=0;void delay( uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=50;y0;y-);void init( )/对函数初始化 TMOD=0x11; TH0=(65536-20000)/256; /TH0装初值 TL0=(65536-20000)%256; /TL0装
3、初值 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中断函数TH0=(65536-20000)/256; /TH0装初值TL0=(65536-20000)%256; /TL0装初值 tt+,ss=1;if(tt=50) tt=0; miao+; if(miao=60) fen+;miao=0; if(fen=24) fen=0,si+; void tim
4、er1() 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);
5、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(C
6、1=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(ss=1) ss=0; shi=miao/10;/分离秒的十位ge=miao%10;/分离秒的个位 P3=0xdf; P1=tablege;/显示秒的个位 delay(5); P3=0xef; P1=tableshi;/显示秒的十位 delay(5); shi=fen/10;/分离分的十位ge=fen%10;/分离分的个位 P3=0xf7; P1=tablege;/显示分的个位 delay(5); P3=0xfb; P1=tableshi;/显示分的十位 delay(5); shi=si/10;/分离时的十位ge=si%10;/分离时的个位 P3=0xfd; P1=tablege;/显示时的个位 delay(5); P3=0xfe; P1=tableshi;/显示时的十位 delay(5); keyscan ( );/调用键盘扫描函数 仿真电路图专心-专注-专业