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

📄 ev1527的解码程序.txt

📁 ev1527的软件解码程序
💻 TXT
字号:
;-------------------
RMT_SS1               
    BCF STATUS,C          
    RETLW 0               ;W返回"0"
RMT_0
RMT_SS2
    BSF STATUS,C
    RETLW 1              ;W返回"1"
;解码子程序---------------------
RECEIVE  
     BTFSS RFIN;遥控信号输入端为"1"间跳
     GOTO RMT_0 
     CLRF CNT0       ;CNT0为同步头脉冲宽度计数器
RCV1
    CLRWDT
     BTFSS RFIN
     GOTO RCV1_2
     INCF CNT0,1     ;RFIN上同步头为高电平,计数器加1
    BTFSS STATUS,Z
     GOTO RCV1 
    GOTO RMT_0
RCV1_2
     MOVLW 30
     SUBWF CNT0,0
     BNC RMT_0       ;对同步头高电平大于420US或小于180US的都丢弃并退出解码程序
     CLRF CNT1
RCV2
     GOTO $+1
     GOTO $+1
     GOTO $+1
     GOTO $+1
     GOTO $+1
     GOTO $+1
     CLRWDT
     BTFSC RFIN ;检测RFIN上的同步头低电平的宽度
     GOTO RMT_0
     DECFSZ CNT1,1    ;对小于256*18=4.5ms的同步头低电平滤除
     GOTO RCV2
RCV2_1
    CLRWDT
     BTFSS RFIN
     GOTO RCV2_1     ;同步头中低电平的等待
     MOVLW 24;
     MOVWF CNT2      ;CNT2为脉冲周期计数器,8位数据码加4位键码共24个脉冲
RCV3
     CLRF CNT0
     CLRF CNT4       
RCV3_1                ;周期低电平时等待并计数
     CLRWDT
     GOTO $+1
     BTFSC RFIN
     GOTO RCV4
     INCFSZ CNT0,1
     GOTO RCV3_1
     GOTO RMT_0       ;溢出退出
RCV4                  ;高电平计数
     CLRWDT
     BTFSS RFIN
     GOTO RCV5       ;等待低电平时对数据作处理
     INCFSZ CNT4,1
     GOTO RCV4     
     GOTO RMT_0        ;1.2ms溢出退出
RCV5
     MOVLW 20
     SUBWF CNT4,0
     BNC RMT_0        ;对小于100us的滤除
     MOVLW 80
     SUBWF CNT4,0     
     BNC RCV5_0
     BSF FLAGS,BITIN  ;对大于300us的标为"1"
     GOTO RCV6
RCV5_0
     BCF FLAGS,BITIN  ;对小于300us的标为"0"
RCV6
     RLF CSR0,1       ;CSR0-CSR2连进位左循环
     RLF CSR1,1       
     RLF CSR2,1 
     BCF CSR0,0
     BTFSC FLAGS,BITIN
     BSF CSR0,0
     DECFSZ CNT2,1
     GOTO RCV3        ;至此CSR1-2为地址码值,CSR0的高4位为地址码值,CSR0低4位为键
码值
     MOVFW CSR0
     MOVWF CSR3       ;将键码值放在CSR3中
     MOVLW 0FH
     ANDWF CSR3,1     ;屏蔽高4位,保留键码值

     MOVLW 0F0H
     ANDWF CSR0,1     ;屏蔽低4位,保留地址码值
     GOTO RMT_SS1     ;返回"0"

⌨️ 快捷键说明

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