Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

entering data into array/shoowing back data on lcd

Status
Not open for further replies.

numair_noor

Member level 2
Joined
Mar 15, 2012
Messages
50
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,288
Activity points
1,715
hi, i am working on a password based security system . it is a small hobby project,
there are two main things to care of:
1. i am using push buttons for entering the input data. i can not use KEYPAD instead.
2. the way i am coding is not good. but i have to do it like that. though its not efficient. it is so simple code.

exactly what am i doing and what am i looking for help in? PLEASE FIRST HAVE A LOOK AT THIS PART OF CODE.
Code:
//numair password is 782

unsigned int f,digit[3]={0,0,0},nreg[3]={7,8,2};
unsigned char i=0,j=0;
void reg();
void Lcd_Init();






// Lcd module connections
sbit LCD_RS at P2_0_bit;
sbit LCD_EN at P2_1_bit;

sbit LCD_D4 at P2_2_bit;
sbit LCD_D5 at P2_3_bit;
sbit LCD_D6 at P2_4_bit;
sbit LCD_D7 at P2_5_bit;
// End Lcd module connections




void main() {

p1=0x00;
p3=0x00;


Lcd_Init();                              // Initialize Lcd
  Lcd_Cmd(_LCD_CLEAR);                     // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);                // Cursor off
LCD_OUT(1,1,"ENTER REG. #");

  while(1)
          {

Lcd_Cmd(_LCD_CLEAR);                     // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);                // Cursor off
LCD_OUT(1,1,"ENTER REG. #");

////////push buttons FUNCTIONS START////////////////
reg();//ENTER REGISTERATION NUMBER

          }

}

void reg()         //function for registeration number
{

         for(i=0;i<3;i++)
         {
         while( p1.b0!=1 && p1.b1!=1 && p1.b2!=1 && p1.b3!=1 && p1.b4!=1 && p1.b5!=1 && p1.b6!=1 && p1.b7!=1 && p3.b0!=1 && p3.b1!=1 && p3.b2!=1 && p3.b3!=1 && p3.b4!=1 && p3.b5!=1 && p3.b6!=1 && p3.b7!=1); //wait for any key to be pressed
          if(p1.b0==1)
                 {
                 digit[i]='0';       //put 0 in digit[i]
                 Lcd_Out(2,i+1,"0"); //LCD OUT =0
                 while(p1.b0!=0);
                 }

          else if(p1.b1==1)
                 {
                 digit[i]='1';    //put 1 in digit[i]
                 LCD_OUT(2,i+1,"1");  //LCD OUT =1
                 while(p1.b1!=0);
                 }

          else if(p1.b2==1)
                 {
                 digit[i]='2';     //put 2 in digit[i]
                 LCD_OUT(2,i+1,"2");  //LCD OUT =2
                 while(p1.b2!=0);
                 }

          else if(p1.b3==1)
                 {
                 digit[i]='3';        //put 3 in digit[i]
                 LCD_OUT(2,i+1,"3");//LCD OUT =3
                 while(p1.b3!=0);
                 }

          else if(p1.b4==1)
                 {
                 digit[i]='4'; //put 4 in digit[i]
                 LCD_OUT(2,i+1,"4");//LCD OUT =4
                 while(p1.b4!=0);
                 }

          else if(p1.b5==1)
                 {
                 digit[i]='5';//put 5 in digit[i]
                 LCD_OUT(2,i+1,"5");//LCD OUT =5
                 while(p1.b5!=0);
                 }

          else if(p1.b6==1)
                 {
                 digit[i]='6';  //put 6 in digit[i]
                 LCD_OUT(2,i+1,"6");//LCD OUT =6
                 while(p1.b6!=0);
                 }

          else if(p1.b7==1)
                 {
                 digit[i]='7';   //put 7 in digit[i]
                 LCD_OUT(2,i+1,"7");//LCD OUT =7
                 while(p1.b7!=0);
                }

          else if(p3.b0==1)
                 {
                 digit[i]='8';    //put 8 in digit[i]
                 LCD_OUT(2,i+1,"8");//LCD OUT =8
                 while(p3.b0!=0);
                 }

          else if(p3.b1==1)
                 {
                 digit[i]='9';   //put 9 in digit[i]
                 LCD_OUT(2,i+1,"9");//LCD OUT =9
                 while(p3.b1!=0);
                 }

          }
    //here is problem i guess:
      Lcd_Cmd(_LCD_CLEAR);
       Lcd_Out(1,1,digit);
       delay_ms(1000);





}


FOR NOW. THIS PART IS MY CONCERN:
Code:
[COLOR="#FF8C00"]//here is problem i guess:
      Lcd_Cmd(_LCD_CLEAR);
       Lcd_Out(1,1,digit);
       delay_ms(1000);[/COLOR]

THIS CODE RUNS FINE in software mikroc. but when i put it into proteus.
it does so:
1.waits untill i enter a key from 0 to 9,. and show on screen.(this process repeats three times and shows on lcd which is fine)
2.it has to store the key i had entered above. but i does not show three keys on screen when i ask it to show that array in which it was storing my keystrokes. please help me. its urgent :(

all other things are working fine till now. i am attaching the picture for understanding easily this project. please help me even if u know a single word about this project.
 

Attachments

  • numair project.jpg
    numair project.jpg
    356.6 KB · Views: 92

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top