红外线遥控小车c程序

上传人:kms****20 文档编号:37251719 上传时间:2018-04-09 格式:DOC 页数:5 大小:39.50KB
返回 下载 相关 举报
红外线遥控小车c程序_第1页
第1页 / 共5页
红外线遥控小车c程序_第2页
第2页 / 共5页
红外线遥控小车c程序_第3页
第3页 / 共5页
红外线遥控小车c程序_第4页
第4页 / 共5页
红外线遥控小车c程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《红外线遥控小车c程序》由会员分享,可在线阅读,更多相关《红外线遥控小车c程序(5页珍藏版)》请在金锄头文库上搜索。

1、#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 m

2、ark1,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

3、) 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 度,则保持 br

4、eak;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; / /TM

5、OD=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;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号