📄 cradle.asm
字号:
$00EA $ L_Start_motor_13:
$00EA $ L_Start_motor_11:
;Cradle.c,77 :: }
$00EA $0008 RETURN
$00EB $ _Stop_motor:
;Cradle.c,35 :: void Stop_motor()
;Cradle.c,37 :: while (speed != 120)
$00EB $ L_Stop_motor_4:
$00EB $3000 MOVLW 0
$00EC $1303 BCF STATUS, RP1
$00ED $1283 BCF STATUS, RP0
$00EE $0621 XORWF _speed+1, 0
$00EF $1D03 BTFSS STATUS, Z
$00F0 $28F3 GOTO L_Stop_motor_34
$00F1 $3078 MOVLW 120
$00F2 $0620 XORWF _speed, 0
$00F3 $ L_Stop_motor_34:
$00F3 $1903 BTFSC STATUS, Z
$00F4 $290C GOTO L_Stop_motor_5
;Cradle.c,39 :: delay_ms(30);
$00F5 $3027 MOVLW 39
$00F6 $00FB MOVWF STACK_11
$00F7 $30FF MOVLW 255
$00F8 $00FA MOVWF STACK_10
$00F9 $0BFB DECFSZ STACK_11, F
$00FA $28FC GOTO $+2
$00FB $28FF GOTO $+4
$00FC $0BFA DECFSZ STACK_10, F
$00FD $28FC GOTO $-1
$00FE $28F9 GOTO $-5
$00FF $30DB MOVLW 219
$0100 $00FA MOVWF STACK_10
$0101 $0BFA DECFSZ STACK_10, F
$0102 $2901 GOTO $-1
$0103 $0000 NOP
;Cradle.c,40 :: PWM_Duty (speed);
$0104 $0820 MOVF _speed, 0
$0105 $00A4 MOVWF FARG_PWM_Duty+0
$0106 $2004 CALL _PWM_Duty
;Cradle.c,41 :: speed--;
$0107 $3001 MOVLW 1
$0108 $02A0 SUBWF _speed, 1
$0109 $1C03 BTFSS STATUS, C
$010A $03A1 DECF _speed+1, 1
;Cradle.c,42 :: }
$010B $28EB GOTO L_Stop_motor_4
$010C $ L_Stop_motor_5:
;Cradle.c,47 :: Stop_PWM();
$010C $202B CALL _Stop_PWM
;Cradle.c,48 :: Delay_ms (5000);
$010D $301A MOVLW 26
$010E $00FC MOVWF STACK_12
$010F $30FF MOVLW 255
$0110 $00FB MOVWF STACK_11
$0111 $30FF MOVLW 255
$0112 $00FA MOVWF STACK_10
$0113 $0BFC DECFSZ STACK_12, F
$0114 $2916 GOTO $+2
$0115 $291D GOTO $+8
$0116 $0BFB DECFSZ STACK_11, F
$0117 $2919 GOTO $+2
$0118 $291C GOTO $+4
$0119 $0BFA DECFSZ STACK_10, F
$011A $2919 GOTO $-1
$011B $2916 GOTO $-5
$011C $2913 GOTO $-9
$011D $307F MOVLW 127
$011E $00FB MOVWF STACK_11
$011F $30FF MOVLW 255
$0120 $00FA MOVWF STACK_10
$0121 $0BFB DECFSZ STACK_11, F
$0122 $2924 GOTO $+2
$0123 $2927 GOTO $+4
$0124 $0BFA DECFSZ STACK_10, F
$0125 $2924 GOTO $-1
$0126 $2921 GOTO $-5
$0127 $3058 MOVLW 88
$0128 $00FA MOVWF STACK_10
$0129 $0BFA DECFSZ STACK_10, F
$012A $2929 GOTO $-1
$012B $0000 NOP
$012C $0000 NOP
;Cradle.c,49 :: }
$012D $0008 RETURN
$012E $ _main:
;Cradle.c,79 :: void main()
;Cradle.c,81 :: PORTA = 0;
$012E $1303 BCF STATUS, RP1
$012F $1283 BCF STATUS, RP0
$0130 $0185 CLRF PORTA, 1
;Cradle.c,82 :: PORTB = 0;
$0131 $0186 CLRF PORTB, 1
;Cradle.c,83 :: TRISA = 0x1f;
$0132 $301F MOVLW 31
$0133 $1683 BSF STATUS, RP0
$0134 $0085 MOVWF TRISA
;Cradle.c,84 :: TRISB = 0;
$0135 $0186 CLRF TRISB, 1
;Cradle.c,85 :: CMCON = 3;
$0136 $3003 MOVLW 3
$0137 $1283 BCF STATUS, RP0
$0138 $009F MOVWF CMCON
;Cradle.c,86 :: PWM_Period(250);
$0139 $30FA MOVLW 250
$013A $00A3 MOVWF FARG_PWM_Period+0
$013B $2088 CALL _PWM_Period
;Cradle.c,87 :: while (1)
$013C $ L_main_14:
;Cradle.c,89 :: if (PORTA.F3 == 1)
$013C $3000 MOVLW 0
$013D $1985 BTFSC PORTA, 3
$013E $3001 MOVLW 1
$013F $00F2 MOVWF STACK_2
$0140 $0872 MOVF STACK_2, 0
$0141 $3A01 XORLW 1
$0142 $1D03 BTFSS STATUS, Z
$0143 $29DB GOTO L_main_16
;Cradle.c,91 :: PORTB.F0 = 0;
$0144 $1006 BCF PORTB, 0
;Cradle.c,92 :: PORTB.F1 = 1;
$0145 $1486 BSF PORTB, 1
;Cradle.c,93 :: Delay_ms (1000);
$0146 $3006 MOVLW 6
$0147 $00FC MOVWF STACK_12
$0148 $30FF MOVLW 255
$0149 $00FB MOVWF STACK_11
$014A $30FF MOVLW 255
$014B $00FA MOVWF STACK_10
$014C $0BFC DECFSZ STACK_12, F
$014D $294F GOTO $+2
$014E $2956 GOTO $+8
$014F $0BFB DECFSZ STACK_11, F
$0150 $2952 GOTO $+2
$0151 $2955 GOTO $+4
$0152 $0BFA DECFSZ STACK_10, F
$0153 $2952 GOTO $-1
$0154 $294F GOTO $-5
$0155 $294C GOTO $-9
$0156 $301A MOVLW 26
$0157 $00FB MOVWF STACK_11
$0158 $30FF MOVLW 255
$0159 $00FA MOVWF STACK_10
$015A $0BFB DECFSZ STACK_11, F
$015B $295D GOTO $+2
$015C $2960 GOTO $+4
$015D $0BFA DECFSZ STACK_10, F
$015E $295D GOTO $-1
$015F $295A GOTO $-5
$0160 $3042 MOVLW 66
$0161 $00FA MOVWF STACK_10
$0162 $0BFA DECFSZ STACK_10, F
$0163 $2962 GOTO $-1
;Cradle.c,94 :: while (PORTB.F1 !=0)
$0164 $ L_main_17:
$0164 $3000 MOVLW 0
$0165 $1886 BTFSC PORTB, 1
$0166 $3001 MOVLW 1
$0167 $00F2 MOVWF STACK_2
$0168 $0872 MOVF STACK_2, 0
$0169 $3A00 XORLW 0
$016A $1903 BTFSC STATUS, Z
$016B $29DA GOTO L_main_18
;Cradle.c,96 :: if (CMCON.C2OUT == 0) // Motion sensor triggered
$016C $3000 MOVLW 0
$016D $1B9F BTFSC CMCON, 7
$016E $3001 MOVLW 1
$016F $00F2 MOVWF STACK_2
$0170 $0872 MOVF STACK_2, 0
$0171 $3A00 XORLW 0
$0172 $1D03 BTFSS STATUS, Z
$0173 $29A1 GOTO L_main_19
;Cradle.c,98 :: Start_motor();
$0174 $2096 CALL _Start_motor
;Cradle.c,99 :: if (flag == 1)
$0175 $0822 MOVF _flag, 0
$0176 $3A01 XORLW 1
$0177 $1D03 BTFSS STATUS, Z
$0178 $297A GOTO L_main_20
;Cradle.c,101 :: goto sub1
$0179 $29B8 GOTO ___main_sub1
;Cradle.c,102 :: }
$017A $ L_main_20:
;Cradle.c,103 :: while (CMCON.C2OUT == 0)
$017A $ L_main_21:
$017A $3000 MOVLW 0
$017B $1B9F BTFSC CMCON, 7
$017C $3001 MOVLW 1
$017D $00F2 MOVWF STACK_2
$017E $0872 MOVF STACK_2, 0
$017F $3A00 XORLW 0
$0180 $1D03 BTFSS STATUS, Z
$0181 $299F GOTO L_main_22
;Cradle.c,105 :: if (CMCON.C1OUT == 0)
$0182 $3000 MOVLW 0
$0183 $1B1F BTFSC CMCON, 6
$0184 $3001 MOVLW 1
$0185 $00F2 MOVWF STACK_2
$0186 $0872 MOVF STACK_2, 0
$0187 $3A00 XORLW 0
$0188 $1D03 BTFSS STATUS, Z
$0189 $298D GOTO L_main_23
;Cradle.c,107 :: Stop_motor();
$018A $20EB CALL _Stop_motor
;Cradle.c,108 :: alarm();
$018B $2037 CALL _alarm
;Cradle.c,109 :: goto sub1
$018C $29B8 GOTO ___main_sub1
;Cradle.c,110 :: }
$018D $ L_main_23:
;Cradle.c,111 :: else if ((PORTA.F3 == 1) || (flag == 1))
$018D $3000 MOVLW 0
$018E $1985 BTFSC PORTA, 3
$018F $3001 MOVLW 1
$0190 $00F2 MOVWF STACK_2
$0191 $0872 MOVF STACK_2, 0
$0192 $3A01 XORLW 1
$0193 $1903 BTFSC STATUS, Z
$0194 $299A GOTO L341_ex_L_main_27
$0195 $0822 MOVF _flag, 0
$0196 $3A01 XORLW 1
$0197 $1903 BTFSC STATUS, Z
$0198 $299A GOTO L341_ex_L_main_27
$0199 $299E GOTO L_main_27
$019A $ L341_ex_L_main_27:
;Cradle.c,113 :: flag = 1;
$019A $3001 MOVLW 1
$019B $00A2 MOVWF _flag
;Cradle.c,114 :: Stop_motor();
$019C $20EB CALL _Stop_motor
;Cradle.c,115 :: goto sub1
$019D $29B8 GOTO ___main_sub1
;Cradle.c,116 :: }
$019E $ L_main_27:
$019E $ L_main_24:
;Cradle.c,117 :: }
$019E $297A GOTO L_main_21
$019F $ L_main_22:
;Cradle.c,118 :: Stop_motor();
$019F $20EB CALL _Stop_motor
;Cradle.c,119 :: }
$01A0 $29D9 GOTO L_main_28
$01A1 $ L_main_19:
;Cradle.c,120 :: else if (CMCON.C1OUT == 0)// Wetness sensor triggered
$01A1 $3000 MOVLW 0
$01A2 $1B1F BTFSC CMCON, 6
$01A3 $3001 MOVLW 1
$01A4 $00F2 MOVWF STACK_2
$01A5 $0872 MOVF STACK_2, 0
$01A6 $3A00 XORLW 0
$01A7 $1D03 BTFSS STATUS, Z
$01A8 $29AB GOTO L_main_29
;Cradle.c,122 :: alarm();
$01A9 $2037 CALL _alarm
;Cradle.c,123 :: break;
$01AA $29DA GOTO L_main_18
;Cradle.c,124 :: }
$01AB $ L_main_29:
;Cradle.c,125 :: else if ((PORTA.F3 == 1) || (flag == 1))
$01AB $3000 MOVLW 0
$01AC $1985 BTFSC PORTA, 3
$01AD $3001 MOVLW 1
$01AE $00F2 MOVWF STACK_2
$01AF $0872 MOVF STACK_2, 0
$01B0 $3A01 XORLW 1
$01B1 $1903 BTFSC STATUS, Z
$01B2 $29B8 GOTO L375_ex_L_main_33
$01B3 $0822 MOVF _flag, 0
$01B4 $3A01 XORLW 1
$01B5 $1903 BTFSC STATUS, Z
$01B6 $29B8 GOTO L375_ex_L_main_33
$01B7 $29D9 GOTO L_main_33
$01B8 $ L375_ex_L_main_33:
;Cradle.c,127 :: sub1: PORTB.F0 = 1;
$01B8 $ ___main_sub1:
$01B8 $1406 BSF PORTB, 0
;Cradle.c,128 :: PORTB.F1 = 0;
$01B9 $1086 BCF PORTB, 1
;Cradle.c,129 :: Delay_ms (1000);
$01BA $3006 MOVLW 6
$01BB $00FC MOVWF STACK_12
$01BC $30FF MOVLW 255
$01BD $00FB MOVWF STACK_11
$01BE $30FF MOVLW 255
$01BF $00FA MOVWF STACK_10
$01C0 $0BFC DECFSZ STACK_12, F
$01C1 $29C3 GOTO $+2
$01C2 $29CA GOTO $+8
$01C3 $0BFB DECFSZ STACK_11, F
$01C4 $29C6 GOTO $+2
$01C5 $29C9 GOTO $+4
$01C6 $0BFA DECFSZ STACK_10, F
$01C7 $29C6 GOTO $-1
$01C8 $29C3 GOTO $-5
$01C9 $29C0 GOTO $-9
$01CA $301A MOVLW 26
$01CB $00FB MOVWF STACK_11
$01CC $30FF MOVLW 255
$01CD $00FA MOVWF STACK_10
$01CE $0BFB DECFSZ STACK_11, F
$01CF $29D1 GOTO $+2
$01D0 $29D4 GOTO $+4
$01D1 $0BFA DECFSZ STACK_10, F
$01D2 $29D1 GOTO $-1
$01D3 $29CE GOTO $-5
$01D4 $3042 MOVLW 66
$01D5 $00FA MOVWF STACK_10
$01D6 $0BFA DECFSZ STACK_10, F
$01D7 $29D6 GOTO $-1
;Cradle.c,130 :: break;
$01D8 $29DA GOTO L_main_18
;Cradle.c,131 :: }
$01D9 $ L_main_33:
$01D9 $ L_main_30:
$01D9 $ L_main_28:
;Cradle.c,132 :: }
$01D9 $2964 GOTO L_main_17
$01DA $ L_main_18:
;Cradle.c,133 :: flag = 0;
$01DA $01A2 CLRF _flag, 1
;Cradle.c,134 :: }
$01DB $ L_main_16:
;Cradle.c,135 :: PORTB.F0 = 1;
$01DB $1406 BSF PORTB, 0
;Cradle.c,136 :: PORTB.F1 = 0;
$01DC $1086 BCF PORTB, 1
;Cradle.c,137 :: }
$01DD $293C GOTO L_main_14
;Cradle.c,138 :: }
$01DE $29DE GOTO $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -