Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

#include<reg51.

h>
sfr ldata = 0x90;
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
sbit busy=P1^7;
void lcdcmd(unsigned char value); //LCD Command Instruction Function Decl
aration
void lcddata(unsigned char value); //LCD Data Instruction Function Declara
tion
void MSDelay(unsigned int time); //Delay Function Declaration
void lcdready(); //Busy Flag Function De
claration
void main(void)
{
unsigned char HexL, HexH, name[5]="Osama";
unsigned int i, xL, xH, d1L, d1H, d2L, d2H, d3L, d3H, MSDL, MSDH, MIDL,
MIDH, LSDL, LSDH;
T0=1;
TMOD=0x05; //counter 0, mode 1 (16 bits)
TL0=0; //set count to zero
TH0=0; //set count to zero
MSDelay(5);
lcdcmd(0x38); //2 lines and 5X7 matrix
lcdcmd(0x0C); //Display ON, Cursor Blinking = 0x0E But
this command is Display ON, Cursor OFF
lcdcmd(0x01); //Clear Display Screen
lcdcmd(0x06); //Increament Cursor (Shift Cursor to Rig
ht)
lcdcmd(0x86);
for(i=0;i<5;i++)
lcddata(name[i]);
MSDelay(200);
lcdcmd(0x01);
while(1)
{
do
{
TR0=1;
HexL = TL0; //Loading Value of TL0
in HexL
HexH = TH0; //Loading Value of TH0
in HexH
TL0=0; //Reset TL0
TH0=0; //Reset TH0
xL = HexL / 10; //Code for converting HEX into
Decimal for TL0
d1L= HexL % 10; //LSD TL
d2L = xL % 10; //Middle TL
d3L = xL / 10; //MSD TL
xH = HexH / 10; //Code for converting HEX into D
ecimal for TLH
d1H= HexH % 10; //LSD TH
d2H = xH % 10; //Middle TH
d3H = xH / 10; //MSD TH
LSDL = d1L + 48; //Cconverting Decimal to ASCII
MIDL = d2L + 48;
MSDL = d3L + 48;
LSDH = d1H + 48;
MIDH = d2H + 48;
MSDH = d3H + 48;
lcddata(MSDH);
lcddata(MIDH);
lcddata(LSDH);
lcddata(MSDL);
lcddata(MIDL);
lcddata(LSDL);
lcdcmd(0x10);
lcdcmd(0x10);
lcdcmd(0x10);
lcdcmd(0x10);
lcdcmd(0x10);
lcdcmd(0x10);
MSDelay(200);
}
while(TF0==0);
TR0=0;
TF0=0;
}
}
void lcdcmd(unsigned char value)
{
lcdready();
ldata=value;
rs=0;
rw=0;
en=1;
MSDelay(1);
en=0;
return;
}
void lcddata(unsigned char value)
{
lcdready();
ldata=value;
rs=1;
rw=0;
en=1;
MSDelay(1);
en=0;
return;
}
void lcdready()
{
busy=1;
rs=0;
rw=1;
while(busy==1)
{
en=0;
MSDelay(1);
en=1;
}
return;
}
void MSDelay(unsigned int time)
{
unsigned int i,j;
for(i=0;i<time;i++)
for(j=0;j<1275;j++);
}

You might also like