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

📄 main.lst

📁 Firmware that controls a sliding door via a GSM modem (Open and Close the door)
💻 LST
📖 第 1 页 / 共 5 页
字号:
$015D	$295C			GOTO	$-1
$015E	$2959			GOTO	$-5
$015F	$2956			GOTO	$-9
$0160	$3046			MOVLW	70
$0161	$00FB			MOVWF	STACK_11
$0162	$30FF			MOVLW	255
$0163	$00FA			MOVWF	STACK_10
$0164	$0BFB			DECFSZ	STACK_11, F
$0165	$2967			GOTO	$+2
$0166	$296A			GOTO	$+4
$0167	$0BFA			DECFSZ	STACK_10, F
$0168	$2967			GOTO	$-1
$0169	$2964			GOTO	$-5
$016A	$30CF			MOVLW	207
$016B	$00FA			MOVWF	STACK_10
$016C	$0BFA			DECFSZ	STACK_10, F
$016D	$296C			GOTO	$-1
$016E	$0000			NOP
;main.c,70 :: 		Delay_ms(250);
$016F	$3002			MOVLW	2
$0170	$00FC			MOVWF	STACK_12
$0171	$30FF			MOVLW	255
$0172	$00FB			MOVWF	STACK_11
$0173	$30FF			MOVLW	255
$0174	$00FA			MOVWF	STACK_10
$0175	$0BFC			DECFSZ	STACK_12, F
$0176	$2978			GOTO	$+2
$0177	$297F			GOTO	$+8
$0178	$0BFB			DECFSZ	STACK_11, F
$0179	$297B			GOTO	$+2
$017A	$297E			GOTO	$+4
$017B	$0BFA			DECFSZ	STACK_10, F
$017C	$297B			GOTO	$-1
$017D	$2978			GOTO	$-5
$017E	$2975			GOTO	$-9
$017F	$3046			MOVLW	70
$0180	$00FB			MOVWF	STACK_11
$0181	$30FF			MOVLW	255
$0182	$00FA			MOVWF	STACK_10
$0183	$0BFB			DECFSZ	STACK_11, F
$0184	$2986			GOTO	$+2
$0185	$2989			GOTO	$+4
$0186	$0BFA			DECFSZ	STACK_10, F
$0187	$2986			GOTO	$-1
$0188	$2983			GOTO	$-5
$0189	$30CF			MOVLW	207
$018A	$00FA			MOVWF	STACK_10
$018B	$0BFA			DECFSZ	STACK_10, F
$018C	$298B			GOTO	$-1
$018D	$0000			NOP
;main.c,71 :: 		}
$018E	$0008			RETURN
$018F	$	_rotate1:
;main.c,460 :: 		void rotate1()
;main.c,462 :: 		step_D = 1;
$018F	$1303			BCF	STATUS, RP1
$0190	$1283			BCF	STATUS, RP0
$0191	$1489			BSF	PORTE, 1
;main.c,463 :: 		motor_delay();
$0192	$20A0			CALL	_motor_delay
;main.c,464 :: 		step_D = 0;
$0193	$1089			BCF	PORTE, 1
;main.c,465 :: 		step_C = 1;
$0194	$1409			BSF	PORTE, 0
;main.c,466 :: 		motor_delay();
$0195	$20A0			CALL	_motor_delay
;main.c,467 :: 		step_C = 0;
$0196	$1009			BCF	PORTE, 0
;main.c,468 :: 		step_B = 1;
$0197	$1485			BSF	PORTA, 1
;main.c,469 :: 		motor_delay();
$0198	$20A0			CALL	_motor_delay
;main.c,470 :: 		step_B = 0;
$0199	$1085			BCF	PORTA, 1
;main.c,471 :: 		step_A = 1;
$019A	$1405			BSF	PORTA, 0
;main.c,472 :: 		motor_delay();
$019B	$20A0			CALL	_motor_delay
;main.c,473 :: 		step_A = 0;
$019C	$1005			BCF	PORTA, 0
;main.c,474 :: 		}
$019D	$0008			RETURN
$019E	$	_EEprom_write:
$019E	$0000			NOP
$019F	$	L_EEprom_write_0:
$019F	$1703			BSF	STATUS, RP1
$01A0	$1683			BSF	STATUS, RP0
$01A1	$1C8C			BTFSS	EECON1, 1
$01A2	$29A5			GOTO	L_EEprom_write_1
$01A3	$0000			NOP
$01A4	$299F			GOTO	L_EEprom_write_0
$01A5	$	L_EEprom_write_1:
$01A5	$1303			BCF	STATUS, RP1
$01A6	$1283			BCF	STATUS, RP0
$01A7	$0849			MOVF	FARG_EEprom_write+0, 0
$01A8	$1703			BSF	STATUS, RP1
$01A9	$008D			MOVWF	EEADR
$01AA	$1303			BCF	STATUS, RP1
$01AB	$084A			MOVF	FARG_EEprom_write+1, 0
$01AC	$1703			BSF	STATUS, RP1
$01AD	$008C			MOVWF	EEDATA
$01AE	$1683			BSF	STATUS, RP0
$01AF	$138C			BCF	EECON1, 7
$01B0	$150C			BSF	EECON1, 2
$01B1	$138B			BCF	INTCON, 7
$01B2	$3055			MOVLW	85
$01B3	$008D			MOVWF	EECON2
$01B4	$30AA			MOVLW	170
$01B5	$008D			MOVWF	EECON2
$01B6	$148C			BSF	EECON1, 1
$01B7	$178B			BSF	INTCON, 7
$01B8	$110C			BCF	EECON1, 2
$01B9	$0008			RETURN
$01BA	$	_rotate2:
;main.c,444 :: 		void rotate2()
;main.c,446 :: 		step_A = 1;
$01BA	$1303			BCF	STATUS, RP1
$01BB	$1283			BCF	STATUS, RP0
$01BC	$1405			BSF	PORTA, 0
;main.c,447 :: 		motor_delay();
$01BD	$20A0			CALL	_motor_delay
;main.c,448 :: 		step_A = 0;
$01BE	$1005			BCF	PORTA, 0
;main.c,449 :: 		step_B = 1;
$01BF	$1485			BSF	PORTA, 1
;main.c,450 :: 		motor_delay();
$01C0	$20A0			CALL	_motor_delay
;main.c,451 :: 		step_B = 0;
$01C1	$1085			BCF	PORTA, 1
;main.c,452 :: 		step_C = 1;
$01C2	$1409			BSF	PORTE, 0
;main.c,453 :: 		motor_delay();
$01C3	$20A0			CALL	_motor_delay
;main.c,454 :: 		step_C = 0;
$01C4	$1009			BCF	PORTE, 0
;main.c,455 :: 		step_D = 1;
$01C5	$1489			BSF	PORTE, 1
;main.c,456 :: 		motor_delay();
$01C6	$20A0			CALL	_motor_delay
;main.c,457 :: 		step_D = 0;
$01C7	$1089			BCF	PORTE, 1
;main.c,458 :: 		}
$01C8	$0008			RETURN
$01C9	$	_Usart_Read:
$01C9	$1303			BCF	STATUS, RP1
$01CA	$1283			BCF	STATUS, RP0
$01CB	$081A			MOVF	RCREG, 0
$01CC	$00C9			MOVWF	Usart_Read_tmp_L0
$01CD	$1C98			BTFSS	RCSTA, 1
$01CE	$29D1			GOTO	L_Usart_Read_2
$01CF	$1218			BCF	RCSTA, 4
$01D0	$1618			BSF	RCSTA, 4
$01D1	$	L_Usart_Read_2:
$01D1	$0849			MOVF	Usart_Read_tmp_L0, 0
$01D2	$00F0			MOVWF	STACK_0
$01D3	$0008			RETURN
$01D4	$	_Usart_Write:
$01D4	$	L_Usart_Write_3:
$01D4	$3000			MOVLW	0
$01D5	$1303			BCF	STATUS, RP1
$01D6	$1683			BSF	STATUS, RP0
$01D7	$1898			BTFSC	TXSTA, 1
$01D8	$3001			MOVLW	1
$01D9	$00F1			MOVWF	STACK_1
$01DA	$0871			MOVF	STACK_1, 0
$01DB	$3A00			XORLW	0
$01DC	$1D03			BTFSS	STATUS, Z
$01DD	$29E0			GOTO	L_Usart_Write_4
$01DE	$0000			NOP
$01DF	$29D4			GOTO	L_Usart_Write_3
$01E0	$	L_Usart_Write_4:
$01E0	$1283			BCF	STATUS, RP0
$01E1	$0849			MOVF	FARG_Usart_Write+0, 0
$01E2	$0099			MOVWF	TXREG
$01E3	$0008			RETURN
$01E4	$	table___send_message_header:
;main.c,12 :: 		const char send_message_header[8] = {'A','T','+','C','M','G','S','='};
$01E4	$3441			RETLW	65
$01E5	$3454			RETLW	84
$01E6	$342B			RETLW	43
$01E7	$3443			RETLW	67
$01E8	$344D			RETLW	77
$01E9	$3447			RETLW	71
$01EA	$3453			RETLW	83
$01EB	$343D			RETLW	61
$01EC	$0008			RETURN
$01ED	$	table___open_door_text:
;main.c,13 :: 		const char open_door_text[10] = {'D','O','O','R',' ','O','P','E','N',0x1A};
$01ED	$3444			RETLW	68
$01EE	$344F			RETLW	79
$01EF	$344F			RETLW	79
$01F0	$3452			RETLW	82
$01F1	$3420			RETLW	32
$01F2	$344F			RETLW	79
$01F3	$3450			RETLW	80
$01F4	$3445			RETLW	69
$01F5	$344E			RETLW	78
$01F6	$341A			RETLW	26
$01F7	$0008			RETURN
$01F8	$	table___already_opened_text:
;main.c,15 :: 		const char already_opened_text[20] = {'D','O','O','R',' ','A','L','R','E','A','D','Y',' ',
$01F8	$3444			RETLW	68
$01F9	$344F			RETLW	79
$01FA	$344F			RETLW	79
$01FB	$3452			RETLW	82
$01FC	$3420			RETLW	32
$01FD	$3441			RETLW	65
$01FE	$344C			RETLW	76
$01FF	$3452			RETLW	82
$0200	$3445			RETLW	69
$0201	$3441			RETLW	65
$0202	$3444			RETLW	68
$0203	$3459			RETLW	89
$0204	$3420			RETLW	32
$0205	$344F			RETLW	79
$0206	$3450			RETLW	80
$0207	$3445			RETLW	69
$0208	$344E			RETLW	78
$0209	$3445			RETLW	69
$020A	$3444			RETLW	68
$020B	$341A			RETLW	26
$020C	$0008			RETURN
$020D	$	table___close_door_text:
;main.c,14 :: 		const char close_door_text[12] = {'D','O','O','R',' ','C','L','O','S','E','D',0x1A};
$020D	$3444			RETLW	68
$020E	$344F			RETLW	79
$020F	$344F			RETLW	79
$0210	$3452			RETLW	82
$0211	$3420			RETLW	32
$0212	$3443			RETLW	67
$0213	$344C			RETLW	76
$0214	$344F			RETLW	79
$0215	$3453			RETLW	83
$0216	$3445			RETLW	69
$0217	$3444			RETLW	68
$0218	$341A			RETLW	26
$0219	$0008			RETURN
$021A	$	table___already_closed_text:
;main.c,17 :: 		const char already_closed_text[20] = {'D','O','O','R',' ','A','L','R','E','A','D','Y',' ',
$021A	$3444			RETLW	68
$021B	$344F			RETLW	79
$021C	$344F			RETLW	79
$021D	$3452			RETLW	82
$021E	$3420			RETLW	32
$021F	$3441			RETLW	65
$0220	$344C			RETLW	76
$0221	$3452			RETLW	82
$0222	$3445			RETLW	69
$0223	$3441			RETLW	65
$0224	$3444			RETLW	68
$0225	$3459			RETLW	89
$0226	$3420			RETLW	32
$0227	$3443			RETLW	67
$0228	$344C			RETLW	76
$0229	$344F			RETLW	79
$022A	$3453			RETLW	83
$022B	$3445			RETLW	69
$022C	$3444			RETLW	68
$022D	$341A			RETLW	26
$022E	$0008			RETURN
$022F	$	_Lcd_Init:
$022F	$2006			CALL	_Delay_5500us
$0230	$2006			CALL	_Delay_5500us
$0231	$2006			CALL	_Delay_5500us
$0232	$0844			MOVF	FARG_Lcd_Init+0, 0
$0233	$00A0			MOVWF	LCD_port_address
$0234	$0844			MOVF	FARG_Lcd_Init+0, 0
$0235	$0084			MOVWF	FSR
$0236	$1784			BSF	FSR, 7
$0237	$1180			BCF	INDF, ___ENABLE
$0238	$1100			BCF	INDF, ___RS
$0239	$1000			BCF	INDF, ___RW
$023A	$1380			BCF	INDF, ___DB7
$023B	$1300			BCF	INDF, ___DB6
$023C	$1280			BCF	INDF, ___DB5
$023D	$1200			BCF	INDF, ___DB4
$023E	$1384			BCF	FSR, 7
$023F	$1180			BCF	INDF, ___ENABLE
$0240	$1100			BCF	INDF, ___RS
$0241	$1000			BCF	INDF, ___RW
$0242	$1380			BCF	INDF, ___DB7
$0243	$1300			BCF	INDF, ___DB6
$0244	$1280			BCF	INDF, ___DB5
$0245	$1200			BCF	INDF, ___DB4
$0246	$1680			BSF	INDF, ___DB5
$0247	$1600			BSF	INDF, ___DB4
$0248	$1580			BSF	INDF, ___ENABLE
$0249	$1180			BCF	INDF, ___ENABLE
$024A	$2006			CALL	_Delay_5500us
$024B	$1580			BSF	INDF, ___ENABLE
$024C	$1180			BCF	INDF, ___ENABLE
$024D	$2006			CALL	_Delay_5500us
$024E	$1580			BSF	INDF, ___ENABLE
$024F	$1180			BCF	INDF, ___ENABLE
$0250	$2006			CALL	_Delay_5500us
$0251	$1680			BSF	INDF, ___DB5
$0252	$1200			BCF	INDF, ___DB4
$0253	$1580			BSF	INDF, ___ENABLE
$0254	$1180			BCF	INDF, ___ENABLE
$0255	$2006			CALL	_Delay_5500us
$0256	$0180			CLRF	INDF
$0257	$1680			BSF	INDF, ___DB5
$0258	$1580			BSF	INDF, ___ENABLE
$0259	$1180			BCF	INDF, ___ENABLE
$025A	$0180			CLRF	INDF
$025B	$1780			BSF	INDF, ___DB7
$025C	$1580			BSF	INDF, ___ENABLE
$025D	$1180			BCF	INDF, ___ENABLE
$025E	$2006			CALL	_Delay_5500us
$025F	$0180			CLRF	INDF
$0260	$1600			BSF	INDF, ___DB4
$0261	$1580			BSF	INDF, ___ENABLE
$0262	$1180			BCF	INDF, ___ENABLE
$0263	$0180			CLRF	INDF
$0264	$1580			BSF	INDF, ___ENABLE
$0265	$1180			BCF	INDF, ___ENABLE
$0266	$2006			CALL	_Delay_5500us
$0267	$0180			CLRF	INDF
$0268	$1580			BSF	INDF, ___ENABLE
$0269	$1180			BCF	INDF, ___ENABLE
$026A	$1600			BSF	INDF, ___DB4
$026B	$1580			BSF	INDF, ___ENABLE
$026C	$1180			BCF	INDF, ___ENABLE
$026D	$2006			CALL	_Delay_5500us
$026E	$0180			CLRF	INDF
$026F	$1580			BSF	INDF, ___ENABLE
$0270	$1180			BCF	INDF, ___ENABLE
$0271	$1600			BSF	INDF, ___DB4
$0272	$1680			BSF	INDF, ___DB5
$0273	$1700			BSF	INDF, ___DB6
$0274	$1780			BSF	INDF, ___DB7
$0275	$1580			BSF	INDF, ___ENABLE
$0276	$1180			BCF	INDF, ___ENABLE
$0277	$2006			CALL	_Delay_5500us
$0278	$3001			MOVLW	1
$0279	$00A1			MOVWF	LCD_cmd_status
$027A	$0008			RETURN
$027B	$	_gsm_modem_init:
;main.c,198 :: 		void gsm_modem_init()
;main.c,200 :: 		do {
$027B	$	L_gsm_modem_init_37:
;main.c,201 :: 		byte_count1 = 0;
$027B	$1303			BCF	STATUS, RP1
$027C	$1283			BCF	STATUS, RP0
$027D	$01A6			CLRF	_byte_count1, 1
;main.c,202 :: 		TXREG = settings[0];
$027E	$3041			MOVLW	65
$027F	$0099			MOVWF	TXREG
;main.c,203 :: 		while (byte_count1 < 18)
$0280	$	L_gsm_modem_init_39:
$0280	$3080			MOVLW	128
$0281	$0626			XORWF	_byte_count1, 0
$0282	$00F0			MOVWF	STACK_0
$0283	$3080			MOVLW	128
$0284	$3A12			XORLW	18
$0285	$0270			SUBWF	STACK_0, 0
$0286	$1803			BTFSC	STATUS, C
$0287	$2A9D			GOTO	L_gsm_modem_init_40
;main.c,205 :: 		if (PIR1.TXIF)
$0288	$1E0C			BTFSS	PIR1, 4
$0289	$2A9C			GOTO	L_gsm_modem_init_41
;main.c,207 :: 		byte_count1++;
$028A	$0AA6			INCF	_byte_count1, 1
;main.c,208 :: 		TXREG = settings[byte_count1];
$028B	$0826			MOVF	_byte_count1, 0
$028C	$3FB3			ADDLW	#_settings
$028D	$00F0			MOVWF	STACK_0
$028E	$3000			MOVLW	@#_settings
$028F	$1803			BTFSC	STATUS, C
$0290	$3F01			ADDLW	1
$0291	$00F1			MOVWF	STACK_0+1
$0292	$0870			MOVF	STACK_0, 0
$0293	$00A4			MOVWF	___DoICPLoAddr
$0294	$0871			MOVF	STACK_0+1, 0
$0295	$00A3			MOVWF	___DoICPHiAddr
$0296	$080A			MOVF	PCLATH, 0
$0297	$00A2			MOVWF	___DoICPSavePCLATH
$0298	$20C6			CALL	_____DoICP
$0299	$0099			MOVWF	TXREG
$029A	$0822			MOVF	___DoICPSavePCLATH, 0
$029B	$008A			MOVWF	PCLATH
;main.c,209 :: 		}
$029C	$	L_gsm_modem_init_41:
;main.c,210 :: 		}
$029C	$2A80			GOTO	L_gsm_modem_init_39
$029D	$	L_gsm_modem_init_40:
;main.c,211 :: 		time_count = 0;
$029D	$01A7			CLRF	_time_count
$029E	$01A8			CLRF	_time_count+1
;main.c,212 :: 		while (buffer != 'O' && time_count < 6250)
$029F	$	L_gsm_modem_init_42:
$029F	$0825			MOVF	_buffer, 0
$02A0	$3A4F			XORLW	79
$02A1	$1903			BTFSC	STATUS, Z
$02A2	$2AB5			GOTO	L_gsm_modem_init_43
$02A3	$3018			MOVLW	24
$02A4	$0228			SUBWF	_time_count+1, 0
$02A5	$1D03			BTFSS	STATUS, Z
$02A6	$2AA9			GOTO	L_gsm_modem_init_151
$02A7	$306A			MOVLW	106
$02A8	$0227			SUBWF	_time_count, 0
$02A9	$	L_gsm_modem_init_151:
$02A9	$1803			BTFSC	STATUS, C
$02AA	$2AB5			GOTO	L_gsm_modem_init_43
$02AB	$	L387_ex_L_gsm_modem_init_43:
;main.c,214 :: 		if (PIR1.RCIF)
$02AB	$1E8C			BTFSS	PIR1, 5
$02AC	$2AB1			GOTO	L_gsm_modem_init_46
;main.c,216 :: 		buffer = RCREG;
$02AD	$081A			MOVF	RCREG, 0
$02AE	$00A5			MOVWF	_buffer
;main.c,217 :: 		time_count = 0;
$02AF	$01A7			CLRF	_time_count

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -