完善资料让更多小伙伴认识你,还能领取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就好了。。。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
515 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
515 浏览 0 评论
780 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1360 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
572 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11760 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:41 , Processed in 0.605933 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号