📄 main.lst
字号:
$02B0 $01A8 CLRF _time_count+1
;main.c,218 :: }
$02B1 $ L_gsm_modem_init_46:
;main.c,219 :: time_count++;
$02B1 $0AA7 INCF _time_count, 1
$02B2 $1903 BTFSC STATUS, Z
$02B3 $0AA8 INCF _time_count+1, 1
;main.c,220 :: }
$02B4 $2A9F GOTO L_gsm_modem_init_42
$02B5 $ L_gsm_modem_init_43:
;main.c,221 :: }while (buffer != 'O');
$02B5 $0825 MOVF _buffer, 0
$02B6 $3A4F XORLW 79
$02B7 $1D03 BTFSS STATUS, Z
$02B8 $2A7B GOTO L_gsm_modem_init_37
$02B9 $ L_gsm_modem_init_38:
;main.c,222 :: while(buffer != line_feed) buffer = RCREG;
$02B9 $ L_gsm_modem_init_47:
$02B9 $0825 MOVF _buffer, 0
$02BA $3A0A XORLW 10
$02BB $1903 BTFSC STATUS, Z
$02BC $2AC0 GOTO L_gsm_modem_init_48
$02BD $081A MOVF RCREG, 0
$02BE $00A5 MOVWF _buffer
$02BF $2AB9 GOTO L_gsm_modem_init_47
$02C0 $ L_gsm_modem_init_48:
;main.c,223 :: }
$02C0 $0008 RETURN
$02C1 $ _read_keypad:
;main.c,226 :: char read_keypad()//ok
;main.c,229 :: data = 0;
$02C1 $1303 BCF STATUS, RP1
$02C2 $1283 BCF STATUS, RP0
$02C3 $01C4 CLRF read_keypad_data_L0, 1
;main.c,230 :: column1 = 1;
$02C4 $1607 BSF PORTC, 4
;main.c,231 :: if (row1)
$02C5 $1E08 BTFSS PORTD, 4
$02C6 $2ACA GOTO L_read_keypad_49
;main.c,233 :: Delay250ms();
$02C7 $20CD CALL _Delay250ms
;main.c,234 :: data = '1';
$02C8 $3031 MOVLW 49
$02C9 $00C4 MOVWF read_keypad_data_L0
;main.c,235 :: }
$02CA $ L_read_keypad_49:
;main.c,236 :: if (row2)
$02CA $1F88 BTFSS PORTD, 7
$02CB $2ACF GOTO L_read_keypad_50
;main.c,238 :: Delay250ms();
$02CC $20CD CALL _Delay250ms
;main.c,239 :: data = '4';
$02CD $3034 MOVLW 52
$02CE $00C4 MOVWF read_keypad_data_L0
;main.c,240 :: }
$02CF $ L_read_keypad_50:
;main.c,241 :: if (row3)
$02CF $1F08 BTFSS PORTD, 6
$02D0 $2AD4 GOTO L_read_keypad_51
;main.c,243 :: Delay250ms();
$02D1 $20CD CALL _Delay250ms
;main.c,244 :: data = '7';
$02D2 $3037 MOVLW 55
$02D3 $00C4 MOVWF read_keypad_data_L0
;main.c,245 :: }
$02D4 $ L_read_keypad_51:
;main.c,246 :: if (row4)
$02D4 $1E88 BTFSS PORTD, 5
$02D5 $2AD9 GOTO L_read_keypad_52
;main.c,248 :: Delay250ms();
$02D6 $20CD CALL _Delay250ms
;main.c,249 :: data = '*';
$02D7 $302A MOVLW 42
$02D8 $00C4 MOVWF read_keypad_data_L0
;main.c,250 :: }
$02D9 $ L_read_keypad_52:
;main.c,251 :: column1 = 0;
$02D9 $1207 BCF PORTC, 4
;main.c,252 :: column2 = 1;
$02DA $1588 BSF PORTD, 3
;main.c,253 :: if (row1)
$02DB $1E08 BTFSS PORTD, 4
$02DC $2AE0 GOTO L_read_keypad_53
;main.c,255 :: Delay250ms();
$02DD $20CD CALL _Delay250ms
;main.c,256 :: data = '2';
$02DE $3032 MOVLW 50
$02DF $00C4 MOVWF read_keypad_data_L0
;main.c,257 :: }
$02E0 $ L_read_keypad_53:
;main.c,258 :: if (row2)
$02E0 $1F88 BTFSS PORTD, 7
$02E1 $2AE5 GOTO L_read_keypad_54
;main.c,260 :: Delay250ms();
$02E2 $20CD CALL _Delay250ms
;main.c,261 :: data = '5';
$02E3 $3035 MOVLW 53
$02E4 $00C4 MOVWF read_keypad_data_L0
;main.c,262 :: }
$02E5 $ L_read_keypad_54:
;main.c,263 :: if (row3)
$02E5 $1F08 BTFSS PORTD, 6
$02E6 $2AEA GOTO L_read_keypad_55
;main.c,265 :: Delay250ms();
$02E7 $20CD CALL _Delay250ms
;main.c,266 :: data = '8';
$02E8 $3038 MOVLW 56
$02E9 $00C4 MOVWF read_keypad_data_L0
;main.c,267 :: }
$02EA $ L_read_keypad_55:
;main.c,268 :: if (row4)
$02EA $1E88 BTFSS PORTD, 5
$02EB $2AEF GOTO L_read_keypad_56
;main.c,270 :: Delay250ms();
$02EC $20CD CALL _Delay250ms
;main.c,271 :: data = '0';
$02ED $3030 MOVLW 48
$02EE $00C4 MOVWF read_keypad_data_L0
;main.c,272 :: }
$02EF $ L_read_keypad_56:
;main.c,273 :: column2 = 0;
$02EF $1188 BCF PORTD, 3
;main.c,274 :: column3 = 1;
$02F0 $1687 BSF PORTC, 5
;main.c,275 :: if (row1)
$02F1 $1E08 BTFSS PORTD, 4
$02F2 $2AF6 GOTO L_read_keypad_57
;main.c,277 :: Delay250ms();
$02F3 $20CD CALL _Delay250ms
;main.c,278 :: data = '3';
$02F4 $3033 MOVLW 51
$02F5 $00C4 MOVWF read_keypad_data_L0
;main.c,279 :: }
$02F6 $ L_read_keypad_57:
;main.c,280 :: if (row2)
$02F6 $1F88 BTFSS PORTD, 7
$02F7 $2AFB GOTO L_read_keypad_58
;main.c,282 :: Delay250ms();
$02F8 $20CD CALL _Delay250ms
;main.c,283 :: data = '6';
$02F9 $3036 MOVLW 54
$02FA $00C4 MOVWF read_keypad_data_L0
;main.c,284 :: }
$02FB $ L_read_keypad_58:
;main.c,285 :: if (row3)
$02FB $1F08 BTFSS PORTD, 6
$02FC $2B01 GOTO L_read_keypad_59
;main.c,287 :: Delay250ms();
$02FD $20CD CALL _Delay250ms
;main.c,288 :: return '9';
$02FE $3039 MOVLW 57
$02FF $00F0 MOVWF STACK_0
$0300 $0008 RETURN
;main.c,289 :: }
$0301 $ L_read_keypad_59:
;main.c,290 :: if (row4)
$0301 $1E88 BTFSS PORTD, 5
$0302 $2B06 GOTO L_read_keypad_60
;main.c,292 :: Delay250ms();
$0303 $20CD CALL _Delay250ms
;main.c,293 :: data = '#';
$0304 $3023 MOVLW 35
$0305 $00C4 MOVWF read_keypad_data_L0
;main.c,294 :: }
$0306 $ L_read_keypad_60:
;main.c,295 :: column3 = 0;
$0306 $1287 BCF PORTC, 5
;main.c,296 :: return data;
$0307 $0844 MOVF read_keypad_data_L0, 0
$0308 $00F0 MOVWF STACK_0
;main.c,297 :: }
$0309 $0008 RETURN
$030A $ _clear_code_locations:
;main.c,49 :: void clear_code_locations() // this routine will clear the memory locations
;main.c,51 :: byte_count1 = 0;
$030A $1303 BCF STATUS, RP1
$030B $1283 BCF STATUS, RP0
$030C $01A6 CLRF _byte_count1, 1
;main.c,52 :: while (byte_count1 < 6)
$030D $ L_clear_code_locations_2:
$030D $3080 MOVLW 128
$030E $0626 XORWF _byte_count1, 0
$030F $00F0 MOVWF STACK_0
$0310 $3080 MOVLW 128
$0311 $3A06 XORLW 6
$0312 $0270 SUBWF STACK_0, 0
$0313 $1803 BTFSC STATUS, C
$0314 $2B1D GOTO L_clear_code_locations_3
;main.c,54 :: password[byte_count1] = 0;
$0315 $0826 MOVF _byte_count1, 0
$0316 $3F29 ADDLW _password
$0317 $00F0 MOVWF STACK_0
$0318 $0870 MOVF STACK_0, 0
$0319 $0084 MOVWF FSR
$031A $0180 CLRF INDF, 1
;main.c,55 :: byte_count1++;
$031B $0AA6 INCF _byte_count1, 1
;main.c,56 :: }
$031C $2B0D GOTO L_clear_code_locations_2
$031D $ L_clear_code_locations_3:
;main.c,57 :: byte_count1 = 0;
$031D $01A6 CLRF _byte_count1, 1
;main.c,58 :: while (byte_count1 < 6)
$031E $ L_clear_code_locations_4:
$031E $3080 MOVLW 128
$031F $0626 XORWF _byte_count1, 0
$0320 $00F0 MOVWF STACK_0
$0321 $3080 MOVLW 128
$0322 $3A06 XORLW 6
$0323 $0270 SUBWF STACK_0, 0
$0324 $1803 BTFSC STATUS, C
$0325 $2B2F GOTO L_clear_code_locations_5
;main.c,60 :: temp_password[byte_count1] = 0xff;
$0326 $0826 MOVF _byte_count1, 0
$0327 $3F2F ADDLW _temp_password
$0328 $00F0 MOVWF STACK_0
$0329 $0870 MOVF STACK_0, 0
$032A $0084 MOVWF FSR
$032B $30FF MOVLW 255
$032C $0080 MOVWF INDF
;main.c,61 :: byte_count1++;
$032D $0AA6 INCF _byte_count1, 1
;main.c,62 :: }
$032E $2B1E GOTO L_clear_code_locations_4
$032F $ L_clear_code_locations_5:
;main.c,63 :: }
$032F $0008 RETURN
$0330 $ _Lcd_Chr_CP:
$0330 $1303 BCF STATUS, RP1
$0331 $1283 BCF STATUS, RP0
$0332 $01A1 CLRF LCD_cmd_status, 1
$0333 $0844 MOVF FARG_Lcd_Chr_CP+0, 0
$0334 $00D0 MOVWF FARG_Lcd_Cmd+0
$0335 $201F CALL _Lcd_Cmd
$0336 $3001 MOVLW 1
$0337 $00A1 MOVWF LCD_cmd_status
$0338 $0008 RETURN
$0339 $ _get_imbedded_password:
;main.c,399 :: void get_imbedded_password()//ok
;main.c,402 :: address = 0xF8;
$0339 $30F8 MOVLW 248
$033A $1303 BCF STATUS, RP1
$033B $1283 BCF STATUS, RP0
$033C $00C4 MOVWF get_imbedded_password_address_L0
;main.c,403 :: byte_count1 = 0;
$033D $01A6 CLRF _byte_count1, 1
;main.c,404 :: while (byte_count1 < 6)
$033E $ L_get_imbedded_password_82:
$033E $3080 MOVLW 128
$033F $0626 XORWF _byte_count1, 0
$0340 $00F0 MOVWF STACK_0
$0341 $3080 MOVLW 128
$0342 $3A06 XORLW 6
$0343 $0270 SUBWF STACK_0, 0
$0344 $1803 BTFSC STATUS, C
$0345 $2B54 GOTO L_get_imbedded_password_83
;main.c,406 :: password[byte_count1] = EEprom_Read(address);
$0346 $0826 MOVF _byte_count1, 0
$0347 $3F29 ADDLW _password
$0348 $00C5 MOVWF FLOC_get_imbedded_password+1
$0349 $0844 MOVF get_imbedded_password_address_L0, 0
$034A $00CD MOVWF FARG_EEprom_read+0
$034B $205D CALL _EEprom_read
$034C $1303 BCF STATUS, RP1
$034D $0845 MOVF FLOC_get_imbedded_password+1, 0
$034E $0084 MOVWF FSR
$034F $0870 MOVF STACK_0, 0
$0350 $0080 MOVWF INDF
;main.c,407 :: byte_count1++;
$0351 $0AA6 INCF _byte_count1, 1
;main.c,408 :: address++;
$0352 $0AC4 INCF get_imbedded_password_address_L0, 1
;main.c,409 :: }
$0353 $2B3E GOTO L_get_imbedded_password_82
$0354 $ L_get_imbedded_password_83:
;main.c,410 :: }
$0354 $0008 RETURN
$0355 $ _compare_codes:
;main.c,299 :: unsigned short compare_codes() //ok
;main.c,301 :: if (password[0] != temp_password[0])
$0355 $1303 BCF STATUS, RP1
$0356 $1283 BCF STATUS, RP0
$0357 $0829 MOVF _password, 0
$0358 $062F XORWF _temp_password, 0
$0359 $1903 BTFSC STATUS, Z
$035A $2B5D GOTO L_compare_codes_61
;main.c,303 :: return 0;
$035B $01F0 CLRF STACK_0, 1
$035C $0008 RETURN
;main.c,304 :: }
$035D $ L_compare_codes_61:
;main.c,305 :: if (password[1] != temp_password[1])
$035D $082A MOVF _password+1, 0
$035E $0630 XORWF _temp_password+1, 0
$035F $1903 BTFSC STATUS, Z
$0360 $2B63 GOTO L_compare_codes_62
;main.c,307 :: return 0;
$0361 $01F0 CLRF STACK_0, 1
$0362 $0008 RETURN
;main.c,308 :: }
$0363 $ L_compare_codes_62:
;main.c,309 :: if (password[2] != temp_password[2])
$0363 $082B MOVF _password+2, 0
$0364 $0631 XORWF _temp_password+2, 0
$0365 $1903 BTFSC STATUS, Z
$0366 $2B69 GOTO L_compare_codes_63
;main.c,311 :: return 0;
$0367 $01F0 CLRF STACK_0, 1
$0368 $0008 RETURN
;main.c,312 :: }
$0369 $ L_compare_codes_63:
;main.c,313 :: if (password[3] != temp_password[3])
$0369 $082C MOVF _password+3, 0
$036A $0632 XORWF _temp_password+3, 0
$036B $1903 BTFSC STATUS, Z
$036C $2B6F GOTO L_compare_codes_64
;main.c,315 :: return 0;
$036D $01F0 CLRF STACK_0, 1
$036E $0008 RETURN
;main.c,316 :: }
$036F $ L_compare_codes_64:
;main.c,317 :: if (password[4] != temp_password[4])
$036F $082D MOVF _password+4, 0
$0370 $0633 XORWF _temp_password+4, 0
$0371 $1903 BTFSC STATUS, Z
$0372 $2B75 GOTO L_compare_codes_65
;main.c,319 :: return 0;
$0373 $01F0 CLRF STACK_0, 1
$0374 $0008 RETURN
;main.c,320 :: }
$0375 $ L_compare_codes_65:
;main.c,321 :: if (password[5] != temp_password[5])
$0375 $082E MOVF _password+5, 0
$0376 $0634 XORWF _temp_password+5, 0
$0377 $1903 BTFSC STATUS, Z
$0378 $2B7B GOTO L_compare_codes_66
;main.c,323 :: return 0;
$0379 $01F0 CLRF STACK_0, 1
$037A $0008 RETURN
;main.c,324 :: }
$037B $ L_compare_codes_66:
;main.c,325 :: return 1;
$037B $3001 MOVLW 1
$037C $00F0 MOVWF STACK_0
;main.c,326 :: }
$037D $0008 RETURN
$037E $ _open_door:
;main.c,476 :: void open_door()
;main.c,479 :: offset_message(1,0x40);
$037E $3001 MOVLW 1
$037F $1303 BCF STATUS, RP1
$0380 $1283 BCF STATUS, RP0
$0381 $00C9 MOVWF FARG_offset_message+0
$0382 $3040 MOVLW 64
$0383 $00CA MOVWF FARG_offset_message+1
$0384 $20EF CALL _offset_message
;main.c,480 :: solenoid = 1;
$0385 $1488 BSF PORTD, 1
;main.c,481 :: delay1s();
$0386 $2110 CALL _Delay1s
;main.c,482 :: step_count = 25;
$0387 $3019 MOVLW 25
$0388 $00C4 MOVWF open_door_step_count_L0
;main.c,483 :: while (step_count > 0)
$0389 $ L_open_door_88:
$0389 $0844 MOVF open_door_step_count_L0, 0
$038A $3C00 SUBLW 0
$038B $1803 BTFSC STATUS, C
$038C $2B90 GOTO L_open_door_89
;main.c,485 :: rotate1();
$038D $218F CALL _rotate1
;main.c,486 :: step_count--;
$038E $03C4 DECF open_door_step_count_L0, 1
;main.c,488 :: }
$038F $2B89 GOTO L_open_door_88
$0390 $ L_open_door_89:
;main.c,489 :: solenoid = 0;
$0390 $1088 BCF PORTD, 1
;main.c,490 :: step_count = 150;
$0391 $3096 MOVLW 150
$0392 $00C4 MOVWF open_door_step_count_L0
;main.c,491 :: while (step_count > 0)
$0393 $ L_open_door_90:
$0393 $0844 MOVF open_door_step_count_L0, 0
$0394 $3C00 SUBLW 0
$0395 $1803 BTFSC STATUS, C
$0396 $2B9A GOTO L_open_door_91
;main.c,493 :: rotate1();
$0397 $218F CALL _rotate1
;main.c,494 :: step_count--;
$0398 $03C4 DECF open_door_step_count_L0, 1
;main.c,495 :: }
$0399 $2B93 GOTO L_open_door_90
$039A $ L_open_door_91:
;main.c,496 :: offset_message(1,0x60);
$039A $3001 MOVLW 1
$039B $00C9 MOVWF FARG_offset_message+0
$039C $3060 MOVLW 96
$039D $00CA MOVWF FARG_offset_message+1
$039E $20EF CALL _offset_message
;main.c,497 :: Delay1s();
$039F $2110 CALL _Delay1s
;main.c,498 :: Delay1s();
$03A0 $2110 CALL _Delay1s
;main.c,499 :: Delay1s();
$03A1 $2110 CALL _Delay1s
;main.c,500 :: }
$03A2 $0008 RETURN
$03A3 $ _save_password:
;main.c,412 :: void save_password()//ok
;main.c,415 :: address = 0xF8;
$03A3 $30F8 MOVLW 248
$03A4 $1303 BCF STATUS, RP1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -