| ??? 06/20/09 11:00 Read: times |
#166281 - v Responding to: ???'s previous message |
#include <REGX52.h>
#define Baud_rate 0xF4 //setting 2400 bauds/sec
char i=0,j=0,buf[12],var[10],buf2[10];
bit aux=0;
char contor;
init(){
TMOD=0x20; //initializing serial
SCON=0x50;
TH1=Baud_rate;
TL1=Baud_rate;
EA=1;
ES=1;
TR1=1;
}
void main(){
buf2[0]=0x30;buf2[1]=0x34;buf2[2]=0x31; //valid ID is stored in this variable
buf2[3]=0x35;buf2[4]=0x44;buf2[5]=0x38;
buf2[6]=0x41;buf2[7]=0x31;buf2[8]=0x46;
buf2[9]=0x031;
P2_0=0; //glow led
init();
while(1);
}
void serial_IT(void) interrupt 4
{
if(RI){
buf[i]=SBUF; //move the received character to variable buf
//delay(100);
RI=0;
}
if(i<12) i++; //making loop to store all 12 bytes from reader
else{ //if i already received 12 bytes
i=0; //clear i
if(buf[0]==0x0A){ //if first character is 0x0A
P2_1=0; //glow LED
if(buf[11]==0x0D){ //if last character is 0x0D
P2_2=0; //glow another LED
for(j=0;j<9;j++){
var[j]=buf[j+1]; //storing the middle 10 bytes of received string in another variable
if(var[j]!=buf2[j]) aux=1; //compare with stored ID;if mismatch the set aux
}
}
}
if(aux==0){ //if no mismatch found then the ID received from reader is valid
P2_3=0; //so glow led
}
}
}
this code makes the microcontroller receive a ID from reader,store it ,compare it with one in memory and glow led conected to P2.3 if it's valid.After reading a tag(valid or not) i am not able to read another one.Here is the point were i got stuck and have no idea on how to resolve it. |



