找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机学习型红外线遥控器制作资料 含源码,原理图与PCB及视频演示

  [复制链接]
跳转到指定楼层
楼主
分享一个学习型红外遥控程设计资料需要的拿走


设计视频:


Altium Designer画的学习型红外线遥控器的PCB图如下:(51hei附件中可下载工程文件)


电路原理图如下:




元件清单:


单片机源程序如下:
  1. /*********************************************************************/
  2. //                         remote.c
  3. //                       学习型遥控器     
  4. /*********************************************************************/
  5. //使用AT89C52单片机,12MHZ晶振,
  6. //
  7. //#pragma src(E:\remote.asm)
  8. #include "reg51.h"
  9. #include "intrins.h"     //_nop_();延时函数用
  10. //
  11. #define uchar unsigned char
  12. #define uint unsigned int
  13. //
  14. sbit  studylamp=P1^6;        //学习状态指示灯
  15. sbit  lamp=P1^7;             //发射指示灯
  16. sbit  studykey=P3^2;         //学习键(中断口)
  17. sbit  remotein=P3^4;         //遥控信号输入口
  18. sbit  remoteout=P3^5;         // 遥控输出口
  19. sbit  txkey=P1^0   ;           //发射键
  20. //
  21. //
  22. uint i,j,m=255,n,k,s;
  23. uchar idata  remotedata[206];//存肪冲宽度数据用
  24. uint   head;           //存起始位用
  25. uint   remdata;
  26. //
  27. //
  28. ////
  29. /*********1毫秒延时程序**********/
  30. delay1ms(uint t)
  31. {
  32. for(i=0;i<t;i++)
  33.    for(j=0;j<120;j++)
  34.    ;
  35. }
  36. //
  37. //
  38. /***********初始化函数**********/
  39. clearmen()
  40. {
  41. studylamp=0;           //关学习灯
  42. lamp=0;                //关发射指示
  43. remoteout=0;           //关遥控输出
  44. remotein=1;            //
  45. for(i=0;i<206;i++)     //清内存
  46. {remotedata[i]=0x00;}
  47. IE=0x00;
  48. IP=0x01;
  49. TMOD=0x22;             //8位自动重装模式
  50. PCON=0X00;
  51. TH1=0xf3;              //40KHZ初值
  52. TL1=0xf3;
  53. IT0=1;
  54. EX0=1;                //外中断允许
  55. EA=1;                 //开总中断
  56. }
  57. //
  58. //
  59. /**********键功能函数************/
  60. keywork()
  61. {
  62. if(txkey==0)
  63. {
  64.     while(txkey==0);     //等待键释放
  65.     ET1=1;TR1=1;         //发起始位
  66.     for(i=head;i>0;i--){;}
  67.         remoteout=0;ET1=0;TR1=0;
  68.         n=0;
  69.         while(1)
  70.         {
  71.       if(remotedata[n]==0x00){delay1ms(10);break;}//数据为0结束
  72.           for(i=remotedata[n];i>0;i--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
  73.           lamp=~lamp;n++;//偶地址不发脉冲
  74. //
  75.           ET1=1;TR1=1;  //奇地址发调制脉冲
  76.       for(i=remotedata[n];i>0;i--){;}
  77.           remoteout=0;ET1=0;TR1=0;n++;
  78.         }
  79.   }
  80. }
  81. //
  82. //
  83. /***********主函数***************/
  84. main()
  85. {
  86. clearmen();          //初始化
  87. while(1)
  88. {
  89.   keywork();       //按键扫描
  90.   }
  91. }
  92. //
  93. //
  94. /*********40KHZ发生器***********/
  95. //定时中断T1
  96. void time_intt1(void) interrupt 3
  97. {
  98. remoteout=~remoteout;
  99. }
  100. //
  101. //
  102. /***********学习函数 ***********/
  103. //外中断0
  104. void intt0(void) interrupt 0
  105. {
  106. ET1=0;TR1=0;EX0=0;EA=0;
  107. head=0;studylamp=1;lamp=0;
  108. while(studykey==0);           //等待键释放
  109. while(remotein==1);           //等待遥控码输入
  110. head=0;                       //读入起始位
  111. while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();head++;}
  112. n=0;remdata=0x0000;
  113. while(1)
  114.          {
  115.        while(remotein==1){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}
  116.            if(remdata>m)                  //高电平>5毫秒退出
  117.            {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
  118.            remotedata[n]=remdata;n++;     //存高电平脉宽数据
  119.        remdata=0x0000;                  //脉宽计数器清零
  120.            while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}  //低电平计数
  121. ……………………

  122. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


所有资料51hei提供下载:
学习型红外线遥控.rar (9.89 MB, 下载次数: 225)



评分

参与人数 2黑币 +55 收起 理由
高行者 + 5
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:367656 发表于 2018-7-9 09:37 | 只看该作者
学习了,谢谢楼主分享。
回复

使用道具 举报

板凳
ID:340878 发表于 2018-9-24 17:47 | 只看该作者
为什么会有两个原理图啊?
回复

使用道具 举报

地板
ID:419018 发表于 2018-11-16 09:35 | 只看该作者
如果学习多个按键,电路和程序如何修改?
回复

使用道具 举报

5#
ID:462106 发表于 2019-2-14 22:45 来自手机 | 只看该作者
哈哈,非常棒啊!
回复

使用道具 举报

6#
ID:471632 发表于 2019-3-6 10:53 | 只看该作者
这个可是个好东西,昨天晚上刚想这个,今天就找个例子了。
回复

使用道具 举报

7#
ID:494207 发表于 2019-3-19 20:34 | 只看该作者
好东西,值得学习!
回复

使用道具 举报

8#
ID:304839 发表于 2019-3-22 23:55 | 只看该作者

想问一下 怎么烧写到板子上
回复

使用道具 举报

9#
ID:304839 发表于 2019-3-22 23:56 | 只看该作者
18371269426 发表于 2019-3-19 20:34
好东西,值得学习!

想问一下,这个程序怎么烧写进板子
回复

使用道具 举报

10#
ID:499283 发表于 2019-3-27 21:38 | 只看该作者
新海阔天空 发表于 2019-3-22 23:55
想问一下 怎么烧写到板子上

R7不用管的吗??
回复

使用道具 举报

11#
ID:255472 发表于 2019-8-7 18:54 来自手机 | 只看该作者
空调遥控器能用吗?
回复

使用道具 举报

12#
ID:484435 发表于 2019-8-8 19:20 | 只看该作者
谢谢分享
回复

使用道具 举报

13#
ID:636697 发表于 2019-11-25 09:09 | 只看该作者
正在自学当中
回复

使用道具 举报

14#
ID:385168 发表于 2020-1-7 05:54 | 只看该作者
一直在找这方面的资料,谢谢楼主分享。
回复

使用道具 举报

15#
ID:398219 发表于 2020-1-27 16:57 | 只看该作者
谢谢大神分享,把12的晶振程序改11.0592的,可行吗
回复

使用道具 举报

16#
ID:34637 发表于 2020-2-10 23:36 来自手机 | 只看该作者
高手啊!向你学习!
回复

使用道具 举报

17#
ID:305511 发表于 2020-2-11 17:45 | 只看该作者
值得学习,谢谢!
回复

使用道具 举报

18#
ID:517951 发表于 2020-11-15 16:22 | 只看该作者
不错,值得学习。51hei有你更精彩!!
回复

使用道具 举报

19#
ID:95375 发表于 2021-8-16 22:47 | 只看该作者
这个有图有程序真的很好,我先试用一下看能不能用先
回复

使用道具 举报

20#
ID:95375 发表于 2021-8-19 21:33 | 只看该作者
完全按楼主的电路搭了个电路,程序运行大概没问题,就是学习后的波形一是反向了,另一就是有一向的信号没截止吧,都没分开,所以解决这两个问题就能正常使用了,先记录,去试验其它帖子的程序先。

1.jpg (3.02 MB, 下载次数: 36)

搭建的电路

搭建的电路

2.jpg (2.98 MB, 下载次数: 39)

原波形

原波形

3.jpg (2.77 MB, 下载次数: 40)

学习后的波形

学习后的波形
回复

使用道具 举报

21#
ID:95375 发表于 2021-8-19 21:34 | 只看该作者
本帖最后由 liyago 于 2021-8-20 10:58 编辑



占楼

1.jpg (3.02 MB, 下载次数: 42)

搭建的电路

搭建的电路

2.jpg (2.98 MB, 下载次数: 49)

原波形

原波形

3.jpg (2.77 MB, 下载次数: 59)

学习后的波形

学习后的波形
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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