Code:
define OSC 20
ADCON1=7
CMCON=7
LastTag CON 3
X VAR byte
tagNum VAR byte ' from EEPROM table
idx VAR Byte ' tag byte index
char VAR Byte ' character from table
buf var byte(10)
'*****************************************************************
SYMBOL PWRLED = PORTB.2 'Software controlled power LED
SYMBOL RFID = PORTC.5 'RFID /ENABLE
'*****************************************************************
Tag1 DATA "0415146D53" ' 2 cards registered...
Tag3 DATA "30700D48A5"
'*****************************************************************
HIGH PWRLED
HIGH RFID
PAUSE 1000
serout2 PORTC.0,84,[$55] ' uOLED Initialize
'*****************************************************************
Reset:
gosub cls
PAUSE 1000
'*****************************************************************
Main:
LOW rfid ' activate the reader
SERIN2 PORTC.4,396,[WAIT(10),str BUF\10] ' wait for hdr + ID
HIGH rfid ' deactivate reader
Check_List:
FOR tagNum = 1 TO lasttag
FOR idx = 0 TO 9
READ (((tagNum - 1) * 10) + idx), char 'The Tricky Order of Operation
IF (char <> buf(idx)) THEN Bad_Char
NEXT
GOTO Tag_found
Bad_Char:
NEXT
Bad_tag:
FOR x = 1 TO 2
serout2 PORTC.0,84,[$73,$6,$4,$0,$F0," ACCESS",$00] 'cmd,column,row,font,Color(msb:lsb),string,$00
serout2 PORTC.0,84,[$73,$6,$8,$0,$F0," DENIED",$00]
NEXT
PAUSE 4000
GOTO reset
Tag_Found:
for x = 0 to 2
serout2 PORTC.0,84,[$73,$6,$4,$0,$1F," ACCESS",$00] 'cmd,column,row,font,Color(msb:lsb),string,$00
serout2 PORTC.0,84,[$73,$6,$8,$0,$1F," GRANTED",$00]
next
pause 4000
GOTO reset
CLS:
FOR X = 0 TO 2
serout2 PORTC.0,84,[$45]
next
return
Bookmarks