搜索
bottom↓
回复: 90

带学习功能的无线遥控解码编码程序315MHzPT2240PT2262PT2272EV1527

  [复制链接]

出0入0汤圆

发表于 2011-2-3 23:26:10 | 显示全部楼层 |阅读模式
大家新年好!我也发一个带学习功能的无线遥控解码编码程序,标题加入315MHzPT2240PT2262PT2272EV1527是为了搜索的需要
遥控接收使用超外差模块,芯片是RX3310A,再生式接收暂时还没有测试,不知道是否可以通过

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2011-2-3 23:28:03 | 显示全部楼层
/*****************************************************
CodeWizardAVR V1.25.9 Professional
Chip type           : ATmega48V
Clock frequency     : 7.372800 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 128
*****************************************************/
#include <mega48.h>
#define lck1   10                       //lck1*4=lck4
#define lck4   40                       //数据位H和L电平只和 lck4*wucha4<255
#define wucha1  2                       //lck1的允许正负误差  
#define wucha4  8                       //wucha1*4=wucha4
#define in_1   PINC.0==1                //定义遥控接收端口
#define in_0   PINC.0==0
#define k_1    PINC.1==1
#define k_0    PINC.1==0

unsigned int  time_init;
unsigned char time, time_h, time_l, data0, data1, data2, n, jishu, biaoji, linshi;
unsigned char eeprom e_data0, e_data1, e_data2;

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
  if(in_1) {if(jishu<5) jishu++;} else {if(jishu>0) jishu--;}  //积分检测 jishu<lck1-wucha1
  if(jishu==5) biaoji=1;                //上升沿判断
  if(jishu==0) biaoji=0;                //下降沿判断
  if(time<255) time++;
  if(time_init<65535) time_init++;
}

void main(void)
{  
  DDRC=252;  PORTC=255;                 //C0接收信号 C1记忆按键 C2点亮LED
  UCSR0B=8; UCSR0C=0x06; UBRR0L=3;      //串口初始化/监视辅助语句
  TCCR0A=0; TCCR0B=1; TIMSK0=1;         //时钟1分频/溢出中断使能 255/7.3728=34.6us中断一次
  SREG|=128;                            //全局中断使能         
  
  while (1)
  {  
    while(biaoji==0);                   //等待上升沿
    while(biaoji==1);                   //等待下降沿
    time_init=0;                        //同步信号L电平计时复位
    while(biaoji==0);                   //等待上升沿
   
    time=0; time_h=0; time_l=0;         //时间清零
    data0=0; data1=0; data2=0;          //数据清零
   
    if(time_init>(lck1-wucha1)*31 && time_init<(lck1+wucha1)*31)
    {      
      for(n=0; n<24; n++)
      {
        while(biaoji==1);               //等待下降沿
        time_h=time;                    //记录高电平的持续时间  
        time=0;  
        //UDR0=time_h;                  //辅助语句/通过串口输出H电平的时间值   
        while(biaoji==0);               //等待上升沿
        time_l=time;                    //记录低电平的持续时间
        time=0;
        //UDR0=time_l;                  //辅助语句/通过串口输出L电平的时间值   
         
        linshi=time_h+time_l;
         
        if(time_h==time_l || time_h>lck4 || time_l>lck4) break;  //这条语句和下面那条语句要分先后
        if(linshi>lck4+wucha4 || linshi<lck4-wucha4) break;

        if(time_h>time_l)               //如果数据位是1则更新记录/实际应用时建议再检测1和0的H和L电平的宽度
        {
          if(n<16) {if(n<8) data0+=1<<(7-n); else data1+=1<<(15-n);} else data2+=1<<(23-n);
        }
      }
    }
    if(data0==e_data0 || data1==e_data1)                //遥控点亮LED测试
    {
      if(data2==e_data2+4) PORTC.2=1;
      if(data2==e_data2+8) PORTC.2=0;
    }
    if(k_0 && n==24)                                    //记忆数据/第三个数据取高4位/低4位是按键位
    {
      e_data0=data0; e_data1=data1; e_data2=data2&240;
      while(k_0);                                       //等待按键松开/防止EEPROM被反复擦写
    }   
  }
}

出0入0汤圆

发表于 2011-2-3 23:30:21 | 显示全部楼层
顶起.

出0入0汤圆

 楼主| 发表于 2011-2-3 23:42:33 | 显示全部楼层
上个图,遥控器也是使用ATTiny13模拟PT2240的


(原文件名:SDC128750.jpg)

出0入0汤圆

 楼主| 发表于 2011-2-3 23:46:56 | 显示全部楼层
这个程序带串口监控功能,如果大家在调试时有疑问的话,可以通过串口输出数据到电脑上以便分析使用

出0入0汤圆

 楼主| 发表于 2011-2-3 23:51:58 | 显示全部楼层
if(data0==e_data0 || data1==e_data1)                //遥控点亮LED测试
    {
      if(data2==e_data2+4) PORTC.2=1;
      if(data2==e_data2+8) PORTC.2=0;

这里的 4 8 也可以是 1 2 它们分别代表4个遥控按键

出0入0汤圆

 楼主| 发表于 2011-2-4 09:33:05 | 显示全部楼层
下面这2个是 EV1527 和 PT2240 资料,它们是完全兼容的

点击此处下载 ourdev_614581YR0JBG.pdf(文件大小:335K) (原文件名:EV1527 PT2240.pdf)
点击此处下载 ourdev_614582ANNGLJ.pdf(文件大小:280K) (原文件名:PT2240.pdf)

出0入0汤圆

 楼主| 发表于 2011-2-4 09:50:44 | 显示全部楼层
/*****************************************************
CodeWizardAVR V1.25.9 Professional
Chip type           : ATtiny13
Clock frequency     : 1.200000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16   
模拟EV1527(PT2240),它的原理是:先输出一个同步位,再依次输出3个字节(24位)的数据,循环
同步位:一个lck高电平和31个lck低电平
数据位:1就是3个lck高电平和1个lck低电平。0就是1个lck高电平和3个lck低电平
高电平就是遥控器发射315MHz的电波,低电平就是停止发射
*****************************************************/

#include <tiny13.h>
#include <delay.h>

#define lck 400                            //400微妙
#define io_1  PORTB.0=1;
#define io_0  PORTB.0=0;

unsigned char data0 = 0b********;          //20位ID码+4位按键码
unsigned char data1 = 0b********;
unsigned char data2 = 0b****0000;

void txd_out(unsigned char id)
{
  unsigned char n=128;
  while(n)
  {
    if(id&n)
    {
      io_1; delay_us(lck*3); io_0; delay_us(lck);
    }
    else
    {
      io_1; delay_us(lck); io_0; delay_us(lck*3);
    }
    n/=2;
  }
}

void txd_init(void)
{
  io_1; delay_us(lck); io_0; delay_us(lck*31);
}

void main(void)
{         
  PORTB.0=0;
  DDRB.0 =1;
  DDRB.1=0;
  DDRB.2=0;
  while (1)
  {
    if(PINB.1==1 && PINB.2==1) while(1);  
    if(PINB.1) { txd_init(); txd_out(data0); txd_out(data1); txd_out(data2+4); } //开
    if(PINB.2) { txd_init(); txd_out(data0); txd_out(data1); txd_out(data2+8); } //锁
  }   
}

出0入0汤圆

发表于 2011-2-4 21:35:30 | 显示全部楼层
标注的很详细,谢谢

出0入0汤圆

发表于 2011-2-5 08:56:24 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-2-12 20:10:25 | 显示全部楼层
这个是“接收解码”和“编码发射”一体的程序,稍后上图

点击此处下载 ourdev_615661ORSWOV.rar(文件大小:55K) (原文件名:M48无线遥控发射接收5110LCD显示.rar)

出0入0汤圆

 楼主| 发表于 2011-2-12 20:34:09 | 显示全部楼层
这个是待机图,系统没有接收到信号,接收和发射的高频部分都是使用现成的电路


(原文件名:SDC12885.JPG)

这个是系统已经接收到了信号,中间是20(24)位ID码


(原文件名:SDC12888.JPG)

这个是按键按下后,系统正在发射信号


(原文件名:SDC12889.JPG)

出0入0汤圆

发表于 2011-2-13 08:43:30 | 显示全部楼层
不错,记号

出0入0汤圆

发表于 2011-2-13 20:56:53 | 显示全部楼层
回复【11楼】panxiaoyi 啊艺
这个是待机图,系统没有接收到信号,接收和发射的高频部分都是使用现成的电路


(原文件名:sdc12885.jpg)
引用图片
这个是系统已经接收到了信号,中间是20(24)位id码


(原文件名:sdc12888.jpg)
<a class=tt16 onclick="fnquickimagequote(this,'......
-----------------------------------------------------------------------

我想用如下的接收头,能否帮改为89s52上面用的程序呀?谢谢!
<center>
(原文件名:315MHZ超再生接收模块.gif)


(原文件名:DFS1.jpg)


(原文件名:DFS2.jpg)

出0入0汤圆

发表于 2011-2-13 22:27:47 | 显示全部楼层
RX3310A

出0入0汤圆

 楼主| 发表于 2011-2-13 23:29:57 | 显示全部楼层
你的那个是超再生接收头,由于我手上没有超再生接收头,所以没有测试过它是否可以通过,估计是可以通过的,因为我对这个程序是反复论证和测试过的(包括好几辆汽车)。51系列单片机比AVR慢很多,所以,你要移植到51的话,时钟就要比较高,大概50MHz以上才比较好办,只要你把中断时间设置为34.6us中断一次,那么,其他的语句就不用做太多的修改了

出0入0汤圆

发表于 2011-2-14 07:48:05 | 显示全部楼层
MARK下!

出0入0汤圆

发表于 2011-2-14 10:18:51 | 显示全部楼层
作个记号。

出0入0汤圆

发表于 2011-2-14 14:19:24 | 显示全部楼层
谢谢楼主,先马克。

出0入0汤圆

发表于 2011-2-14 16:57:46 | 显示全部楼层
好东西^_^

出0入0汤圆

发表于 2011-2-14 17:35:25 | 显示全部楼层
学习功能是啥意思

出0入0汤圆

发表于 2011-2-15 08:27:43 | 显示全部楼层
回复【20楼】oldfang 老方
学习功能是啥意思
-----------------------------------------------------------------------

就是配对的意思,万一你的一个遥控器丢了,用另外一个可以通过楼主所说的学习功能来学习一下,然后这个遥控器对应这个接收机就可以使用了,否则不能用,不像那种2262,2272的只要你地址线焊的一样拿起来就能用!

出0入0汤圆

发表于 2011-2-15 09:05:04 | 显示全部楼层
回复【21楼】yanwuxu
-----------------------------------------------------------------------

哦了解了。
我还以为是2272那种焊地址线的,遥控可以自己搜寻地址呢,到时候一个智能遥控开N个不同地址的2272的接收机!

出0入0汤圆

 楼主| 发表于 2011-2-22 04:14:40 | 显示全部楼层
测试过了,超再生、超外差都可以顺利通过,而且遥控距离也比较理想(遥控电压不同,距离也不同)

下面3个从左到右分别是(零售价):5元的超再生(LM358)、10元的超外差(RX3310A)、15元的超外差(LM358、31161)


(原文件名:SDC128930.jpg)


(原文件名:SDC128940.jpg)

出0入0汤圆

发表于 2011-2-22 08:12:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-22 08:35:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-22 08:50:36 | 显示全部楼层
RX3310A

出0入0汤圆

发表于 2011-2-26 20:24:43 | 显示全部楼层
谢谢楼主 ,很详细

出0入0汤圆

发表于 2011-2-26 21:34:00 | 显示全部楼层
Mark...........................

出0入0汤圆

发表于 2011-2-28 10:15:20 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-2-28 13:32:01 | 显示全部楼层
忘记说了,上面的串口输出的波特率是115200

出0入0汤圆

 楼主| 发表于 2011-2-28 13:41:48 | 显示全部楼层
另外请教一下懂高频的朋友,我23楼那2个超外差(10元的超外差(RX3310A)、15元的超外差(LM358、31161))模块,它们各有什么优缺点?还有,我感觉超再生也挺好用的,而且价格特便宜

出0入0汤圆

发表于 2011-3-4 11:15:03 | 显示全部楼层
我想问一下楼主能不能移植到PIC16F630里?

出0入0汤圆

发表于 2011-4-19 17:59:19 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-4-19 19:04:03 | 显示全部楼层
楼主的试验板很犀利呀。帅呆了,酷傻了。

出0入0汤圆

发表于 2011-5-13 12:56:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-24 21:54:29 | 显示全部楼层
回复【34楼】HYLG
-----------------------------------------------------------------------

哈哈,故意做旧哈

出0入0汤圆

发表于 2011-6-24 11:06:51 | 显示全部楼层
很好!

出0入0汤圆

发表于 2011-7-2 16:20:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-4 22:30:02 | 显示全部楼层
顶了,感谢分享啊!

出0入0汤圆

发表于 2011-7-6 23:39:20 | 显示全部楼层
感谢分享·····

出0入0汤圆

发表于 2011-7-8 10:08:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-11 16:31:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-12 13:26:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-12 21:46:43 | 显示全部楼层
好帖

出0入0汤圆

发表于 2012-3-1 10:45:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-1 12:26:20 | 显示全部楼层
回复【16楼】plc_avr  烈火狂龙
mark下!
-----------------------------------------------------------------------

出0入0汤圆

发表于 2012-3-1 22:55:41 | 显示全部楼层
看上去不错,可以尝试一下,无线信号的处理.

出0入0汤圆

发表于 2012-5-12 20:08:40 | 显示全部楼层
记下来,以后慢慢学习吧

出0入0汤圆

发表于 2012-5-30 01:36:04 | 显示全部楼层

出0入0汤圆

发表于 2012-5-31 11:46:17 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2012-7-23 20:13:05 | 显示全部楼层
记号MASK

出0入0汤圆

发表于 2012-11-2 09:53:53 | 显示全部楼层
据说很好,mark一下下……

出0入0汤圆

发表于 2012-11-3 12:04:49 | 显示全部楼层
哈哈  挺好youqu

出0入0汤圆

发表于 2012-12-1 13:10:42 来自手机 | 显示全部楼层
很好,找不到7m多的晶体

出0入0汤圆

发表于 2012-12-1 17:01:21 来自手机 | 显示全部楼层
2262发射的能用这个程序吗?

出0入0汤圆

发表于 2012-12-2 08:47:57 | 显示全部楼层
2262地址还有悬空状态,能行吗?

出0入0汤圆

发表于 2012-12-2 21:22:19 | 显示全部楼层
呵呵,留个记号。

出0入0汤圆

发表于 2012-12-31 22:22:26 | 显示全部楼层
biaojixia

出0入0汤圆

发表于 2013-3-8 18:14:27 | 显示全部楼层
楼主好,带学习功能的无线遥控解码编码程序,有没有原理图

出0入0汤圆

发表于 2013-3-18 15:29:35 | 显示全部楼层
marl!学习!

出0入0汤圆

发表于 2013-3-18 20:25:55 | 显示全部楼层
很详细,谢谢!

出0入0汤圆

发表于 2013-4-23 14:46:51 | 显示全部楼层
看帖回帖才能涨分呀。

出0入0汤圆

发表于 2013-4-23 14:48:20 | 显示全部楼层
    mark!!

出0入0汤圆

发表于 2013-5-13 23:44:21 | 显示全部楼层
顶起来

出0入0汤圆

发表于 2013-6-15 16:03:58 | 显示全部楼层
MARK~~~~~~

出0入0汤圆

发表于 2013-7-2 12:07:14 | 显示全部楼层
mark!!!

出0入0汤圆

发表于 2013-7-10 01:18:52 | 显示全部楼层
MARK...

出0入0汤圆

发表于 2013-7-25 15:35:49 | 显示全部楼层
超外差无线接收,我们用的现成的模块,遥控器比较头疼,8个键,用的还比较频繁,23A12V电池扛不住啊!

出0入0汤圆

发表于 2013-10-3 12:41:25 | 显示全部楼层
mark         

出0入0汤圆

发表于 2013-10-3 13:40:41 来自手机 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2013-12-15 10:14:04 | 显示全部楼层
mark······

出0入0汤圆

发表于 2013-12-25 22:31:06 | 显示全部楼层
是吗,最近用到,看看

出0入0汤圆

发表于 2013-12-26 09:40:58 | 显示全部楼层
果断学习

出0入0汤圆

发表于 2014-5-16 10:44:38 | 显示全部楼层
Mark
标记一下

出0入0汤圆

发表于 2014-5-17 18:06:09 | 显示全部楼层
mark                  

出0入0汤圆

发表于 2014-5-18 11:49:07 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-10-5 08:49:22 | 显示全部楼层
panxiaoyi 发表于 2011-2-12 20:10
这个是“接收解码”和“编码发射”一体的程序,稍后上图

点击此处下载 ourdev_615661ORSWOV.rar(文件大小: ...

测度通过没了嘛

出0入0汤圆

发表于 2014-10-5 09:02:45 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-1-12 22:48:58 | 显示全部楼层
正需要这个,明天试试。

出0入0汤圆

发表于 2015-1-12 22:57:28 | 显示全部楼层
还可以,不过太简单

出0入0汤圆

发表于 2015-3-31 13:41:29 | 显示全部楼层
Mark,正在研究433.

出0入0汤圆

发表于 2015-5-18 16:18:47 | 显示全部楼层
楼主不行啊,我用STM8S105,定时器 大概 35us左右中断一次,但好象没有效果啊,

出0入0汤圆

发表于 2016-9-25 13:24:36 | 显示全部楼层
哈哈哈,感谢楼主分享。

出0入4汤圆

发表于 2016-9-25 15:21:09 | 显示全部楼层
带学习功能的无线遥控解码编码程序315MHzPT2240PT2262PT2272EV1527    mark

出0入0汤圆

发表于 2018-4-11 10:56:17 | 显示全部楼层
作个标记,慢慢研究

出0入0汤圆

发表于 2018-5-25 14:20:18 | 显示全部楼层
谢谢楼主的分享,学习了!

出0入0汤圆

发表于 2018-5-25 20:20:21 | 显示全部楼层
mark  留着以后用!

出0入0汤圆

发表于 2018-5-29 08:56:34 | 显示全部楼层
不错,先收藏

出0入0汤圆

发表于 2018-6-3 15:28:40 | 显示全部楼层
正在找这样的芯片,谢谢

出0入0汤圆

发表于 2018-8-27 16:48:42 | 显示全部楼层
最近在集中学习433MHz和315MHz无线收发的知识,谢谢楼主!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 13:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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