完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include typedef unsigned char uint8; ***it IR=P3^3; uint8 IR_buf[4]; void uart_init() { TMOD=0X21; SCON=0X50; //´®ÐпڿØÖƼĴæλ TH1=0XFD; TL1=0XFD; TR1=1; } void uart_send(uint8 dat) { SBUF=dat; //½«datµÄÖµ¸³¸øSBUF´®¿Ú while(ti==0); //µÈ´ý·¢ËͽáÊø TI=0; } unsigned int IR_get() { TL0=0; TH0=0; TR0=1; while(!IR &&(TH0&0X80)==0); //!IRºÍ(TH0&0X80)½øÐа´Î»ÓëÔËËã¡£Ö»ÒªÓÐÒ»¸öÌõ¼þΪ0¾ÍÖ´ÐÐwhile È»ºó¶Áȡʱ¼ä TR0=0; //¹Ø±Õ¶¨Ê±Æ÷ return (TH0*256+TH0); //·µ»Øʱ¼äÖµ } unsigned int IR_geth() { TL0=0; TH0=0; TR0=1; while(IR&&(TH0&0X80)==0); TR0=0; return(TH0*256+TH0); } void main () { unsigned int temp; char i,j; uart_init(); while(1) { start: while(IR); temp=IR_get(); if((temp<7833)||(temp>8755)) //µÍµçƽÂö³å8500-9500US goto start; temp=IR_geth(); if((temp<3686) || (temp>4608)) //¸ßµçƽÂö³å4000-5000US goto start; for(i=0;i<4;i++) //4¸ö×Ö½Ú { for(j=0;j<8;j++) //ÿ¸ö×Ö½Ú8λ { temp=IR_get(); if((temp<184)||(temp>737)) //200-800us goto start; temp=IR_geth(); if((temp<184)||(temp>1843)) //200-2000us goto start; IR_buf>>=1; if(temp>1302) IR_buf|=0x80; } } uart_send(IR_buf[0]); uart_send(IR_buf[1]); uart_send(IR_buf[2]); uart_send(IR_buf[3]); } } 评分 |
|
相关推荐
4个回答
|
|
建议你在论坛里找找定时器方式的红外解码程序对照参考一下,你的程序可能有多处错误,还有解码的思路可能也有 偏差,至少这个语句return(TH0*256+TH0);,最后应该是加TL0吧
最佳答案
|
|
|
|
人中狼 发表于 2017-9-25 10:59 多谢指点................. |
|
|
|
人中狼 发表于 2017-9-25 10:59 我的亲哥。。。改成 TL0就好了。。。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
744 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
865 浏览 0 评论
2679 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2295 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1716 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5829 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-25 23:12 , Processed in 0.679876 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号