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

📄 main.lst

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