红外避障电动小车C51程序_第1页
红外避障电动小车C51程序_第2页
红外避障电动小车C51程序_第3页
红外避障电动小车C51程序_第4页
红外避障电动小车C51程序_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、红外避障电动小车C51程序时间:2009-05-13本源:作者:点击:1400字体大小:【大中小】#includereg51.h#include#defineucharunsignedchar#defineuintunsignedint#defineleft_infrare0#defineright_infrare1#definedj_state10X5F/前进#definedj_state20X4F/右转#definedj_state30X1F/左转#definedj_state40X0F/退后#definedj_state50XfF/停车#definelight_off0 x0f/关转向灯

2、#defineleft_light0X5F/左转向灯两个是5f#defineright_light0XaF/右转向灯0 xaf,两个是0 xbf#defineback_light0XcF/刹车灯即后灯#definefront_light0 x3f/前灯#definelight_on0 xff/开所有灯#definetrue1#definefalse0#defineLCD_DataP0#defineBusy0 x80/用于检测LCD状态字中的Busy表记sbitc=P12;/转向灯使能端ucharcodetalk1=backward;ucharcodetalk2=forward;ucharcod

3、etalk3=Turnleft;ucharcodetalk4=Turnright;ucharflage=0 x00;sbitledcs=P12;/74H573的片选信号/sbitleft_led=P02;/左红外发射管/sbitright_led=P03;/右红外发射管sbitLCD_RS=P15;/LCD定义引脚sbitLCD_RW=P16;/sbitLCD_E=P17;voidDelay5Ms(void)uintTempCyc=5552;while(TempCyc-);/400ms延时voidDelay400Ms(void)ucharTempCycA=5;uintTempCycB;whil

4、e(TempCycA-)TempCycB=7269;while(TempCycB-);/LCD读状态unsignedcharReadStatusLCD(void)LCD_Data=0 xFF;LCD_RS=0;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;while(LCD_Data&Busy);/检测忙信号return(LCD_Data);/LCD写数据voidWriteDataLCD(unsignedcharWDLCD)ReadStatusLCD();/检测忙LCD_Data=WDLCD;LCD_RS=1;LCD_RW=0;LCD_E=0;/若晶振速度太高能够在这后加小

5、的延时LCD_E=0;/延时,为了安全LCD_E=0;/延时LCD_E=1;/LCD写指令voidWriteCommandLCD(unsignedcharWCLCD,BuysC)if(BuysC)ReadStatusLCD();LCD_Data=WCLCD;LCD_RS=0;LCD_RW=0;LCD_E=0;/延时,为了安全LCD_E=0;LCD_E=0;/延时LCD_E=1;voidLCDInit(void)/LCD/依照需要检测忙初始化,BuysC为0时忽略忙检测Delay400Ms();LCD_Data=0;WriteCommandLCD(0 x38,0);Delay5Ms();Writ

6、eCommandLCD(0 x38,0);Delay5Ms();WriteCommandLCD(0 x38,0);Delay5Ms();/三次显示模式设置,不检测忙信号WriteCommandLCD(0 x38,1);/显示模式设置,开始要求每次检测忙信号WriteCommandLCD(0 x08,1);/关闭显示WriteCommandLCD(0 x01,1);/显示清屏WriteCommandLCD(0 x06,1);/显示光标搬动设置WriteCommandLCD(0 x0C,1);/显示开及光标设置/按指定地址显示一个字符voidDisplayOneChar(ucharX,ucharY

7、,ucharDData)Y&=0 x1;X&=0 xF;/限制X不能够大于15,Y不能够大于1if(Y)X|=0 x40;/当要显示第二行时地址码+0 x40;X|=0 x80;/算出LCD的指令码WriteCommandLCD(X,0);/这里不检测忙信号,发送地址码WriteDataLCD(DData);按指定地址显示一串字符(只能写一行);voidDisplayListChar(ucharX,ucharY,ucharListLength,uchar*DData,ucharn)uchari;Y&=0 x01;X&=0 x0F;/限制X不能够大于15,Y不能够大于1for(i=0;iList

8、Length;i+)if(X左右发射管的选择uchari;P1|=0X04;/ledcs=1为74ls573为11脚为高电平时数据直接输出,为低时把数据锁存住,即保持IE|=0X01;P0|=0 x0c;/04for(i=timer;i0;i-)if(n)P0=0 x08;/右发射管经过载波发射信号/00elseP0=0 x04;/左发射管经过载波发射信号/0cdelay(100);/这里控制着矫捷度(控制38khz的方波的多少)和距离/timer*delay(x)即为发射管获取的平均电流P1&=0Xfb;IE&=0Xfe;/led转向灯指示子程序voidlight_control(uchar

9、deng)ledcs=1;P0=deng;ledcs=0;/11111011电机和灯光的控制部分voidcontrol(ucharn,uchardj_state,ucharlight)uchari;/P1|=0 x04;light_control(light);/led转向指示灯delay(100);P2=dj_state;/电机的方向控制WriteCommandLCD(0 x01,1);/LCD显示清屏switch(dj_state)casedj_state2:DisplayListChar(3,1,10,talk4,false);break;casedj_state3:DisplayLis

10、tChar(3,1,8,talk3,false);break;casedj_state4:DisplayListChar(3,1,7,talk1,false);break;default:break;for(i=n;i0;i-)delay(2000);P2=dj_state5;/停车light_control(light_off);/led关闭WriteCommandLCD(0 x01,1);/LCD显示清屏P2=dj_state1;/前进if(dj_state1)P1|=0X04;/ledcs=1;P0=0 x0f;P1&=0XFB;delay(100);DisplayListChar(0,

11、0,7,talk2,false);/*避障主要控制部分*/voidmove_car(void)uchartemp=0 x00;左边红外管发射seng_wave(1,left_infrare);/向下为中断开启有关闭后,要执行的语句if(flage=0 x01)temp|=0 x01;flage=0 x00;右边红外管发射delay(30);seng_wave(1,right_infrare);/向下为中断开启有关闭后,要执行的语句if(flage=0 x01)temp|=0 x02;flage=0 x00;左边有阻挡物,右转if(temp=0 x01)control(2,dj_state2,left_light);temp=0 x00;右边有阻挡物,左转elseif(temp=0 x02)control(2,dj_state3,right_light);temp=0 x00;两个方向都有阻挡物,退后,右转elseif(temp=0 x03)control(10,dj_state4,back_light);control(5,dj_state2,right_light);temp=0 x00;voidmain(void)Init0();/中断初始化P1|=0X04;/开锁存器的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论