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

📄 attendance.a51

📁 attendanced taking system
💻 A51
📖 第 1 页 / 共 3 页
字号:
			CALL MDELAY
			MOV R1,#NAMES			;store Name
			MOV R4,#50H			;Starting Address
			MOV R6,#16			;STORE 16 BYTES
			CALL STORE_EEPROM		
			AJMP JNM		

JNM2:		CJNE A,#03H,JNM3
			MOV R1,#BYTE		;store tag ID
			MOV R4,#60H			;Starting Address
			MOV R6,#10			;STORE 10 BYTES
			CALL STORE_EEPROM		
			CALL MDELAY
			MOV R1,#NAMES			;store Name
			MOV R4,#70H			;Starting Address
			MOV R6,#16			;STORE 16 BYTES
			CALL STORE_EEPROM	
			AJMP JNM			

JNM3:		CJNE A,#04H,JNM4
			MOV R1,#BYTE		;store tag ID
			MOV R4,#80H			;Starting Address
			MOV R6,#10			;STORE 10 BYTES
			CALL STORE_EEPROM		
			CALL MDELAY
			MOV R1,#NAMES			;store Name
			MOV R4,#90H			;Starting Address
			MOV R6,#16			;STORE 16 BYTES
			CALL STORE_EEPROM	
			AJMP JNM						

JNM4:		CJNE A,#05H,JNM5
			MOV R1,#BYTE		;store tag ID
			MOV R4,#0A0H			;Starting Address
			MOV R6,#10			;STORE 10 BYTES
			CALL STORE_EEPROM		
			CALL MDELAY
			MOV R1,#NAMES			;store Name
			MOV R4,#0B0H			;Starting Address
			MOV R6,#16			;STORE 16 BYTES
			CALL STORE_EEPROM	
			AJMP JNM						
						
JNM5:		CJNE A,#06H,JNM6
			MOV R1,#BYTE		;store tag ID
			MOV R4,#0C0H			;Starting Address
			MOV R6,#10			;STORE 10 BYTES
			CALL STORE_EEPROM		
			CALL MDELAY
			MOV R1,#NAMES			;store Name
			MOV R4,#0D0H			;Starting Address
			MOV R6,#16			;STORE 16 BYTES
			CALL STORE_EEPROM	
			AJMP JNM		
			
JNM6:		CJNE A,#07H,JNM
			MOV R1,#BYTE		;store tag ID
			MOV R4,#0E0H			;Starting Address
			MOV R6,#10			;STORE 10 BYTES
			CALL STORE_EEPROM		
			CALL MDELAY
			MOV R1,#NAMES			;store Name
			MOV R4,#0F0H			;Starting Address
			MOV R6,#16			;STORE 16 BYTES
			CALL STORE_EEPROM	
			AJMP JNM													
JNM:		CALL ID_SAVED			;Tag stored sucessfully	
			CALL WRITE_TOTAL		;WRITE TOTAL ID IN MEMORY	
			CALL DELAYS
			JNB ENTER,$
			AJMP REP1



        	
    		      	
        
Loop:    CALL Check_Keyb 
			JNB ENTER,GHBH
			JNB CANCEL,DCFV1
        	JNC Loop
        	MOV R4,KB_DATA
         CALL WRLCDDATA
         RET
GHBH:		JNB ENTER,$
			MOV TEMP,#16
			RET	    
			
DCFV1:	JNB CANCEL,$
			AJMP LOOP1  
			     
;********************************************					
OTHER:	
			CALL READ_TOTAL       		
			MOV R2,TOTAL
			CALL CLEAR_RAM
			
			
			;check first card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#20H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN1
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#30H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2
GAN1:			
			;check 2 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#40H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN3
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#50H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2
GAN3:
			;check 3 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#60H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN4
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#70H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2
GAN4:
			;check 2 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#80H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN5
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#90H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2
GAN5:
			;check 2 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#0A0H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN6
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#0B0H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2

GAN6:			;check 2 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#0C0H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN7
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#0D0H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2

GAN7:			;check 2 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#0E0H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN8
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#0F0H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2

GAN8:		;check 2 card  
			MOV R1,#BYTES					;GET DATA IN BYTES(RAM)
			MOV R4,#30H						;MASTER ADDRESS
			MOV R6,#10						;NUMBER OF BYTES
			CALL READ_EEPROM
			CLR MAS		
			CALL COMPARE
			JNB MAS,GAN9
			MOV R1,#NAMES					;GET DATA IN BYTES(RAM)
			MOV R4,#40H						;MASTER ADDRESS
			MOV R6,#16						;NUMBER OF BYTES
			CALL READ_EEPROM
			CALL NAMES1
			CALL DISP_NAME		
			AJMP GAN2
			
GAN9:
			CALL CARD_ERROR	
			SETB ES 		
			CALL DELAYS
			CALL DELAYS
			AJMP TOP		
			
GAN2:		CALL TRANSMIT_DATA
			SETB ES 		
			CALL DELAYS
			CALL DELAYS
			AJMP TOP

NAMES1:
		JNB AM,ASX1			;jmp if PM
		CALL NAME1	
		RET
ASX1:	CALL NAME3		
		RET
;##########################################################
;		DISPLAY ROUTINES
;##########################################################
TITLES:
	MOV DPTR,#MSAG
	CALL LCD_MSG
	RET
MSAG:
	DB 1H,81H,'RFID Based',0C0H,'Attendance Sys',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TITLE1:
	MOV DPTR,#MSAG1
	CALL LCD_MSG
	RET
MSAG1:
	DB 1H,81H,'RFID Data:',0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
DISPLAY:
	MOV DPTR,#MSAG2
	CALL LCD_MSG
	RET
MSAG2:
	DB 1H,80H,'Master Card',0C0H,'Detected...',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISPLAY1:
	MOV DPTR,#MSAG3
	CALL LCD_MSG
	RET
MSAG3:
	DB 1H,80H,'Press Enter...',0C0H,'*** ADD TAG ***',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISPLAY2:
	MOV DPTR,#MSAG4
	CALL LCD_MSG
	RET
MSAG4:
	DB 1H,80H,'Press Enter...',0C1H,'** EDIT TAG **',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISPLAY3:
	MOV DPTR,#MSAG5
	CALL LCD_MSG
	RET
MSAG5:
	DB 1H,80H,'Please show the',0C3H,'** TAG **',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISPLAY4:
	MOV DPTR,#MSAG6
	CALL LCD_MSG
	RET
MSAG6:
	DB 1H,0FH,80H,'Plz enter Name',0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISPLAY5:
	MOV DPTR,#MSAG7
	CALL LCD_MSG
	RET
MSAG7:
	DB 1H,80H,'Press enter EDIT',0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DISP1:
	MOV DPTR,#MSG1
	CALL LCD_MSG
	RET
MSG1:
	DB 1H,84H,'Keyboard',0C3H,'* Not Ok *', 00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DATE_DISP:
	MOV DPTR,#MSG2
	CALL LCD_MSG
	RET
MSG2:
	DB 1H,80H,'Enter Date',0C0H,'(01-31):',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MON_DISP:
	MOV DPTR,#MSG3
	CALL LCD_MSG
	RET
MSG3:
	DB 1H,80H,'Enter Month',0C0H,'(01-12):',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
YR_DISP:
	MOV DPTR,#MSG4
	CALL LCD_MSG
	RET
MSG4:
	DB 1H,80H,'Enter Year',0C0H,'(00-99):',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HR_DISP:
	MOV DPTR,#MSG5
	CALL LCD_MSG
	RET
MSG5:
	DB 1H,80H,'Enter Hour',0C0H,'(01-12):',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MIN_DISP:
	MOV DPTR,#MSG6
	CALL LCD_MSG
	RET
MSG6:
	DB 1H,80H,'Enter Minutes',0C0H,'(00-59):',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DAY_DISP:
	MOV DPTR,#MSG7
	CALL LCD_MSG
	RET
MSG7:
	DB 1H,80H,'Enter Day',0C0H,'(0-7):',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AMS_DISP:
	MOV DPTR,#MSG8
	CALL LCD_MSG
	RET
MSG8:
	DB 1H,80H,'Enter AM/PM',0C0H,'AM=0,PM=1:',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AM_DISP:
	MOV DPTR,#MSG9
	CALL LCD_MSG
	RET
MSG9:
	DB 1H,80H,'Enter AM/PM',0C0H,'AM=0,PM=1: AM',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PM_DISP:
	MOV DPTR,#MSG10
	CALL LCD_MSG
	RET
MSG10:
	DB 1H,80H,'Enter AM/PM',0C0H,'AM=0,PM=1: PM',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PRESS_ENTER:
	MOV DPTR,#MSG11
	CALL LCD_MSG
	RET
MSG11:
	DB 1H,82H,'Press Enter',0C4H,'to Save',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ID_SAVED:
	MOV DPTR,#MSG12
	CALL LCD_MSG
	RET
MSG12:
	DB 1H,83H,'TAG Saved',0C2H,'Sucessfully',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NAME1:
	MOV DPTR,#MSG13
	CALL LCD_MSG
	RET
MSG13:
	DB 1H,80H,'* Good Morning *',0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NAME3:
	MOV DPTR,#MSG132
	CALL LCD_MSG
	RET
MSG132:
	DB 1H,80H,'* Good Evening *',0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CARD_ERROR:

⌨️ 快捷键说明

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