找回密码
 立即注册

QQ登录

只需一步,快速开始

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

可编程红外遥控模块原理图PCB工程与单片机源码等全套资料下载

  [复制链接]
跳转到指定楼层
楼主
Altium Designer画的可编程红外遥控模块的电路原理图和PCB图如下:(51hei附件中可下载工程文件)




单片机源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. void delay(uchar x);  //x*0.14MS
  6. void delay1(int ms);
  7. void beep();
  8. sbit IRIN = P3^3;         //红外接收器数据线
  9. sbit K1=P1^0;
  10. sbit K2=P1^1;
  11. sbit K3=P1^2;
  12. sbit K4=P1^3;
  13. sbit K5=P1^4;

  14. sbit K6=P0^0;
  15. sbit K7=P0^1;
  16. sbit K8=P0^2;
  17. sbit K9=P0^3;
  18. sbit K10=P0^4;
  19. sbit K11=P0^5;
  20. sbit K12=P0^6;
  21. sbit K13=P0^7;
  22. sbit K14=P2^7;
  23. sbit K15=P2^6;
  24. sbit K16=P2^5;
  25. sbit K17=P2^4;
  26. sbit K18=P2^3;
  27. sbit K19=P2^2;
  28. sbit K20=P2^1;
  29. sbit K21=P2^0;
  30. uchar IRCOM[7];
  31. uchar t1,t2;
  32. main()
  33. {
  34.     IE = 0x84;                 //允许总中断中断,使能 INT1 外部中断
  35.     TCON = 0x10;               //触发方式为脉冲负边沿触发
  36.    IRIN=1;                    //I/O口初始化
  37.   // delay1(10);                 //延时

  38.     while(1)        ;

  39. } //end main
  40. /**********************************************************/
  41. void IR_IN() interrupt 2 using 0
  42. {
  43.   unsigned char j,k,N=0;
  44.      EX1 = 0;   
  45.          delay(15);
  46.          if (IRIN==1)
  47.      { EX1 =1;
  48.            return;
  49.           }
  50.                            //确认IR信号出现
  51.   while (!IRIN)            //等IR变为高电平,跳过9ms的前导低电平信号。
  52.     {delay(1);}

  53. for (j=0;j<4;j++)         //收集四组数据
  54. {
  55.   for (k=0;k<8;k++)        //每组数据有8位
  56.   {
  57.    while (IRIN)            //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
  58.      {delay(1);}
  59.     while (!IRIN)          //等 IR 变为高电平
  60.      {delay(1);}
  61.      while (IRIN)           //计算IR高电平时长
  62.       {
  63.     delay(1);
  64.     N++;           
  65.     if (N>=30)
  66.          { EX1=1;
  67.          return;}                  //0.14ms计数过长自动离开。
  68.       }                        //高电平计数完毕               
  69.      IRCOM[j]=IRCOM[j] >> 1;                  //数据最高位补“0”
  70.      if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}  //数据最高位补“1”
  71.      N=0;
  72.   }
  73. }
  74.    
  75.    if (IRCOM[2]!=~IRCOM[3])
  76.    { EX1=1;
  77.      return; }

  78.    IRCOM[5]=IRCOM[2] & 0x0F;     //取键码的低四位
  79.    IRCOM[6]=IRCOM[2] >> 4;       //右移4次,高四位变为低四位
  80.   // IRCOM[5]=IRCOM[5]+0x30;
  81. //  IRCOM[6]=IRCOM[6]+0x30;

  82. if(IRCOM[5]>9)
  83.     { IRCOM[5]=IRCOM[5]+0x37;}
  84.    else
  85.           IRCOM[5]=IRCOM[5]+0x30;

  86.    if(IRCOM[6]>9)
  87.     { IRCOM[6]=IRCOM[6]+0x37;}
  88.    else
  89.           IRCOM[6]=IRCOM[6]+0x30;
  90.           t1=IRCOM[6];
  91.           t2=IRCOM[5];
  92.           //switch(t1,t2)
  93. //  {
  94. //          case '4','5': BEEP=~BEEP; break;
  95. //          case '4','6': BEEP=1; break;
  96. //          default: break;
  97. //          }
  98. if(IRCOM[6]=='4'&&IRCOM[5]=='5')
  99.           K1=!K1        ;
  100. if(IRCOM[6]=='4'&&IRCOM[5]=='6')
  101.       K2=!K2 ;
  102. if(IRCOM[6]=='4'&&IRCOM[5]=='7')
  103.   K3=!K3 ;
  104. if(IRCOM[6]=='4'&&IRCOM[5]=='4')
  105.      K4=!K4        ;
  106.          if(IRCOM[6]=='4'&&IRCOM[5]=='0')
  107.          K5=!K5        ;
  108. if(IRCOM[6]=='4'&&IRCOM[5]=='3')
  109.   K6=!K6        ;
  110.          if(IRCOM[6]=='0'&&IRCOM[5]=='7')
  111.    K7=!K7        ;
  112. if(IRCOM[6]=='1'&&IRCOM[5]=='5')
  113.            K8=!K8         ;
  114.          if(IRCOM[6]=='0'&&IRCOM[5]=='9')
  115.           K9=!K9         ;
  116. if(IRCOM[6]=='1'&&IRCOM[5]=='6')
  117.             K10=!K10        ;
  118.          if(IRCOM[6]=='1'&&IRCOM[5]=='9')
  119.      K11=!K11        ;
  120. if(IRCOM[6]=='0'&&IRCOM[5]=='D')
  121.     K12=!K12        ;
  122.          if(IRCOM[6]=='0'&&IRCOM[5]=='C')
  123.      K13=!K13        ;
  124. if(IRCOM[6]=='1'&&IRCOM[5]=='8')
  125.               K14=!K14;
  126.          if(IRCOM[6]=='5'&&IRCOM[5]=='E')
  127.    K15=!K15;
  128. if(IRCOM[6]=='0'&&IRCOM[5]=='8')
  129.             K16=!K16;
  130. if(IRCOM[6]=='1'&&IRCOM[5]=='C')
  131.              K17=!K17        ;
  132.   if(IRCOM[6]=='5'&&IRCOM[5]=='A')
  133.       K18=!K18 ;
  134.   if(IRCOM[6]=='4'&&IRCOM[5]=='2')
  135.             K19=!K19;
  136.   if(IRCOM[6]=='5'&&IRCOM[5]=='2')
  137.              K20=!K20;
  138.    if(IRCOM[6]=='4'&&IRCOM[5]=='A')
  139.   K21=!K21;
  140.   EX1 = 1;
  141. }                  

  142. /**********************************************************/
  143. void delay(unsigned char x)    //x*0.14MS
  144. {
  145. unsigned char i;
  146.   while(x--)
  147. {
  148.   for (i = 0; i<13; i++) {}
  149. ……………………

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

【简要说明】
一、 尺寸:54.4mm X35.1mm X   长X宽
二、 主要芯片:STC89c52
三、 工作电压:直流5~12伏;
五、 可通过红外遥控器控制单片机上的输出21路信号。通过按键可设置为信号开关,延迟开关,定时开关。可根据实际需要实现。
六:通过对单片机编程可根据实际需要实现。
七:红外遥控特点:
红外遥控的编码目前广泛使用的是:NEC Protocol  的PWM( 脉冲宽度调制)和Philips
RC-5 Protocol 的PPM(脉冲位置调制)。我们配套的遥控器使用的是NEC 协议,其特征如下:
1 、8 位地址和 8 位指令长度;
2 、地址和命令 2 次传输(确保可靠性)
3 、PWM 脉冲位置调制,以发射红外载波的占空比代表“0”和“1 ”;
4 、载波频率为 38Khz ;
5 、位时间为1.125ms 或2.25ms ;
NEC 码的位定义:一个脉冲对应560us 的连续载波,一个逻辑 1 传输需要 2.25ms (560us脉冲+1680us 低电平),一个逻辑 0 的传输需要1.125ms(560us 脉冲+560us 低电平)。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑1 应该是 560us 低+1680us 高,逻辑 0 应该是 560us 低+560us 高。
NEC 遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个9ms 的低电平和一个4.5ms 的高电平组成,地址码、地址反码、控制码、控制反码均是
8 位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。


所有资料51hei提供下载:
可编程红外遥控模块DXP资料.rar (543.66 KB, 下载次数: 92)
可编程红外遥控模块.zip (857.5 KB, 下载次数: 100)

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

使用道具 举报

沙发
ID:193383 发表于 2018-6-4 15:37 | 只看该作者
好牛逼的样子啊啊。
回复

使用道具 举报

板凳
ID:315554 发表于 2018-6-8 15:28 | 只看该作者
最近正学习IR程序,努力学习中,谢谢资料!
回复

使用道具 举报

地板
ID:344633 发表于 2018-6-12 08:49 | 只看该作者
挺牛的,不知道能干什么用
回复

使用道具 举报

5#
ID:756345 发表于 2020-5-20 10:20 | 只看该作者
挺强的
回复

使用道具 举报

6#
ID:421189 发表于 2020-10-23 17:20 | 只看该作者
跟我想要的资料不符合,PDF资料没有
回复

使用道具 举报

7#
ID:873685 发表于 2021-6-28 19:38 | 只看该作者
你好,请问哪个部分是红外模块啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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