org 0300h zh: push dph ;将识别后的遥控信号转换成16位动作代码 push dpl push acc push psw setb psw.3 ;进入区i clr psw.4 mov r0,#2fh ;转换2fh个单元 mov r1,#07h ;8位一小组 jnb 00h,h01 ;允许转换否? h0:inc r0 ;取第一组第一位 cjne r0,#51h,h1 ;是否干扰? sjmp h00 ;是则返回 h1:jc h2 sjmp h00 h2:cjne @r0,#03h,h0 ;开始转换第一组第一位 inc r0 cjne @r0,#03h,h0 inc r0 cjne @r0,#03h,h0 inc r0 cjne @r0,#01h,h0 inc r0 cjne @r0,#01h,h0 inc r0 cjne @r0,#01h,h0 inc r0 cjne @r0,#03h,h0 inc r0 cjne @r0,#01h,h0 cjne r0,#59h,h3 ;地址码正确否? sjmp h00 h3:jc h4 sjmp h00 h4:inc r0 ;地址码正确则开始转换指令码 mov a,@r0 jb acc.1,h5 clr 08h sjmp h6 h5:setb 08h h6:mov a,21h rl a mov 21h,a djnz r1,h4 ;8位指令码转换完否? setb 02h ;设允许执行该动作标志位 clr 01h ;恢复转换标志位 h00:mov 08h,#2fh mov 09h,#07h h01:pop psw pop acc pop dpl pop dph ret
以上代码是为M50462解码的。 最后再重申一下:仅供参考!
|