Microcontroller › AVR › How to interface fingerprint module serially with AVR › Dear all, here i m using R305
February 27, 2013 at 6:52 pm
#9194
Participant
Dear all,
here i m using R305 Finger print module with P89V51RD2
but my program is not working please see my program n say me corrections,
or give me your code please…
its urgent friends…
program:
#include<reg51.h>
#include<string.h>
sfr ldata=0x90;
sbit rs=P2^3;
sbit rw=P2^4;
sbit en=P2^5;
sbit busy=P1^7;
sbit S1=P3^2;
sbit S2=P3^3;
sbit S3=P3^4;
//===================================================================
/

void fingerprint(void);
void UARTSendByte(unsigned char[],unsigned char dt );
unsigned char UARTGetByte(void);
void fingerdata(char);
void conv();
void elect();
void lcdcmd(unsigned char);
void lcddata(unsigned char);
void lcdready();
void msdelay(unsigned int);
void UARTInit(void);
//==============================================================================
/

unsigned int i,j,g,h,k,l,key,m,n;
code unsigned char mydata1[]
“WELCOME”); //7

code unsigned char mydata2[]
“SCAN UR FINGER 1st”); // 18

code unsigned char mydata3[]
“SCANNING”); //9

code unsigned char mydata4[]
“ACCESS GRANTED”); //14

code unsigned char mydata5[]
“ACCESS DENIED”); //13

code unsigned char mydata8[]
“THANKS”); //6

code unsigned char mydata12[]
“>”);

code unsigned char mydata11[]
“<<“);

unsigned char dec1,dec2,asc1,asc2,adc1;
//===============================================================================
/

code char GenImg[12] = { 0xEF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x03, 0x01, 0x00, 0x05 };
//==================================================================================
/

void conv()
{
dec1=adc1%10;
dec2=adc1/10;
asc1=dec1 | 0x30;
asc2=dec2 | 0x30;
}
//=========================================================================================
/

void main()
{
lcdcmd (0x38); //8 bit LCD mode
lcdcmd(0x0C); //
lcdcmd(0x01); // clear lcd
lcdcmd(0x06); // lcd on pointer off
do //LOOP START
{
lcdcmd(0x01); // clear lcd
lcdcmd(0x86); //1st line
for(i=0;i<strlen(mydata1);i++) //WELCOME
lcddata(mydata1);
for(i=0;i<strlen(mydata2);i++) // SCAN UR FINGER 1st
lcddata(mydata2);
msdelay(500); //
lcdcmd(0x01); //clr lcd
lcdcmd(0x86); //1st line
for(i=0;i<strlen(mydata3);i++) //SCANNING
lcddata(mydata3);
lcdcmd(0x06);
for(k=0x94;k<0xA8;k++)
{
lcdcmd(k); //>>>>>>>>>>>>>>>>>>>>>>>>>
for(i=0;i<strlen(mydata12);i++)
lcddata(mydata12);
}
UARTInit();
UARTSendByte(GenImg,12);
UARTGetByte();
fingerdata(i);
msdelay(500);
lcdcmd(0x01);
lcdcmd(0x9b); //3rd line
for(i=0;i<strlen(mydata8);i++) //THANKS
lcddata(mydata8);
msdelay(10);
lcdcmd(0xc5);
}
}while(1); //repeat forever
} //main end
void UARTSendByte(unsigned char GenImg[],unsigned char dt)
{
for(i=0;i<dt;i++)
{
TI=0;
SBUF = GenImg;
while(TI==0);
TI=0;
}
}
//
unsigned char UARTGetByte(void)
{ RI=0;
while(RI==0);
RI=0;
return SBUF;
}
void fingerdata(char i)
{
i=SBUF;
adc1=i;
conv();
lcddata(asc2);
lcddata(asc1);
}
//======================================================================
/

void lcdcmd (unsigned char value)
{
lcdready();
ldata=value;
rs=0;
rw=0;
en=1;
msdelay(1);
en=0;
return;
}
//====================================================================================================
/

void lcddata (unsigned char value)
{
lcdready();
ldata=value;
rs=1;
rw=0;
en=1;
msdelay(1);
en=0;
return;
}
//====================================================================================================
/

void lcdready()
{
busy=1;
rs=0;
rw=1;
while (busy==1)
{
en=0;
msdelay(1);
en=1;
}
return;
}
//==========================================================================================================
/

void msdelay(unsigned int value)
{
unsigned int i,j;
for(i=0;i<value;i++)
for(j=0;j<1275;j++) ;
}
//====================================================================================
/

void UARTInit(void)
{
PCON=0X80;
SCON=0X50; //232 COM init
TMOD=0x20;
TH1=0XFE;
TR1=1;
}