Microcontroller › 8051 › Help on RFID Toll plaza system based on vehicle category interface with 8051 microcontroller (AT89C51)
- This topic has 5 replies, 4 voices, and was last updated 8 years, 5 months ago by hami.
-
AuthorPosts
-
May 25, 2014 at 4:10 pm #3098mohammed FahadParticipant
HI All,
i am working on this circuit
Toll plaza system based on vehicle category interface with 8051 microcontroller (AT89C51)
i am not able to get few things:
1.what is the polarity of the capacitor connected to Max232 and 89c51
2.does any body have proteus schematics and code avilable for the project
3.when i run the simulator there is nothing on the screen
Thanks and Regards,
Fahad
May 26, 2014 at 7:09 am #11768Ashutosh BhattParticipantCapacitors connected to 8051 are non polarized.
With max232 u have to connect polarized capacitors
U just post ur problem with circuit n ur code. We will try to helpMay 26, 2014 at 3:49 pm #11769mohammed FahadParticipant//Program for a simple toll plaza system using low frequency RFID interfaced with 8051 microcontroller (AT89C51)#include<reg51.h>#define port P1#define key P0 // Port for keypadvoid memory();sfr lcd_data_pin=0xA0;sbit rs = P1^3;sbit rw = P1^4;sbit en = P1^5;sbit col1=key^4;sbit col2=key^5;sbit col3=key^6;sbit row1=key^0;sbit row2=key^1;sbit row3=key^2;sbit row4=key^3;unsigned int number=0,pointer=1;unsigned char card_mem[4][12];unsigned char card_id[12],index=0,key1=0,lcd,print=0,new_user=0,recharge=0,user_index,t,tool=0;unsigned int amount[4];unsigned char current_byte = 0,money[6];unsigned char pos=0,set=0;void delay(unsigned char count) //Function to provide time delay{unsigned int j;unsigned char i;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) //LCD string function{char 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_display(unsigned int val){unsigned char flg=0;lcd_command(0xCC);if(val==0)lcd_data(‘0’);while(val>0){lcd=val%10;val=val/10;lcd_command(0xCC-flg);lcd_data(lcd+’0′);flg++;}}void recieve() interrupt 4 //Function to recieve data serialy from RS232{card_id[current_byte]=SBUF;RI=0; // Reset the serial interrupt after recieving the bytecurrent_byte++;}void display(unsigned char value){lcd_command(0x80+pos);if(value==10){print=1;}if(value==12){set=1;}if(value<=9){lcd_data(‘0’+value);money[pos]=value;pos++;}}check_col1(){row1=row2=row3=row4=1;row1=0;if(col1==0)display(1);row1=1;row2=0;if(col1==0)display(4);row2=1;row3=0;if(col1==0)display(7);row3=1;row4=0;if(col1==0)display(10);row4=1;}check_col2(){row1=row2=row3=row4=1;row1=0;if(col2==0)display(2);row1=1;row2=0;if(col2==0)display(5);row2=1;row3=0;if(col2==0)display(;row3=1;row4=0;if(col2==0)display(0);row4=1;}check_col3(){row1=row2=row3=row4=1;row1=0;if(col3==0)display(3);row1=1;row2=0;if(col3==0)display(6);row2=1;row3=0;if(col3==0)display(9);row3=1;row4=0;if(col3==0)display(12);row4=1;}keypad(){row1=row2=row3=row4=0;if(col1==0)check_col1();if(col2==0)check_col2();if(col3==0)check_col3();}void show(){unsigned char count,i,key,val,flag=0,in;unsigned int balance,j;TMOD=0x00; //Enable Timer 1TH1=0x00;SCON=0x00;TR1=0;IE=0x00;lcd_command(0x01);val=index;for(i=0;i<index;i++){key=0;for(count=0;count<12;count++){if(card_id[count]==card_mem[count]){key++;}}if(key==12){flag=1;if(amount<=10){user_index=i;lcd_string(“Insuff. balance”);lcd_command(0xC0);lcd_string(“Pls recharge”);delay(250);lcd_command(0x01);lcd_string(“To recharge”);lcd_command(0xC0);lcd_string(“press *”);for(in=0;in<250;in++){for(j=0;j<1275;j++){row1=row2=row3=row4=0;if(col1==0){tool=1;recharge=1;t=1;keypad();break;}}if(t==1)break;}lcd_command(0x01);lcd_string(“Pls scan your ID”);break;}if(tool==0){lcd_string(“Thank you User “);lcd_command(0x8F);lcd_data(49+i);delay(250);lcd_command(0x01);lcd_string(“Charges 10.00”);amount=amount-10;lcd_command(0xC0);lcd_string(“Amt left “);balance=amount;lcd_display(balance);lcd_command(0xCD);lcd_string(“.00”);delay(250);lcd_command(0x01);if(amount<=30){user_index=i;lcd_string(“Pls recharge”);lcd_command(0xC0);lcd_string(“your account”);delay(250);lcd_command(0x01);lcd_string(“To recharge”);lcd_command(0xC0);lcd_string(“press *”);for(in=0;in<250;in++){for(j=0;j<1275;j++){row1=row2=row3=row4=0;if(col1==0){recharge=1;t=1;keypad();break;}}if(t==1)break;}}}t=0;lcd_command(0x01);lcd_string(“Pls scan your ID”);break;}}if(flag==0){lcd_string(“Wrong ID”);delay(100);}if(flag==0){lcd_command(0x01);lcd_string(“New user press *”);new_user=1;}current_byte=0;tool=0;TMOD=0x20; //Enable Timer 1TH1=0xFD;SCON=0x50;TR1=1;IE=0x94;}recharge_acc(){unsigned char pin;lcd_command(0x01);lcd_string(“Pls enter the”);lcd_command(0xC0);lcd_string(“Balance”);delay(250);lcd_command(0x01);while(set!=1){keypad();delay(40);}set=0;lcd_command(0x01);lcd_string(“Your balance is”);for(pin=0;pin<=pos;pin++){number=number+money[pos-pin-1]*pointer;pointer=pointer*10;}amount[user_index]=amount[user_index]+number;lcd_command(0xC0);lcd_display(amount[user_index]);lcd_command(0xCD);lcd_string(“.00”);delay(250);lcd_command(0x01);number=0;pointer=1;pos=0;lcd_string(“Pls scan your ID”);}void memory(){unsigned char i,key=0,count,pin,try=0;lcd_command(0x01);lcd_string(“New user scan ID”);current_byte=0;while(current_byte!=12);for(i=0;i<4;i++){key=0;for(count=0;count<12;count++){if(card_id[count]==card_mem[count]){key++;}}if(key==12){lcd_command(0x01);lcd_string(“Sorry ! You are”);lcd_command(0xC0);lcd_string(“already an user”);delay(200);lcd_command(0x01);lcd_string(“Pls scan your ID”);key=0;try=1;current_byte=0;break;}}if(key<12 && try==0){key=0;for(i=0;i<12;i++){card_mem[index]=card_id;}current_byte=0;lcd_command(0x01);lcd_string(“Pls scan again”);while(current_byte!=12);for(i=0;i<12;i++){if(card_mem[index]==card_id){key++;}}current_byte=0;TMOD=0x00;TH1=0x00;SCON=0x00;TR1=0;IE=0x00;if(key==12){lcd_command(0x01);lcd_string(“Congratulation !”);lcd_command(0xC0);lcd_string(“You are User”);lcd_command(0xCC);lcd_data(index+49);delay(250);lcd_command(0x01);lcd_string(“Pls enter the”);lcd_command(0xC0);lcd_string(“Balance”);delay(150);lcd_command(0x01);while(set!=1){keypad();delay(40);}set=0;lcd_command(0x01);lcd_string(“Your balance is”);for(pin=0;pin<=pos;pin++){number=number+money[pos-pin-1]*pointer;pointer=pointer*10;}lcd_command(0xC0);lcd_display(number);lcd_command(0xCD);lcd_string(“.00”);amount[index]=number;delay(250);lcd_command(0x01);number=0;pointer=1;pos=0;lcd_string(“Pls scan your ID”);}else{lcd_command(0x01);lcd_string(“ERROR”);delay(200);for(i=0;i<12;i++){card_mem[index]=0;}lcd_command(0x01);lcd_string(“Pls scan your ID”);}if(key==12)index++;}TMOD=0x20; //Enable Timer 1TH1=0xFD;SCON=0x50;TR1=1;IE=0x94;}void main(){col1=col2=col3=1;TMOD=0x20;TH1=0xFD;SCON=0x50;TR1=1;IE=0x94;lcd_ini(); //Place cursor to second position of first linelcd_string(“Pls scan your ID”);while(1){row1=row2=row3=row4=0;if(col1==0){keypad();}if(print==1 && new_user==1){memory();print=0;new_user=0;}if(print==1 && recharge==1){recharge_acc();print=0;recharge=0;}if(current_byte==12){show();}}}June 23, 2014 at 9:04 am #11844Ashutosh BhattParticipantwith virtual terminal you need not to connect MAX232.
directly connect TX with RX and vice versa of 8051 and virtual terminalJuly 15, 2014 at 5:53 am #11906Jaymin DParticipantHello,
I made this type of project by myself with completely running mode and coding and circuit by my self.
i.e. for car it deposite toll 30 Rs.
for truck / bus toll is 50 Rs.
very hevy vehicle toll is 100 Rs.
Its show these on LCD 16×2 with IC AT89S52 and EM – 18 RFID reader.
Complete project is ready with 2200 Rs. with 3 catagory vehicle..(mean 3 RFID card)
also I made project on 8051 so if you unterested in this just mail me or msg me if I can help you in this issue.
email : project[dot]student123[at]gmail[dot]com
or just google the DABHI ELECTRONICS and go to electronics project[dot]webs website..
Really it very very low cost..
Also if you want any support in h/w or s/w related of 8051 then you can ask me and also for buy any components at very very low cost.
Thanks
It may be helpful to you
Best Luck
Regards
Jaymin D
April 3, 2016 at 7:54 am #13853hamiParticipantc code version is lemited how to increse microvresion means icrease the byte of keli version ?
please give the visible circut digram of project/
-
AuthorPosts
- You must be logged in to reply to this topic.