Wednesday, 26 August 2015

LCD code to display the characters (8051)

#include<reg51.h>

#define Lcd P2                                    // for 8-data pins D0-D7
#define lcd1 P3                                        //for RS, RW, EN Pins

void delay(unsigned int x)                           //delay function
{
        while(x--);
}

void cmd(unsigned int x)                            // command 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 intiz()                                  // initialization function
{
     
        cmd(0x01);                            // to clear screen
        cmd(0x0c);                            // display ON cursor  OFF
        cmd(0x80);                              // first row first column
        cmd(0x38);                            //2-lines and 5x7 matrix
}
void dat(unsigned int x)    // data function
{
        P2=x;
        delay(100);
        P3=0x05;               // RS=1,R/W=0,E=1
        delay(100);
        P3=0x01;                 // RS=1,R/W=0,E=0

}
void main()
{
int j,x,a[]={'A','L','I',' ','S','A','D','I','Q'};      // characters to be displayed

        intiz();                                                  // LCD initialization
         
        while(1)
        {
                x=0x8f;                                      // first row last column
                cmd(x--);
                //cmd(0x1c);

                for(j=0;j<3;j++)                            //loop to display the characters
                {      
                     dat(a[j]);
                        cmd(0x1c);
                }

                     x=0xcf;                              // last row last column
                    cmd(x--);

                for(j=3;j<9;j++)                           //loop to display the characters
                {
                        dat(a[j]);
                        cmd(0x1c);
                }
}

}

//Please comment below for any queries

Compact code for Numerical values display on LCD (8051)

#include<reg51.h>          //header file

#define lcd P2        // 8-pin data lines   D0-D7
#define lcd1 P3     // 3- Command lines RS, RW, EN

void delay(unsigned int x)   // Delay Function
{
        while(x--);
}

void cmd(unsigned int x)      // Command 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()            //Initialization function
{
        cmd(0x01);
        cmd(0x80);
        cmd(0x0e);
        cmd(0x38);
}

void dat(unsigned int x)    //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 count(unsigned int x)     // function to calculate the numerical values 000-999
{
        unsigned int a,b=1;
        a=x;
        while(a>9)                    // loop counts the no. of digits in the number received in x
        {
                b=b*10;
                a=a/10;
        }
         while(b>0)            // loop sends the digits to dat function
         {
                 dat((x/b)+48);
                 x=x%10;
                  b=b/10;
         }      
 }      
void main()
{
        unsigned int i;
        initz();                    //LCD initialization
        while(1)
        {
        for(i=0;i<1000;i++)                 // loop to send the number to Count function
        {
        count(i);
                cmd(0x80);                // display the no. in first row
}
}
}

//Please comment below for any queries

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);
}
}
}

LCD Display

#include<reg51.h>   // header file

#define Lcd P2         // Connection to 8 data pins  D0-D7
#define lcd1 P3      // Connection of RS, RW, EN Pins

void delay(unsigned int x) //delay function
{
        while(x--);
}

void cmd(unsigned int x)  // command function
{
        P2=x;
        delay(10000);
        P3=0x04;              // RS=0,R/W=0,E=1
        delay(100);
        P3=0x00;               // RS=0,R/W=0,E=0
}

void intiz()        //LCD initialization function
{
        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)  // Data/Command function
{
        P2=x;
        P3=0x05;                 // RS=1,R/W=0,E=1
        delay(100);
        P3=0x01;                   // RS=1,R/W=0,E=0
}
void main()
{
        intiz();      // LCD initialization
        dat('A');     // data
        dat('l');
        dat('i');
}

//Please comment below for any queries

Seven-segment display using switch

#include<reg51.h>
#define  led P2              // 7-segment connection
sbit sw=P3^0;                // Switch connection
unsigned int x,a[]={0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67,0x3F},j=0;  // Values from 0-9
        void delay(unsigned int x)
        {
                while(x--);
             
        }
        void main()
{
        while(1)
        {
             
                if(sw==0)
                {
                P2=a[j];
                delay(100000);
          j++;
}      
                if(j==10)
                        j=j-10;
                     
}
}

//Please comment below for any queries

2-Seven-segment to display number from 00-99 (8051)

#include<reg51.h>
#define  led P2
#define  led1 P3
unsigned int x,a[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67},i,j;
        void delay(unsigned int x)
        {
                while(x--);
        }
                           void seg_disp(char x)
        {
           P2=0x00;
           P3=0x02;
           P2=a[x/10];
           delay(1000);      
           P2=0x00;
           P3=0x01;
           P2=a[x%10];
          delay(1000);
         }
        void main()
  {
         while(1)
          {
                for(i=0;i<100;i++)
          {
                        for(j=0;j<50;j++)
                        {
                                     seg_disp(i);
      }                                                
    }
    }
  }

seven-segment using for loop(8051)

#include<reg51.h>
#define led P2
        void delay(unsigned int x)
        {
                while(x--);
               
        }
        void main()
{
        unsigned int x,a[]={0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67,0x3F},i;
       
        while(1)
        {
                for(i=0;i<10;i++)
                {
                        led=a[i];
      delay(30000);              
}
}
}

seven-segement(8051) 0-9 display

#include<reg51.h>
#define led P2
        void delay(unsigned int x)
        {
                while(x--);
               
        }
        void main()
{
        unsigned int x;
       
        while(1)
        {

            led=0x06;
                        delay(100000);
                   led=0x5B;
                  delay(100000);
                  led=0x4F;
                        delay(100000);
                   led=0x66;
                        delay(100000);
                  led=0x6D;
                        delay(100000);
                  led=0x7C;
                  delay(100000);
                   led=0x07;
                  delay(100000);
                  led=0x7F;
                        delay(100000);
                   led=0x67;
                  delay(100000);
                  led=0x3F;
                  delay(100000);
        }
}

Tuesday, 18 August 2015

LED Nibble ( 4 pin ON - 4 pin OFF)

#include<reg51.h>
#define led P2
        void delay(unsigned int x)
        {
                while(x--);
               
        }
        void main()
{
        unsigned int x,i;
       
while(1)
        {
                P2=0x0f;  // 4 bit(Nible) LSB operation
                delay(3000);
                P2=0xf0;  // 4 bit(Nible) MSB operation
                delay(3000);
        }
}

LED Blinking (Even)

#include<reg51.h>
#define led P2
        void delay(unsigned int x)
        {
                while(x--);
               
        }
        void main()
{
        while(1)
        {

          led=0x02;
                        delay(100000);
                   led=0x08;
                  delay(100000);
                 led=0x20;
                        delay(100000);
                   led=0x80;
                        delay(100000);
                  led=0x01;
                        delay(100000);
                   led=0x04;
                  delay(100000);
                 led=0x10;
                        delay(100000);
                   led=0x40;
        }
}

LED Blinking (Alternate)

 #include<reg51.h>
#define led P2
        void delay(unsigned int x)
        {
                while(x--);
               
        }
        void main()
{
        unsigned int i,l;// range for unsigned is 0-65535
       
        while(1)
        {

          //simple bitwise led ON-OFF
                /*for(i=1;i<129;i=i*2) //bitwise led ON-OFF using FOR LOOP
                {
                        delay(1000);         delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);
                        P2=i;      
                }*/
              l=0x01; //bitwise LED ON-OFF using Shit operator
                for(i=1;i<=8;i++)
                {
                        led=l;
                l=l<<1;
                delay(3000);        delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);delay(3000);
                }
        }
}

Program For LED (8051 uc)

#include<reg51.h>
#define Led P2
        void delay(unsigned int x)
        {
                while(x--);
             
        }
        void main()
    {
                 unsigned int i=0x00;
 while(1)
        {
               i=~i;      
                        P2=i;
                         delay(1000);
         }
   }

//Please comment below for any queries