完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 wolfwyf 于 2013-8-17 09:34 编辑
目的 通过遥控器控制P0口的Led亮灭 红外接口P3。2 遥控器上面的码值是正确的 现在就是程序有有问题 无法正常解码 求高手们给看看~ #include #define uchar unsigned char #define uint unsigned int ***it IR=P3^2; uint Low_time,High_Time; unsigned char a[4]; bit De_Code(void) { uchar i,j; uchar temp; for(i=0;i<4;i++) { for(j=0;j<8;j++) { temp=temp>>1; //右移一位 TH0=0; //低电平 TL0=0; TR0=1; while(IR==0); TR0=0; Low_Time=TH0*256+TL0; TH0=0; //高电平 TL0=0; TR0=0; while(IR==1); TR0=0; High_Time=TH0*256+TL0; if((Low_Time<370)||(Low_Time>640)) { return 0; } if((High_Time>420)&&(High_Time<620)) { temp=temp&0x7f; } if((High_Time>1300)&&(High_Time<1800)) { temp=temp|0x80; } } a=temp; } return 1; } void Car_Run() { switch(a[3]) { case(0x03):P0=0x55;break; case(0x1b):P0=0xaa;break; case(0x09):P0=0xdd;break; case(0x1f):P0=0x77;break; case(0x10):P0=0x99;break; case(0x01):P0=0x66;break; default:P0=0x00; } } void main() { EA=1; EX0=1; ET0=1; IT0=1; TMOD=0x01; TR0=0; while(1); } void Int0(void) interrupt 0 { EX0=0; TH0=0; TL0=0; TR0=1; while(IR==0); TR0=0; Low_Time=TH0*256+TL0; TH0=0; TL0=0; TR0=1; while(IR==1); TR0=0; High_Time=TH0*256+TL0; if((Low_Time>7800)&&(Low_Time<8800)&&(High_Time>3600)&&(High_Time<4700)) { if(De_Code()==1) { Car_Run(); } } EX0=1; } |
|
相关推荐
3个回答
|
|
总是有一个错误~~~~~~~~~~
|
|
|
|
大哥 不能沉啊
|
|
|
|
这么多人怎么就没人光顾我呢?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
795 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
668 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
845 浏览 0 评论
1508 浏览 3 评论
由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常?
2409 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
3692 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 20:09 , Processed in 0.485679 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号