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.0592MHz的晶体,这些晶体在一般场合使用没有问题,但在此却不可以,它们在300MHz左右仍然能够产生较大的干扰,为解决单片机运行速度与电磁干扰的矛盾,建议采用频率为4MHz或3.58MHz的晶体。
3、隔离:为了有效抑制单片机对接收模块的电磁干扰,建议采用
①电源隔离;②端口隔离;端口隔离可采用三极管或比较器。实践表明采用隔离的效果非常明显。
五、结束语
PT2262的软件解码在实际应用中有较好的用武之地。采用软件解码的系统,厂家再也无须对收发设备进行配套,以利于生产于保管;对客户来说,使用软件解码无须求助,厂家只须再软件中加入自动学习功能,用户可自行使用该功能,只须轻按学习键即可学习新的通讯设备,如遥控器等。目前,该软件解码已经在某无线报警设备中采用,客户反映使用简便,效果良好。