Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

LCD can't display second line data

Status
Not open for further replies.

VISHALMISHRA540

Newbie level 1
Joined
May 11, 2016
Messages
0
Helped
0
Reputation
0
Reaction score
0
Trophy points
0
Activity points
0
Hi, i am using 2x16 LCD module and interface with AT89S52, when i try to display data on second line , the LCD doesn't work, can someone figure out what's with my code?


#include<reg52.h>
#define LCDDATA P2

sbit RS =P0^5;
sbit RW=P0^6;
sbit EN=P0^7;
sbit BUSY=P0^7;
sbit switch1=P1^0;

sbit THY1=P1^0;
sbit com_pin=P1^0;

bit update_flag=0x12;
bit timecount_flag=0x11;
bit zvs_flag=0x12;
bit zcs_flag=0x12;
bit lead_flag=0x13;
bit lag_flag=0x14;

unsigned char high_count,high_count1;
unsigned char low_count,low_count1,count,time_count;
unsigned int Time;
void Init_LCD();
void BusyCheck();
void LCDCMD(unsigned char CMD);
void LCDData(unsigned char Data);
void LCDString(unsigned char*str);
void delay1();
void Int0_ZVS_ISR(void)interrupt 0
{
if(zcs_flag==1)
{
zcs_flag=0;
TR1=0;
high_count=TH1;
low_count=TL1;
timecount_flag=1;
}
}
void Int1_ZCS_ISR(void)interrupt 1
{
if(lead_flag==1)
{
TMOD|=0X10;
TH1=0X00;
TL1=0X00;
TR1=1;
zcs_flag=1;
}
}
void INIT_INT01()
{
EX0=1;
EX1=1;
}
void Init_Timer0()
{
TMOD|=0X01;
TH0=0X00;
TL0=0X00;
}
void main()
{
Init_LCD();
LCDString("TSR FACTS PROJCT");
LCDCMD(0Xc0);
LCDString("VOLT COMNSTION");
INIT_INT01();
Init_Timer0();
delay1();
while(1)
{
if(com_pin==1)
{
THY1=1;
delay1();
lead_flag=1;

while(timecount_flag==1);

lead_flag=0;
zvs_flag=0;
zcs_flag=0;
timecount_flag=0;

high_count1=high_count;
low_count1=low_count;
Time=(((256*high_count1)+low_count1));
if(Time>3000)
{
LCDCMD(0X80);
LCDString("HIGH VOLTAGE");
LCDCMD(0Xc0);
LCDString("CAPACITIVE LOAD");
}
}
if(com_pin==0)
{
THY1=0;
lead_flag=0;
delay1();
lead_flag=1;
while(timecount_flag==1);
lead_flag=0;
zvs_flag=0;
zcs_flag=0;
timecount_flag=0;

high_count1=high_count;
low_count1=low_count;
Time=(((256*high_count1)+low_count));

if(Time<3000)
{
LCDCMD(0x80);
LCDString("NORMAL VOLTAGE");
LCDCMD(0xc0);
LCDString("COMPENSATE MODE");
}
}
}
}
void delay1()
{
int p,q;
for(p=0;p<500;p++)
for(q=0;q<3000;q++);
}
void LCDCMD(unsigned char CMD)
{
LCDDATA=CMD;
RS=0;
RW=0;
EN=1;
EN=0;
}
void LCDData(unsigned char Data)
{
LCDDATA=Data;
RS=1;
RW=0;
EN=1;
EN=0;
}
void LCDString(unsigned char*str)
{
while(*str)
{
LCDData(*str);
str++;
}
}
void Init_LCD()
{
LCDCMD(0x38);

LCDCMD(0x06);

LCDCMD(0x0C);

LCDCMD(0x02);

}
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top