PT2264解码心得
最近闲暇时间在琢磨无线RF解码程序,正好在数码之家论坛中翻出大佬的解码程序(http://bbs.mydigit.cn/read.php?tid=245739),于是乎,慢慢学习2264解码程序,正好用上之前买的逻辑分析仪,带看波形,带看程序,琢磨了两天,程序已可完美解码,在此来总结下心得。
一、管脚如下图所示:
OSC1和OSC2为振荡电阻管脚,常用有4.7M、3.3M等,A0-A7位2264地址位管脚,可设置为悬空(F)、高(1)、低(0)三态;D0-D3为四位数据位;
振荡频率 f=2x1000x16/Rosc(KΩ) ,Rosc为振荡电阻阻值,单位为KΩ;例:Rosc=4.7MΩ;则,f=6.8KHz,则振荡周期为Trosc=1/f=147us;
二、PT2264编码格式如下:
1.位值格式(1、0、F)(长脉冲(3A)是短脉冲(A)的3倍)
窄高+宽低+窄高+宽低=0 宽高+窄低+宽高+窄低=1 窄高+宽低+宽高+窄低=F
2.时序图
同步码低电平(L)是窄脉冲(A)的31倍,即,A=L/31
上图中OSC表示振荡电阻周期 Trosc,则上图时序T=2XTrosc
3.数据结构
三、解码思路
1、首先识别出帧与帧,依据同步码区分开来,同步码低电平时长为31T;
2、再依据识别出的同步码,判断计算出窄电平时间T,则宽电平时间为3T;(判断窄电平思路,窄电平的误差范围为正(T+T/4)负(T-T/4)一个振荡周期A=T/4;宽电平的误差范围为正(T * 3 + T / 2)负(T * 3 - T / 2) 两个振荡周期2A=T/2)
3.依据宽窄电平组合即可解出遥控器码值。
四、程序如下所示,借鉴数码之家各位大佬程序再结合自己理解
1 //自适应频率的2262解码代码 晶振11.0592 2 #include <STC15F2K60S2.H> //STC15F104W头文件 3 #include <intrins.h> //左移右移函数头文件 4 #define uchar unsigned char 5 #define uint unsigned int 6 sbit WuXian_IN =P3^3; //外部中断1,RF模块DATA信号输入管脚 7 sbit OK_LED =P3^0; //解码成功 8 sbit D0=P3^1; //数据位1000 9 sbit D1=P3^2; //数据位0100 10 sbit D2=P3^4; //数据位0010 11 sbit D3=P3^5; //数据位0001 12 void Init() 13 { 14 TMOD = 0x01; //定时器T0,工作模式1,16位定时,不自动重装,TL0、TH0全用 15 TR0=0; //(可位寻址)关闭定时器T0运行 16 // ET0=0;