欢迎来到天天文库
浏览记录
ID:40621652
大小:81.00 KB
页数:12页
时间:2019-08-05
《利用52单片机来实现红外遥控小车程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#defineucharunsignedchar#defineuintunsignedintsbitinl1=P2^0;//左电机输出1sbitinl2=P2^1;//左电机输出2sbitinr1=P2^2;//右电机输出1sbitinr2=P2^3;//右电机输出2sbits_left=P2^4;//左传感器sbits_right=P2^5;//右传感器sbits_mid=P2^6;//中间传感器sbitbarrier=P2^7;//障碍物扫描传感器sbitbeep=P1^0;//探到铁报警接蜂鸣器uintb_count=0;//障碍物扫描
2、位置基数ucharalter_time=0;//报警计数值uchargo_go=1;//小车前进中断标志sbitleft_light=P1^2;sbitright_light=P1^1;ucharsecond=0;sbitP32=P3^2;ucharb_left,b_right;/****红外遥控程勋数据****/ucharirtime;ucharstartflag;ucharirdata[33];ucharirreceok;ucharirproseok;uchardis[8];ucharbitnum;ucharcd,flag,yaokong;ucharircode[4];u
3、charright=0,left=0,stop_stop=0,model=0;ucharkuai;voidstop(void);voiddelay(uinta);voidir_key()//遥控键盘识别{if(ircode[2]==0x51&&ircode[3]==0xAE&&flag==1){yaokong=~yaokong;//打开遥控模式flag=0;}if(ircode[2]==0x55&&ircode[3]==0xAA&&flag==1)//前进后退模式选择{model=~model;right=0;left=0;flag=0;}if(ircode[2]==0x56
4、&&ircode[3]==0xA9&&flag==1){//遥控前进标志位stop_stop=~stop_stop;left=0;right=0;flag=0;}if(ircode[2]==0x17&&ircode[3]==0xE8&&flag==1)//遥控左拐标志位{left=1;right=0;stop_stop=0;flag=0;}if(ircode[2]==0x16&&ircode[3]==0xE9&&flag==1)//遥控右转标志位{right=1;stop_stop=0;left=0;flag=0;}if(ircode[2]==0x11&&ircode[3]=
5、=0xEE&&flag==1)//遥控右转标志位{kuai=~kuai;flag=0;}}voidtimer1init()//定时器1初始化{TMOD=0x21;TH1=0x00;TL1=0x00;ET1=1;TR1=1;}voidint1init()//外部中断1初始化{IT1=1;EX1=1;EA=1;}voidirpros(void)//红外处理函数{uchark,j,i;ucharvalue;k=1;for(j=0;j<4;j++){for(i=0;i<8;i++){value=value>>1;if(irdata[k]>6){value=value
6、0x80;}k+
7、+;}ircode[j]=value;}irproseok=1;}voidirwork()//红外解码函数{uchari;dis[0]=ircode[0]/16;dis[1]=ircode[0]%16;dis[2]=ircode[1]/16;dis[3]=ircode[1]%16;dis[4]=ircode[2]/16;dis[5]=ircode[2]%16;dis[6]=ircode[3]/16;dis[7]=ircode[3]%16;for(i=0;i<8;i++){if(dis[i]>9){cd=dis[i]-9;dis[i]=0x10+cd;}}flag=1;}voi
8、dinti()//初始化定时器0,中断0{P2=0xff;P0=0xff;P1=0xff;P3=0xff;EX0=1;IT0=1;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=0;}voiddelay(uinta)////延时1ms{inti;for(;a>0;a--)for(i=0;i<110;i++);}voidgo_along(void)//直走{inl1=1;inl2=0;inr1=1;inr2=0;}voidgo_left(void
此文档下载收益归作者所有