📄 command.asm
字号:
;--------------------------------------------------------------------
;[40] Reserved
TABLE_40
MOVLW CMD40
MOVWF COMMAND1
CLRF COMMAND2
MOVLW 0x00
MOVWF TX0
MOVLW 0x40 ;02
MOVWF TX1
MOVLW 0x00
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;--------------------------------------------------------------------
;[41] Reserved
TABLE_41
MOVLW CMD41
MOVWF COMMAND1
CLRF COMMAND2
MOVLW 0x5A
MOVWF TX0
MOVWF TX1
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;--------------------------------------------------------------------
;[42] Button and Analog level acquisition and actuator parameter setting
TABLE_42 MOVLW CMD42
MOVWF COMMAND1 ;COMMAND1 = 42
CLRF COMMAND2 ;COMMAND2 = 00
MOVLW 0x00
MOVWF TX0 ;TX(0-5) = 0xFF
MOVWF TX1
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
BTFSS MODE_3 ;DEVICE TYPE=3 ?
GOTO VIBRATION ;NO
; MOVLW 0x80
; MOVWF COMMAND2
MOVLW B'00000110' ;CAPTURE PORTC,1
MOVWF CCP2CON
INCF COUNTER,F ;SEND PULSE (16Hz)
BTFSS SENSOR ;ENABLE PADINT PIN ?
GOTO EXIT_TABLE_42
MOVLW 0x08 ;SEND 10
MOVWF TX0
CLRF CCP2CON ;DISABLE CAPTURE PORTC,1
GOTO EXIT_TABLE_42
;CHECK_PROTOCOL BTFSS PROTOCOL_VER ;PROTOCOL 2.0 ?
; GOTO CHECK_ACK ;NO
VIBRATION BTFSC MODE_2 ;DEVICE TYPE=2 ?
GOTO VIBRATION_1 ;YES
BTFSS DIS_BUT1,1 ;R2 BUTTON IS PRESSED ?
GOTO LARGE_MOTOR ;NO
MOVLW 0x80 ;SEND 01
MOVWF TX0
LARGE_MOTOR BTFSS DIS_BUT1,2 ;L1 BUTTON IS PRESSED ?
GOTO LARGE_MOTOR2 ;NO
MOVF RX3,W
BTFSC MODE_E ;MODE E5 ? -> "ACSII" FISHING CONTROLLER
MOVF RX5,W
CALL CONVERT
BTFSC MODE_4
MOVLW 0xFE ;SEND 7F
MOVWF TX1
GOTO LARGE_MOTOR2
VIBRATION_1 BTFSS DIS_BUT1,3 ;R1 BUTTON IS PRESSED ?
GOTO LARGE_MOTOR1 ;NO
MOVLW 0x80
MOVWF TX0
LARGE_MOTOR1 BTFSS DIS_BUT1,5 ;O BUTTON IS PRESSED ?
GOTO LARGE_MOTOR2
MOVF RX2,W
CALL CONVERT
MOVWF TX1
LARGE_MOTOR2 BTFSS DIS_BUT1,6 ;X BUTTON IS PRESSED ?
GOTO EXIT_TABLE_42 ;NO
BTFSS DIS_BUT1,2 ;L1 BUTTON IS PRESSED ?
GOTO EXIT_TABLE_42 ;NO
MOVF RX5,W
CALL CONVERT
BTFSC MODE_4 ;41 MODE ?
MOVLW 0xFE ;YES -> SEND 7F
MOVWF TX1
EXIT_TABLE_42 RETURN
;[43] Controller parameter setting mode ON/OFF,the unitialized state resetting
TABLE_43_ON MOVLW CMD43
MOVWF COMMAND1
CLRF COMMAND2
MOVLW 0x80 ;TX0=01
MOVWF TX0
MOVLW 0xFF
MOVWF TX1
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;[43] Controller parameter setting mode ON/OFF,the unitialized state resetting
TABLE_43_OFF MOVLW CMD43
MOVWF COMMAND1
CLRF COMMAND2
CLRF TX0 ;TX0=00
MOVLW 0xFF
MOVWF TX1
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;[44] Controller mode setup
TABLE_44 MOVLW CMD44
MOVWF COMMAND1
RETURN
;[45]: Controller information acquistion
TABLE_45 MOVLW CMD45 ;COMMAND1
MOVWF COMMAND1
CLRF COMMAND2 ;COMMAND2
MOVLW 0x5A
MOVWF TX0
MOVWF TX1
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;--------------------------------------------------------------------
;[4D]: Setting of actuator parameter alignment to be sent at button acquisition
TABLE_4D MOVLW CMD4D ;COMMAND1
MOVWF COMMAND1
CLRF COMMAND2 ;COMMAND2
CLRF TX0
MOVLW 0x80
MOVWF TX1 ;TX1=01
MOVLW 0xFF
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;--------------------------------------------------------------------
;[4E] Reserved
TABLE_4E
MOVLW CMD4E
MOVWF COMMAND1
CLRF COMMAND2
MOVLW 0x5A
MOVWF TX0
MOVWF TX1
MOVWF TX2
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
;--------------------------------------------------------------------
;[4F] Reserved
TABLE_4F
MOVLW CMD4F
MOVWF COMMAND1
CLRF COMMAND2
MOVLW 0xFF
MOVWF TX0
MOVWF TX1
MOVLW 0xC0 ;03
MOVWF TX2
MOVLW 0x00
MOVWF TX3
MOVWF TX4
MOVWF TX5
RETURN
TABLE_46
TABLE_47
TABLE_4C
;--------------------------------------------------------------------
SEND_40_CMD
CALL DTR_INT_TIME
CALL TABLE_40
CALL COMMUNICATE
BTFSS DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_40_CMD ;No
MOVLW 0x02 ;Yes -> Set PROTOCOL_VER=2.0
MOVWF PROTOCOL_VER
EXIT_SEND_40_CMD
RETURN
;--------------------------------------------------------------------
SEND_41_CMD
CALL DTR_INT_TIME
CALL TABLE_41
CALL COMMUNICATE
BTFSS DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_41_CMD ;No
MOVLW 0x02 ;Yes -> Set PROTOCOL_VER=2.0
MOVWF PROTOCOL_VER
EXIT_SEND_41_CMD
RETURN
;--------------------------------------------------------------------
SEND_42_CMD
CALL DTR_INT_TIME
CALL TABLE_42
CALL COMMUNICATE
RETURN
;--------------------------------------------------------------------
SEND_43_ON_CMD
CALL DTR_INT_TIME
CALL TABLE_43_ON
CALL COMMUNICATE
BTFSC DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_43_ON_CMD ;Yes
MOVLW 0x02 ;No -> Set PROTOCOL_VER=2.0
MOVWF PROTOCOL_VER
EXIT_SEND_43_ON_CMD
RETURN
;--------------------------------------------------------------------
SEND_43_OFF_CMD
CALL DTR_INT_TIME
CALL TABLE_43_OFF
CALL COMMUNICATE
BTFSS DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_43_OFF_CMD ;No
MOVLW 0x01 ;Yes -> Set PROTOCOL_VER=1.0
MOVWF PROTOCOL_VER
EXIT_SEND_43_OFF_CMD
RETURN
;--------------------------------------------------------------------
SEND_44_CMD
RETURN
;--------------------------------------------------------------------
SEND_45_CMD
CALL DTR_INT_TIME
CALL TABLE_45
CALL COMMUNICATE
MOVF RX0,W
XORLW 0xC0
BTFSS STATUS,Z ;Revision Code=03
GOTO EXIT_SEND_45_CMD ;No
MOVLW 0x04
MOVWF PROTOCOL_VER ;Set PROTOCOL_VER=3.0
EXIT_SEND_45_CMD
RETURN
;--------------------------------------------------------------------
SEND_46_CMD
RETURN
;--------------------------------------------------------------------
SEND_47_CMD
RETURN
;--------------------------------------------------------------------
SEND_48_CMD
RETURN
;--------------------------------------------------------------------
SEND_49_CMD
RETURN
;--------------------------------------------------------------------
SEND_4A_CMD
RETURN
;--------------------------------------------------------------------
SEND_4B_CMD
RETURN
;--------------------------------------------------------------------
SEND_4C_CMD
RETURN
;--------------------------------------------------------------------
SEND_4D_CMD
CALL DTR_INT_TIME
CALL TABLE_4D
CALL COMMUNICATE
BTFSS DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_4D_CMD ;No
MOVLW 0x01 ;Yes
MOVWF PROTOCOL_VER
EXIT_SEND_4D_CMD
RETURN
;--------------------------------------------------------------------
SEND_4E_CMD
CALL DTR_INT_TIME
CALL TABLE_4E
CALL COMMUNICATE
BTFSS DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_4E_CMD ;No
MOVLW 0x02 ;Yes ->Set PROTOCOL_VER=2.0
MOVWF PROTOCOL_VER
EXIT_SEND_4E_CMD
RETURN
;--------------------------------------------------------------------
SEND_4F_CMD
CALL DTR_INT_TIME
CALL TABLE_4F
CALL COMMUNICATE
BTFSS DSR_TIMOUT_FB ;DSR time out ?
GOTO EXIT_SEND_4F_CMD ;No
MOVLW 0x02 ;Yes ->Set PROTOCOL_VER=2.0
MOVWF PROTOCOL_VER
EXIT_SEND_4F_CMD
RETURN
;--------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -