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

📄 yydcld.asm

📁 本程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
            SUBWF   0x76      , f
            MOVF    0x79      , W
            SUBWF   0x77      , W
            ADDWF   0x79      , f
            SUBWF   0x77      , f
            RETURN
Label_0059  MOVF    0x7A      , W
            SUBWF   0x78      , W
            BTFSS   STATUS    , C
            RETURN
            BTFSS   STATUS    , Z
            GOTO    Label_005F
            MOVF    0x7B      , W
            SUBWF   0x79      , W
            BTFSS   STATUS    , C
            RETURN
Label_005F  MOVF    0x7A      , W
            SUBWF   0x78      , W
            ADDWF   0x7A      , f
            SUBWF   0x78      , f
            MOVF    0x7B      , W
            SUBWF   0x79      , W
            ADDWF   0x7B      , f
            SUBWF   0x79      , f
            RETURN
;==========================================================
;将各自暂存区的数据复制到70~7f中
;==========================================================
copy1       MOVLW   0x30
            MOVWF   FSR
Label_0060  MOVF    INDF      , W
            BSF     FSR       , 06
            MOVWF   INDF
            BCF     FSR       , 06
            INCF    FSR       , f
            BTFSC   FSR       , 04
            GOTO    Label_0060
            RETURN
;===========================================================

copy2       MOVLW   0x40
            MOVWF   FSR
Label_0061  MOVF    INDF      , W
            BSF     FSR       , 04
            BSF     FSR       , 05
            MOVWF   INDF
            BCF     FSR       , 04
            BCF     FSR       , 05
            INCF    FSR       , f
            BTFSS   FSR       , 04
            GOTO    Label_0061
            RETURN
;===========================================================

copy3       MOVLW   0x50
            MOVWF   FSR
Label_0062  MOVF    INDF      , W
            BSF     FSR       , 05
            MOVWF   INDF
            BCF     FSR       , 05
            INCF    FSR       , f
            BTFSC   FSR       , 04
            GOTO    Label_0062
            RETURN
;===========================================================
copy4       MOVLW   0x60
            MOVWF   FSR
Label_0063  MOVF    INDF      , W
            BSF     FSR       , 04
            MOVWF   INDF
            BCF     FSR       , 04
            INCF    FSR       , f
            BTFSS   FSR       , 04
            GOTO    Label_0063
            RETURN

;======================================================
;往FIFO缓冲区 移动2个字节
;======================================================   
move_ram1  MOVLW   0x10
            MOVWF   0x7D
Label_0064  RLF     0x7F      , f
            RLF     0x7E      , f
            RLF     0x3B      , f
            RLF     0x3A      , f
            RLF     0x39      , f
            RLF     0x38      , f
            RLF     0x37      , f
            RLF     0x36      , f
            RLF     0x35      , f
            RLF     0x34      , f
            RLF     0x33      , f
            RLF     0x32      , f
            RLF     0x31      , f
            RLF     0x30      , f
            DECFSZ  0x7D      , f
            GOTO    Label_0064
            RETURN
;====================================================
move_ram2   MOVLW   0x10
            MOVWF   0x7D
Label_0065  RLF     0x7F      , f
            RLF     0x7E      , f
            RLF     0x4B      , f
            RLF     0x4A      , f
            RLF     0x49      , f
            RLF     0x48      , f
            RLF     0x47      , f
            RLF     0x46      , f
            RLF     0x45      , f
            RLF     0x44      , f
            RLF     0x43      , f
            RLF     0x42      , f
            RLF     0x41      , f
            RLF     0x40      , f
            DECFSZ  0x7D      , f
            GOTO    Label_0065
            RETURN
;======================================================
move_ram3   MOVLW   0x10
            MOVWF   0x7D
Label_0066  RLF     0x7F      , f
            RLF     0x7E      , f
            RLF     0x5B      , f
            RLF     0x5A      , f
            RLF     0x59      , f
            RLF     0x58      , f
            RLF     0x57      , f
            RLF     0x56      , f
            RLF     0x55      , f
            RLF     0x54      , f
            RLF     0x53      , f
            RLF     0x52      , f
            RLF     0x51      , f
            RLF     0x50      , f
            DECFSZ  0x7D      , f
            GOTO    Label_0066
            RETURN
;============================================================
move_ram4   MOVLW   0x10
            MOVWF   0x7D
Label_0067  RLF     0x7F      , f
            RLF     0x7E      , f
            RLF     0x6B      , f
            RLF     0x6A      , f
            RLF     0x69      , f
            RLF     0x68      , f
            RLF     0x67      , f
            RLF     0x66      , f
            RLF     0x65      , f
            RLF     0x64      , f
            RLF     0x63      , f
            RLF     0x62      , f
            RLF     0x61      , f
            RLF     0x60      , f
            DECFSZ  0x7D      , f
            GOTO    Label_0067
            RETURN
;=========================================================
;距离分档程序 ,分档后数据保存在2b,2c,2d,2e中
;=========================================================
assort      MOVF    0x3C      , W
            MOVWF   0x70
            MOVF    0x3D      , W
            MOVWF   0x71
            CALL    Label_0068
            MOVWF   0x2B
            MOVF    0x4C      , W
            MOVWF   0x70
            MOVF    0x4D      , W
            MOVWF   0x71
            CALL    Label_0068
            MOVWF   0x2C
            MOVF    0x5C      , W
            MOVWF   0x70
            MOVF    0x5D      , W
            MOVWF   0x71
            CALL    Label_0068
            MOVWF   0x2D
            MOVF    0x6C      , W
            MOVWF   0x70
            MOVF    0x6D      , W
            MOVWF   0x71
            CALL    Label_0068
            MOVWF   0x2E
            RETURN
;======================================================
Label_0068  MOVLW   0x23                            ;与0x2355 比较 15.3m
            SUBWF   0x70      , W
            BTFSS   STATUS    , C
            GOTO    less0x23
            BTFSC   STATUS    , Z      ;大于等于0x23
            GOTO    equ0x23
            GOTO    more0x23
equ0x23     MOVLW   0x55               ;高字节与0x23相等,与0x55比较低字节
            SUBWF   0x71      , W
            BTFSS   STATUS    , C
            GOTO    less0x23
            GOTO    more0x23
more0x23    MOVLW   0x00                         ;(0x00)>0x55
            RETURN
less0x23    MOVLW   0x17                          ;与0x17d0 比较 10.3m
            SUBWF   0x70      , W
            BTFSS   STATUS    , C
            GOTO    Label_006C
            BTFSC   STATUS    , Z
            GOTO    Label_006D
            GOTO    Label_006E
Label_006D  MOVLW   0xD0
            SUBWF   0x71      , W
            BTFSS   STATUS    , C
            GOTO    Label_006C
            GOTO    Label_006E
Label_006E  MOVLW   0xC0                      ;    0x17d0<(0xc0)<0x2355 
            RETURN
Label_006C  MOVLW   0x0A                      ;0x0a00:4.3m
            SUBWF   0x70      , W
            BTFSS   STATUS    , C
            GOTO    Label_006F
            BTFSC   STATUS    , Z
            GOTO    Label_0070
            GOTO    Label_0071
Label_0070  MOVLW   0x00           
            SUBWF   0x71      , W
            BTFSS   STATUS    , C
            GOTO    Label_006F
            GOTO    Label_0071
Label_0071  MOVLW   0xFC                    ;0x0a00<(0xfc)<0x17d0
            RETURN
Label_006F  MOVLW   0xFE                     ;(0xff)<0x0a00
            RETURN
;===============================================================
;
;===============================================================
speak_on    BTFSC   0x5F      , 00
            GOTO    Label_0072
            BTFSC   0x5F      , 01
            GOTO    Label_0072
            BTFSC   0x5F      , 02
            GOTO    Label_0073
            BTFSC   0x5F      , 03
            GOTO    Label_0074
            GOTO    Label_0072
Label_0073  BTFSS   0x5F      , 04
            GOTO    Label_0075
            DECFSZ  0x5E      , f
            RETURN
            BCF     PORTA     , 00
            BCF     0x5F      , 04
            MOVLW   0x01
            MOVWF   0x5E
            RETURN
Label_0075  DECFSZ  0x5E      , f
            RETURN
            GOTO    Label_0072
Label_0074  BTFSS   0x5F      , 04
            GOTO    Label_0076
            DECFSZ  0x5E      , f
            RETURN
            BCF     PORTA     , 00
            BCF     0x5F      , 04
            MOVLW   0x02
            MOVWF   0x5E
            RETURN
Label_0076  DECFSZ  0x5E      , f
            RETURN
            GOTO    Label_0072
Label_0072  MOVLW   0x02
            MOVWF   0x5F
            BTFSC   0x2B      , 01
            GOTO    Label_0077
            BTFSC   0x2C      , 01
            GOTO    Label_0077
            BTFSC   0x2D      , 01
            GOTO    Label_0077
            BTFSC   0x2E      , 01
            GOTO    Label_0077
            MOVLW   0x14
            MOVWF   0x5F
            MOVLW   0x01
            MOVWF   0x5E
            BTFSC   0x2B      , 04
            GOTO    Label_0077
            BTFSC   0x2C      , 04
            GOTO    Label_0077
            BTFSC   0x2D      , 04
            GOTO    Label_0077
            BTFSC   0x2E      , 04
            GOTO    Label_0077
            MOVLW   0x18
            MOVWF   0x5F
            MOVLW   0x02
            MOVWF   0x5E
            BTFSC   0x2B      , 07
            GOTO    Label_0077
            BTFSC   0x2C      , 07
            GOTO    Label_0077
            BTFSC   0x2D      , 07
            GOTO    Label_0077
            BTFSC   0x2E      , 07
            GOTO    Label_0077
            MOVLW   0x00           ;如果距离大于1.53m则不发声
            MOVWF   0x5F
            BCF     PORTA     , 00
            RETURN
Label_0077  BSF     PORTA     , 00
            RETURN
;=======================================================
speak_off   BTFSC   0x5F      , 01
            BCF     PORTA     , 00
            RETURN
;=======================================================
;检测处理探头,
;=======================================================
speak_indication   
            CLRF    0x7F
            INCF    0x7F      , f
            BTFSC   0x25      , 00 ;0x25.0为0(有故障),跳转
            INCF    0x7F      , f
            BTFSC   0x25      , 01 ;0x25.1为0(有故障),跳转
            INCF    0x7F      , f
            BTFSC   0x25      , 02 ;0x25.2为0(有故障),跳转
            INCF    0x7F      , f
            BTFSC   0x25      , 03 ;0x25.3为0(有故障),跳转
            INCF    0x7F      , f
            MOVLW   0x05
            SUBWF   0x7F      , W
            BTFSC   STATUS    , Z  ;为0跳转
            CLRF    0x7F
Label_0078  BSF     PORTA     , 00 ;RA0 如果正常响1声,否则响256声
            CALL    delay500ms
            BCF     PORTA     , 00
            CALL    delay500ms
            CALL    delay500ms
            DECFSZ  0x7F      , f  ;减1为0,跳转
            GOTO    Label_0078
            RETURN

            END

⌨️ 快捷键说明

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