原创 基于51系列单片机对PT2262的软件解码

2008-7-15 09:59 6749 5 8 分类: MCU/ 嵌入式

由于网上很多对PT2262的软件解码程序都不太好用,同时也为了那些需要此程序的朋友少走弯路,因此将我产品中一直使用的该段程序告知大家。该子程序可以用循环的主程序直接调用,当然也可用于中断。由于PT2262的解码芯片PT2272是有很多局限性的,因此该子程序可以让你达到前所未有的高度。


   请勿用于不法用途,否则后果自负。


 ;======= 模拟 pt2272 接收  单片机晶振f=11.0592MHz ===============================


PT_dalay:
        MOV    B,#42                 ;pt2262振荡电阻r=4.7M,pt2260为 r="10M时的延时",
        DJNZ   B ,$                  ;其它电阻R= X(M) 时,B=42*X/4.7
 
        INC    R7
        RET
        NOP


 ;--------------------------------------------------------------------


  pt2272_P    EQU    P3.6           ;可以使用任意I/O


pt2272:
        JB     pt2272_P,$+5
        RET
        NOP
       
;---------  测 同 步 码 ----------------   


        MOV    R7,#0                


syn :                   
        JNB    pt2272_P, syn0
                                     
        LCALL  PT_dalay


        MOV    A, R7
        ADD    A,#18
        JNC    syn


        ajmp   exit
        NOP


syn0:      
        MOV    R7,#0


syn1:
        JB     pt2272_P,syn2


        LCALL  PT_dalay


        MOV    A,R7
        ADD    A,#100
        JNC    syn1


        ajmp   exit
        NOP


syn2:     
        MOV    A,R7
        SUBB   A,#22
        JNC    addr_data       ;同步码成功转测地址和数据


        ajmp   exit            ;不成功退出
        NOP



 ;------ 测 地 址 和 数 据--------------------------------


addr_data:                   
        MOV    R6,#24


a_d_loop:
        MOV    R7,#0                


a_d_0:
        JNB    pt2272_P, a_d_1
                                     
        LCALL  PT_dalay


        MOV    A,R7
        ADD    A,#240
        JNC    a_d_0


        ajmp   exit
        RET
        NOP


a_d_1:         ;1               
        MOV    A,R7
        SUBB   A,#2
        JNC    $+5


        ajmp   exit
        NOP


        SUBB   A,#4
        JNC    a_d_2


        CLR    C
        SJMP   a_d_4
        NOP


a_d_2:
        SUBB  A,#1
        JNC   $+5


        ajmp   exit
        NOP


        SETB   C


a_d_4:
        MOV    A,22h                  ;22h-- 数据
        RLC    A
        MOV    22h,A
        MOV    A,21h                  ;21h-- 地址 低8位
        RLC    A
        MOV    21h,A
        MOV    A,20h                  ;20h-- 地址 高8位
        RLC    A
        MOV    20h,A


        MOV    R7,#0


a_d_5:
        JB     pt2272_P,a_d_6


        LCALL  PT_dalay


        MOV    A,R7
        ADD    A,#240
        JNC    a_d_5


        ajmp   exit
        NOP


a_d_6:
        MOV    A,R7
        SUBB   A,#2
        JNC    $+5


        ajmp   exit
        NOP


        DJNZ   R6,a_d_loop



 ;---- 地址  由 3 进制数 转成 10 进制  -------
 
        NOP
        MOV    R5,#2                  
        MOV    R6,#1
        MOV    R7,#4
        MOV    R0,#20h


addr_loop:
        MOV    A,@R0
        MOV    R2,A
        MOV    R4,#0


addr_lp:
        MOV    A,R2
        ANL    A,#3
        MOV    B,A
        XRL    A,#2
        JNZ    $+5


        ajmp   exit
        NOP


        MOV    A,B
        XRL    A,#3
        JNZ    $+4


        DEC    B


        MOV    A,R6
        MUL    AB
        ADD    A,R4
        MOV    R4,A
        MOV    A,#3
        MOV    B,R6
        MUL    AB
        MOV    R6,A
        MOV    A,R2
        RR     A
        RR     A
        MOV    R2,A
        DJNZ   R7,addr_lp


        MOV    A,R4
        MOV    @R0,A


        MOV    R6,#1
        MOV    R7 ,#4
        INC    R0
        DJNZ   R5,addr_loop



 ;---- 数据  由 3 进制数 转成 10 进制  -------
 
        NOP
        MOV    R0,#22h                ;
        MOV    R6,#1
        MOV    R7,#4


        MOV    A,@R0
        MOV    R2,A
        MOV    R4,#0


data_loop:
        MOV    A,R2
        ANL    A,#3
        MOV    B,A
        XRL    A,#0
        JZ     data_0


        MOV    A,B
        XRL    A,#3
        JZ     $+5


        ajmp   exit
        NOP


        DEC    B
        DEC    B


data_0:
        MOV    A,R6
        MUL    AB
        ADD    A,R4
        MOV    R4,A
        MOV    A,R6
        RL     A
        MOV    R6,A
        MOV    A,R2
        RR     A
        RR     A
        MOV    R2,A
        DJNZ   R7,data_loop


        MOV    A,R4
        MOV    @R0,A


exit:
        ret
        nop


QQ: 625377583


手机: (0)15051122286

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2012-9-19 19:22

没看懂。。。。。。

用户377373 2011-9-30 21:04

好人啊 顶你

用户287525 2011-1-7 13:27

还不错啊

用户242117 2009-11-1 16:37

haohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaovvvvvvvvvvvvv

用户1382068 2008-7-21 08:00

绝对好用
相关推荐阅读
EE直播间
更多
我要评论
3
5
关闭 站长推荐上一条 /3 下一条