资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
#include sbit servo=P25; /PWM 信号输出sbit zuo11=P10; /为 0 为左边正转 sbit zuo12=P11; /为 1 为左边正转 sbit you21=P12; /为 1 为右边正转 sbit you22=P13; /为 0 为右边正转uchar redmessage4=0x00,0x00,0x00,0x00;uchar qianjin=0xf6,0xf0,0xf0;/ 左右行驶变量 uchar houtui=0xf9,0xf0,0xf0;/ / uint qianX=0,houX=0;/ uint haha;/ uint mark;/uint mark1,mark2; uchar control=12; /角度标识 uchar jishu; /0.125ms 次数标识 unsigned long m,Tc;void delay(uint a) uint b,c; for(b=a;b0;b-) for(c=115;c0;c-); void T1_out() interrupt 2 Tc=TH0*256+TL0; /提取中断时间间隔时长 TH0=0; TL0=0; /定时中断重新置零if(Tc8000)m+; if(Tc700 m+; /取码 if(m=32) m=0; mark1=0;if(redmessage2=redmessage3) mark2=1 ; else mark2=0; /取码完成后判断读码是否正确 void red_check() if(mark2=1) switch(redmessage2) case 0x16: /遥控器+键按下 角度加 45control+; /角度标识加 1jishu=0; /按键按下 则 20ms 周期从新开始if(control=21) control=20; /已经是 180 度,则保持break;case 0x0d: /遥控器-键按下 角度减 45control-; /角度标识减 1jishu=0;if(control=0)control=1; /已经是 0 度,则保持 break;case 0x15: houX=0; qianX=1; /前进数据位break;case 0x18: qianX=0; houX=1; /后退数据位break;case 0x19:TR1=TR1; P1=0xf0; /启动数据位break;default:break;mark2 = 0; void initial_T01() TMOD=0x21; TH1=0xfc; TL1=0x66; TH0=0xff; TL0=0x8c; EA=1; ET0=1;TR0=1; ET1=1; TR1=0; void main() m=0;mark1=0; EA=1;IT1=1;EX1=1; / /TMOD=0x11; /TH0=0; / TL0=0; /TR0=1;control=1;jishu=0; servo=0;initial_T01(); servo=1;while(1) red_check(); /红外接收处理 void T0_waytwo() interrupt 1 TH0=0xff; TL0=0x8c; if(jishucontrol) servo=1; else servo=0;jishu+; jishu=jishu%160;void T1_waytwo() interrupt 3 TH1=0xfc; /1ms 一中断 TL1=0x66; mark+; if(mark=5) mark=0; if(qianX=1) P1=qianjinhaha; if(houX=1) P1=houtuihaha; / /haha+; /if(haha=2) haha=0;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号