how to transmit data from RFID to lcd using 8051 in embeddedc language

Thread Starter

rockey bhardwaj

Joined Sep 6, 2013
1
Goodevening everyone


I am making an attendence system using 8051.But Id number is not displaying on the lcd. i am using the controller 8051. But I am fail to receive the data on lcd . If anyone know to display the data on lcd. Then please help me.
this is the code :

Rich (BB code):
//Program to interface RFID with 8051 microcontroller (AT89C51) 
#include<reg51.h>
unsigned int data_out,command=0x80,temp;
sfr lcd_data_pin=0xA0; //P2 port
sbit rs=P1^0; //Register select 
sbit rw=P1^1; //Read/Write 
sbit en=P1^2; //Enable pin
unsigned char card_id[12];

void delay(unsigned int count) //Function to provide delay
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<1275;j++);
}

void lcd_command(unsigned char comm) //Lcd command funtion
{
lcd_data_pin=comm;
en=1;
rs=0;
rw=0;
delay(1);
en=0;
}

void lcd_data(unsigned char disp) //Lcd data function
{
lcd_data_pin=disp;
en=1;
rs=1;
rw=0;
delay(1);
en=0;
}

lcd_string(unsigned char *disp) //Function to send string 
{
int x;
for(x=0;disp[x]!=0;x++)
{
lcd_data(disp[x]);
}
}
void lcd_ini() //Function to initialize the LCD
{
lcd_command(0x38); 
delay(5);
lcd_command(0x0F); 
delay(5);
lcd_command(0x80);
delay(5);
} 

void recieve() //Function to recieve data serialy from RS232 
{
unsigned char k;
for(k=0;k<12;k++)
{ 
while(RI==0); 
card_id[k]=SBUF;
RI=0;
}
}

void main()
{
int l;
TMOD=0x20; //Enable Timer 1
TH1=0XFD;
SCON=0x50;
TR1=1; // Triggering Timer 1
lcd_ini();
lcd_command(0x81); //Place cursor to second position of first line 
lcd_string("UNIQUE CARD ID:");
delay(200);
while(1)
{
recieve();
lcd_command(0xC1); //Place cursor to second position of second line
for(l=0;l<12;l++)
{ 
lcd_data(card_id[l]);
}
}
}
 
Last edited by a moderator:

ErnieM

Joined Apr 24, 2011
8,377
There are tons of code examples on the web showing how to do this. The land mines in software usually concern the delays so make them generous for now. Single step the code and see if you are really changing the pics you need.

The wiring is pretty straight forward, but I've still booted it on the 50th time doing it. Make sure you have the pot if your unit uses the pot (most do), all the pins are connected properly.

Your code is near impossible to read as is. Please repost using code tags (the # icon on the advanced post window). Look up code tags if you do not understand.

Do you set the direction of the I/O pins? I can't find that in your code.
 
Top