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

📄 main.mil

📁 An applicaion that utilize a fingerprint scanner to turn off the PC
💻 MIL
📖 第 1 页 / 共 2 页
字号:
//main.c,217 :: 		}
L_Enroll_Users_Fingerprint_22:
//main.c,218 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,219 :: 		seconds_delay(1);
	FARG_Seconds_Delay+0 <- 1
	CALL _Seconds_Delay
//main.c,220 :: 		Clear_Buffer_Registers();
	CALL _Clear_Buffer_Registers
//main.c,221 :: 		Show_EEPROM_Stored_Messages(1,0x80);
	FARG_Show_EEPROM_Stored_Messages+0 <- 1
	FARG_Show_EEPROM_Stored_Messages+1 <- 128
	CALL _Show_EEPROM_Stored_Messages
//main.c,222 :: 		Show_EEPROM_Stored_Messages(2,0xa0);
	FARG_Show_EEPROM_Stored_Messages+0 <- 2
	FARG_Show_EEPROM_Stored_Messages+1 <- 160
	CALL _Show_EEPROM_Stored_Messages
//main.c,223 :: 		data_frame[1] = 0x03;  //scan for the last time
	_data_frame+1 <- 3
//main.c,224 :: 		data_frame[2] = 0; // this byte is MSB of the user number
	_data_frame+2 <- 0
//main.c,225 :: 		data_frame[3] = number; // this byte is LSB of the user number
	_data_frame+3 <- FARG_Enroll_Users_Fingerprint+0
//main.c,226 :: 		data_frame[4] = 1;   // set priveledge to 1
	_data_frame+4 <- 1
//main.c,227 :: 		Construct_Scanner_Command();
	CALL _Construct_Scanner_Command
//main.c,228 :: 		Transmit_Command_to_Scanner();
	CALL _Transmit_Command_to_Scanner
//main.c,229 :: 		Receive_Response_from_Scanner();
	CALL _Receive_Response_from_Scanner
//main.c,230 :: 		if (data_frame[4])
	if (!_data_frame+4) then goto L_Enroll_Users_Fingerprint_23
//main.c,232 :: 		error = 1;
	Enroll_Users_Fingerprint_error_L0 <- 1
//main.c,233 :: 		}
L_Enroll_Users_Fingerprint_23:
//main.c,234 :: 		return error;
	STACK_0 <- Enroll_Users_Fingerprint_error_L0
	return
  end

_Adjust_Acceptance_level:
  begin
//main.c,241 :: 		data_frame[1] = 0x28; // adjust recognitio level command
	_data_frame+1 <- 40
//main.c,242 :: 		data_frame[2] = 0; // this byte is MSB of the user number
	_data_frame+2 <- 0
//main.c,243 :: 		data_frame[3] = 9; // strictest level
	_data_frame+3 <- 9
//main.c,244 :: 		data_frame[4] = 0;
	_data_frame+4 <- 0
//main.c,245 :: 		Construct_Scanner_Command();
	CALL _Construct_Scanner_Command
//main.c,246 :: 		retry4:Transmit_Command_to_Scanner();
___Adjust_Acceptance_level_retry4:
	CALL _Transmit_Command_to_Scanner
//main.c,247 :: 		Receive_Response_from_Scanner();
	CALL _Receive_Response_from_Scanner
//main.c,248 :: 		if (data_frame[4])
	if (_data_frame+4) then goto ___Adjust_Acceptance_level_retry4
//main.c,251 :: 		}
L_Adjust_Acceptance_level_24:
  end

_Send_Scan_Fingerprint_Command:
  begin
//main.c,258 :: 		data_frame[1] = 0x0c; // scan finger print command
	_data_frame+1 <- 12
//main.c,259 :: 		data_frame[2] = 0;
	_data_frame+2 <- 0
//main.c,260 :: 		data_frame[3] = 0;  //scan sample up to three times
	_data_frame+3 <- 0
//main.c,261 :: 		data_frame[4] = 0;  //write data
	_data_frame+4 <- 0
//main.c,262 :: 		Construct_Scanner_Command();
	CALL _Construct_Scanner_Command
//main.c,263 :: 		Transmit_Command_to_Scanner();
	CALL _Transmit_Command_to_Scanner
//main.c,264 :: 		Receive_Response_from_Scanner();
	CALL _Receive_Response_from_Scanner
  end

_main:
  begin
//main.c,271 :: 		ADCON1 = 0x06;
	ADCON1 <- 6
//main.c,272 :: 		TRISA = 0x01;
	TRISA <- 1
//main.c,273 :: 		TRISB = 0;
	TRISB <- 0
//main.c,274 :: 		TRISC = 0x30;
	TRISC <- 48
//main.c,275 :: 		TRISD = 0x04;
	TRISD <- 4
//main.c,276 :: 		TRISE = 0;
	TRISE <- 0
//main.c,277 :: 		PORTA = 0;
	PORTA <- 0
//main.c,278 :: 		PORTB = 0;
	PORTB <- 0
//main.c,279 :: 		PORTC = 0;
	PORTC <- 0
//main.c,280 :: 		PORTD = 0;
	PORTD <- 0
//main.c,281 :: 		PORTE = 0;
	PORTE <- 0
//main.c,282 :: 		Seconds_Delay(2);
	FARG_Seconds_Delay+0 <- 2
	CALL _Seconds_Delay
//main.c,283 :: 		user_number = 0;
	_user_number <- 0
//main.c,284 :: 		Usart_Init(19200);
	SPBRG <- 25
	asm: BSF	TXSTA, BRGH
	CALL _Usart_Init
//main.c,285 :: 		PIE1.RCIE = 1;
	PIE1 <-  PIE1 | 32
//main.c,286 :: 		LCD_Init (&PORTB);
	FARG_Lcd_Init+0 <- 0
	CALL _Lcd_Init
//main.c,287 :: 		LCD_Cmd(LCD_CURSOR_OFF);
	FARG_Lcd_Cmd+0 <- 12
	CALL _Lcd_Cmd
//main.c,288 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,289 :: 		LCD_Out(1,1,"  INITIALIZING  ");
	FARG_LCD_Out+0 <- 1
	FARG_LCD_Out+1 <- 1
	FARG_LCD_Out+2 <- 0
	CALL _LCD_Out
//main.c,290 :: 		LCD_Out(2,1,"  PLEASE  WAIT  ");
	FARG_LCD_Out+0 <- 2
	FARG_LCD_Out+1 <- 1
	FARG_LCD_Out+2 <- 0
	CALL _LCD_Out
//main.c,291 :: 		PWM_Init (1000);
	asm: BSF	T2CON, T2CKPS0
	asm: BSF	T2CON, T2CKPS1
	asm: MOVLW	124
	asm: MOVWF	PR2
	CALL _PWM_Init
//main.c,292 :: 		Pwm_Change_Duty(50);
	FARG_PWM_Change_Duty+0 <- 50
	CALL _PWM_Change_Duty
//main.c,293 :: 		PWM_Start();
	CALL _PWM_Start
//main.c,294 :: 		Seconds_Delay(4);
	FARG_Seconds_Delay+0 <- 4
	CALL _Seconds_Delay
//main.c,295 :: 		Delete_Specific_User(0);
	FARG_Delete_Specific_User+0 <- 0
	CALL _Delete_Specific_User
//main.c,296 :: 		Set_Enroll_Sampling_Counts();
	CALL _Set_Enroll_Sampling_Counts
//main.c,297 :: 		Disable_Scanners_Timeout();
	CALL _Disable_Scanners_Timeout
//main.c,298 :: 		Adjust_Acceptance_level();
	CALL _Adjust_Acceptance_level
//main.c,299 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,300 :: 		while (1)
L_main_25:
//main.c,302 :: 		event = 0;
	_event <- 0
//main.c,303 :: 		pc_supply_control = off;
	PORTC <-  PORTC & -9
//main.c,304 :: 		while (!event)
L_main_27:
	if (_event) then goto L_main_28
//main.c,306 :: 		if (PORTD.F3)
	if (!PORTD) then goto L_main_29
//main.c,308 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,309 :: 		Show_Splash_message();
	CALL _Show_Splash_message
//main.c,310 :: 		seconds_delay(1);
	FARG_Seconds_Delay+0 <- 1
	CALL _Seconds_Delay
//main.c,311 :: 		Delete_Specific_User(1);
	FARG_Delete_Specific_User+0 <- 1
	CALL _Delete_Specific_User
//main.c,312 :: 		Delete_Specific_User(4);
	FARG_Delete_Specific_User+0 <- 4
	CALL _Delete_Specific_User
//main.c,313 :: 		user_number = 1; //user1 right finger print location
	_user_number <- 1
//main.c,314 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
	FARG_Enroll_Users_Fingerprint+0 <- 1
	CALL _Enroll_Users_Fingerprint
//main.c,315 :: 		user_number = 4; //user1 left finger print location
	_user_number <- 4
//main.c,316 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
	FARG_Enroll_Users_Fingerprint+0 <- 4
	CALL _Enroll_Users_Fingerprint
//main.c,317 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,318 :: 		Show_EEPROM_Stored_Messages(1,0xb0);
	FARG_Show_EEPROM_Stored_Messages+0 <- 1
	FARG_Show_EEPROM_Stored_Messages+1 <- 176
	CALL _Show_EEPROM_Stored_Messages
//main.c,319 :: 		seconds_delay(5);
	FARG_Seconds_Delay+0 <- 5
	CALL _Seconds_Delay
//main.c,320 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,321 :: 		event = 1;
	_event <- 1
//main.c,322 :: 		}
L_main_29:
//main.c,323 :: 		if ((PORTC & 0x30) == 0x10)
	STACK_1 <-  PORTC & 48
	if ( STACK_1 != 16) then goto L_main_30
//main.c,325 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,326 :: 		Show_Splash_message();
	CALL _Show_Splash_message
//main.c,327 :: 		seconds_delay(1);
	FARG_Seconds_Delay+0 <- 1
	CALL _Seconds_Delay
//main.c,328 :: 		Delete_Specific_User(2);
	FARG_Delete_Specific_User+0 <- 2
	CALL _Delete_Specific_User
//main.c,329 :: 		Delete_Specific_User(5);
	FARG_Delete_Specific_User+0 <- 5
	CALL _Delete_Specific_User
//main.c,330 :: 		user_number = 2; //user1 right finger print location
	_user_number <- 2
//main.c,331 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
	FARG_Enroll_Users_Fingerprint+0 <- 2
	CALL _Enroll_Users_Fingerprint
//main.c,332 :: 		user_number = 5; //user1 left finger print location
	_user_number <- 5
//main.c,333 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
	FARG_Enroll_Users_Fingerprint+0 <- 5
	CALL _Enroll_Users_Fingerprint
//main.c,334 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,335 :: 		Show_EEPROM_Stored_Messages(1,0xb0);
	FARG_Show_EEPROM_Stored_Messages+0 <- 1
	FARG_Show_EEPROM_Stored_Messages+1 <- 176
	CALL _Show_EEPROM_Stored_Messages
//main.c,336 :: 		seconds_delay(5);
	FARG_Seconds_Delay+0 <- 5
	CALL _Seconds_Delay
//main.c,337 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,338 :: 		event = 1;
	_event <- 1
//main.c,339 :: 		}
L_main_30:
//main.c,340 :: 		if ((PORTC & 0x30) == 0x20)
	STACK_1 <-  PORTC & 48
	if ( STACK_1 != 32) then goto L_main_31
//main.c,342 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,343 :: 		Show_Splash_message();
	CALL _Show_Splash_message
//main.c,344 :: 		seconds_delay(1);
	FARG_Seconds_Delay+0 <- 1
	CALL _Seconds_Delay
//main.c,345 :: 		Delete_Specific_User(3);
	FARG_Delete_Specific_User+0 <- 3
	CALL _Delete_Specific_User
//main.c,346 :: 		Delete_Specific_User(6);
	FARG_Delete_Specific_User+0 <- 6
	CALL _Delete_Specific_User
//main.c,347 :: 		user_number = 3; //user1 right finger print location
	_user_number <- 3
//main.c,348 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
	FARG_Enroll_Users_Fingerprint+0 <- 3
	CALL _Enroll_Users_Fingerprint
//main.c,349 :: 		user_number = 6; //user1 left finger print location
	_user_number <- 6
//main.c,350 :: 		Enroll_Users_Fingerprint(user_number); //enroll the finger print user 1
	FARG_Enroll_Users_Fingerprint+0 <- 6
	CALL _Enroll_Users_Fingerprint
//main.c,351 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,352 :: 		Show_EEPROM_Stored_Messages(1,0xb0);
	FARG_Show_EEPROM_Stored_Messages+0 <- 1
	FARG_Show_EEPROM_Stored_Messages+1 <- 176
	CALL _Show_EEPROM_Stored_Messages
//main.c,353 :: 		seconds_delay(5);
	FARG_Seconds_Delay+0 <- 5
	CALL _Seconds_Delay
//main.c,354 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,355 :: 		event = 1;
	_event <- 1
//main.c,356 :: 		}
L_main_31:
//main.c,357 :: 		if ((PORTC & 0x30) == 0x30)//PIR1.RCIF)
	STACK_1 <-  PORTC & 48
	if ( STACK_1 != 48) then goto L_main_32
//main.c,359 :: 		LCD_Out(1,1,"  PLACE FINGER  ");
	FARG_LCD_Out+0 <- 1
	FARG_LCD_Out+1 <- 1
	FARG_LCD_Out+2 <- 0
	CALL _LCD_Out
//main.c,360 :: 		LCD_Out(2,1," ON THE SCANNER ");
	FARG_LCD_Out+0 <- 2
	FARG_LCD_Out+1 <- 1
	FARG_LCD_Out+2 <- 0
	CALL _LCD_Out
//main.c,361 :: 		Send_Scan_Fingerprint_Command();
	CALL _Send_Scan_Fingerprint_Command
//main.c,362 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,363 :: 		if (data_frame[3] == 1 ||data_frame[3] == 4)
	if ( _data_frame+3 = 1) then goto L455_ex_L_main_35
	if ( _data_frame+3 != 4) then goto L_main_35
L455_ex_L_main_35:
//main.c,365 :: 		Show_Welcome_String();
	CALL _Show_Welcome_String
//main.c,366 :: 		Show_EEPROM_Stored_Messages(2,0);
	FARG_Show_EEPROM_Stored_Messages+0 <- 2
	FARG_Show_EEPROM_Stored_Messages+1 <- 0
	CALL _Show_EEPROM_Stored_Messages
//main.c,367 :: 		Boot_Computer();
	CALL _Boot_Computer
//main.c,368 :: 		goto exit
	goto	___main_exit
//main.c,369 :: 		}
L_main_35:
//main.c,370 :: 		if (data_frame[3] == 2 || data_frame[3] == 5)
	if ( _data_frame+3 = 2) then goto L473_ex_L_main_38
	if ( _data_frame+3 != 5) then goto L_main_38
L473_ex_L_main_38:
//main.c,372 :: 		Show_Welcome_String();
	CALL _Show_Welcome_String
//main.c,373 :: 		Show_EEPROM_Stored_Messages(2,0x10);
	FARG_Show_EEPROM_Stored_Messages+0 <- 2
	FARG_Show_EEPROM_Stored_Messages+1 <- 16
	CALL _Show_EEPROM_Stored_Messages
//main.c,374 :: 		Boot_Computer();
	CALL _Boot_Computer
//main.c,375 :: 		goto exit
	goto	___main_exit
//main.c,376 :: 		}
L_main_38:
//main.c,377 :: 		if (data_frame[3] == 3 ||data_frame[3] == 6)
	if ( _data_frame+3 = 3) then goto L491_ex_L_main_41
	if ( _data_frame+3 != 6) then goto L_main_41
L491_ex_L_main_41:
//main.c,379 :: 		Show_Welcome_String();
	CALL _Show_Welcome_String
//main.c,380 :: 		Show_EEPROM_Stored_Messages(2,0x20);
	FARG_Show_EEPROM_Stored_Messages+0 <- 2
	FARG_Show_EEPROM_Stored_Messages+1 <- 32
	CALL _Show_EEPROM_Stored_Messages
//main.c,381 :: 		Boot_Computer();
	CALL _Boot_Computer
//main.c,382 :: 		goto exit
	goto	___main_exit
//main.c,383 :: 		}
L_main_41:
//main.c,384 :: 		Show_EEPROM_Stored_Messages(1,0x30);
	FARG_Show_EEPROM_Stored_Messages+0 <- 1
	FARG_Show_EEPROM_Stored_Messages+1 <- 48
	CALL _Show_EEPROM_Stored_Messages
//main.c,385 :: 		exit: Seconds_Delay (3);
___main_exit:
	FARG_Seconds_Delay+0 <- 3
	CALL _Seconds_Delay
//main.c,386 :: 		LCD_Cmd(LCD_CLEAR);
	FARG_Lcd_Cmd+0 <- 1
	CALL _Lcd_Cmd
//main.c,387 :: 		Clear_Buffer_Registers();
	CALL _Clear_Buffer_Registers
//main.c,388 :: 		event = 1;
	_event <- 1
//main.c,389 :: 		}
L_main_32:
//main.c,390 :: 		}
	goto	L_main_27
L_main_28:
//main.c,391 :: 		}
	goto	L_main_25
  end

⌨️ 快捷键说明

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