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

📄 main.asm

📁 An applicaion that utilize a fingerprint scanner to turn off the PC
💻 ASM
📖 第 1 页 / 共 5 页
字号:
$0497	$3001			MOVLW	1
$0498	$00D1			MOVWF	FARG_LCD_Out+1
$0499	$30A0			MOVLW	lstr4_main
$049A	$00D2			MOVWF	FARG_LCD_Out+2
$049B	$2166			CALL	_LCD_Out
;main.c,290 :: 		LCD_Out(2,1,"  PLEASE  WAIT  ");
$049C	$3002			MOVLW	2
$049D	$00D0			MOVWF	FARG_LCD_Out+0
$049E	$3001			MOVLW	1
$049F	$00D1			MOVWF	FARG_LCD_Out+1
$04A0	$30B1			MOVLW	lstr5_main
$04A1	$00D2			MOVWF	FARG_LCD_Out+2
$04A2	$2166			CALL	_LCD_Out
;main.c,291 :: 		PWM_Init (1000);
$04A3	$1412			BSF	T2CON, T2CKPS0
$04A4	$1492			BSF	T2CON, T2CKPS1
$04A5	$307C			MOVLW	124
$04A6	$1683			BSF	STATUS, RP0
$04A7	$0092			MOVWF	PR2
$04A8	$23E4			CALL	_PWM_Init
;main.c,292 :: 		Pwm_Change_Duty(50);
$04A9	$3032			MOVLW	50
$04AA	$00AE			MOVWF	FARG_PWM_Change_Duty+0
$04AB	$224D			CALL	_PWM_Change_Duty
;main.c,293 :: 		PWM_Start();
$04AC	$21F9			CALL	_PWM_Start
;main.c,294 :: 		Seconds_Delay(4);
$04AD	$3004			MOVLW	4
$04AE	$00D0			MOVWF	FARG_Seconds_Delay+0
$04AF	$21CA			CALL	_Seconds_Delay
;main.c,295 :: 		Delete_Specific_User(0);
$04B0	$01AE			CLRF	FARG_Delete_Specific_User+0, 1
$04B1	$2286			CALL	_Delete_Specific_User
;main.c,296 :: 		Set_Enroll_Sampling_Counts();
$04B2	$2295			CALL	_Set_Enroll_Sampling_Counts
;main.c,297 :: 		Disable_Scanners_Timeout();
$04B3	$22A3			CALL	_Disable_Scanners_Timeout
;main.c,298 :: 		Adjust_Acceptance_level();
$04B4	$22B1			CALL	_Adjust_Acceptance_level
;main.c,299 :: 		LCD_Cmd(LCD_CLEAR);
$04B5	$3001			MOVLW	1
$04B6	$00D7			MOVWF	FARG_Lcd_Cmd+0
$04B7	$201F			CALL	_Lcd_Cmd
;main.c,300 :: 		while (1)
$04B8	$	L_main_25:
;main.c,302 :: 		event = 0;
$04B8	$01AD			CLRF	_event, 1
;main.c,303 :: 		pc_supply_control = off;
$04B9	$1187			BCF	PORTC, 3
;main.c,304 :: 		while (!event)
$04BA	$	L_main_27:
$04BA	$082D			MOVF	_event, 0
$04BB	$1D03			BTFSS	STATUS, Z
$04BC	$2D99			GOTO	L_main_28
;main.c,306 :: 		if (PORTD.F3)
$04BD	$1D88			BTFSS	PORTD, 3
$04BE	$2CE6			GOTO	L_main_29
;main.c,308 :: 		LCD_Cmd(LCD_CLEAR);
$04BF	$3001			MOVLW	1
$04C0	$00D7			MOVWF	FARG_Lcd_Cmd+0
$04C1	$201F			CALL	_Lcd_Cmd
;main.c,309 :: 		Show_Splash_message();
$04C2	$22C0			CALL	_Show_Splash_message
;main.c,310 :: 		seconds_delay(1);
$04C3	$3001			MOVLW	1
$04C4	$00D0			MOVWF	FARG_Seconds_Delay+0
$04C5	$21CA			CALL	_Seconds_Delay
;main.c,311 :: 		Delete_Specific_User(1);
$04C6	$3001			MOVLW	1
$04C7	$00AE			MOVWF	FARG_Delete_Specific_User+0
$04C8	$2286			CALL	_Delete_Specific_User
;main.c,312 :: 		Delete_Specific_User(4);
$04C9	$3004			MOVLW	4
$04CA	$00AE			MOVWF	FARG_Delete_Specific_User+0
$04CB	$2286			CALL	_Delete_Specific_User
;main.c,313 :: 		user_number = 1; //user1 right finger print location
$04CC	$3001			MOVLW	1
$04CD	$00AC			MOVWF	_user_number
;main.c,314 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
$04CE	$3001			MOVLW	1
$04CF	$00AE			MOVWF	FARG_Enroll_Users_Fingerprint+0
$04D0	$2313			CALL	_Enroll_Users_Fingerprint
;main.c,315 :: 		user_number = 4; //user1 left finger print location
$04D1	$3004			MOVLW	4
$04D2	$00AC			MOVWF	_user_number
;main.c,316 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
$04D3	$3004			MOVLW	4
$04D4	$00AE			MOVWF	FARG_Enroll_Users_Fingerprint+0
$04D5	$2313			CALL	_Enroll_Users_Fingerprint
;main.c,317 :: 		LCD_Cmd(LCD_CLEAR);
$04D6	$3001			MOVLW	1
$04D7	$00D7			MOVWF	FARG_Lcd_Cmd+0
$04D8	$201F			CALL	_Lcd_Cmd
;main.c,318 :: 		Show_EEPROM_Stored_Messages(1,0xb0);
$04D9	$3001			MOVLW	1
$04DA	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$04DB	$30B0			MOVLW	176
$04DC	$00D1			MOVWF	FARG_Show_EEPROM_Stored_Messages+1
$04DD	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,319 :: 		seconds_delay(5);
$04DE	$3005			MOVLW	5
$04DF	$00D0			MOVWF	FARG_Seconds_Delay+0
$04E0	$21CA			CALL	_Seconds_Delay
;main.c,320 :: 		LCD_Cmd(LCD_CLEAR);
$04E1	$3001			MOVLW	1
$04E2	$00D7			MOVWF	FARG_Lcd_Cmd+0
$04E3	$201F			CALL	_Lcd_Cmd
;main.c,321 :: 		event = 1;
$04E4	$3001			MOVLW	1
$04E5	$00AD			MOVWF	_event
;main.c,322 :: 		}
$04E6	$	L_main_29:
;main.c,323 :: 		if ((PORTC & 0x30) == 0x10)
$04E6	$3030			MOVLW	48
$04E7	$0507			ANDWF	PORTC, 0
$04E8	$00F1			MOVWF	STACK_1
$04E9	$0871			MOVF	STACK_1, 0
$04EA	$3A10			XORLW	16
$04EB	$1D03			BTFSS	STATUS, Z
$04EC	$2D14			GOTO	L_main_30
;main.c,325 :: 		LCD_Cmd(LCD_CLEAR);
$04ED	$3001			MOVLW	1
$04EE	$00D7			MOVWF	FARG_Lcd_Cmd+0
$04EF	$201F			CALL	_Lcd_Cmd
;main.c,326 :: 		Show_Splash_message();
$04F0	$22C0			CALL	_Show_Splash_message
;main.c,327 :: 		seconds_delay(1);
$04F1	$3001			MOVLW	1
$04F2	$00D0			MOVWF	FARG_Seconds_Delay+0
$04F3	$21CA			CALL	_Seconds_Delay
;main.c,328 :: 		Delete_Specific_User(2);
$04F4	$3002			MOVLW	2
$04F5	$00AE			MOVWF	FARG_Delete_Specific_User+0
$04F6	$2286			CALL	_Delete_Specific_User
;main.c,329 :: 		Delete_Specific_User(5);
$04F7	$3005			MOVLW	5
$04F8	$00AE			MOVWF	FARG_Delete_Specific_User+0
$04F9	$2286			CALL	_Delete_Specific_User
;main.c,330 :: 		user_number = 2; //user1 right finger print location
$04FA	$3002			MOVLW	2
$04FB	$00AC			MOVWF	_user_number
;main.c,331 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
$04FC	$3002			MOVLW	2
$04FD	$00AE			MOVWF	FARG_Enroll_Users_Fingerprint+0
$04FE	$2313			CALL	_Enroll_Users_Fingerprint
;main.c,332 :: 		user_number = 5; //user1 left finger print location
$04FF	$3005			MOVLW	5
$0500	$00AC			MOVWF	_user_number
;main.c,333 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
$0501	$3005			MOVLW	5
$0502	$00AE			MOVWF	FARG_Enroll_Users_Fingerprint+0
$0503	$2313			CALL	_Enroll_Users_Fingerprint
;main.c,334 :: 		LCD_Cmd(LCD_CLEAR);
$0504	$3001			MOVLW	1
$0505	$00D7			MOVWF	FARG_Lcd_Cmd+0
$0506	$201F			CALL	_Lcd_Cmd
;main.c,335 :: 		Show_EEPROM_Stored_Messages(1,0xb0);
$0507	$3001			MOVLW	1
$0508	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$0509	$30B0			MOVLW	176
$050A	$00D1			MOVWF	FARG_Show_EEPROM_Stored_Messages+1
$050B	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,336 :: 		seconds_delay(5);
$050C	$3005			MOVLW	5
$050D	$00D0			MOVWF	FARG_Seconds_Delay+0
$050E	$21CA			CALL	_Seconds_Delay
;main.c,337 :: 		LCD_Cmd(LCD_CLEAR);
$050F	$3001			MOVLW	1
$0510	$00D7			MOVWF	FARG_Lcd_Cmd+0
$0511	$201F			CALL	_Lcd_Cmd
;main.c,338 :: 		event = 1;
$0512	$3001			MOVLW	1
$0513	$00AD			MOVWF	_event
;main.c,339 :: 		}
$0514	$	L_main_30:
;main.c,340 :: 		if ((PORTC & 0x30) == 0x20)
$0514	$3030			MOVLW	48
$0515	$0507			ANDWF	PORTC, 0
$0516	$00F1			MOVWF	STACK_1
$0517	$0871			MOVF	STACK_1, 0
$0518	$3A20			XORLW	32
$0519	$1D03			BTFSS	STATUS, Z
$051A	$2D42			GOTO	L_main_31
;main.c,342 :: 		LCD_Cmd(LCD_CLEAR);
$051B	$3001			MOVLW	1
$051C	$00D7			MOVWF	FARG_Lcd_Cmd+0
$051D	$201F			CALL	_Lcd_Cmd
;main.c,343 :: 		Show_Splash_message();
$051E	$22C0			CALL	_Show_Splash_message
;main.c,344 :: 		seconds_delay(1);
$051F	$3001			MOVLW	1
$0520	$00D0			MOVWF	FARG_Seconds_Delay+0
$0521	$21CA			CALL	_Seconds_Delay
;main.c,345 :: 		Delete_Specific_User(3);
$0522	$3003			MOVLW	3
$0523	$00AE			MOVWF	FARG_Delete_Specific_User+0
$0524	$2286			CALL	_Delete_Specific_User
;main.c,346 :: 		Delete_Specific_User(6);
$0525	$3006			MOVLW	6
$0526	$00AE			MOVWF	FARG_Delete_Specific_User+0
$0527	$2286			CALL	_Delete_Specific_User
;main.c,347 :: 		user_number = 3; //user1 right finger print location
$0528	$3003			MOVLW	3
$0529	$00AC			MOVWF	_user_number
;main.c,348 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
$052A	$3003			MOVLW	3
$052B	$00AE			MOVWF	FARG_Enroll_Users_Fingerprint+0
$052C	$2313			CALL	_Enroll_Users_Fingerprint
;main.c,349 :: 		user_number = 6; //user1 left finger print location
$052D	$3006			MOVLW	6
$052E	$00AC			MOVWF	_user_number
;main.c,350 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
$052F	$3006			MOVLW	6
$0530	$00AE			MOVWF	FARG_Enroll_Users_Fingerprint+0
$0531	$2313			CALL	_Enroll_Users_Fingerprint
;main.c,351 :: 		LCD_Cmd(LCD_CLEAR);
$0532	$3001			MOVLW	1
$0533	$00D7			MOVWF	FARG_Lcd_Cmd+0
$0534	$201F			CALL	_Lcd_Cmd
;main.c,352 :: 		Show_EEPROM_Stored_Messages(1,0xb0);
$0535	$3001			MOVLW	1
$0536	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$0537	$30B0			MOVLW	176
$0538	$00D1			MOVWF	FARG_Show_EEPROM_Stored_Messages+1
$0539	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,353 :: 		seconds_delay(5);
$053A	$3005			MOVLW	5
$053B	$00D0			MOVWF	FARG_Seconds_Delay+0
$053C	$21CA			CALL	_Seconds_Delay
;main.c,354 :: 		LCD_Cmd(LCD_CLEAR);
$053D	$3001			MOVLW	1
$053E	$00D7			MOVWF	FARG_Lcd_Cmd+0
$053F	$201F			CALL	_Lcd_Cmd
;main.c,355 :: 		event = 1;
$0540	$3001			MOVLW	1
$0541	$00AD			MOVWF	_event
;main.c,356 :: 		}
$0542	$	L_main_31:
;main.c,357 :: 		if ((PORTC & 0x30) == 0x30)//PIR1.RCIF)
$0542	$3030			MOVLW	48
$0543	$0507			ANDWF	PORTC, 0
$0544	$00F1			MOVWF	STACK_1
$0545	$0871			MOVF	STACK_1, 0
$0546	$3A30			XORLW	48
$0547	$1D03			BTFSS	STATUS, Z
$0548	$2D98			GOTO	L_main_32
;main.c,359 :: 		LCD_Out(1,1,"  PLACE FINGER  ");
$0549	$3001			MOVLW	1
$054A	$00D0			MOVWF	FARG_LCD_Out+0
$054B	$3001			MOVLW	1
$054C	$00D1			MOVWF	FARG_LCD_Out+1
$054D	$30C2			MOVLW	lstr6_main
$054E	$00D2			MOVWF	FARG_LCD_Out+2
$054F	$2166			CALL	_LCD_Out
;main.c,360 :: 		LCD_Out(2,1," ON THE SCANNER ");
$0550	$3002			MOVLW	2
$0551	$00D0			MOVWF	FARG_LCD_Out+0
$0552	$3001			MOVLW	1
$0553	$00D1			MOVWF	FARG_LCD_Out+1
$0554	$30D3			MOVLW	lstr7_main
$0555	$00D2			MOVWF	FARG_LCD_Out+2
$0556	$2166			CALL	_LCD_Out
;main.c,361 :: 		Send_Scan_Fingerprint_Command();
$0557	$238B			CALL	_Send_Scan_Fingerprint_Command
;main.c,362 :: 		LCD_Cmd(LCD_CLEAR);
$0558	$3001			MOVLW	1
$0559	$00D7			MOVWF	FARG_Lcd_Cmd+0
$055A	$201F			CALL	_Lcd_Cmd
;main.c,363 :: 		if (data_frame[3] == 1 ||data_frame[3] == 4)
$055B	$0825			MOVF	_data_frame+3, 0
$055C	$3A01			XORLW	1
$055D	$1903			BTFSC	STATUS, Z
$055E	$2D63			GOTO	L455_ex_L_main_35
$055F	$0825			MOVF	_data_frame+3, 0
$0560	$3A04			XORLW	4
$0561	$1D03			BTFSS	STATUS, Z
$0562	$2D6A			GOTO	L_main_35
$0563	$	L455_ex_L_main_35:
;main.c,365 :: 		Show_Welcome_String();
$0563	$2396			CALL	_Show_Welcome_String
;main.c,366 :: 		Show_EEPROM_Stored_Messages(2,0);
$0564	$3002			MOVLW	2
$0565	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$0566	$01D1			CLRF	FARG_Show_EEPROM_Stored_Messages+1, 1
$0567	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,367 :: 		Boot_Computer();
$0568	$23C1			CALL	_Boot_Computer
;main.c,368 :: 		goto exit
$0569	$2D8F			GOTO	___main_exit
;main.c,369 :: 		}
$056A	$	L_main_35:
;main.c,370 :: 		if (data_frame[3] == 2 || data_frame[3] == 5)
$056A	$0825			MOVF	_data_frame+3, 0
$056B	$3A02			XORLW	2
$056C	$1903			BTFSC	STATUS, Z
$056D	$2D72			GOTO	L473_ex_L_main_38
$056E	$0825			MOVF	_data_frame+3, 0
$056F	$3A05			XORLW	5
$0570	$1D03			BTFSS	STATUS, Z
$0571	$2D7A			GOTO	L_main_38
$0572	$	L473_ex_L_main_38:
;main.c,372 :: 		Show_Welcome_String();
$0572	$2396			CALL	_Show_Welcome_String
;main.c,373 :: 		Show_EEPROM_Stored_Messages(2,0x10);
$0573	$3002			MOVLW	2
$0574	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$0575	$3010			MOVLW	16
$0576	$00D1			MOVWF	FARG_Show_EEPROM_Stored_Messages+1
$0577	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,374 :: 		Boot_Computer();
$0578	$23C1			CALL	_Boot_Computer
;main.c,375 :: 		goto exit
$0579	$2D8F			GOTO	___main_exit
;main.c,376 :: 		}
$057A	$	L_main_38:
;main.c,377 :: 		if (data_frame[3] == 3 ||data_frame[3] == 6)
$057A	$0825			MOVF	_data_frame+3, 0
$057B	$3A03			XORLW	3
$057C	$1903			BTFSC	STATUS, Z
$057D	$2D82			GOTO	L491_ex_L_main_41
$057E	$0825			MOVF	_data_frame+3, 0
$057F	$3A06			XORLW	6
$0580	$1D03			BTFSS	STATUS, Z
$0581	$2D8A			GOTO	L_main_41
$0582	$	L491_ex_L_main_41:
;main.c,379 :: 		Show_Welcome_String();
$0582	$2396			CALL	_Show_Welcome_String
;main.c,380 :: 		Show_EEPROM_Stored_Messages(2,0x20);
$0583	$3002			MOVLW	2
$0584	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$0585	$3020			MOVLW	32
$0586	$00D1			MOVWF	FARG_Show_EEPROM_Stored_Messages+1
$0587	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,381 :: 		Boot_Computer();
$0588	$23C1			CALL	_Boot_Computer
;main.c,382 :: 		goto exit
$0589	$2D8F			GOTO	___main_exit
;main.c,383 :: 		}
$058A	$	L_main_41:
;main.c,384 :: 		Show_EEPROM_Stored_Messages(1,0x30);
$058A	$3001			MOVLW	1
$058B	$00D0			MOVWF	FARG_Show_EEPROM_Stored_Messages+0
$058C	$3030			MOVLW	48
$058D	$00D1			MOVWF	FARG_Show_EEPROM_Stored_Messages+1
$058E	$21A9			CALL	_Show_EEPROM_Stored_Messages
;main.c,385 :: 		exit: Seconds_Delay (3);
$058F	$	___main_exit:
$058F	$3003			MOVLW	3
$0590	$00D0			MOVWF	FARG_Seconds_Delay+0
$0591	$21CA			CALL	_Seconds_Delay
;main.c,386 :: 		LCD_Cmd(LCD_CLEAR);
$0592	$3001			MOVLW	1
$0593	$00D7			MOVWF	FARG_Lcd_Cmd+0
$0594	$201F			CALL	_Lcd_Cmd
;main.c,387 :: 		Clear_Buffer_Registers();
$0595	$2079			CALL	_Clear_Buffer_Registers
;main.c,388 :: 		event = 1;
$0596	$3001			MOVLW	1
$0597	$00AD			MOVWF	_event
;main.c,389 :: 		}
$0598	$	L_main_32:
;main.c,390 :: 		}
$0598	$2CBA			GOTO	L_main_27
$0599	$	L_main_28:
;main.c,391 :: 		}
$0599	$2CB8			GOTO	L_main_25
;main.c,392 :: 		}
$059A	$2D9A			GOTO	$

⌨️ 快捷键说明

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