;软件解码程序(仿真 PT2272)
;晶体频率为 11.0592Mhz
;本程序中的时间定位关系只适用于接 3.3M 振荡电阻的 PT2262 解码
;使用其它阻值电阻时,应将定位时间按电阻比例缩放
;下面的程序中 REM 为信号输入端
;RECEIVE 检测到有效信号标志位
;ENABLE_DETE 连续按键标志
;3AH,3BH 用作定时器
;PT2262 共 12 根地址线
;31H,32H:接收的前 8 位地址编码
;33H,30H:接收的后 4 位地址编码(若最后 4 位用作数据端,则只须读第 33H 单元
的内容即可)
;当用作数据端时,PT2262 对应脚悬空被认为是低电平。
;地址数据说明
;以 31H.0 和 32H.0 为例
;悬空 : 31H.0=0 32H.0=1
; 1: 31H.0=1 32H.0=1
; 0: 31H.0=0 32H.0=0
;出错 31H.0=1 32H.0=0
;
;说明:为了能可靠检测到有效信号,建议每次接收至少检测 3 次,然后比较 3 次
检测值
;3 次值相同才认为收到了正确信号。可在主程序中如下处理:第 1 次检测时调用
REMOTE
;第 2、3 次检测时调用 REMOTES,请注意必需连续调用,否则得不到正确的数据
;
;注意:将 T1 设定为 16 位定时器,允许中断,否则将导致接收数据错误
;---------------------------------------;
REMOTE:
CLR RECEIVE
;检测 50ms 内有没有编码接收
MOV 3AH,#55
REMOTEA:
MOV 3BH,#250
REMOTEB:
JB REM,REMOTE0 ;有码发送则跳转
DJNZ 3BH,REMOTEB
DJNZ 3AH,REMOTEA
REMOTE_END_1:
CLR ENABLE_DETE
REMOTE_END:
CLR REMOTING ;清除探头检测标志
RET
REMOTE0:
评论0