Wednesday, 26 August 2015

LCD Numerical value Display 000-999 (8051)

#include<reg51.h>

#define lcd P2                              //Data Pins D0-D7
#define lcd1 P3                            //RS,RW,EN pins


void delay(unsigned int x)               //delay function
{
        while(x--);
}
void cmd(unsigned int x)   //LCD command function called from initz function
{
        P2=x;
        delay(1000);
        P3=0x04;                       // RS=0,R/W=0,E=1
        delay(100);
        P3=0x00;                      // RS=0,R/W=0,E=0
     
}
void initz()                         // LCD Initiatization
{
        cmd(0x01);        // command for clear the screen
        cmd(0x80);       // command for first row first column
        cmd(0x0e);       // display ON cursor blink
        cmd(0x38);       // 2-lines and 5x7 matrix
}
void dat(unsigned int x)       //LCD Data Function
{
        P2=x;
        delay(10000);
        P3=0x5;                        // RS=1,R/W=0,E=1
        delay(100);
        P3=0x1;                         // RS=1,R/W=0,E=0
}

void main()
{
        unsigned int i,j,k;
        initz();                 // LCD Initialization
        while(1)
        {
        for(i=48;i<57;i++)
        {
                cmd(0x80);
                dat(i);
                delay(100000);delay(10000);

                for(j=48;j<58;j++)
                {
                      cmd(0x81);
                        dat(j);
                        delay(10000);delay(10000);

                        for(k=48;k<58;k++)
                {    
                      cmd(0x82);
                        dat(k);
                        delay(10000);delay(10000);
          }
                cmd(0x82);    //command for first row third place
                dat(48);  // 48 is hex value stands for 0
  }
        cmd(0x81);   //command for first row second place
        dat(48);
}
}
}

No comments: