📄 yydcld.asm
字号:
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 + -