|
发表于 2009-9-8 21:15:22
|
显示全部楼层
PT2272参考解码软件2007-01-06 10:11三、参考解码软件
说明:ADD1,ADD2中为8位地址,DAT0中为4位数据
REMOTE: CLR TR2 ;探头信号检测子程序
CLR RECEIVE ;
MOV DETE_LOOP,#12 ;接收12位编码
REMO0: CLR DETE_T_OVER ;
MOV TH2,#0FEH ;测第1位电平宽度
MOV TL2,#041H ;
SETB TR2 ;
REMO1: JB REM,REMO2 ;等待出现高电平
JB DETE_T_OVER,REMO3 ;限时1500us,超时则认为误码
AJMP REMO1 ;
REMO2: MOV A,TH2 ;测低电平宽度,0FF为宽脉冲,0FE为窄脉冲
CJNE A,#0FFH,REMO4 ;
MOV A,TL2 ;
CLR C ;
CJNE A,#098H,$+3 ;
JNC REMO3 ;电平过宽(超过1150us),退出
CLR C ;
CJNE A,#020H,$+3 ;
JC REMO3 ;电平过窄(小于780us),退出
SETB C ;
AJMP REMO5 ;
REMO3: AJMP REMOTE_END ;
REMO4: CJNE A,#0FEH,REMO3 ;
MOV A,TL2 ;
CLR C ;
CJNE A,#0C7H,$+3 ;
JNC REMO3 ;电平过宽(超过450us),退出
CLR C ;
CJNE A,#060H,$+3 ;
JC REMO3 ;电平过窄(小于210us),退出
CLR C ;
REMO5: MOV A,DAT0 ;存储电平值
RLC A ;
MOV DAT0,A ;
MOV A,ADD1 ;
RLC A ;
MOV ADD1,A ;
REMO6: JNB REM,REMO7 ;等待出现低电平
JB DETE_T_OVER,REMO3 ;脉冲下降沿间隔限时1500us,超时则认为误码
AJMP REMO6 ;
REMO7: CLR TR2 ;
CLR DETE_T_OVER ;
MOV A,TH2 ;
CJNE A,#0FFH,REM13 ;脉冲间隔过小
MOV A,TL2 ;
CLR C ;
CJNE A,#050H,$+3 ;
JC REM13 ;电平过窄(小于1200us),退出
MOV TH2,#0FEH ;测第2位电平宽度
MOV TL2,#041H ;
SETB TR2 ;
REM11: JB REM,REM12 ;等待出现高电平
JB DETE_T_OVER,REM13 ;限时1500us,超时则认为误码
AJMP REM11 ;
REM12: MOV A,TH2 ;测低电平宽度,0FE为宽脉冲,0FF为窄脉冲
CJNE A,#0FFH,REM14 ;
MOV A,TL2 ;
CLR C ;
CJNE A,#098H,$+3 ;
JNC REM13 ;电平过宽(超过1100us),退出
CLR C ;
CJNE A,#020H,$+3 ;
JC REM13 ;电平过窄(小于1000us),退出
SETB C ;
AJMP REM15 ;
REM13: AJMP REMOTE_END ;
REM14: CJNE A,#0FEH,REM13 ;
MOV A,TL2 ;
CLR C ;
CJNE A,#0C7H,$+3 ;
JNC REM13 ;电平过宽(超过450us),退出
CLR C ;
CJNE A,#060H,$+3 ;
JC REM13 ;电平过窄(小于210us),退出
CLR C ;
REM15: MOV A,TEMP ;存储电平值
RLC A ;
MOV TEMP,A ;
MOV A,ADD2 ;
RLC A ;
MOV ADD2,A ;
REM16: JNB REM,REM18 ;等待出现低电平
JB DETE_T_OVER,REM13 ;脉冲下降沿间隔限时1500us,超时则认为误码
AJMP REM16 ;
REM17: AJMP REMO0
REM18: CLR TR2 ;
CLR DETE_T_OVER ;
MOV A,TH2
CJNE A,#0FFH,REM13 ;脉冲间隔过小
MOV A,TL2 ;
CLR C ;
CJNE A,#050H,$+3 ;
JC REM13 ;电平过窄(小于1200us),退出
DJNZ DETE_LOOP,REM17 ;
REM19: MOV DETE_LOOP,#4 ;把接收的编码左移4位
REM20: CLR C ;将8位密码放在同一字节上
MOV A,DAT0 ;
RLC A ;
MOV DAT0,A ;
MOV A,ADD1 ;
RLC A ;
MOV ADD1,A ;
CLR C ;
MOV A,TEMP ;
RLC A ;
MOV TEMP,A ;
MOV A,ADD2 ;
RLC A ;
MOV ADD2,A ;
DJNZ DETE_LOOP,REM20 ;
;把4 位数据编码由高4 位移到低4 位上 ;
MOV A,DAT0 ;
SWAP A ;
MOV DAT0,A ;
MOV A,TEMP ;
SWAP A ;
MOV TEMP,A ;
ANL DAT0,#0FH ;
SETB RECEIVE ;
REMOTE_END: ;
CLR TR2
CLR REMOTING ;
RET ;
四、硬件抗干扰
在无线通讯中使用单片机会对通讯系统造成严重的干扰,相信许多技术人员一定有过同样的苦恼。如果硬件设计不当,会造成原先硬件解码时通讯距离为200米,而用软件解码后可能只有十几米,因此解决硬件抗干扰问题在很大程度上可减少软件解码的误码率。
1、收发模块:早期常用的频率为47MHz,在这种频率下,很难有好的解决方法;建议采用目前国家允许无线遥控使用的频率315 MHz;
2、单片机振荡频率:大量的MCS51教材中推荐大家使用的是12 MHz及11.0592 MHz的晶体,这些晶体在一般场合使用没有问题,但在此却不可以,它们在300 MHz左右仍然能够产生较大的干扰,为解决单片机运行速度与电磁干扰的矛盾,建议采用频率为4 MHz或3.58 MHz的晶体。
3、隔离:为了有效抑制单片机对接收模块的电磁干扰,建议采用①电源隔离;②端口隔离;端口隔离可采用三极管或比较器。实践表明,采用隔离的效果非常明显。
五、结束语
PT2262的软件解码在实际应用中有较好的用武之地。采用软件解码的系统,厂家再也无须对收发设备进行配套,以利于生产于保管;对客户来说,使用软件解码无须求助,厂家只须再软件中加入自动学习功能,用户可自行使用该功能,只须轻按学习键即可学习新的通讯设备,如遥控器等。
目前,该软件解码已经在某无线报警设备中采用,客户反映使用简便,效果良好。
参考:1、PT2262 PT2272 和P87LPC764 单片机的接口设计(广州周立功单片机); |
|