标题: 用51Hei开发板制作万能学习型红外遥控器 [打印本页]
作者: admin 时间: 2010-7-29 03:45
标题: 用51Hei开发板制作万能学习型红外遥控器
凌晨3点多了,终于搞定了这个程序,基本可对95%以上的红外遥控器进行编码学习,刚测试了家里的电视机和dvd,全部通过.
相当于是把原配遥控器的发射编码录制到51hei-5型开发板里去,然后通过板子上的红外发射电路来发射编码,以便代替原配的遥控器.
;晶振12M
;跳线设置:J1插上跳线帽,J7的23端插上跳线(实验完毕千万记得要拔掉,不然会干扰其他实验切记!!)
;实验方法:按下INT0键,D3立刻熄灭,此时拿来家里的电视机遥控器对准51hei开发板按一下,
;这时D3亮了,这个键的数据已经被记录下来了,你只要用板子对准电视机,
;并按S5键就能遥控电视了.
;D1红灯用于指示发射键的操作,闪烁时表示遥控码正在发射之中.
;D3黄灯是学习指示.
;注意:此实验有可能会不成功,并不是全部的遥控器都支持,
;如果按下INT0键,在没按红外遥控器的情况下D3马上亮起来,
;说明可能存在电源或者是空间红外的干扰,
;用3节1.5v的新电池给板子供电会达到比较好的效果.
;如果是用电脑usb供电,最好要拔掉9针串口线以及usb转串口线,最大限度
;的减少来自电脑的干扰.以保证实验效果
源程序有c51和汇编2个版本的代码,在"程序"目录里,并有详细的注释,老用户可重新更新下载一下资料.最近我更新的程序还比较多.
hex文件下载: http://www.51hei.com/ziliao/51hei-5/hongwxx.rar
作者: magicedward 时间: 2010-7-31 04:37
正好需要,十分感谢。
作者: hfbjjs 时间: 2011-1-12 13:13
这个论坛的东西很丰富!不想学都不行!不想做也不行!---太吸引人了啊!
作者: ashan 时间: 2011-5-24 02:47
这个很有用啊,我先试试去.空调能行吧.
作者: 冬虫草 时间: 2011-8-24 11:14
沙发。
作者: 我爱单片 时间: 2012-1-9 20:04
板子买了,想试下了。
作者: ymynotg 时间: 2012-1-19 01:48
用电视试了一下,过程一模一样,指示灯也正常,15分钟,好像是成功了一次。是不是发射距离达不到啊!
明天再看看。
作者: ymynotg 时间: 2012-2-1 10:56
用示波器测试发现学习到的信息和原有的信息不一致,数据位要少好多,我再确认一下,把过程数据发上来。
作者: admin 时间: 2012-2-1 21:55
你发上来,我给你找到原因所在
作者: 爱的根号3 时间: 2012-3-3 12:02

作者: yapuljj 时间: 2012-4-13 21:26
看看 怎么样
作者: 梦卡碟心 时间: 2012-9-10 14:08
版主,你好,我想知道下面这个链接的关于学习型万能遥控器的思路,也是本论坛的人写的。
http://www.51hei.com/bbs/dpj-1690-1.html
楼主,他用汇编写的,看懂之后把它改成C语言,难度应该不大吧?
作者: shenzhenherry 时间: 2012-9-28 11:27
[灌水]源码在哪里?最好是C写的
作者: X雄仔 时间: 2012-11-9 13:40
好
作者: 499705472 时间: 2015-1-14 10:28
这个很有用啊,我先试试去.空调能行吧.
作者: 想学习的孩子 时间: 2015-1-31 20:37
学习学习
作者: 岳达 时间: 2015-2-12 11:09
想看看程序啊
作者: lesson18 时间: 2015-4-16 23:42
家里遥控器坏掉,不知能否用上,:::::::::::::::::::::
作者: miskel 时间: 2015-4-17 17:04
好东西,不知道连续码能不能接收发射
作者: 伟哥哥 时间: 2015-4-30 21:53
请教你一个问题,我用51做红外线遥控器编码记录与转发的东西,具体方案是红外接收头接P3^2,然后通过一个非门与P3^3,相接,TMOD=0x99,分别用INT0,INT1计数来得到红外码的高低电平脉宽,用1602显示和解码部分我已经搞定,但我想把接收到的码发送出去,再怎么搞?两个定时器都用了,我尝试用双层for嵌套,根据接收到的脉宽来延时控制红外发射管的通断来发送红外码,但是没用(38khz载波用震荡电路调好)能不能教教我怎么解决,谢谢
作者: 伟哥哥 时间: 2015-4-30 21:53
求源程序
作者: 腾飞的龙 时间: 2015-9-26 16:16
楼主您好:怎么没有源码啊,想学习一下,可以分享吗?谢谢啦!
作者: hzb123 时间: 2015-9-27 15:39
腾飞的龙 发表于 2015-9-26 16:16
楼主您好:怎么没有源码啊,想学习一下,可以分享吗?谢谢啦!
有源码吗?好想学啊
作者: kernel99 时间: 2015-11-23 09:45
正好需要,十分感谢。
作者: xymiss 时间: 2017-7-10 22:41
这个厉害。。。那是不是说明。每一个遥控器上都有一个单片机板
作者: INVIO 时间: 2018-4-22 16:08
有源码吗?好想学啊
作者: Jarki 时间: 2018-5-29 14:30
求大神告知protues图怎么画的
作者: 打杂的 时间: 2018-7-22 15:55
怎么没有原码了,想看看源码进行学习
作者: 1457346053 时间: 2020-6-15 01:13
跪求源代码
作者: aaaaaa。 时间: 2020-8-2 21:50
源程序有c51和汇编2个版本的代码,在"程序"目录里,并有详细的注释
没有看到源代码
作者: arroow 时间: 2021-6-8 06:34
牛人!下载下来 备用
作者: 玉萌业余发展 时间: 2021-9-21 12:24
这是站长的贴呀,牛
作者: Lzhao0415 时间: 2022-10-13 11:52
谢谢分享,我已下载保存。如果楼主方便的话,多传一些这方面的资料,谢谢,学习了。
作者: 微笑的小小 时间: 2022-12-9 12:18
源码?
作者: kaixin8318 时间: 2023-3-16 22:41
请问下 源程序在哪里呢
作者: angmall 时间: 2023-3-18 13:41
程序分享出来给需要的人作参考
送人玫瑰手留余香。相互学习进步。
- /*晶振11.0592M
- ;跳线设置:J1插上跳线帽,J7的23端插上跳线(实验完毕千万记得要拔掉,不然会干扰其他实验切记!!)
- ;实验方法:按下INT0键,D1立刻亮,此时拿来家里的电视机遥控器对准51hei开发板按一下,
- ;这时D3亮了,这个键的数据已经被记录下来了,你只要用板子对准电视机,
- ;并按S5键就能遥控电视了.
- ;D1红灯用于指示发射键的操作,闪烁时表示遥控码正在发射之中.
- ;D3黄灯是学习指示.
- ;注意:此实验有可能会不成功,并不是全部的遥控器都支持,
- ;如果按下INT0键,在没按红外遥控器的情况下D3马上亮起来,
- ;说明可能存在电源或者是空间红外的干扰,
- ;用3节1.5v的新电池给板子供电会达到比较好的效果.
- ;如果是用电脑usb供电成功率稍低,必须要拔掉9针串口线以及usb转串口线,最大限度
- ;的减少来自电脑的干扰.*/
- // *************************************
- // * www.51hei.com学习型红外遥控器 *
- // * 2009.11.29 *
- // *************************************
- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit studylamp=P0^7; //学习状态指示灯
- sbit lamp=P0^5; //发射指示灯
- sbit studykey=P3^2; //学习键(中断口)
- sbit remotein=P3^3; //遥控信号输入口
- sbit remoteout=P2^3; // 遥控输出口
- sbit txkey=P3^7; //发射键
- sbit leds=P1^4; //led使能
- sbit duan=P2^6; //段选
- sbit wei= P2^7; //位选
- uint i,j,m=255,n,k,s;
- uchar idata remotedata[206];
- uint head;
- uint remdata;
- //一毫秒延时程序
- delay1ms(uint t)
- {
- for(i=0;i<t;i++)
- for(i=0;j<120;j++);
- }
- //初始化函数
- clearmen()
- {
- studylamp=1;
- lamp=1;
- remoteout=0;
- remotein=1;
- for(i=0;i<206;i++)
- {
- remotedata[i]=0x00;
- }
- IE=0x00;
- IP=0x01;
- TMOD=0x22;
- PCON=0X00;
- TH1=0xf3;
- TL1=0xf3;
- IT0=1;
- EX0=1;
- EA=1;
- }
- //键功能函数
- void key_tx()
- {
- if(txkey==0)
- {
- delay1ms(1);
- if(txkey==0)
- {
- while(txkey==0);
- ET1=1;TR1=1;
- for(i=head;i>0;i--);
- remoteout=0;ET1=0;TR1=0;
- n=0;
- while(1)
- {
- lamp=0;
- studylamp=1;
- if(remotedata[n]==0x00)
- {
- delay1ms(10);break;
- }
- for(i=remotedata[n];i>0;i--)
- {
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();
- }
- n++;
- ET1=1;TR1=1;
- for(i=remotedata[n];i>0;i--);
- remoteout=0;ET1=0;TR1=0;n++;
- }
- }
- }
- }
- //主函数
- void main()
- {
- leds=0;
- duan=0;
- wei=0;
- clearmen(); //初始化
- while(1)
- {
- key_tx(); //按键扫描
- }
- }
- //40KHz发生器
- void time_intt1(void) interrupt 3
- {
- remoteout=~remoteout;
- }
-
- //外中断0
- void intt0(void) interrupt 0
- {
- ET1=0;TR1=0;EX0=0;EA=0;
- head=0;
- while(studykey==0);
- studylamp=0;lamp=1;
- while(remotein==1);
- head=0;
- while(remotein==0)
- {
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();
- head++;
- }
- n=0;remdata=0x0000;
- while(1)
- {
- while(remotein==1)
- {
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();
- remdata++;
- }
- if(remdata>m) //高电平>5毫秒退出
- {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
- remotedata[n]=remdata;n++;
- remdata=0x0000;
- while(remotein==0)
- {
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();
- remdata++;
- }
- remotedata[n]=remdata;
- n++;
- remdata=0x00;
- }
- end: lamp=0;studylamp=0;
- }
复制代码
-
-
红外解码程序.zip
283.26 KB, 下载次数: 11, 下载积分: 黑币 -5
作者: 大米861 时间: 2023-6-9 09:05
多谢分享,小白学习,不胜感激。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |