📄 main.lst
字号:
$04BA $0870 MOVF STACK_0, 0
$04BB $00A5 MOVWF _buffer
$04BC $2CB5 GOTO L_setup_reply_message_19
$04BD $ L_setup_reply_message_20:
;main.c,138 :: while (buffer != ' ') buffer = Usart_Read();
$04BD $ L_setup_reply_message_21:
$04BD $0825 MOVF _buffer, 0
$04BE $3A20 XORLW 32
$04BF $1903 BTFSC STATUS, Z
$04C0 $2CC5 GOTO L_setup_reply_message_22
$04C1 $21C9 CALL _Usart_Read
$04C2 $0870 MOVF STACK_0, 0
$04C3 $00A5 MOVWF _buffer
$04C4 $2CBD GOTO L_setup_reply_message_21
$04C5 $ L_setup_reply_message_22:
;main.c,139 :: }
$04C5 $0008 RETURN
$04C6 $ _send_open_message:
;main.c,141 :: void send_open_message()
;main.c,143 :: byte_count1 = 0;
$04C6 $1303 BCF STATUS, RP1
$04C7 $1283 BCF STATUS, RP0
$04C8 $01A6 CLRF _byte_count1, 1
;main.c,144 :: while (byte_count1 < 10)
$04C9 $ L_send_open_message_23:
$04C9 $3080 MOVLW 128
$04CA $0626 XORWF _byte_count1, 0
$04CB $00F0 MOVWF STACK_0
$04CC $3080 MOVLW 128
$04CD $3A0A XORLW 10
$04CE $0270 SUBWF STACK_0, 0
$04CF $1803 BTFSC STATUS, C
$04D0 $2CE5 GOTO L_send_open_message_24
;main.c,146 :: Usart_Write(open_door_text[byte_count1]);
$04D1 $0826 MOVF _byte_count1, 0
$04D2 $3FED ADDLW #_open_door_text
$04D3 $00F0 MOVWF STACK_0
$04D4 $3001 MOVLW @#_open_door_text
$04D5 $1803 BTFSC STATUS, C
$04D6 $3F01 ADDLW 1
$04D7 $00F1 MOVWF STACK_0+1
$04D8 $0870 MOVF STACK_0, 0
$04D9 $00A4 MOVWF ___DoICPLoAddr
$04DA $0871 MOVF STACK_0+1, 0
$04DB $00A3 MOVWF ___DoICPHiAddr
$04DC $080A MOVF PCLATH, 0
$04DD $00A2 MOVWF ___DoICPSavePCLATH
$04DE $20C6 CALL _____DoICP
$04DF $00C9 MOVWF FARG_Usart_Write+0
$04E0 $0822 MOVF ___DoICPSavePCLATH, 0
$04E1 $008A MOVWF PCLATH
$04E2 $21D4 CALL _Usart_Write
;main.c,147 :: byte_count1++;
$04E3 $0AA6 INCF _byte_count1, 1
;main.c,148 :: }
$04E4 $2CC9 GOTO L_send_open_message_23
$04E5 $ L_send_open_message_24:
;main.c,149 :: Usart_Write (carriage_return);
$04E5 $300D MOVLW 13
$04E6 $00C9 MOVWF FARG_Usart_Write+0
$04E7 $21D4 CALL _Usart_Write
;main.c,150 :: }
$04E8 $0008 RETURN
$04E9 $ _wait_acknowledgement:
;main.c,185 :: void wait_acknowledgement()
;main.c,187 :: while (buffer != line_feed)
$04E9 $ L_wait_acknowledgement_31:
$04E9 $1303 BCF STATUS, RP1
$04EA $1283 BCF STATUS, RP0
$04EB $0825 MOVF _buffer, 0
$04EC $3A0A XORLW 10
$04ED $1903 BTFSC STATUS, Z
$04EE $2CF5 GOTO L_wait_acknowledgement_32
;main.c,189 :: if (PIR1.RCIF) buffer = Usart_Read();
$04EF $1E8C BTFSS PIR1, 5
$04F0 $2CF4 GOTO L_wait_acknowledgement_33
$04F1 $21C9 CALL _Usart_Read
$04F2 $0870 MOVF STACK_0, 0
$04F3 $00A5 MOVWF _buffer
$04F4 $ L_wait_acknowledgement_33:
;main.c,190 :: }
$04F4 $2CE9 GOTO L_wait_acknowledgement_31
$04F5 $ L_wait_acknowledgement_32:
;main.c,191 :: while (buffer != carriage_return)
$04F5 $ L_wait_acknowledgement_34:
$04F5 $0825 MOVF _buffer, 0
$04F6 $3A0D XORLW 13
$04F7 $1903 BTFSC STATUS, Z
$04F8 $2CFF GOTO L_wait_acknowledgement_35
;main.c,193 :: if (PIR1.RCIF) buffer = Usart_Read();
$04F9 $1E8C BTFSS PIR1, 5
$04FA $2CFE GOTO L_wait_acknowledgement_36
$04FB $21C9 CALL _Usart_Read
$04FC $0870 MOVF STACK_0, 0
$04FD $00A5 MOVWF _buffer
$04FE $ L_wait_acknowledgement_36:
;main.c,194 :: }
$04FE $2CF5 GOTO L_wait_acknowledgement_34
$04FF $ L_wait_acknowledgement_35:
;main.c,195 :: Delay250ms();//
$04FF $20CD CALL _Delay250ms
;main.c,196 :: }
$0500 $0008 RETURN
$0501 $ _send_already_open_message:
;main.c,163 :: void send_already_open_message()
;main.c,165 :: byte_count1 = 0;
$0501 $1303 BCF STATUS, RP1
$0502 $1283 BCF STATUS, RP0
$0503 $01A6 CLRF _byte_count1, 1
;main.c,166 :: while (byte_count1 < 20)
$0504 $ L_send_already_open_message_27:
$0504 $3080 MOVLW 128
$0505 $0626 XORWF _byte_count1, 0
$0506 $00F0 MOVWF STACK_0
$0507 $3080 MOVLW 128
$0508 $3A14 XORLW 20
$0509 $0270 SUBWF STACK_0, 0
$050A $1803 BTFSC STATUS, C
$050B $2D20 GOTO L_send_already_open_message_28
;main.c,168 :: Usart_Write(already_opened_text[byte_count1]);
$050C $0826 MOVF _byte_count1, 0
$050D $3FF8 ADDLW #_already_opened_text
$050E $00F0 MOVWF STACK_0
$050F $3001 MOVLW @#_already_opened_text
$0510 $1803 BTFSC STATUS, C
$0511 $3F01 ADDLW 1
$0512 $00F1 MOVWF STACK_0+1
$0513 $0870 MOVF STACK_0, 0
$0514 $00A4 MOVWF ___DoICPLoAddr
$0515 $0871 MOVF STACK_0+1, 0
$0516 $00A3 MOVWF ___DoICPHiAddr
$0517 $080A MOVF PCLATH, 0
$0518 $00A2 MOVWF ___DoICPSavePCLATH
$0519 $20C6 CALL _____DoICP
$051A $00C9 MOVWF FARG_Usart_Write+0
$051B $0822 MOVF ___DoICPSavePCLATH, 0
$051C $008A MOVWF PCLATH
$051D $21D4 CALL _Usart_Write
;main.c,169 :: byte_count1++;
$051E $0AA6 INCF _byte_count1, 1
;main.c,170 :: }
$051F $2D04 GOTO L_send_already_open_message_27
$0520 $ L_send_already_open_message_28:
;main.c,171 :: Usart_Write (carriage_return);
$0520 $300D MOVLW 13
$0521 $00C9 MOVWF FARG_Usart_Write+0
$0522 $21D4 CALL _Usart_Write
;main.c,172 :: }
$0523 $0008 RETURN
$0524 $ _compare_with_close_command:
;main.c,362 :: unsigned short compare_with_close_command() //ok
;main.c,364 :: if (message_buffer[55] != '/')
$0524 $1303 BCF STATUS, RP1
$0525 $1683 BSF STATUS, RP0
$0526 $0857 MOVF _message_buffer+55, 0
$0527 $3A2F XORLW 47
$0528 $1903 BTFSC STATUS, Z
$0529 $2D2C GOTO L_compare_with_close_command_74
;main.c,366 :: return 0;
$052A $01F0 CLRF STACK_0, 1
$052B $0008 RETURN
;main.c,367 :: }
$052C $ L_compare_with_close_command_74:
;main.c,368 :: if (message_buffer[56] != 'C')
$052C $0858 MOVF _message_buffer+56, 0
$052D $3A43 XORLW 67
$052E $1903 BTFSC STATUS, Z
$052F $2D32 GOTO L_compare_with_close_command_75
;main.c,370 :: return 0;
$0530 $01F0 CLRF STACK_0, 1
$0531 $0008 RETURN
;main.c,371 :: }
$0532 $ L_compare_with_close_command_75:
;main.c,372 :: if (message_buffer[57] != 'L')
$0532 $0859 MOVF _message_buffer+57, 0
$0533 $3A4C XORLW 76
$0534 $1903 BTFSC STATUS, Z
$0535 $2D38 GOTO L_compare_with_close_command_76
;main.c,374 :: return 0;
$0536 $01F0 CLRF STACK_0, 1
$0537 $0008 RETURN
;main.c,375 :: }
$0538 $ L_compare_with_close_command_76:
;main.c,376 :: if (message_buffer[58] != 'O')
$0538 $085A MOVF _message_buffer+58, 0
$0539 $3A4F XORLW 79
$053A $1903 BTFSC STATUS, Z
$053B $2D3E GOTO L_compare_with_close_command_77
;main.c,378 :: return 0;
$053C $01F0 CLRF STACK_0, 1
$053D $0008 RETURN
;main.c,379 :: }
$053E $ L_compare_with_close_command_77:
;main.c,380 :: if (message_buffer[59] != 'S')
$053E $085B MOVF _message_buffer+59, 0
$053F $3A53 XORLW 83
$0540 $1903 BTFSC STATUS, Z
$0541 $2D44 GOTO L_compare_with_close_command_78
;main.c,382 :: return 0;
$0542 $01F0 CLRF STACK_0, 1
$0543 $0008 RETURN
;main.c,383 :: }
$0544 $ L_compare_with_close_command_78:
;main.c,384 :: if (message_buffer[60] != 'E')
$0544 $085C MOVF _message_buffer+60, 0
$0545 $3A45 XORLW 69
$0546 $1903 BTFSC STATUS, Z
$0547 $2D4A GOTO L_compare_with_close_command_79
;main.c,386 :: return 0;
$0548 $01F0 CLRF STACK_0, 1
$0549 $0008 RETURN
;main.c,387 :: }
$054A $ L_compare_with_close_command_79:
;main.c,388 :: if (message_buffer[61] != carriage_return)
$054A $085D MOVF _message_buffer+61, 0
$054B $3A0D XORLW 13
$054C $1903 BTFSC STATUS, Z
$054D $2D50 GOTO L_compare_with_close_command_80
;main.c,390 :: return 0;
$054E $01F0 CLRF STACK_0, 1
$054F $0008 RETURN
;main.c,391 :: }
$0550 $ L_compare_with_close_command_80:
;main.c,392 :: if (message_buffer[62] != line_feed)
$0550 $085E MOVF _message_buffer+62, 0
$0551 $3A0A XORLW 10
$0552 $1903 BTFSC STATUS, Z
$0553 $2D56 GOTO L_compare_with_close_command_81
;main.c,394 :: return 0;
$0554 $01F0 CLRF STACK_0, 1
$0555 $0008 RETURN
;main.c,395 :: }
$0556 $ L_compare_with_close_command_81:
;main.c,396 :: return 1;
$0556 $3001 MOVLW 1
$0557 $00F0 MOVWF STACK_0
;main.c,397 :: }
$0558 $0008 RETURN
$0559 $ _send_close_message:
;main.c,152 :: void send_close_message()
;main.c,154 :: byte_count1 = 0;
$0559 $1303 BCF STATUS, RP1
$055A $1283 BCF STATUS, RP0
$055B $01A6 CLRF _byte_count1, 1
;main.c,155 :: while (byte_count1 < 12)
$055C $ L_send_close_message_25:
$055C $3080 MOVLW 128
$055D $0626 XORWF _byte_count1, 0
$055E $00F0 MOVWF STACK_0
$055F $3080 MOVLW 128
$0560 $3A0C XORLW 12
$0561 $0270 SUBWF STACK_0, 0
$0562 $1803 BTFSC STATUS, C
$0563 $2D78 GOTO L_send_close_message_26
;main.c,157 :: Usart_Write(close_door_text[byte_count1]);
$0564 $0826 MOVF _byte_count1, 0
$0565 $3F0D ADDLW #_close_door_text
$0566 $00F0 MOVWF STACK_0
$0567 $3002 MOVLW @#_close_door_text
$0568 $1803 BTFSC STATUS, C
$0569 $3F01 ADDLW 1
$056A $00F1 MOVWF STACK_0+1
$056B $0870 MOVF STACK_0, 0
$056C $00A4 MOVWF ___DoICPLoAddr
$056D $0871 MOVF STACK_0+1, 0
$056E $00A3 MOVWF ___DoICPHiAddr
$056F $080A MOVF PCLATH, 0
$0570 $00A2 MOVWF ___DoICPSavePCLATH
$0571 $20C6 CALL _____DoICP
$0572 $00C9 MOVWF FARG_Usart_Write+0
$0573 $0822 MOVF ___DoICPSavePCLATH, 0
$0574 $008A MOVWF PCLATH
$0575 $21D4 CALL _Usart_Write
;main.c,158 :: byte_count1++;
$0576 $0AA6 INCF _byte_count1, 1
;main.c,159 :: }
$0577 $2D5C GOTO L_send_close_message_25
$0578 $ L_send_close_message_26:
;main.c,160 :: Usart_Write (carriage_return);
$0578 $300D MOVLW 13
$0579 $00C9 MOVWF FARG_Usart_Write+0
$057A $21D4 CALL _Usart_Write
;main.c,161 :: }
$057B $0008 RETURN
$057C $ _send_already_closed_message:
;main.c,174 :: void send_already_closed_message()
;main.c,176 :: byte_count1 = 0;
$057C $1303 BCF STATUS, RP1
$057D $1283 BCF STATUS, RP0
$057E $01A6 CLRF _byte_count1, 1
;main.c,177 :: while (byte_count1 < 20)
$057F $ L_send_already_closed_message_29:
$057F $3080 MOVLW 128
$0580 $0626 XORWF _byte_count1, 0
$0581 $00F0 MOVWF STACK_0
$0582 $3080 MOVLW 128
$0583 $3A14 XORLW 20
$0584 $0270 SUBWF STACK_0, 0
$0585 $1803 BTFSC STATUS, C
$0586 $2D9B GOTO L_send_already_closed_message_30
;main.c,179 :: Usart_Write(already_closed_text[byte_count1]);
$0587 $0826 MOVF _byte_count1, 0
$0588 $3F1A ADDLW #_already_closed_text
$0589 $00F0 MOVWF STACK_0
$058A $3002 MOVLW @#_already_closed_text
$058B $1803 BTFSC STATUS, C
$058C $3F01 ADDLW 1
$058D $00F1 MOVWF STACK_0+1
$058E $0870 MOVF STACK_0, 0
$058F $00A4 MOVWF ___DoICPLoAddr
$0590 $0871 MOVF STACK_0+1, 0
$0591 $00A3 MOVWF ___DoICPHiAddr
$0592 $080A MOVF PCLATH, 0
$0593 $00A2 MOVWF ___DoICPSavePCLATH
$0594 $20C6 CALL _____DoICP
$0595 $00C9 MOVWF FARG_Usart_Write+0
$0596 $0822 MOVF ___DoICPSavePCLATH, 0
$0597 $008A MOVWF PCLATH
$0598 $21D4 CALL _Usart_Write
;main.c,180 :: byte_count1++;
$0599 $0AA6 INCF _byte_count1, 1
;main.c,181 :: }
$059A $2D7F GOTO L_send_already_closed_message_29
$059B $ L_send_already_closed_message_30:
;main.c,182 :: Usart_Write (carriage_return);
$059B $300D MOVLW 13
$059C $00C9 MOVWF FARG_Usart_Write+0
$059D $21D4 CALL _Usart_Write
;main.c,183 :: }
$059E $0008 RETURN
$059F $ _Usart_Init:
$059F $1303 BCF STATUS, RP1
$05A0 $1683 BSF STATUS, RP0
$05A1 $1698 BSF TXSTA, 5
$05A2 $3090 MOVLW 144
$05A3 $1283 BCF STATUS, RP0
$05A4 $0098 MOVWF RCSTA
$05A5 $1683 BSF STATUS, RP0
$05A6 $1787 BSF TRISC, 7
$05A7 $1307 BCF TRISC, 6
$05A8 $ L_Usart_Init_0:
$05A8 $1283 BCF STATUS, RP0
$05A9 $1E8C BTFSS PIR1, 5
$05AA $2DAE GOTO L_Usart_Init_1
$05AB $081A MOVF RCREG, 0
$05AC $00C8 MOVWF Usart_Init_tmp_L0
$05AD $2DA8 GOTO L_Usart_Init_0
$05AE $ L_Usart_Init_1:
$05AE $0008 RETURN
$0800 $ _main:
;main.c,526 :: void main()
;main.c,528 :: TRISA = 0;
$0800 $1303 BCF STATUS, RP1
$0801 $1683 BSF STATUS, RP0
$0802 $0185 CLRF TRISA, 1
;main.c,529 :: TRISB = 0;
$0803 $0186 CLRF TRISB, 1
;main.c,530 :: TRISC = 0;
$0804 $0187 CLRF TRISC, 1
;main.c,531 :: TRISE = 0;
$0805 $0189 CLRF TRISE, 1
;main.c,532 :: TRISD = 0xf4;
$0806 $30F4 MOVLW 244
$0807 $0088 MOVWF TRISD
;main.c,533 :: PORTA = 0;
$0808 $1283 BCF STATUS, RP0
$0809 $0185 CLRF PORTA, 1
;main.c,534 :: PORTB = 0;
$080A $0186 CLRF PORTB, 1
;main.c,535 :: PORTC = 0;
$080B $0187 CLRF PORTC, 1
;main.c,536 :: PORTD = 0;
$080C $0188 CLRF PORTD, 1
;main.c,537 :: PORTE = 0;
$080D $0189 CLRF PORTE, 1
;main.c,538 :: solenoid = 0;
$080E $1088 BCF PORTD, 1
;main.c,539 :: PIE1.RCIE = 1;
$080F $1683 BSF STATUS, RP0
$0810 $168C BSF PIE1, 5
;main.c,540 :: Delay1s();
$0811 $118A BCF PCLATH, 3
$0812 $2110 CALL _Delay1s
$0813 $158A BSF PCLATH, 3
;main.c,541 :: Delay1s();
$0814 $118A BCF PCLATH, 3
$0815 $2110 CALL _Delay1s
$0816 $158A BSF PCLATH, 3
;main.c,542 :: Usart_Init(9600);
$0817 $3019 MOVLW 25
$0818 $1683 BSF STATUS, RP0
$0819 $0099 MOVWF SPBRG
$081A $1518 BSF TXSTA, BRGH
$081B $118A BCF PCLATH, 3
$081C $259F CALL _Usart_Init
$081D $158A BSF PCLATH, 3
;main.c,543 :: LCD_Init(&PORTB);
$081E $3006 MOVLW PORTB
$081F $00C4 MOVWF FARG_Lcd_Init+0
$0820 $118A BCF PCLATH, 3
$0821 $222F CALL _Lcd_Init
$0822 $158A BSF PCLATH, 3
;main.c,544 :: LCD_Cmd(LCD_CLEAR);
$0823 $3001 MOVLW 1
$0824 $00D0 MOVWF FARG_Lcd_Cmd+0
$0825 $118A BCF PCLATH, 3
$0826 $201F CALL _Lcd_Cmd
$0827 $158A BSF PCLATH, 3
;main.c,545 :: LCD_Cmd(LCD_CU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -