hello all again,
i just received the RFID module 12 from sparkfun.
I test the serial usb device with Secure CRT and works fine.
Now i'm building the circuit and the code.
As i told you i would like to make a code that can display the name of the holder according to the ID of the RFID tag.
I havent connect the ID-12 yet because the dimensions of the pins are not much to the standard ones. I will make a pcb this afternoon and then i will try to make a schematic.
Now i have attached the code i have done so far, copied most of it from the people here in forum.
i would like to know if i can use the command serin2 on the pin portb.1 on the pic16f628a in order to read the data.Code:CMCON = 7 DEFINE OSC 4 'Set oscillator in MHz DEFINE LCD_DREG PORTB 'define port to LCD DEFINE LCD_DBIT 4 'RB4 RB5 RB6 RB7 display DEFINE LCD_RSREG PORTA 'RS on porta DEFINE LCD_RSBIT 0 'RS on porta.0 DEFINE LCD_EREG PORTA 'Enable on porta DEFINE LCD_EBIT 1 'Numero Enable porta.1 DEFINE LCD_BITS 4 ' DEFINE LCD_LINES 2 'lines 2 PAUSE 200 ' Stop 200ms LCDOUT $FE,1 'clear Lcdout $FE,1,4 ' -----[ Variables ]------------------------------------------------------- buf VAR Byte(12)' RFID bytes buffer tagNum VAR Byte ' from EEPROM table idx VAR Byte ' tag byte index char VAR Byte ' character from table ' -----[ EEPROM Data ]----------------------------------------------------- Tag1 DATA "450052B6BC1A" Tag2 DATA "450052F2EB0A" ' -----[ Initialization ]-------------------------------------------------- HIGH portb.1 ' turn off RFID reader portb.1 is the reciever port LOW portb.2 ' lock the door! Low portb.3 ' Turn off LED ' -----[ Program Code ]---------------------------------------------------- Main: LOW portb.1 ' activate the reader SERIN2 portb.1, 396, [WAIT($0A)] ' STR buf\12] ' wait for hdr + ID HIGH portb.1 ' deactivate reader Check_List: FOR tagNum = 1 to 2 ' scan through known tags FOR idx = 0 TO 11 ' scan bytes in tag READ (((tagNum-1) * 12) + idx), char ' get tag data from table IF (char <> buf(idx)) THEN Bad_Char ' compare tag to table NEXT GOTO Tag_Found ' all bytes match! Bad_Char: ' try next tag NEXT Bad_Tag: tagNum = 0 FREQOUT porta.3, 1000 */ $100, 115 */ $100 ' groan PAUSE 1000 GOTO Main Tag_Found: IF tagNum = 1 then displayName1 IF tagNum = 2 then displayName2 GOTO Main displayName1: lcdout $FE, 1,"NAME for tag 1" 'assuming your display is on porta.0 @ 9600 baud pause 500 'Pause ,5 sec then clear display goto open_door displayName2: lcdout $FE, 1,"Name for tag 2" 'assuming your display is on porta.0 @ 9600 baud pause 500 'Pause ,5 sec then clear display goto open_door open_door: HIGH portb.2 ' remove latch High portb.3 ' Light LED FREQOUT porta.2, 2000 */ $100, 880 */$100 ' beep LOW portb.2 ' restore latch Low portb.3 ' LED OFF GOTO Main
I know that the code may have a lot of mistakes but as i told you i'm not a programmer and i try to make it as good as i can.
I only need a little bit of your help in certain points that you sure know better than me.
thank you all for your help in advance.




Bookmarks