只需一步,快速开始
热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计
可以看出,每次按铃,由同步码引导的数据被发送了8次。
测量得到窄脉冲=346us,长宽脉冲=10.732ms,宽脉冲=1.04ms
EV1527的发码格式:
首先发送一个同步码:窄脉冲+长宽脉冲
接着发送20位地址码:
接着发送4位数据码:
解读一下逻辑分析仪测量的数据:
经过实际解读,发现,它和资料上介绍的不太一样。实际硬件的发码方式是同样的数据发8遍,每一遍由同步码,地址码20位,数据码4位组成,而且不重复,也就是0bit,就用窄+宽表示,1bit,用宽+窄表示,没有地址悬空码F。
解读一下这些信息:
其中绿色的是C0---C19共20位地址码:0100 1011 0001 1010 0110
由于发送数据的时候是从最低位开始发送的,因此真正的地址码应该反过来看,也就是:01100101100011010010 就是十六进制数字 Addr=0x658D2;
黄色是D0,D1,D2,D3,共4位数据码: 0001,反过来就是1000就是0x08;
每按下一次电铃按键,相同的信息发送8次,这就是实际硬件的输出信息。
下面使用单片机来模拟信号的发送。
超再生发送模块的1接P3.2,2接Vcc,3接地,连接超再生315M发射模块
使用STC15W4K56S4芯片,11.0592MHz
地址和数据均从最低位开始发送。
编写接收程序:
规定EV1527一共发送8次数据,接收其中的5次,如果有3次相同,就认为收到了正确的数据。
一定要注意,发送时,无论地址还是数据都是从最低位开始发送的,因此,接收的时候,需要将它们反序,才能得到正确的地址码和数据码。
例如这里的地址码是 0x0658D2
十六进制: 6 5 8 D 2
二进制: 0110 0101 1000 1101 0010
接着发送数据码:0x02
二进制: 0010
接收时将它们从一个unsigned long 型变量的最高位依次右移,得到:
十六进制: 2 6 5 8 D 2 0 0
二进制: 0010 0110 0101 1000 1101 0010 0000 0000
数据码是橙色的,右移28位得到。
地址码,首先屏蔽掉最高的4位,与0x0FFFFFFFL做与,长整形要写L,然后右移8位得到。
接收使用STC15W4K56S4,硬件连接使用P3.2,也就是中断INT0。接收模块使用超外差(超再生)接收模块。
查看全部评分
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
手机版|小黑屋|51黑电子论坛 | 管理员QQ:125739409;技术交流QQ群281945664
Powered by 单片机教程网