Created
October 22, 2019 21:03
-
-
Save d-boz-wtwh/57a15a2788b8907fc32858944657ff96 to your computer and use it in GitHub Desktop.
Microcontroller Projects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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