标题: 正在学习汇编,红外遥控解码程序 [打印本页]

作者: 打杂的    时间: 2018-7-22 13:19
标题: 正在学习汇编,红外遥控解码程序
我按照论坛或者书本上写入程序,下载到51单片机,为什么没任何反映。接外部中断int0,红外接管接p3.2,发射用手机自带遥控器功能,只要波下遥控器,蜂鸣器响一声,蜂鸣器为无源接.p2.5口,请大神写个代码我来分析下,为什么原来的不对
作者: 打杂的    时间: 2018-7-22 18:32
ORG   000H
MAIN:        MOV                SP,#60H
                MOV     P1,#0FFH
                MOV     P2,#0FFH
                MOV     P3,#0FFH
                JNB     P3.2,$
                MOV     R6,#10
K1:                ACALL   YS1
                JB                P3.2,MAIN
                DJNZ    R6,K1
                JNB     P3.2,$
                ACALL   YS2
                MOV     R1,1AH
                MOV     R2,#4
PP:                MOV     R3,#8
JJ:                JNB     P3.2,$
                LCALL   YS1
                MOV     C,P3.2
                JNC     UU
                JB      P3.2,$
UU:                MOV     A,@R1
                RRC                A
                MOV     @R1,A
                DJNZ    R3,JJ
                INC     R1
                DJNZ    R2,PP
                MOV     A,1AH
                XRL                A,#0
                JNZ         MAIN
                MOV           A,1BH
                XRL                A,#0FFH
                JNZ     MAIN
                MOV            A,1CH
                CPL     A
                XRL     A,1DH
                JNZ     MAIN
                LCALL   SEND
                MOV     A,1AH
                CPL     A
                MOV     P1,A
JZPD:        MOV     A,1AH
IRD0:        CJNE    A,#00H,IRD1
                MOV     P0,#0C0H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD1:        CJNE    A,#01H,IRD2
                MOV     P0,#0F9H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD2:        CJNE    A,#02H,IRD3
                MOV     P0,#0A4H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD3:        CJNE    A,#03H,IRD4
                MOV     P0,#0B0H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD4:        CJNE    A,#04H,IRD5
                MOV     P0,#099H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD5:        CJNE    A,#05H,IRD6
                MOV     P0,#092H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD6:        CJNE    A,#06H,IRD7
                MOV     P0,#082H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD7:        CJNE    A,#07H,IRD8
                MOV     P0,#0F8H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD8:        CJNE    A,#08H,IRD9
                MOV     P0,#080H
                MOV         P2,#11100000B
                AJMP    MAIN
IRD9:        CJNE    A,#09H,IRDOR
                MOV     P0,#090H
                MOV         P2,#11100000B
                AJMP    MAIN
IRDOR:        MOV     P2,#0FFH
                AJMP    MAIN
               
YS1:        MOV         R4,#19
D1:     MOV     R5,#18
                DJNZ    R5,$
                DJNZ    R4,D1
                RET
YS2:        MOV     R4,#10
D2:                MOV     R5,#216
                DJNZ    R5,$
                DJNZ    R4,D2
                RET
SEND:        MOV         R7,255
SDL1:        CPL     P3.7
                MOV     R6,#0FFH
SDL0:        DJNZ    R6,SDL0
                DJNZ    R7,SDL1
                RET
                END
这个是论坛的代码复制下来,我测试接收头按下1、2都有下降沿变化。那么接收数据是没有问题,现在是没有响应,晶振用的是11.059,为什么解码不出来?
作者: IdeaMing    时间: 2018-10-26 11:23
我告诉你为什么不反应!因为红外编码并不是固定的,所以你即便是原原本本的复制来的程序,也不一定能用。因为不同的遥控器协议可能是不一样的,红外虽然都是红外,协议不一样,那解码也不一样。例如MIT-C8T8协议分为40K载波和33K载波。你手机上的红外发送出来的数据格式和你代码中的解码对不上一样不会响应,出现下降沿变化,只是能说明红外接收头收到了遥控器发出的信号。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1