Si, el programa ya lo tengo echo y asi lo hice, puse los digitos de la tarjeta en el programa con el nombre de la persona correspondiente.
Aca esta el programa:
/*PARA SISTEMA BOLT 20 MHZ,18F2550,COMPILADOR C18 v.3.40,
MPLAB v8.63. RECIBE TAG DE MODULO ID-12 RFID Y LO MUESTRA
EN LCD. EN TOTAL SON 12 CARACTERES HEXADECIMALES.
MUESTRA LOS NOMBRES DE LAS PERSONAS ALMACENADAS EN LA LISTA.
COMPARA EL TAG RECIBIDO CON 4 ARREGLOS QUE CONTIENEN LAS
CLAVES Y LOS NOMBRES DE LAS PERSONAS QUE TIENEN SU TAG.
FINALMENTE, MUESTRA EN EL LCD EL NOMBRE DE LA PERSONA QUE
PASÓ EL TAG ENFRENTE DEL SCANNER ID-12. REPITE EL CICLO.
CONECTE EL MODULO ID-12 AL PUERTO SERIAL DE BOLT 18F2550
LA ALIMENTACION DEL MODULO ID-12 SE ACTIVA A TRAVES DEL
MODULO BOLT EN EL CONECTOR DB9, PIN 7*/
#include <p18cxxx.h>
#include <delays.h>
#include <usart.h>
#include <stdio.h>
#include "18F2550BOLT.h"
#include "PUERTO-SERIAL-BOLT.h"
extern void _startup( void );
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
void _reset( void )
{
_asm goto _startup _endasm
}
#pragma code
void imprime(const char *ptr);
void compara(const char *ptr);
//LISTA DE INSCRITOS Y SUS TAGS
const char TAG[]=">>INGRESE TAG<<";
const char s1[]="8291MOSCATELLI"; //ULTIMOS 4 DIGITOS DEL TAG Y NOMBRE DE LA PERSONA
const char s2[]="0700TRENCHI ";
const char s3[]="1BACESPINOZA";
const char s4[]="1AADBETANZOS";
const char s5[]="FFFFROBLEDO "; //ULTIMOS 4 DIGITOS DEL TAG Y NOMBRE DE LA PERSONA
const char s6[]="FFFFLIMON ";
const char s7[]="FFFFCASTELAR ";
const char s8[]="FFFFPEREZ ";
const char *masterarray[]={s1,s2,s3,s4,s5,s6,s7,s8}; //ARREGLO FORMADO POR ARREGLOS
char array[20];
int i,z;
void main(void)
{
init_bolt();
InitLCD();
for(i=0;i<8;i++)
{
imprime(masterarray); //muestra todos los nombres
}
repite:
ClearScreen();
PrintString(TAG);
activa_serial();
getsUSART(array,13); //RECIBE STRING DE CARACTERES
InitLCD();
ClearScreen();
PutLCD('>');
for(z=1;z<8;z++)
{PutLCD(array[z]);}
GotoXY(1,0);
for(z=8;z<13;z++)
{PutLCD(array[z]);}
delay_ms(2000);
for(i=0;i<8;i++)
{
compara(masterarray); //compara dígitos
}
goto repite;
}
void imprime(const char *ptr) //muestra en LCD el arreglo seleccionado
{
int z;
ClearScreen();
PutLCD('*');
for(z=4;z<12;z++)
{PutLCD(*(ptr+z));}
GotoXY(1,0);
for(z=11;z<18;z++)
{PutLCD(*(ptr+z));}
delay_ms(1000);
}
void compara(const char *ptr) //compara primeros 4 dígitos de cada arreglo
{
if(*(ptr+3)==array[12]&*(ptr+2)==array[11])
{
imprime(masterarray);
delay_ms(1000);
}
}