找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17932|回复: 36
打印 上一主题 下一主题
收起左侧

用51Hei开发板制作万能学习型红外遥控器

  [复制链接]
跳转到指定楼层
楼主
ID:1 发表于 2010-7-29 03:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  凌晨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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:25357 发表于 2010-7-31 04:37 | 只看该作者

正好需要,十分感谢。

回复

使用道具 举报

板凳
ID:27770 发表于 2011-1-12 13:13 | 只看该作者
这个论坛的东西很丰富!不想学都不行!不想做也不行!---太吸引人了啊!
回复

使用道具 举报

地板
ID:29055 发表于 2011-5-24 02:47 | 只看该作者
这个很有用啊,我先试试去.空调能行吧.
回复

使用道具 举报

5#
ID:30671 发表于 2011-8-24 11:14 | 只看该作者

沙发。

回复

使用道具 举报

6#
ID:33695 发表于 2012-1-9 20:04 | 只看该作者
板子买了,想试下了。
回复

使用道具 举报

7#
ID:33837 发表于 2012-1-19 01:48 | 只看该作者
用电视试了一下,过程一模一样,指示灯也正常,15分钟,好像是成功了一次。是不是发射距离达不到啊! 明天再看看。
回复

使用道具 举报

8#
ID:33837 发表于 2012-2-1 10:56 | 只看该作者

用示波器测试发现学习到的信息和原有的信息不一致,数据位要少好多,我再确认一下,把过程数据发上来。

回复

使用道具 举报

9#
ID:1 发表于 2012-2-1 21:55 | 只看该作者

你发上来,我给你找到原因所在

回复

使用道具 举报

10#
ID:35402 发表于 2012-3-3 12:02 | 只看该作者
回复

使用道具 举报

11#
ID:38426 发表于 2012-4-13 21:26 | 只看该作者
看看 怎么样
回复

使用道具 举报

12#
ID:44558 发表于 2012-9-10 14:08 | 只看该作者

版主,你好,我想知道下面这个链接的关于学习型万能遥控器的思路,也是本论坛的人写的。

http://www.51hei.com/bbs/dpj-1690-1.html

楼主,他用汇编写的,看懂之后把它改成C语言,难度应该不大吧?

回复

使用道具 举报

13#
ID:45111 发表于 2012-9-28 11:27 | 只看该作者
[灌水]源码在哪里?最好是C写的
回复

使用道具 举报

14#
ID:46241 发表于 2012-11-9 13:40 | 只看该作者
回复

使用道具 举报

15#
ID:72160 发表于 2015-1-14 10:28 | 只看该作者
这个很有用啊,我先试试去.空调能行吧.
回复

使用道具 举报

16#
ID:73070 发表于 2015-1-31 20:37 | 只看该作者
学习学习
回复

使用道具 举报

17#
ID:73187 发表于 2015-2-12 11:09 | 只看该作者
想看看程序啊
回复

使用道具 举报

18#
ID:77205 发表于 2015-4-16 23:42 | 只看该作者
家里遥控器坏掉,不知能否用上,:::::::::::::::::::::
回复

使用道具 举报

19#
ID:59363 发表于 2015-4-17 17:04 | 只看该作者
好东西,不知道连续码能不能接收发射
回复

使用道具 举报

20#
ID:78564 发表于 2015-4-30 21:53 | 只看该作者
请教你一个问题,我用51做红外线遥控器编码记录与转发的东西,具体方案是红外接收头接P3^2,然后通过一个非门与P3^3,相接,TMOD=0x99,分别用INT0,INT1计数来得到红外码的高低电平脉宽,用1602显示和解码部分我已经搞定,但我想把接收到的码发送出去,再怎么搞?两个定时器都用了,我尝试用双层for嵌套,根据接收到的脉宽来延时控制红外发射管的通断来发送红外码,但是没用(38khz载波用震荡电路调好)能不能教教我怎么解决,谢谢
回复

使用道具 举报

21#
ID:78564 发表于 2015-4-30 21:53 | 只看该作者
求源程序
回复

使用道具 举报

22#
ID:79544 发表于 2015-9-26 16:16 | 只看该作者
楼主您好:怎么没有源码啊,想学习一下,可以分享吗?谢谢啦!
回复

使用道具 举报

23#
ID:88716 发表于 2015-9-27 15:39 来自手机 | 只看该作者
腾飞的龙 发表于 2015-9-26 16:16
楼主您好:怎么没有源码啊,想学习一下,可以分享吗?谢谢啦!

有源码吗?好想学啊
回复

使用道具 举报

24#
ID:89092 发表于 2015-11-23 09:45 | 只看该作者
正好需要,十分感谢。
回复

使用道具 举报

25#
ID:217754 发表于 2017-7-10 22:41 | 只看该作者
这个厉害。。。那是不是说明。每一个遥控器上都有一个单片机板
回复

使用道具 举报

26#
ID:241596 发表于 2018-4-22 16:08 | 只看该作者
有源码吗?好想学啊
回复

使用道具 举报

27#
ID:340584 发表于 2018-5-29 14:30 | 只看该作者
求大神告知protues图怎么画的
回复

使用道具 举报

28#
ID:218360 发表于 2018-7-22 15:55 | 只看该作者
怎么没有原码了,想看看源码进行学习
回复

使用道具 举报

29#
ID:245219 发表于 2020-6-15 01:13 来自手机 | 只看该作者
跪求源代码
回复

使用道具 举报

30#
ID:511461 发表于 2020-8-2 21:50 | 只看该作者
源程序有c51和汇编2个版本的代码,在"程序"目录里,并有详细的注释
没有看到源代码
回复

使用道具 举报

31#
ID:82810 发表于 2021-6-8 06:34 来自手机 | 只看该作者
牛人!下载下来 备用
回复

使用道具 举报

32#
ID:796012 发表于 2021-9-21 12:24 | 只看该作者
这是站长的贴呀,牛
回复

使用道具 举报

33#
ID:1047527 发表于 2022-10-13 11:52 | 只看该作者
谢谢分享,我已下载保存。如果楼主方便的话,多传一些这方面的资料,谢谢,学习了。
回复

使用道具 举报

34#
ID:240452 发表于 2022-12-9 12:18 | 只看该作者
源码?
回复

使用道具 举报

35#
ID:325735 发表于 2023-3-16 22:41 | 只看该作者
请问下 源程序在哪里呢
回复

使用道具 举报

36#
ID:155507 发表于 2023-3-18 13:41 | 只看该作者
kaixin8318 发表于 2023-3-16 22:41
请问下 源程序在哪里呢


程序分享出来给需要的人作参考
送人玫瑰手留余香。相互学习进步。

  1. /*晶振11.0592M
  2. ;跳线设置:J1插上跳线帽,J7的23端插上跳线(实验完毕千万记得要拔掉,不然会干扰其他实验切记!!)
  3. ;实验方法:按下INT0键,D1立刻亮,此时拿来家里的电视机遥控器对准51hei开发板按一下,
  4.          ;这时D3亮了,这个键的数据已经被记录下来了,你只要用板子对准电视机,
  5.          ;并按S5键就能遥控电视了.
  6. ;D1红灯用于指示发射键的操作,闪烁时表示遥控码正在发射之中.
  7. ;D3黄灯是学习指示.
  8. ;注意:此实验有可能会不成功,并不是全部的遥控器都支持,
  9.       ;如果按下INT0键,在没按红外遥控器的情况下D3马上亮起来,
  10.       ;说明可能存在电源或者是空间红外的干扰,
  11.       ;用3节1.5v的新电池给板子供电会达到比较好的效果.
  12.       ;如果是用电脑usb供电成功率稍低,必须要拔掉9针串口线以及usb转串口线,最大限度
  13.       ;的减少来自电脑的干扰.*/
  14. //                 *************************************
  15. //                 *   www.51hei.com学习型红外遥控器   *
  16. //                 *          2009.11.29               *
  17. //                 *************************************
  18. #include <reg52.h>
  19. #include <intrins.h>
  20. #define uchar unsigned char
  21. #define uint unsigned int

  22. sbit  studylamp=P0^7;        //学习状态指示灯
  23. sbit  lamp=P0^5;             //发射指示灯
  24. sbit  studykey=P3^2;         //学习键(中断口)
  25. sbit  remotein=P3^3;         //遥控信号输入口
  26. sbit  remoteout=P2^3;         // 遥控输出口
  27. sbit  txkey=P3^7;              //发射键   
  28. sbit  leds=P1^4;             //led使能
  29. sbit  duan=P2^6;             //段选
  30. sbit  wei= P2^7;              //位选                 

  31. uint i,j,m=255,n,k,s;
  32. uchar idata remotedata[206];         
  33. uint head;                        
  34. uint remdata;


  35. //一毫秒延时程序
  36. delay1ms(uint t)
  37. {
  38. for(i=0;i<t;i++)
  39.    for(i=0;j<120;j++);
  40. }

  41. //初始化函数
  42. clearmen()
  43. {
  44.    studylamp=1;                    
  45.    lamp=1;                          
  46.    remoteout=0;                        
  47.    remotein=1;
  48.    for(i=0;i<206;i++)                  
  49. {
  50.     remotedata[i]=0x00;
  51. }
  52. IE=0x00;
  53. IP=0x01;
  54. TMOD=0x22;
  55. PCON=0X00;
  56. TH1=0xf3;
  57. TL1=0xf3;
  58. IT0=1;
  59. EX0=1;
  60. EA=1;
  61. }


  62. //键功能函数
  63. void key_tx()
  64. {
  65. if(txkey==0)
  66. {
  67.    delay1ms(1);
  68.    if(txkey==0)
  69.    {
  70.    while(txkey==0);   
  71.    ET1=1;TR1=1;                     
  72.    for(i=head;i>0;i--);
  73.    remoteout=0;ET1=0;TR1=0;
  74.    n=0;
  75.    while(1)
  76.    {   
  77.       lamp=0;           
  78.       studylamp=1;
  79.     if(remotedata[n]==0x00)
  80.     {
  81.      delay1ms(10);break;                    
  82.     }
  83.     for(i=remotedata[n];i>0;i--)
  84.     {
  85.      _nop_();_nop_();_nop_();_nop_();_nop_();
  86.      _nop_();_nop_();_nop_();_nop_();
  87.     }
  88.     n++;                     
  89.     ET1=1;TR1=1;     
  90.     for(i=remotedata[n];i>0;i--);
  91.     remoteout=0;ET1=0;TR1=0;n++;
  92.      }
  93.       }
  94. }
  95. }

  96. //主函数
  97. void main()
  98. {
  99. leds=0;
  100. duan=0;
  101. wei=0;
  102. clearmen();                       //初始化
  103. while(1)
  104. {
  105.    key_tx();      //按键扫描
  106. }                       
  107. }


  108. //40KHz发生器      
  109. void time_intt1(void) interrupt 3
  110. {
  111. remoteout=~remoteout;
  112. }

  113.      
  114. //外中断0
  115. void intt0(void) interrupt 0
  116. {
  117. ET1=0;TR1=0;EX0=0;EA=0;
  118. head=0;
  119. while(studykey==0);                     
  120. studylamp=0;lamp=1;
  121. while(remotein==1);                           
  122. head=0;                                   
  123. while(remotein==0)
  124. {
  125.    _nop_();_nop_();_nop_();_nop_();_nop_();
  126.    _nop_();_nop_();_nop_();_nop_();_nop_();
  127.    _nop_();_nop_();_nop_();_nop_();_nop_();
  128.    head++;
  129. }
  130. n=0;remdata=0x0000;
  131. while(1)
  132. {
  133.    while(remotein==1)
  134.    {
  135.     _nop_();_nop_();_nop_();_nop_();_nop_();
  136.     _nop_();_nop_();_nop_();_nop_();_nop_();
  137.     _nop_();_nop_();_nop_();_nop_();_nop_();
  138.     remdata++;
  139.    }
  140.    if(remdata>m)                       //高电平>5毫秒退出
  141.    {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
  142.    remotedata[n]=remdata;n++;              
  143.    remdata=0x0000;                 
  144.    while(remotein==0)
  145.    {
  146.     _nop_();_nop_();_nop_();_nop_();_nop_();
  147.     _nop_();_nop_();_nop_();_nop_();_nop_();
  148.     _nop_();_nop_();_nop_();_nop_();_nop_();
  149.     remdata++;
  150.    }                     
  151.    remotedata[n]=remdata;
  152.    n++;
  153.    remdata=0x00;
  154. }
  155. end: lamp=0;studylamp=0;               
  156. }
复制代码



红外解码程序.zip

283.26 KB, 下载次数: 11, 下载积分: 黑币 -5

回复

使用道具 举报

37#
ID:403447 发表于 2023-6-9 09:05 | 只看该作者
多谢分享,小白学习,不胜感激。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表