哪位大侠有EV1527 用52单片机解码程序

哪位大侠有EV1527 用52单片机解码程序,第1张

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

sbit key1=P3^0

sbit led=P3^4

sbit in=P3^5

sbit out=P3^3

bit flang

uchar D[24]

ulong DATA=0//记录数据

void delay() //误差 0us延时101us

{

uchar a,b

for(b=93b>0b--)

// for(a=5a>0a--)

}

void decode()

{

uchar j

uint i

/* i=0

while(!in)

{

delay()

i++

if(i>8800)

return

} */

// if(i>7200)

// {

// led=1

for(j=0j<24j++)

{

i=0

while(!in) //判断低电平(窄的为1,宽的为0)

{

delay()

i++

if(i>70)

return //限时解码

}

if(i>20)D[j]=0

else D[j]=1

}

flang=1

}

//}

void main()

{

led=0

while(1)

{

decode()

if(flang==1)

{

flang=0

if(D[20]==0)led=1

if(D[21]==0)led=0

if(D[22]==0)led=1

if(D[23]==0)led=0

}

}

}

我建议你不要用单片机解码,我刚刚搞的,编码芯片是EV1527,我已经用逻辑分析仪分解出信号调制发射之前的原始信号,就是同步码加地址码之类的,很纯的。但用逻辑分析仪分析超再生接收模块的输出口信号时,干扰信号不断,单片机即使能解码也需要灰常灰常强的编程。

单片机解码还有个问题,即使解码了,还得把地址码存EEPROM,以后接收信号以对比,我都准备换TDH6300芯片解码了,还带学习功能的。

今晚回去把超再生接收模块的供电电源屏蔽下,看是否是电源干扰。有点可确定的,工业上有用单片机解码的,我的超再生接收模块就是从家里坏了的报警器主机上拆的,上面就没用解码芯片直接用的是单片机口,此单片机伟STC抗干扰系列的。但我逻辑分析仪测试的时候没用单片机供电,用的一个独立电源供电的,照理不是单片机影响的,此模块也是上面拆的,照理也不会有问题。

最后说下:如果保证信号相对较纯的时候,我有个想法(未证实),用单片机检测高低电平脉冲宽度大致比例,接近芯片手册上的介绍,然后将各位地址存入EEPROM,下次与新收到的地址比较

**********************************************************************************************************************

最新实践已经成功学习并识别不同的PT2262,EV1527即将可以修改即可,EV1527和PT2262脉冲数一样,EV1527是24+1个脉冲,PT2262是12*2+1个脉冲,以下是程序核心原理:根据同步码的低电平时间,在任何一个下降沿开外部中断,并定时(时间为同步码低电平时间一半再少点),定时器中断产生时,查看这段时间里下降沿次数,如大于0证明不是同步码低电平,为0继续,假设进入同步码低电平时间段(因为有杂波存在低电平时间较长),在第一个高脉冲下降沿的时候开定时,定时时间取全部脉冲时间+同步码低电平时间一半,定时中断结束时查看这段时间里的脉冲个数,如果为上面提到的25则进入正式阶段。利用定时器查看每两个高脉冲的宽度,取定时器TH0里面的值,一般宽脉冲为3或4,低脉冲为1,通过除法比值确定前后两个脉冲的比值(此法容错高)。因为一个程序要识别PT2262即EV1527,所以中间要先加识别脉冲是PT2262还是EV1527的,PT2262前8个信号即8*2个脉冲不会出现先宽后窄的脉冲的,如出现即为EV1527,PT2262最后4个信号即4*2个脉冲里每两个是相等,如不等即为EV1527,当然如都相等也不一定是PT2262(EV1527四个按键全部没按情况下也是一样,但一般不出现此情况,忽略掉)。里面经常要用到某个地址作为标示,如30H内存处,某种情况值为0,另一种情况为1,然后再程序通过检测该值,决定走那种程序,好了以上全部是自己查阅各种资料及实践所得的经验,为了帮助广大的学友少走弯路,或许有其他的好办法,就靠大家的悟性了,我因为有虚拟逻辑分析仪,所以信号容易分析。

*********************************************************************************************************

最新已经解码成功,单片机是STC89C52,我用单片机可以同时解码EV1527和PT2262芯片,也把代码单独分开成两个独立的,带学习功能,代码里注释的很清楚,代码已完整,根据自己的硬件更改相应的IO设置就可以直接使用,新浪共享网站可以查询PT2262.TXT,EV1527.TXT,CODE.TXT都能搜到

不用,主频433MHz与315MHz是1527芯片频率。

编码芯片EV1527:

有两种解码方法:

利用解码芯片TDH6300硬件解码、采用单片机软件解码。

EV1527是一片由CMOS设计制造的可预烧内码的学习码编码芯片,由软件解码。

内码共有20位元可预烧100万组内码组合,大大降低了使用编码上重复的机率。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11490258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存