⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 Firmware that controls a sliding door via a GSM modem (Open and Close the door)
💻 LST
📖 第 1 页 / 共 5 页
字号:
$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 + -