EngineersGarage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise
You are here: Home

ghuran

  • Profile
  • Topics Started
  • Replies Created
  • Engagements

Forum Replies Created

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • April 23, 2014 at 6:59 pm in reply to: RFID BASED TOLLPLAZA #11621
    ghuran
    Participant

    Hi sachin,

                   sorry for the delay,i was busy in my practical exam….

                   here is the tested code for rfid based toll plaza….

     

     

                    #include<reg51.h>

    #define port P1
    #define key P0   // Port for keypad
     void memory();
     
     sfr lcd_data_pin=0x80;
     sbit rs = P3^5;
     sbit rw = P3^6;
     sbit en = P3^7;
     
     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(5);
      en=0;
    }
     
    void lcd_data(unsigned char disp)  //LCD data function 
    {
      lcd_data_pin=disp;
      en=1;
      rs=1;
      rw=0;
      delay(5);
      en=0;
    }
     
    lcd_string(unsigned char *disp) //LCD string function 
    {
      char x;
      for(x=0;disp[x]!=’’;x++)
    {
      lcd_data(disp[x]);
    }
    }
     
    void lcd_ini()  //Function to initialize the LCD
    {
    lcd_command(0x38);   
    delay(5);
    lcd_command(0x0E);        
    delay(5);
    lcd_command(0x01);
    delay(5);
    lcd_command(0x06);
    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 byte
    current_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(8);
    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 1
    TH1=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 1
    TH1=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 1
    TH1=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 line 
    lcd_string(“Pls scan your ID”);
    while(1)
    {
    row1=row2=row3=row4=0;
    if(col1==0)
    { 
          delay(30);
          if(col1==0)      
                keypad();
                 else;
    }
    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();
    }
    }
    }
     
     
    April 7, 2014 at 9:37 pm in reply to: RFID BASED TOLLPLAZA #11499
    ghuran
    Participant

    Hi, 

          

             i hv successfully done my project, thanxx a lot to KHUSHI ma;m & DISHANT sir

     

                 but i’m facing one problem with kepad, when i pressed the keyword it only print 1,4,7

                   and for other keywords it prints after i pressed many times…..

                    

                      pls let me know…

     

    April 7, 2014 at 7:49 pm in reply to: RFID BASED TOLLPLAZA #11498
    ghuran
    Participant

    Hi,

            khushi ma’m i hv done the simulation , on the lcd it prints “pls scan your id”, but after that it automatically takes 4 times 1369….

                           here is the simulation..

     

                          

    wysiwyg_imageupload:12119:

    April 6, 2014 at 8:15 pm in reply to: RFID BASED TOLLPLAZA #11487
    ghuran
    Participant

    Hi,

        

           i have made the changes in programme  and it works,but it only print “pls scan your ID”

             and after that it prints “4 times 1369”. please refer the project “RFID BASED TOLL PLAZA”

                pls help me…!! 

    April 6, 2014 at 1:06 pm in reply to: RFID BASED TOLLPLAZA #11486
    ghuran
    Participant

    SHAH DISHANT H. sir

                                

                                   i hv made the changes in the programme but i still get nothing.

     

                                      please help me out of this…

                                            thank u

    April 6, 2014 at 1:02 pm in reply to: RFID BASED TOLLPLAZA #11485
    ghuran
    Participant

    khushi ma’m

                             

                         i hv made d changes as u said, and i simulate the project on ‘proteus’ , but i still get nothing on LCD.

              can u please simulate it on proteus..

                

  • Author
    Posts
Viewing 6 posts - 1 through 6 (of 6 total)

RSS Recent Posts

  • reviving old swordfish program but? May 17, 2026
  • Assistance locating a 'trail' camera gadget, please ? May 16, 2026
  • Analog multiplexer has gone obselete May 16, 2026
  • Difference between TTL, RS232 and RS485 May 16, 2026
  • Smart Buoy project May 16, 2026

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2026 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise