Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save d-boz-wtwh/57a15a2788b8907fc32858944657ff96 to your computer and use it in GitHub Desktop.
Save d-boz-wtwh/57a15a2788b8907fc32858944657ff96 to your computer and use it in GitHub Desktop.
Microcontroller Projects
#include<reg52.h>
void display();
sbit rs=P3^5; //Register select (RS)
sbit en=P3^6; //Enable (EN) pin
void delay(unsigned int time) //Time delay function
{
unsigned int i,j;
for(i=0;i< time;i++)
for(j=0;j< 5;j++);
}
//Function for sending values to the command register of LCD
void lcdcmd(unsigned char value)
{
P1=value; P3=0x40; delay(50); en=0; delay(50);
}
//Function for sending values to the data register of LCD
void display(unsigned char value)
{
P1=value; P3=0x60; delay(500); en=0; delay(50);
}
//Function to initialize the registers and pins of LCD
//Always use with every lcd of hitachi
void lcdint(void)
{
P1=0x00; //Port-1 as output
P3=0x00; //Port-3 as output
delay(15000);
display(0x30); delay(4500);
display(0x30); delay(300);
display(0x30); delay(650);
lcdcmd(0x38); //16x2 lcd in use
delay(50);lcdcmd(0x0F);
delay(50);lcdcmd(0x01); //Clear contents of 16x2 lcd
delay(50);lcdcmd(0x06);
delay(50);lcdcmd(0x80); //Start displaying characters form row-1 coulomb-1
delay(50);
}
void main() //Main function
{
while(1){
int i=0;
char line1[]={"URDU Character!!"}; //String to be displayed on 16x2 lcd
lcdint(); //Initialize 16x2 lcd
lcdcmd(0x01); //Clear contents on 16x2 lcd screen
lcdcmd(0x80); //Place cursor on first row first coulomb
delay(50);
while(line1[i]!='\0') //Display the text "URDU Character!!" on first row on lcd
{
display(line1[i]);
i++;
}
delay(50000);
lcdcmd(0x40+0);//Making/Placing first character in CG-RAM
display(0x02); display(0x04); display(0x04); display(0x04); display(0x04); display(0x04); display(0x04);display(0x08);
lcdcmd(0x40+8);//Making/Placing second character in CG-RAM
display(0x00);display(0x00);display(0x00);display(0x11);display(0x0E);display(0X00);display(0X04);
lcdcmd(0x40+16);//Making/Placing third character in CG-RAM
display(0x00);display(0x00);display(0x00);display(0X11);display(0X0E);display(0x00);
display(0X0A);display(0X04);
lcdcmd(0x40+24);//Making/Placing fourth character in CG-RAM
display(0x00);display(0x0A);display(0x00);display(0x11);display(0x0E);display(0x00);
display(0x00);
lcdcmd(0x40+32);//Making/Placing fifth character in CG-RAM
display(0x04);display(0x06);display(0x06);display(0x00);display(0x11);display(0x0E);
display(0x00);display(0x00);
lcdcmd(0x40+40);//Making/Placing sixth character in CG-RAM
display(0x00);display(0x0A);display(0x04);display(0x11);display(0x0E);display(0x00);
display(0x00);
lcdcmd(0x40+48);//Making/Placing seventh character in CG-RAM
display(0x1F);display(0x12);display(0x14);display(0x08);display(0x14);display(0x11);
display(0x0A);display(0x04);
lcdcmd(0x40+56);//Making/Placing eighth character in CG-RAM
display(0x1F);display(0x12);display(0x14);display(0x08);display(0x16);display(0x15);
display(0x0A);display(0x04);
lcdcmd(0x01); //Clear lcd contents
lcdcmd(0x80); //Place cursor on first row and first coulomb
//Display all the above eight generated characters on 16x2 lcd
display(0x01);display(0x02);display(0x03);display(0x04);
display(0x05);display(0x06);display(0x07);display(0x08);
//Delay for some time to see characters appearing on the lcd screen
delay(100000);delay(100000);delay(100000);
lcdcmd(0x80);//Cursor again moved to first row and coulomb
i=0;
while(line1[i]!='\0') //Displacing again the "URDU Character!!" on first row on lcd
{
display(line1[i]);
i++;
}
//THE WHOLE ABOVE PROCESS IS REPEATED AGAIN FOR NEXT EIGHT CHARACTERS
delay(100000);
lcdcmd(0x40+0);
display(0x1F);display(0x12);display(0x14);display(0x08);display(0x10);display(0x11);
display(0x0A);
display(0x04);
lcdcmd(0x40+8);
display(0x04);display(0x1F);display(0x12);display(0x08);display(0x10);display(0x11);
display(0x0A);
display(0x04);
lcdcmd(0x40+16);
display(0x00);display(0x06);display(0x09);display(0x11);display(0x01);display(0x01);
display(0x12);
display(0x0c);
lcdcmd(0x40+24);
display(0x08);display(0x06);display(0x09);display(0x11);display(0x01);display(0x01);
display(0x12);
display(0x0c);
lcdcmd(0x40+32);
display(0x00);display(0x08);display(0x04);display(0x02);display(0x02);display(0x04);
display(0x08);
lcdcmd(0x40+40);
display(0x04);display(0x08);display(0x04);display(0x02);display(0x02);display(0x04);
display(0x08);
lcdcmd(0x40+48);
display(0x00);display(0x00);display(0x15);display(0x1F);display(0x08);display(0x07);
display(0x11);
display(0x0E);
lcdcmd(0x40+56);
display(0x04);display(0x0A);display(0x15);display(0x1F);display(0x08);display(0x07);
display(0x11);
display(0x0E);
lcdcmd(0x01);
lcdcmd(0x80);
display(0x01);display(0x02);display(0x03);display(0x04);
display(0x05);display(0x06);display(0x07);display(0x08);
delay(100000);delay(100000);
lcdcmd(0x01);
lcdcmd(0x80);
i=0;
while(line1[i]!='\0')
{
display(line1[i]);
i++;
}
delay(100000);
lcdcmd(0x40+0);
display(0x00);display(0x07);display(0x05);display(0x17);display(0x14);display(0x14);
display(0x14);
display(0x08);
lcdcmd(0x40+8);
display(0x02);display(0x07);display(0x05);display(0x17);display(0x14);display(0x14);
display(0x14);
display(0x08);
lcdcmd(0x40+16);
display(0x10);display(0x10);display(0x11);display(0x13);display(0x15);display(0x19);
display(0x1E);
lcdcmd(0x40+24);
display(0x10);display(0x10);display(0x15);display(0x13);display(0x15);display(0x19);
display(0x1E);
lcdcmd(0x40+32);
display(0x00);display(0x04);display(0x08);display(0x04);display(0x08);display(0x10);
display(0x11);
display(0x0E);
lcdcmd(0x40+40);
display(0x08);display(0x04);display(0x08);display(0x04);display(0x08);display(0x10);
display(0x11);
display(0x0E);
lcdcmd(0x40+48);
display(0x00);display(0x02);display(0x05);display(0x0A);display(0x04);display(0x11);
display(0x0E);
lcdcmd(0x40+56);
display(0x00);display(0x00);display(0x01);display(0x02);display(0x04);display(0x11);
display(0x0E);
lcdcmd(0x01);lcdcmd(0x80);
display(0x08);display(0x01);display(0x02);display(0x03);
display(0x04);display(0x05);display(0x06);display(0x07);
delay(100000);delay(100000);
lcdcmd(0x01);
lcdcmd(0x80);
i=0;
while(line1[i]!='\0')
{
display(line1[i]);
i++;
}
delay(100000);
lcdcmd(0x40+8);
display(0x01);display(0x01);display(0x01);display(0x01);display(0x11);display(0x11);
display(0x0E);
lcdcmd(0x40+16);
display(0x1F);display(0x15);display(0x17);display(0x10);display(0x10);display(0x10);
display(0x10);
lcdcmd(0x40+24);
display(0x11);display(0x11);display(0x15);display(0x11);display(0x0A);display(0x04);
lcdcmd(0x40+32);
display(0x04);display(0x0A);display(0x15);display(0x15);display(0x08);display(0x10);
lcdcmd(0x40+40);
display(0x02);display(0x05);display(0x04);display(0x03);display(0x11);display(0x11);
display(0x11);
display(0x0E);
lcdcmd(0x40+48);
display(0x00);display(0x00);display(0x01);display(0x1F);display(0x10);display(0x1F);
lcdcmd(0x01);lcdcmd(0x80);
display(0x01);display(0x02);display(0x03);
display(0x04);display(0x05);display(0x06);
delay(100000);delay(100000);
lcdcmd(0x01);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment