⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ev1527.asm

📁 一个EV1527的51单片机学习码解码程序。注意不要乱改程序。频率是:11.0592MHZ。
💻 ASM
字号:
;
;  中断接收EV1527的程序
;
;###########################################################################
CLOW               EQU    20H
CHIGH              EQU    21H
CDATA              EQU    22H
DATA1_1            EQU    23H
DATA1_2            EQU    24H
DATA1_3            EQU    25H
FLAGS_RF           EQU    26H

RF_CHK_P           EQU    P1.1               ;高频信号接收口
 
HEAD_OK            EQU    FLAGS_RF.0
SIGANLHL           EQU    FLAGS_RF.1
SIGNAL_OK          EQU    FLAGS_RF.2




;===========================================================================
;              中断子程序
;===========================================================================
ORG  0000H
JMP  IT0P
ORG  0030H
IT0P:
        PUSH        ACC                        
        PUSH        PSW                      

        JB          RF_CHK_P,SIGNAL_H
SIGNAL_L:
        JB          SIGANLHL,Reselowsignalcounter   ;高低电位标志?
Lowsignalcounterincrease:
        INC         CLOW                            ;计时低电位时间
        JNB         HEAD_OK,IT0P_EXIT1              ;同步信号接收成功?
        MOV         A,CLOW                          
        SUBB        A,#18H                  ;2.0MS 17
        JNC         Signalerror
        AJMP        IT0P_EXIT
Reselowsignalcounter:                               ;高标志清除
        CLR         SIGANLHL
        MOV         CLOW,#00H
        AJMP        IT0P_EXIT
;=================================================
SIGNAL_H:
        JB          SIGANLHL,Highsignalcounterincreasc  ;高电位
catchsynchronization:
        jb          HEAD_OK,Signalanalysis
        mov         A,CLOW
        subb        A,#95H           ;
        jnc         checkdataeffective
        mov         C,CLOW
        subb        A,#14H           ;2.4MS
        jc          checkdataeffective
        setb        HEAD_OK                             ;设同步信号成功标志
        setb        SIGANLHL
        MOV         CDATA,#18H                          ;接收信号的位数
IT0P_EXIT1:
        ajmp        IT0P_EXIT
Signalanalysis:
        MOV         A,CHIGH                             ;信号的分辩
        SUBB        A,#08H         ;07
        JC          L_datazerosignal
        MOV         A,CHIGH
        SUBB        A,#18H
        JNC         checkdataeffective
L_dataonesignal:
        MOV         A,CHIGH
        SUBB        A,#08H         ;08
        JC          checkdataeffective
dataonesignal:                                         ;信号数据为1
        SETB        C
        AJMP        addonesignal
L_datazerosignal:
        MOV         A,CHIGH
        SUBB        A,#01H
        JC          checkdataeffective
datazerosignal:                                        ;信号数据为0
        CLR         C
addonesignal:
        MOV         A,DATA1_1                          ;存储数据
        RLC         A
        MOV         DATA1_1,A

        MOV         A,DATA1_2
        RLC         A
        MOV         DATA1_2,A

        MOV         A,DATA1_3
        RLC         A
        MOV         DATA1_3,A
        DJNZ        CDATA,reselighsignalcounter

        SETB         SIGNAL_OK                         ;设接收成功标志
        CLR          HEAD_OK
        AJMP         IT0P_EXIT2
reselighsignalcounter:
        setb         SIGANLHL                          ;复位       
        mov          CHIGH,#00H
        ajmp         IT0P_EXIT
Highsignalcounterincreasc:
        INC         CHIGH
        AJMP        IT0P_EXIT
checkdataeffective:
        SETB        SIGANLHL
Signalerror:
        clr         SIGNAL_OK                          ;接收信号错误
        CLR         HEAD_OK
        MOV         DATA1_1,#00H
        MOV         DATA1_2,#00H
        MOV         DATA1_3,#00H
IT0P_EXIT2:
        MOV         CHIGH,#00H                         ;清除返回
        MOV         CLOW,#00H
        MOV         CDATA,#00H
IT0P_EXIT:
        POP         PSW                      
        POP          ACC                        
        RETI                                 
;======================================================================
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -