📄 samplecerebv2.asm
字号:
; This file was generated by C2C-plus compiler version 4.1.7e
include "p16F877.inc"
;Variables *****************************************
_intr_tmp_0000 equ 0x70
_code_tmp_0000 equ 0x71
_code_tmp_0001 equ 0x72
_code_tmp_0002 equ 0x73
_code_tmp_0003 equ 0x74
_code_tmp_0004 equ 0x75
_code_tmp_0005 equ 0x76
_code_tmp_0006 equ 0x77
__int_save_cont_W equ 0x78
__int_save_cont_STATUS equ 0x79
__int_save_cont_FSR equ 0x7a
__int_save_cont_PCLATH equ 0x7b
__const_ptr__param00 equ 0x7c
_servo_pos equ 0x20
param00_ser_putstring equ 0x7d
param00_delay_ms equ 0x7e
_save_w equ 0x28
_save_status equ 0x2a
_postest equ 0x2c
param00_delay_us equ 0x2e
_ser_tmp equ 0x2f
_servo_state equ 0x30
_servo_curr equ 0x31
_servo_mask equ 0x32
_servo_switch equ 0x33
__servo_free equ 0x34
_ccpcon equ 0x35
param00_ser_init equ 0x36
param00_ser_tx equ 0x37
_i_ser_putstring equ 0x38
param00_ser_writechar equ 0x39
param00_adc_read equ 0x3a
_inc_button_sample equ 0x3b
_SSPCON equ 0x14
_PIR1 equ 0x0c
_PIE1 equ 0x8c
_TRISC equ 0x87
_TRISD equ 0x88
_TXSTA equ 0x98
_RCSTA equ 0x18
_SPBRG equ 0x99
_RCREG equ 0x1a
_TXREG equ 0x19
_PORTD equ 0x08
_myOption_Reg equ 0x81
_ADCON0 equ 0x1f
_ADRESH equ 0x1e
_ADCON1 equ 0x9f
_CCP1CON equ 0x17
_CCP2CON equ 0x1d
_TMR2 equ 0x11
_PR2 equ 0x92
_CCPR1L equ 0x15
_CCPR2L equ 0x1b
_T2CON equ 0x12
_PORTC equ 0x07
ORG 0
clrf PCLATH
goto start__code
ORG 4
_interrupt
_interrupt__code
movwf __int_save_cont_W
swapf __int_save_cont_W, F
swapf STATUS, W
movwf __int_save_cont_STATUS
swapf FSR, W
movwf __int_save_cont_FSR
swapf PCLATH, W
movwf __int_save_cont_PCLATH
clrf PCLATH
bcf STATUS, RP0
bcf STATUS, RP1
movwf _save_w
swapf STATUS,W
bcf STATUS,5
bcf STATUS,6
movwf _save_status
movf INTCON, W
andlw D'36'
sublw 0
btfss STATUS, Z
call _do_servo
bcf PCLATH, 3
bcf PCLATH, 4
label_0042
bcf STATUS, RP0
bcf STATUS, RP1
swapf _save_status,W
movwf STATUS
swapf _save_w,F
swapf _save_w,W
swapf __int_save_cont_PCLATH, W
movwf PCLATH
swapf __int_save_cont_FSR, W
movwf FSR
swapf __int_save_cont_STATUS, W
movwf STATUS
swapf __int_save_cont_W, W
retfie
_interrupt__end
_ser_init
goto _ser_init__code
_ser_tx
goto _ser_tx__code
_ser_putstring
goto _ser_putstring__code
_ser_writechar
goto _ser_writechar__code
_ser_rcv_nb
goto _ser_rcv_nb__code
_servo_init
goto _servo_init__code
_delay_ms
goto _delay_ms__code
_do_servo
goto _do_servo__code
_adc_read
goto _adc_read__code
_delay_us
goto _delay_us__code
_pwm_init
goto _pwm_init__code
_init_cerebellum
goto _init_cerebellum__code
_button_sample
goto _button_sample__code
const_param__code
clrf PCLATH
addwf PCL, F
movf __const_ptr__param00, W
addlw LOW(arr000+1)
movlw HIGH(arr000+1)
btfsc STATUS, C
addlw 1
movwf PCLATH
movf __const_ptr__param00, W
goto arr000
movf __const_ptr__param00, W
addlw LOW(arr001+1)
movlw HIGH(arr001+1)
btfsc STATUS, C
addlw 1
movwf PCLATH
movf __const_ptr__param00, W
goto arr001
movf __const_ptr__param00, W
addlw LOW(arr002+1)
movlw HIGH(arr002+1)
btfsc STATUS, C
addlw 1
movwf PCLATH
movf __const_ptr__param00, W
goto arr002
movf __const_ptr__param00, W
addlw LOW(arr003+1)
movlw HIGH(arr003+1)
btfsc STATUS, C
addlw 1
movwf PCLATH
movf __const_ptr__param00, W
goto arr003
movf __const_ptr__param00, W
addlw LOW(arr004+1)
movlw HIGH(arr004+1)
btfsc STATUS, C
addlw 1
movwf PCLATH
movf __const_ptr__param00, W
goto arr004
movf __const_ptr__param00, W
addlw LOW(arr005+1)
movlw HIGH(arr005+1)
btfsc STATUS, C
addlw 1
movwf PCLATH
movf __const_ptr__param00, W
goto arr005
arr000
addwf PCL, F
retlw D'10'
retlw D'13'
retlw D'82'
retlw D'101'
retlw D'99'
retlw D'101'
retlw D'105'
retlw D'118'
retlw D'101'
retlw D'100'
retlw D'58'
retlw D'32'
retlw D'0'
arr001
addwf PCL, F
retlw D'110'
retlw D'111'
retlw D'116'
retlw D'104'
retlw D'105'
retlw D'110'
retlw D'103'
retlw D'32'
retlw D'116'
retlw D'111'
retlw D'32'
retlw D'114'
retlw D'101'
retlw D'97'
retlw D'100'
retlw D'46'
retlw D'46'
retlw D'46'
retlw D'0'
arr002
addwf PCL, F
retlw D'10'
retlw D'13'
retlw D'69'
retlw D'110'
retlw D'100'
retlw D'49'
retlw D'0'
arr003
addwf PCL, F
retlw D'65'
retlw D'68'
retlw D'67'
retlw D'55'
retlw D'32'
retlw D'114'
retlw D'101'
retlw D'97'
retlw D'100'
retlw D'58'
retlw D'32'
retlw D'0'
arr004
addwf PCL, F
retlw D'10'
retlw D'13'
retlw D'69'
retlw D'110'
retlw D'100'
retlw D'50'
retlw D'10'
retlw D'13'
retlw D'0'
arr005
addwf PCL, F
retlw D'10'
retlw D'13'
retlw D'87'
retlw D'101'
retlw D'108'
retlw D'99'
retlw D'111'
retlw D'109'
retlw D'101'
retlw D'32'
retlw D'116'
retlw D'111'
retlw D'32'
retlw D'67'
retlw D'101'
retlw D'114'
retlw D'101'
retlw D'98'
retlw D'101'
retlw D'108'
retlw D'108'
retlw D'117'
retlw D'109'
retlw D'33'
retlw D'10'
retlw D'13'
retlw D'0'
start__code
bcf STATUS, RP0
bcf STATUS, RP1
clrf _servo_state
clrf _servo_curr
movlw D'255'
movwf _servo_mask
movlw D'1'
movwf _servo_switch
clrf _servo_pos
clrf _servo_pos+D'1'
clrf _servo_pos+D'2'
clrf _servo_pos+D'3'
clrf _servo_pos+D'4'
clrf _servo_pos+D'5'
clrf _servo_pos+D'6'
clrf _servo_pos+D'7'
clrf __servo_free
movlw D'100'
movwf _postest
clrf _postest+D'1'
_main__code
call _init_cerebellum
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'10'
bcf STATUS, RP0
bcf STATUS, RP1
movwf param00_ser_init
call _ser_init
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'40'
movwf param00_ser_putstring
call _ser_putstring
bcf PCLATH, 3
bcf PCLATH, 4
call _servo_init
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'1'
bcf STATUS, RP0
bcf STATUS, RP1
movwf _servo_state
bsf INTCON, D'7'
movlw D'255'
movwf _servo_mask
movf _postest+D'1', W
movwf _code_tmp_0000
movf _postest, W
movwf _servo_pos+D'1'
bsf STATUS, RP0
clrf _ADCON1
call _pwm_init
bcf PCLATH, 3
bcf PCLATH, 4
call _button_sample
bcf PCLATH, 3
bcf PCLATH, 4
_main__end
_ser_init__code
bcf STATUS, RP0
bcf STATUS, RP1
clrf _SSPCON
clrf _PIR1
bsf STATUS, RP0
bcf _PIE1, D'5'
bcf _PIE1, D'4'
movf _TRISC, W
iorlw D'192'
movwf _TRISC
bcf STATUS, RP0
movf param00_ser_init, W
bsf STATUS, RP0
movwf _SPBRG
movlw D'36'
movwf _TXSTA
movlw D'144'
bcf STATUS, RP0
movwf _RCSTA
movf _RCREG, W
movwf _ser_tmp
movf _RCREG, W
movwf _ser_tmp
movf _RCREG, W
movwf _ser_tmp
return
_ser_init__end
_ser_tx__code
label_0000
bcf STATUS, RP0
bcf STATUS, RP1
movf _PIR1, W
andlw D'16'
andlw 0xFF
movlw 1
btfss STATUS, Z
movlw 0
sublw 0
btfsc STATUS, Z
goto label_0001
goto label_0000
label_0001
bcf STATUS, RP0
bcf STATUS, RP1
movf param00_ser_tx, W
movwf _TXREG
return
_ser_tx__end
_ser_putstring__code
bcf STATUS, RP0
bcf STATUS, RP1
clrf _i_ser_putstring
label_0002
bcf STATUS, RP0
bcf STATUS, RP1
movf _i_ser_putstring, W
movwf __const_ptr__param00
movf param00_ser_putstring, W
call const_param__code
bcf PCLATH, 3
bcf PCLATH, 4
sublw D'0'
movlw 1
btfsc STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0003
bcf STATUS, RP0
bcf STATUS, RP1
movf _i_ser_putstring, W
incf _i_ser_putstring, F
movwf __const_ptr__param00
movf param00_ser_putstring, W
call const_param__code
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bcf STATUS, RP1
movwf param00_ser_tx
call _ser_tx
bcf PCLATH, 3
bcf PCLATH, 4
goto label_0002
label_0003
return
_ser_putstring__end
_ser_writechar__code
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_0004
bcf STATUS, C
btfsc _code_tmp_0004 , 7
bsf STATUS, C
rlf _code_tmp_0003 , F
movlw D'100'
subwf _code_tmp_0003 , F
btfsc STATUS, C
goto label_0005
addwf _code_tmp_0003 , F
bcf STATUS, C
label_0005
rlf _code_tmp_0004 , F
decfsz _code_tmp_0002 , F
goto label_0004
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
movlw D'8'
movwf _code_tmp_0004
clrf _code_tmp_0005
bcf STATUS, RP0
bcf STATUS, RP1
movf param00_ser_writechar, W
movwf _code_tmp_0006
label_0006
bcf STATUS, C
btfsc _code_tmp_0006 , 7
bsf STATUS, C
rlf _code_tmp_0005 , F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -