📄 samplecerebv2.asm
字号:
movlw D'100'
subwf _code_tmp_0005 , F
btfsc STATUS, C
goto label_0007
addwf _code_tmp_0005 , F
bcf STATUS, C
label_0007
rlf _code_tmp_0006 , F
decfsz _code_tmp_0004 , F
goto label_0006
movf _code_tmp_0005 , W
movwf _code_tmp_0004
label_0008
bcf STATUS, C
btfsc _code_tmp_0004 , 7
bsf STATUS, C
rlf _code_tmp_0003 , F
movlw D'10'
subwf _code_tmp_0003 , F
btfsc STATUS, C
goto label_0009
addwf _code_tmp_0003 , F
bcf STATUS, C
label_0009
rlf _code_tmp_0004 , F
decfsz _code_tmp_0002 , F
goto label_0008
movf _code_tmp_0004 , W
addwf _code_tmp_0001 , W
btfsc STATUS, C
incf _code_tmp_0000 , F
bcf STATUS, RP0
bcf STATUS, RP1
movwf param00_ser_tx
call _ser_tx
bcf PCLATH, 3
bcf PCLATH, 4
clrf _code_tmp_0000
movlw D'48'
movwf _code_tmp_0001
movlw D'8'
movwf _code_tmp_0002
clrf _code_tmp_0003
bcf STATUS, RP0
bcf STATUS, RP1
movf param00_ser_writechar, W
movwf _code_tmp_0004
label_0010
bcf STATUS, C
btfsc _code_tmp_0004 , 7
bsf STATUS, C
rlf _code_tmp_0003 , F
movlw D'10'
subwf _code_tmp_0003 , F
btfsc STATUS, C
goto label_0011
addwf _code_tmp_0003 , F
bcf STATUS, C
label_0011
rlf _code_tmp_0004 , F
decfsz _code_tmp_0002 , F
goto label_0010
movf _code_tmp_0003 , W
addwf _code_tmp_0001 , W
btfsc STATUS, C
incf _code_tmp_0000 , F
bcf STATUS, RP0
bcf STATUS, RP1
movwf param00_ser_tx
call _ser_tx
bcf PCLATH, 3
bcf PCLATH, 4
return
_ser_writechar__end
_ser_rcv_nb__code
bcf STATUS, RP0
bcf STATUS, RP1
btfss _PIR1, 5
goto label_0019
movf _RCREG, W
movwf _ser_tmp
movf _ser_tmp, W
return
goto label_0020
label_0019
movlw D'0'
return
label_0020
return
_ser_rcv_nb__end
_servo_init__code
movlw D'132'
bsf STATUS, RP0
bcf STATUS, RP1
movwf OPTION_REG
clrf _TRISD
bsf INTCON, T0IE
movlw D'1'
movwf param00_delay_ms
call _delay_ms
bcf PCLATH, 3
bcf PCLATH, 4
return
_servo_init__end
_delay_ms__code
label_0021
movlw D'185'
movwf param00_delay_ms+1
nop
label_0022
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz param00_delay_ms+1, F
goto label_0022
nop
decfsz param00_delay_ms, F
goto label_0021
nop
return
_delay_ms__end
_do_servo__code
bcf STATUS, RP0
bcf STATUS, RP1
bcf __servo_free, D'0'
movf _servo_state, W
sublw D'1'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0023
movlw D'153'
movwf TMR0
movf _servo_curr, W
addlw _servo_pos
movwf FSR
bcf STATUS, IRP
movf INDF, W
sublw D'0'
movlw 1
btfsc STATUS, Z
clrw
andlw 0xFF
btfsc STATUS, Z
goto label_0025
bcf STATUS, RP0
bcf STATUS, RP1
movf _servo_mask, W
andwf _servo_switch, W
sublw D'0'
movlw 1
btfsc STATUS, Z
clrw
andlw 0xFF
btfsc STATUS, Z
goto label_0025
movlw 1
label_0025
sublw 0
btfsc STATUS, Z
goto label_0024
bcf STATUS, RP0
bcf STATUS, RP1
movf _servo_switch, W
iorwf _PORTD, F
label_0024
movlw D'2'
bcf STATUS, RP0
bcf STATUS, RP1
movwf _servo_state
bsf __servo_free, D'0'
goto label_0026
label_0023
bcf STATUS, RP0
bcf STATUS, RP1
movf _servo_state, W
sublw D'2'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0027
movf _servo_curr, W
addlw _servo_pos
movwf FSR
bcf STATUS, IRP
movf INDF, W
sublw D'255'
bcf STATUS, RP0
bcf STATUS, RP1
movwf TMR0
movlw D'3'
movwf _servo_state
goto label_0028
label_0027
bcf STATUS, RP0
bcf STATUS, RP1
movf _servo_state, W
sublw D'3'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0029
movf _servo_mask, W
andwf _servo_switch, W
sublw D'0'
movlw 1
btfsc STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0030
comf _servo_switch, W
andwf _PORTD, F
label_0030
bcf STATUS, RP0
bcf STATUS, RP1
movf _servo_curr, W
addlw _servo_pos
movwf FSR
bcf STATUS, IRP
movf INDF, W
bcf STATUS, RP0
bcf STATUS, RP1
movwf TMR0
clrf _intr_tmp_0000
movf _servo_curr, W
addlw D'1'
btfsc STATUS, C
incf _intr_tmp_0000 , F
movwf _servo_curr
movf _servo_curr, W
andlw D'7'
movwf _servo_curr
movf _servo_switch, W
movwf _intr_tmp_0000
rlf _intr_tmp_0000 , W
andlw D'254'
movwf _servo_switch
movf _servo_switch, W
sublw D'0'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0031
movlw D'1'
movwf _servo_switch
label_0031
movlw D'1'
bcf STATUS, RP0
bcf STATUS, RP1
movwf _servo_state
label_0029
label_0028
label_0026
bcf INTCON, D'2'
return
_do_servo__end
_adc_read__code
bcf STATUS, RP0
bcf STATUS, RP1
movf param00_adc_read, W
movwf _code_tmp_0000
rlf _code_tmp_0000 , F
rlf _code_tmp_0000 , F
rlf _code_tmp_0000 , W
andlw D'248'
andlw D'56'
movwf _ADCON0
movlw D'129'
iorwf _ADCON0, F
movlw D'12'
movwf param00_delay_us
call _delay_us
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'4'
bcf STATUS, RP0
bcf STATUS, RP1
iorwf _ADCON0, F
label_0033
bcf STATUS, RP0
bcf STATUS, RP1
btfss _ADCON0, 2
goto label_0034
goto label_0033
label_0034
movlw D'4'
bcf STATUS, RP0
bcf STATUS, RP1
movwf param00_delay_us
call _delay_us
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
movf _ADRESH, W
return
_adc_read__end
_delay_us__code
movlw D'2'
bcf STATUS, RP0
bcf STATUS, RP1
subwf param00_delay_us, F
label_0032
nop
nop
decfsz param00_delay_us, F
goto label_0032
nop
return
_delay_us__end
_pwm_init__code
bcf STATUS, RP0
bcf STATUS, RP1
clrf _CCP1CON
clrf _CCP2CON
clrf _TMR2
movlw D'255'
bsf STATUS, RP0
movwf _PR2
bcf STATUS, RP0
clrf _CCPR1L
clrf _CCPR2L
bsf STATUS, RP0
movf _TRISC, W
andlw D'216'
movwf _TRISC
bcf TRISB, D'1'
bcf TRISA, D'4'
movlw D'60'
bcf STATUS, RP0
movwf _ccpcon
movf _ccpcon, W
movwf _CCP1CON
movf _ccpcon, W
movwf _CCP2CON
bsf _T2CON, D'2'
return
_pwm_init__end
_init_cerebellum__code
movlw D'207'
bsf STATUS, RP0
bcf STATUS, RP1
andwf TRISB, F
movlw D'207'
bcf STATUS, RP0
andwf PORTB, F
bsf STATUS, RP0
clrf _TRISD
return
_init_cerebellum__end
_button_sample__code
label_0043
bcf STATUS, RP0
bcf STATUS, RP1
btfss PORTB, 2
goto label_0045
bsf PORTB, D'5'
call _ser_rcv_nb
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
movwf _inc_button_sample
clrf param00_ser_putstring
call _ser_putstring
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
movf _inc_button_sample, W
sublw D'0'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0046
movlw D'8'
movwf param00_ser_putstring
call _ser_putstring
bcf PCLATH, 3
bcf PCLATH, 4
goto label_0047
label_0046
bcf STATUS, RP0
bcf STATUS, RP1
movf _inc_button_sample, W
movwf param00_ser_tx
call _ser_tx
bcf PCLATH, 3
bcf PCLATH, 4
label_0047
movlw D'16'
movwf param00_ser_putstring
call _ser_putstring
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
decf _postest, F
incf _postest, W
btfsc STATUS, Z
decf _postest+1, F
movf _postest+D'1', W
movwf _code_tmp_0000
movf _postest, W
movwf _servo_pos+D'1'
movlw D'7'
movwf param00_adc_read
call _adc_read
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
movwf _inc_button_sample
movlw D'24'
movwf param00_ser_putstring
call _ser_putstring
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
movf _inc_button_sample, W
movwf param00_ser_writechar
call _ser_writechar
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'32'
movwf param00_ser_putstring
call _ser_putstring
bcf PCLATH, 3
bcf PCLATH, 4
label_0045
bcf STATUS, RP0
bcf STATUS, RP1
bsf PORTB, D'4'
movlw D'250'
movwf param00_delay_ms
call _delay_ms
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
bcf PORTB, D'4'
bcf PORTB, D'5'
movlw D'250'
movwf param00_delay_ms
call _delay_ms
bcf PCLATH, 3
bcf PCLATH, 4
goto label_0043
label_0044
return
_button_sample__end
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -