SYN480R模块解码EV1527教程

1. EV1527帧结构
EV1527 每帧数据由同步码和24位的数据码组成,数据码又分为地址码(20位)和按键码(4位)。
以我手头上的433Mhz的EV1527遥控器为例,遥控波形如下。433EV1527遥控波形
bit0:400us高电平+800us低电平
bit1:1ms高电平+200us低电平

  • 同步码(黑色线条部分):高电平400us+低电平9ms。
  • 地址码(橙色线条部分):20个数据位,共24ms。
  • 按键码(红色线条部分):4个数据位,共4.8ms。
    2. 解码原理
    同步码和bit1、bit0的低电平持续时间都不一样。通过定时器计算低电平时间来判断同步码、bit1、bit0。
    3. SYN480R解码代码
    设置一个50us中断一次的定时器,每次中断调用soft_count()函数。
    修改后面的数值就可以在其他不同的模块上用
    #define _start_us_min 160
    #define _start_us_max 200
    #define _num0_us_min 10
    #define _num0_us_max 20
    #define _num1_us_min 0
    #define _num1_us_max 8
    代码注释都非常详细,我就不再废话了。如果有不懂的可以直接问我。

.h文件

#ifndef _SOFT_DECODE_
#define _SOFT_DECODE_

#include "N76E003.h"

#define  uint		unsigned int
#define  uchar	unsigned char
#define  ulong 	unsigned long

//50us
#define _start_us_min	160
#define _start_us_max	200
#define _num0_us_min	10
#define _num0_us_max	20
#define _num1_us_min	0
#define _num1_us_max	8

extern uchar IR_Key;
extern uchar Temp_addrl;
extern uchar Temp_addrh;
extern uchar Address_l;
extern uchar Address_h;

extern uint RF_Value_Cnt;
extern uint release_key;
extern bit IR_OVER;

void soft_count();
void soft_decode();

#endif

.c文件

#include "SOFT_DECODE.h"

sbit RF_Dat = P1^7;			//红外接收引脚

ulong RF_data;
uchar Temp_addrl,Temp_addrh,Address_l,Address_h;//地址码
uchar cntint,IR_Key;				//接收位数据的个数,数据
bit   start_flag=0,IR_OVER;	//检测到码头start_flag置1,反之置0,接收完一组数据后IR_OVER置1,反之清0
bit   Jump_flag;						//电平跳变标志
uint  release_key;					//松手计数
uint  Low;	 								//低电平计数
uint  RF_Value_Cnt;					//长按计数

/**----------------------------------------------------------------------------------------------**
 **函数名  :低电平脉宽测量函数
 **功能说明:计算低电平时间(LOW),50us调用一次
 **----------------------------------------------------------------------------------------------**/  
void soft_count()//接受码计数函数
{
	if(RF_Dat==0)	  //低电平
	{	
		Low++;
		if(Jump_flag)Jump_flag=0;	//Jump_flag由0→1代表 低→高 跳变	
	}
	else if(RF_Dat==1)	  //高电平
	{
		if(!Jump_flag)
		{	
			Jump_flag=1;			//Jump_flag由1→0代表 高→低 跳变
			soft_decode();
			Low=0;
		}
	}
}
/**----------------------------------------------------------------------------------------------**
 **函数名  :解码函数
 **----------------------------------------------------------------------------------------------**/  
void soft_decode()//接受码处理函数
{
//	uchar i;
	if(start_flag==0)
	{
		if(( Low > _start_us_min ) && ( Low < _start_us_max ))			//同步码
		{
			start_flag=1;
			cntint=0;//数据长度
			IR_Key=0;
			RF_data=0;
			LED=1;
		}
		else 
		{
//			LED=!LED;//1khz
			RF_Value_Cnt=0;
//			long_key_flag=0;
			release_key++;
			if(release_key>500)release_key=500;
		}
	}
	else if((start_flag==1)&&(cntint<24))
	{
		if(( Low > _num0_us_min ) && ( Low < _num0_us_max ))			    //数据 0 700us
		{
			RF_data=RF_data<<1;
			cntint++;
		}
		else if(( Low > _num1_us_min ) && ( Low < _num1_us_max ))			//数据 1  120-200us
		{
			RF_data=RF_data<<1;
			RF_data|=1;
			cntint++;
		}
		else 
		{
			start_flag=0;
			cntint=0;
		}
	}

	if(cntint==24)
	{
		release_key=0;
		RF_Value_Cnt++;
		if(RF_Value_Cnt>500)RF_Value_Cnt=500;

		cntint=0;
		start_flag=0;
		IR_Key=RF_data&0x0000000f;	//取4位数据
		Temp_addrl=(RF_data>>4)&0x000000ff; //地址共20位,只取16位。
		Temp_addrh=(RF_data>>12)&0x000000ff;

		IR_OVER=1;		
  }
}

程序下载

  • 26
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: SYN480R是一种用于接收433MHz和315MHz无线信号的参考电路。这种参考电路的设计旨在提供高度可靠和高效率的无线信号接收功能。 该参考电路包括一个高频前置放大器,一个混频器,一个射频放大器和一个数字解调器。高频前置放大器负责接收并放大输入的无线信号,混频器将接收到的高频信号与本地振荡器的频率进行混合,产生中频信号。射频放大器进一步放大中频信号,并将其提供给数字解调器。数字解调器对接收到的信号进行解码和处理,最终将信号转换为数字信号输出。 该参考电路采用了先进的技术和材料,以提高接收的灵敏度和抗干扰能力。它还具有低功耗和高可靠性的特点,适用于各种无线通信应用,如遥控器、安防系统和无线传感器网络等。 SYN480R参考电路还可以根据不同的需求进行定制和优化。它可以根据特定的频率范围进行调整,以适应不同频率的无线信号接收。此外,该参考电路还提供了丰富的接口和控制功能,以便与其他电子设备进行连接和通信。 总而言之,SYN480R参考电路是一种高度可靠和高效率的无线信号接收方案,适用于各种无线通信应用。它的设计和功能使其成为无线通信领域的重要组成部分,并有潜力继续发展和改进。 ### 回答2: Syn480r是一款工作频率为433MHz和315MHz的射频收发模块。它采用了一种高集成度的设计,适用于无线遥控、无线数据传输等应用。 Syn480r的参考电路包括几个重要的元件和部分。首先是天线,它用来接收和发送无线信号。天线应该与模块正确连接,以确保良好的信号传输。 接下来是射频收发模块本身,它是Syn480r的核心部分。模块上有接收和发送的引脚,分别用来接收来自外部设备的无线信号和发送信号给外部设备。在设计参考电路时,这些引脚需要与外部设备正确连接,以实现正常的信号传输和通信。 除此之外,参考电路中还应包含供电电路。Syn480r需要一定的电源供应才能正常工作。因此,参考电路需要包括合适的电源接口,以连接电池或其他电源,确保模块能够获得稳定的电源。 最后,参考电路中还可能包含其他元件,如继电器、滤波电路等。这些元件可以增强模块的功能或优化信号传输的效果。 总之,Syn480r 433MHz和315MHz的参考电路应正确连接天线、射频收发模块和供电电路,并可能包含其他元件来增强功能或优化信号传输效果。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值