谁可以看懂这个汇编里声光的编码是什么啊


;;;;; 
;;;;AM111
;2014--12--17--VEE CHEN
;;;SENTEK ---SOUNDER-OUTPUT---

    INCLUDE "P16F685.INC"
    LIST P=16F685
;    __CONFIG(0X0FC)    ;0000 1111 1100
    __config 0x0BC
; *********************************
;       Variable Define
; *********************************
    CBLOCK    20H
FLAG
;SET_FLAG
CC
DLY1
DLY2
COUNT
ADDRESSTEMP
SYS_ADDR
COMMAND
SMOKE_ADV
SMOKE_DAT
TMR0_TEMP
ADDRESS
EXPA        ;校验码
PACOM        ;地址和数据中1个数的总和放置在这里
PACOM1
AFCOUNT        ;32个一个来回
ALARM        ;AD值跟32H比较,大于则ALARM,0置1
;AD_TEMP
;AD_TEMP1
;AD_TEMP2
;DATA_X1
;DATA_X2
;DATA_X3
;DATA_X4
;DATA_X
COUNTAD
COUNT8
;SET_AD_ZERO
;SET_AD_ALARM
;M
COUNTH        ;led FLASH TIME
;M4 
;ADDRESSTEMP1
ADDR32
;FNTCOMD
;FNTCOMD2
OUTPCOM
;BDFLAG
;T
;TT
    ENDC

;=======================================
; =======序列in 电源 红灯  烟感AD   远程  红外发射   温感AD
 

#DEFINE    SIGNAL_IN    PORTA,2        ;INPUT    ;脉冲信号读取    正向
;#DEFINE    SIGNAL_SHORT    PORTB,6    ;INPUT    探头有,探头 无,探头报警    
;#DEFINE    SIGNAL_OPEN   PORTB,5        ;INPUT    
#DEFINE    SIGNAL_OUT    PORTA,1    ;OUTPUT    ;拉电流


;#######################################
;#######################################

;**************************************

    ORG       00H
    GOTO      MAIN
    ORG       04H
    GOTO      INT_SERVICE
;       Interrupt Sub
;**************************************
8    ;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PPP PPPPPPPPP
READ_SIGNAL_DATA         ;读取信号脉冲  3+7
    CLRWDT
    BTFSS SIGNAL_IN
    GOTO $-2

     MOVF TMR0,0                ;????TMR0的值时多少。 ;要大于0X0F
    MOVWF TMR0_TEMP
    CLRF TMR0

     BCF STATUS,C
    MOVLW 037H            ;-440US    ;1111 0000这个值根据不同的频率需要进行修改
     SUBWF    TMR0_TEMP,0
     RLF ADDRESS,1           ;带进位移动,取决于status ,c   0X28
    RLF COMMAND,1           ;
    CLRF    STATUS
    MOVLW   0BEH                ;1.52ms 因为1最大为1500us
     SUBWF    TMR0_TEMP,1
    BTFSC    STATUS,C
    GOTO    LAS

    CLRWDT
    BTFSC SIGNAL_IN
    GOTO $-2
            ;800US 空闲,做处理
    CLRF TMR0
     DECFSZ COUNT,1
    GOTO READ_SIGNAL_DATA   ;十个脉冲读完  3+++7addr
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;为什么差一位,int位在吗,怎么没算上?;;;;;;;;;;;

    BCF STATUS,C
    RLF ADDRESS,1
    RLF COMMAND,1
;地址还是选择低7位
    BCF STATUS,C
    RRF ADDRESS,1
 

;=====================
 
;;;;;;;;;;;;;=============;;;;;;;;;;;;;;;;
  

ALARM#8        ;查看是不是自己,output不需要读取ad,
;;只在本身地址的时候查看是否开启报警输出
;那么,其回复的AD值是多少?

;;;;;;;;;;;;================;;;;;;;

    CLRWDT
     MOVF SYS_ADDR,0    
     SUBWF ADDRESS,0      ;读取的地址等于 本身的地址  那么结果为0
     BTFSS STATUS,Z
    GOTO    LAS

;    MOVLW    B'00000001'
;    BTFSC    SMOKE_DAT,6
;    MOVWF    COMMAND


    BSF    FLAG,0
    BCF    STATUS,C
    RLF COMMAND,1
    RLF COMMAND,1
    RLF COMMAND,1
     BCF STATUS,C
    RLF ADDRESS,1

    CLRWDT
 
    MOVLW 038H    ;输入信号
    ANDWF COMMAND,1    ;0011 1000
    ;设备类型
    MOVLW    01H        ;SOUNDER
    BTFSC    ADDRESSTEMP,7
    MOVLW    02H        ;OUTPUT
    IORWF COMMAND,1    ;0000 0101

;    MOVFW    COMMAND
;    MOVWF    OUTPCOM
;===========================
    BTFSC    COMMAND,3   ;是否报警,报警则该位为1,则,开启报警设备
    BSF        PORTB,6
;==========================
    BTFSS    COMMAND,3   ;是否报警,报警则该位为1,则,开启报警设备
    BCF        PORTB,6




     MOVLW    04H
    BTFSC    PORTB,5    ;查看是否有接报警设备
    MOVLW    14H
  

    BTFSC    COMMAND,3
    MOVLW    50H

    MOVWF    SMOKE_DAT

    MOVF    SMOKE_DAT,0
    MOVWF    SMOKE_ADV



    BCF STATUS,C
    RLF ADDRESS,1
    RLF COMMAND,1
    RLF ADDRESS,1    ;60--480US
    RLF COMMAND,1    ;    到此为止,COMMAND前六位,ADDR空后三位
    
 

AFPLACE                ;快速报警时,直接跳转到此处
    CLRWDT
    BTFSS SIGNAL_IN
    GOTO $-2
  
    BCF    STATUS,C
    RLF ADDRESS,1
    RLF COMMAND,1    ; COMMAND       ADDRESS
     RLF    SMOKE_ADV,1 
;    BTFSS    ADDRESSTEMP,7
;    BSF    ADDRESS,0
;    BTFSS    ADDRESSTEMP,7
;    BSF    ADDRESS,1

;    BTFSS    ADDRESSTEMP,7
;    BSF    ADDRESS,3    ;XP95位
    MOVLW 018H            ;20码 分别为7+3+3+7+2
    MOVWF COUNT
;;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LINE_TO_PANEL           ;;;;;;;;;回复信号
    CLRWDT
    BTFSC SIGNAL_IN
    GOTO $-2
    CLRF TMR0

    CALL DE360        ;
    BCF  STATUS,C
    RLF ADDRESS,1
    RLF COMMAND,1
    RLF SMOKE_ADV,1

    BTFSS STATUS,C
    GOTO $+3
    BSF SIGNAL_OUT
    CALL DE250
    BCF SIGNAL_OUT

    CALL    DE200

    CLRF TMR0

    CLRWDT
    MOVF TMR0,0                ;????TMR0的值时多少。 ;要大于0X0F
    MOVWF TMR0_TEMP
    MOVLW    0X80
    SUBWF    TMR0_TEMP,0
    BTFSC    STATUS,C
    GOTO    EXIT_READ    
;    RETFIE
    BTFSS SIGNAL_IN
    GOTO $-8

    CLRF TMR0
    DECFSZ COUNT,1
    GOTO LINE_TO_PANEL

;    BSF    FLAG,0    ;待用,用于AD值的获取
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;扩展位子程序;;;;;
;    BTFSC    ADDRESSTEMP,7    ;INPUT -90
    GOTO    LAS
;=======================  直接退出
;============================
;=====================================
;90不需要以下验证码和扩展地址位

    BTFSC    PACOM,0
    INCF    PACOM1,F

    MOVLW    06H        ;    前3位为空,然后4为AD扩展也为空,最后校验位
    MOVWF    COUNT
    CLRF    EXPA    ;偶校验
    BTFSC    PACOM1,0        ;地址位中1的个数;    BSF        EXPA,0
    BSF        EXPA,2

    BTFSC    ADDRESSTEMP,7    ;INPUT -90
    CLRF    EXPA
;    BTFSC    FLAG,7     ;INT,不需要这个位
;    CLRF    EXPA

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PA                ;;;;;;;;;;校验子程序
    CLRWDT
    BTFSC SIGNAL_IN
    GOTO $-2
    CLRF TMR0

    CALL DE360        ;
    BCF  STATUS,C
     RLF EXPA,1

    BTFSS STATUS,C
    GOTO $+3
    BSF SIGNAL_OUT
    CALL DE250
    BCF SIGNAL_OUT
    CALL    DE200

    CLRF TMR0

    CLRWDT
    MOVF TMR0,0                ;????TMR0的值时多少。 ;要大于0X0F
    MOVWF TMR0_TEMP
    MOVLW    0X80
    SUBWF    TMR0_TEMP,0
    BTFSC    STATUS,C
    GOTO    EXIT_READ
;    RETFIE                ;90 的机子在此退出程序
    BTFSS SIGNAL_IN
    GOTO $-8

    CLRF TMR0
    DECFSZ COUNT,1
    GOTO    PA
;;;;;;;;;;;;;========;;;;;;;;;;;
;;;;;;;;;;;;;===============;;;;;;;;
;
;    BTFSC    ADDRESSTEMP,7    ;INPUT -90
    GOTO    LAS  ;输出设备不需要快速报警功能

;    BTFSS    FLAG,7    ;报警时,那起初的八个循环会用到,之后,就空着了
;    GOTO    LAS

;    BTFSC    FLAG,6    ;所以要   flag7为1   flag6为0时
;    GOTO    LAS

    MOVLW    07H
    MOVWF    COUNT
    MOVF    SYS_ADDR,0
    MOVWF    ADDRESS
    BCF    STATUS,C
    RLF    ADDRESS,1

PAEXT                ;最后7位地址 的输出
    CLRWDT
    BTFSC SIGNAL_IN
    GOTO $-2
    CLRF TMR0

    CALL DE360        ;
    BCF  STATUS,C
     RLF    ADDRESS,1

    BTFSS STATUS,C
    GOTO $+3
    BSF SIGNAL_OUT
    CALL DE250
    BCF SIGNAL_OUT
    CALL    DE200

    CLRF TMR0

    CLRWDT
    MOVF  TMR0,0
    MOVWF TMR0_TEMP
    MOVLW    0X80
    SUBWF    TMR0_TEMP,0
    BTFSC    STATUS,C
    GOTO    EXIT_READ
;    RETFIE
    BTFSS SIGNAL_IN
    GOTO $-8

    CLRF TMR0
    DECFSZ COUNT,1
    GOTO    PAEXT

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LAS            ;;;;;;;;退出子程序
    CLRWDT
    BTFSC SIGNAL_IN        ;七个地址之后,的最后一个空码
    GOTO $-2
    CLRF TMR0

    CLRWDT
    MOVF TMR0,0                ;????TMR0的值时多少。 ;要大于0X0F
    MOVWF TMR0_TEMP
    MOVLW    0x7D            ;1048
    SUBWF    TMR0_TEMP,0
    BTFSC    STATUS,C
    GOTO    EXIT_READ

    BTFSS SIGNAL_IN
    GOTO $-8
    CLRF TMR0

    CLRWDT
    MOVF TMR0,0                ;????TMR0的值时多少。 ;要大于0X0F
    MOVWF TMR0_TEMP
    MOVLW    0X57        ;   700
    SUBWF    TMR0_TEMP,0
    BTFSC    STATUS,C
    GOTO    EXIT_READ

    BTFSC SIGNAL_IN
    GOTO $-8
    GOTO    LAS
;===============================


EXIT_READ
    BTFSC    FLAG,0
     CALL    ADDR_READ
    MOVLW 090H            ;1001 0000
    MOVWF INTCON
    RETFIE

;************************************
;        Main
;************************************


MAIN

    CALL SYS_INIT
    BCF    PORTA,1
    CLRF    PACOM    ;校验码计算1的个数
    CLRF    PACOM1
    CLRF    AFCOUNT    ;32一个回合计数
     CLRF    COUNTAD
     CLRF    ALARM    
     CLRF    SMOKE_DAT
;--------------------------
;     MOVLW    0X08    
;    MOVWF    COUNT8
;----------------------------
      ;地址计算
;--------------------
ADDR#
    CALL    ADDR_READ 
;================================
    MOVLW    04H
    BTFSC    PORTB,5
    MOVLW    14H
    MOVWF    SMOKE_DAT
 

     MOVLW 090H            ;1001 0000
    MOVWF INTCON
    CLRWDT
;    GOTO    INT_SERVICE
MAIN9    ;等待通讯
    CLRWDT 
    NOP
    SLEEP
    NOP
    NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    GOTO MAIN9


;******************************************************
;       System Initialization
;******************************************************
SYS_INIT
    BANKSEL    T1CON
    CLRF    PORTA
    CLRF    PORTB
    CLRF    PORTC
    CLRF    ADRESH 
;    MOVLW    B'00100100'        ;ZUO对齐  Vdd   AN9
    MOVLW    B'00000000'
    MOVWF    ADCON0

    CLRF     INTCON
    MOVLW    00H
    MOVWF    T1CON

    BANKSEL    TRISA
    MOVLW    B'11111100'
    MOVWF    TRISA
    MOVLW    B'10110000'  ;5、6 电平控制烟值标定,7 本身地址读取上电
    MOVWF    TRISB
    MOVLW    B'11001111'  ;7 AD读取,0-6七位地址
    MOVWF    TRISC

    MOVLW    B'01110000'
;    MOVLW    B'00010000'      ;AD转换时钟选择,001专用RC时钟
    MOVWF    ADCON1
;    CLRF    ADCON1
    CLRF    ADRESL
    MOVLW    B'11001000'
    MOVWF    OPTION_REG
    MOVLW    B'00110111'
    MOVWF    OSCCON
    MOVLW    B'00000000'
    MOVWF    WPUA
;    CLRF    WPUA
    CLRF    IOCA
    CLRF    PIE1
    CLRF    PIE2

    BANKSEL     ANSEL
    MOVLW    B'00000000'    ;RA4为模拟通道--AN3 ANS3
    MOVWF    ANSEL
    MOVLW    B'00000000'
    MOVWF    ANSELH
;    CLRF    ANSELH
    CLRF    WPUB
    CLRF    IOCB
    CLRF    EEADR
    BCF STATUS, RP1 ;Bank0
    BCF STATUS, RP0 ;
    RETURN
;========================
;地址读取
;============================
ADDR_READ
    BSF    PORTC,4
    NOP
    CLRF    ADDRESSTEMP
    BTFSS    PORTC,3
    BSF        ADDRESSTEMP,7
    BTFSS    PORTC,6
    BSF        ADDRESSTEMP,6
    BTFSS    PORTC,7
    BSF        ADDRESSTEMP,5
    BTFSS    PORTB,7
    BSF        ADDRESSTEMP,4
    BTFSS    PORTC,0
    BSF        ADDRESSTEMP,3
    BTFSS    PORTB,4
    BSF        ADDRESSTEMP,2
    BTFSS    PORTC,1
    BSF        ADDRESSTEMP,1
    BTFSS    PORTC,2
    BSF        ADDRESSTEMP,0

     BCF    PORTC,4 
    MOVF    ADDRESSTEMP,W
    MOVWF    SYS_ADDR 
    BCF    SYS_ADDR,7 

    CLRWDT 

    RETURN
 
 

;**************************************
;             delay sub  时钟为477khz; 4MHZ
;**************************************

DELAY    CLRWDT
        DECFSZ    CC,1
        GOTO    DELAY
        RETURN
DE360    MOVLW    06H   ;370uS
        MOVWF    CC
        NOP
        NOP
        CALL    DELAY
        RETURN
DE250    MOVLW    05H   ;280uS
        MOVWF    CC
        NOP
        NOP
        NOP
        CALL    DELAY
        RETURN
DE200    MOVLW    03H   ;220uS
        MOVWF    CC
        CALL    DELAY
        RETURN

DE100
    MOVLW    02H
    MOVWF    CC
    CLRWDT    
    DECFSZ    CC,1
    GOTO    $-2
    RETURN


DE1MS    MOVLW    14H
        MOVWF    CC
        CALL    DELAY
        RETURN
DE5MS    MOVLW    60H   ;250uS
        MOVWF    CC
        CALL    DELAY
        RETURN


DY1S                                ;                                       ;B00
    movlw   .62                        ;
    movwf   DLY2                        ;
D16MSLP
    movlw   .251                        ; 1
    movwf   DLY1                        ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    decfsz  DLY1,f                      ; 1 / 2
    goto    $-6                         ; 2
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    decfsz  DLY2,f                      ;
    goto    D16MSLP                    ;
    RETURN

DY4S                                ;                                       ;B00
    movlw   .246                        ;
    movwf   DLY2                        ;
D496MSLP
    movlw   .251                        ; 1
    movwf   DLY1                        ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    decfsz  DLY1,f                      ; 1 / 2
    goto    $-6                         ; 2
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    clrwdt                              ; 1
    decfsz  DLY2,f                      ;
    goto    D496MSLP                    ;
    RETURN


 ;********************************************
    END