找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7034|回复: 6
收起左侧

51单片机315M遥控发射器

  [复制链接]
ID:163099 发表于 2017-6-6 15:40 | 显示全部楼层 |阅读模式
       本设计使用单片机和315遥控模块,配合红外感应模块实现防盗或者婴儿睡觉监控等用处(发射端部分)       随着电子技术的发展,日常的控制电路日益增多,各种家电都配备遥控器,315射频遥控技术的无方向性备受青睐,用单片机整合各遥控器是一件令人向往的事情,如果再加上各式传感器,智能自动控制便不是设想,触手可及。

微信图片_20170606151656.jpg

单片机选用stc11f04e,315发射接收模块,红外感应模块
微信图片_20170606152203.jpg

焊接成品图  

  1. #include "reg52.h"//头文件
  2.    #include "intrins.h"//头文件
  3.   #define       RcOsc     910                                //脉冲总宽
  4. #define uchar unsigned char//宏定义
  5. #define uint unsigned int//宏定义
  6. sbit REM=P1^5;//遥控器信号输出,(数据输出)
  7. sbit led=P1^6;
  8. sbit key=P3^7;
  9. sbit REI=P3^3;//红外输入信号


  10. void Delay12us(uint z)   //误差 -0.651041666667us
  11. {
  12.     uchar a,b;
  13.         for(;z>0;z--)
  14.         {  for(b=9;b>0;b--)
  15.         {
  16.         for(a=2;a>0;a--);
  17.                 }
  18. }
  19. }



  20. void TxSycn()//同步头
  21. {
  22. REM = 1;                                            //同步数据
  23. Delay12us(RcOsc / 16 * 4/12);
  24. REM = 0;  
  25. Delay12us(RcOsc / 16 * 124 /12);
  26. }

  27. void TxByte(uchar dat)
  28. {
  29.      uchar i;

  30.      for (i = 0; i < 8; i++)
  31.      {
  32.        if (dat & 0x01)                                    //发送高位                           
  33.         {
  34.          REM = 1;                                          //高位数据
  35.          Delay12us(RcOsc / 16 * 12/12);
  36.          REM = 0;  
  37.          Delay12us(RcOsc / 16 * 4/12);
  38.         }

  39.        else                                                //发送低位                                    
  40.         {
  41.          REM = 1;                                          //低位数据
  42.          Delay12us(RcOsc / 16 * 4/12);
  43.          REM = 0;
  44.          Delay12us(RcOsc / 16 * 12/12);                                         
  45.         }

  46.        dat >>= 1;                                         //右移一位
  47.      }
  48. }




  49. void TxData(uchar dat)
  50. {   
  51.      uchar buff[3] = {0xfc, 0x53, 0x03};
  52.      uchar i, j;

  53.      buff[2] &= 0x0f;                                      //清除按键
  54.      buff[2] |= dat;                                      //加载按键      

  55.      for (j = 0; j < 4; j++)                               //每帆四次
  56.      {
  57.        TxSycn();                                           //送同步头

  58.        for (i = 0; i < 3; i++)                    
  59.         {
  60.          TxByte(buff[i]);                                  //发送数据     
  61.         }
  62.      }
  63. }



  64. void main()
  65. {

  66. while(1)



  67. {

  68. if(key==0)
  69. {
  70. Delay12us(20);
  71. while(key==0)
  72. { led=0;
  73. TxData(0x30); //待发送的数据?


  74. }
  75. Delay12us(500);
  76. led=1;
  77. }
  78. if(REI==0)
  79. {
  80. Delay12us(20);
  81. while(REI==0)
  82. { led=0;
  83. TxData(0x30); //待发送的数据?


  84. }
  85. Delay12us(500);
  86. led=1;
  87. }
  88. }
  89. }
复制代码

接收部分未完成,待续

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-6-6 16:30 | 显示全部楼层
这个确实很方便,315兆的可以穿墙控制距离也远。期待楼主的接受部分完成 好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:275208 发表于 2018-1-12 16:40 | 显示全部楼层
大神,接收部分弄好了吗?
回复

使用道具 举报

ID:87193 发表于 2018-1-18 17:01 | 显示全部楼层
接收部分完成了会分享出来吗
回复

使用道具 举报

ID:333513 发表于 2018-5-19 17:42 | 显示全部楼层
接收部分可以分享出来吗,急需
回复

使用道具 举报

ID:276761 发表于 2018-5-19 18:34 | 显示全部楼层
我也来学习下
回复

使用道具 举报

ID:483019 发表于 2019-3-14 22:29 | 显示全部楼层
admin 发表于 2017-6-6 16:30
这个确实很方便,315兆的可以穿墙控制距离也远。期待楼主的接受部分完成 好资料,51黑有你更精彩!!!

我用这个发射模块和接收模块,加上Arduino nano,实现了我家晾衣杆编码的解读与控制。现在,想用单片机来实现控制,却不知道如何入手。我已经解析出晾衣杆遥控器的控制编码,是一串数组。请赐教,谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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