这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 通讯及无线技术» 单片机如何对ISM工频的无线电接收模块进行解码?

共6条 1/1 1 跳转至

单片机如何对ISM工频的无线电接收模块进行解码?

工程师
2020-10-15 21:07:01 打赏

最近在学习无线的单片机解码。
示波器测试 :有的遥控器是24位脉冲 ,有是28位脉冲 有的遥控器是32位脉冲 汽车遥控器的脉冲数更多。 同步头也不同

使用2个接收模块 测出来的波形也不相同 有一个MPS单片机的遥控器测出来相位相反 其他ev1527 2262 其他sop14单片机做的测出来相位相同。


这2个接收模块分别是PT4302 和SYN480 芯片的波形图:

image.png




关键词: 单片机 无线电 接收某款 工频 ISM

工程师
2020-10-15 21:26:11 打赏
2楼

用第三个接收模块 (τ 宝买的超再生)却根本接收不到这款的****信号,其它的接收都正常,包括汽车遥控,滚动码,三个波形都一致。滚动码的脉冲多达95个。


工程师
2020-10-15 21:31:55 打赏
3楼

这份是从网上找的,程序中没有同步码解码 ,楼主可以参考一下!

#include //库文件
#include< stdio.h>
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型

uint addr,key;
uchar cntint;//外部中断0计数


void eint0(void) interrupt 0//外部中断0
{
static uint tempaddr;//接收地址缓存
static uint tempkey;//接收数据缓存
uint timecnt;
timecnt=TH0*256+TL0;
TH0=0;
TL0=0;
if(cntint<16)//接收地址码
{
tempaddr=tempaddr<<1;//将接收的到最低位移到最高位
if(timecnt>1000)//210为宽脉冲与低脉冲界线,当振荡电阻为1M时,窄脉冲为110uS,宽脉冲为320uS
{
tempaddr|=1;//宽脉冲为1
}
cntint++;//中断次数加1
}
else if(cntint<24)//接收数据码
{
tempkey=tempkey<<1;
if(timecnt>1000)
{
tempkey|=1;
}
cntint++;
}
else//cntint大于24也就是中断了25次时,关闭外部中断0,等待同步码
{
TMOD&=0xf0;//设定时器0为定时方式
TMOD|=0x01;
TH0=0xf9;
TL0=0x66;
cntint=0;
EX0=0;//关外部中断0
addr=tempaddr;
key=tempkey;
tempaddr=0;
tempkey=0;
}

}
void timer0(void) interrupt 1//定时器0中断,只有初始化时,空闲时和同步码到来时才中断
{
TMOD&=0xf0;//将定时器0的工作方式设为门控定时,用以检测脉宽。
TMOD|=0x09;
cntint=0;//外部中断0中断次数设为0
TH0=0;//设定时器0定时初值为0
TL0=0;
EX0=1;//允许外部中断0
IE0=0;//清除外部中断0标志
}
void main(void)
{
// void sendd(unsigned int intnum);
unsigned int i;
TMOD=0x21;//设定定时器0和定时器1,定时器1用来驱动串口
TH0=0xf9;//设定定时器的初始值,这个值必小于同步码
TL0=0x66;
// TH1=243;//12M晶振时,串口波特率为2400
// TL1=243;
TH1=0xdc;//11.0592M晶振时,串口波特率为9600
TL1=0xdc;
SCON=0x50;//设定串口工作方式
TI=1;//要用printf就将其设为1
EA=1;//开所有中断
ET0=1;//开定时器0中断
EX0=0;//关外部中断0,在Timer0中断里面将其打开
IT0=1;//外部中断0设为跳变触发
TR0=1;//定时器0启动
TR1=1;//定时器1启动
while(1)
{
// P2=key;
// P0=key>>8;
printf("%u\n",addr);//输出解码地址
printf("%u\n\n",key);//输出解码数据
for(i=0;i<65500;i++);//这个用来防止串口不同步
}

}


/********************************************************************
结束
*********************************************************************/


工程师
2020-10-15 22:04:21 打赏
4楼

感谢您的分享


工程师
2020-10-15 22:22:57 打赏
5楼

很复杂看起来


工程师
2020-10-18 22:50:42 打赏
6楼

代码写的很不错


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]