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.

128x64 LCD module - help

Status
Not open for further replies.

Maverickmax

Advanced Member level 1
Joined
Dec 6, 2004
Messages
404
Helped
8
Reputation
16
Reaction score
3
Trophy points
1,298
Activity points
3,689
vo en lcd 128x64

Hello

I have recently bought the 128x64 LCD module and I have tried to use one today. I understood that a datasheet states that a typical 4.5 voltage should be applied to the LCD module. So I test it in order to see it works by applying ground and 4.5V to Vss and Vdd respecively. Unfortunately I could not see anything from the 128x64 LCD display.

Can you please kindly advise me how to bring my 128x64 LCD module alive?

P.S - I have attached a datasheet in case you spot my error.

Thank you

Maverick Max
 

128x64 lcd module

The graph on page 17 shows that the built-in reset ends after the voltage exceeds 4.5V, but this is not the operating voltage. You should apply 5V to get correct operation.

Also you need to provide a negative voltage on Vee to get contrast. -5V should be sufficient I think.
 

128x64 lcd bascom

So far I have done:

Vdd = 5V
Vss = 0V

Vee = ??

Vo = ?? (Should I connect to with a variable resistor 10k??)

DB0-DB7 - connect to uC chip's port
R/W - connect to uC chip's port
D/I - connect to uC chip's port
E - connect to uC chip's port
CS1 and CS2 - connect to uC chip's port
RES - connect to uC chip's port
A - connect 8ohm resistor
K - connect to ground

I am still not sure about Vee and Vo.

Maverick Max
 

bascom 128x64

That LCD is a very commun type of graphical LCD ..It requires to be initilaized with a MCU in order to diplay something . IT has two chip selects one that deals with on half of the LCD screen and the other the other half .
Also read very carfully when to apply the power because if you apply the negative voltage and is not intilialized as i recall you could damage it!
 

    V

    Points: 2
    Helpful Answer Positive Rating
vee voltage

Aye aye

I have not applied negative voltage to Vee....

I have solved the problem by connecting Vee to the variable resistor, while Vo is connected in the middle of variable resistor and finally the last pin connected to +5V and it works.

I found the information from https://www.azdisplays.com/PDF/agm1264b.pdf.

Now I know my graphic LCD is perfectly in good condition. Now I am going to program in C language in order to control stuff in the LCD module.

When I finish it, I am happy to give anyone C codes.

Maverick Max

Added after 1 minutes:

By the way, I need software that allows me to convert bmp into byte table for my graphic LCD. Does anyone know any good software?

Please let me know asap

Cheer


Maverick Max
 

Hi again

I have been programming to test my 128x64 LCD and it works but I am a bit confused beacause I wrote the codes like this:

CS1=1;
CS2=0;

write_display(0xFF); //Display 8 dots on the 1st address of x and y

display_screen(0x3E); //Display Off
display_screen(0x3F); //Display On

On the 1st address of X and Y, the eight dots have cleared while the black cover in the first half of screen and I didn't expect to see that. Why is that happen?

Does it has to do with Vee?

Maverick Max
 

Let me start again

CS1=1;
CS2=0;

write_display(0xFF);
write_display(0xFF);

display_screen(0x3E); //Display Off
display_screen(0x3F); //Display On

I WAS expecting to see two vertical of 8 black dots appear on the screen but I could not see anything on the screen as the black dots cover on the first half.

So I have modified my codes by changing 0x00 in lieu of 0xFF. Then two vertical of 8 white dots appear in the black area in the CS1=0;

Why is that?

I really want my LCD to be inverted really.

How to do it?

Have I made mistake in my hardware layout?

Maverick Max
 

is it a chinese forum?.i also met a problem on 12864.it always shows a lot of random points appears before the point.i also need your help .sorry,my english is poor.
 

Hi

Maverickmax:
Make sure to power the display up from scratch if you don't have a LCD_CLEAR() routine. to clear the memory.

It might be that to must swap the master and slave selection around. What driver does the display have?

wuhuachaoabc:
That is random info that is sitting in the memory of the driver.
 

marius810327 said:
Hi

Maverickmax:
Make sure to power the display up from scratch if you don't have a LCD_CLEAR() routine. to clear the memory.

It might be that to must swap the master and slave selection around. What driver does the display have?

wuhuachaoabc:
That is random info that is sitting in the memory of the driver.

hi marius810327
thanks for your help .may i ask you that how can i solve the problem.

here is my program:
void gdraw(unsigned char dat) //fill GDRAM data
{
uchar i,j,k;
uchar add_x=0x80;//GDRAM level address
uchar add_y=0x80;
for(i=0;i<2;i++)
{
for(j=0;j<32;j++)
{
for(k=0;k<8;k++)
{
write_12864com(0x36); / / Open the graphics display
write_12864com(add_y+j); //Vertical Address
write_12864com(add_x+k); / /lever address
write_12864data(dat);
write_12864data(dat);
}
}
add_x=0x88;
}

write_12864com(0x30); / / Restore basic instruction set
}

void drawpoint(uchar x,uchar y,uchar colour)//define uchar unsigned char,define uint unsigned int;
{
uchar xbyte,xbit;
uchar ybyte,ybit;
uchar temph=0x80,templ=0x80;

write_12864com(0x36);/ / Expand command

xbyte=x/16;/ / Calculate the one-byte
xbit=x&0x0f;
ybyte=y/32;/ / Determine the first half or second half of the screen
ybit=y&0x1f;

write_12864com(0x80+ybit);
write_12864com(0x80+xbyte+8*ybyte);

read_12864data();
temph=read_12864data();
templ=read_12864data();

write_12864com(0x80+ybit);/ / Read operation will change the AC, re-set the time

write_12864com(0x80+xbyte+8*ybyte);

if(xbit< 8)//eight
{
if(colour==1)
write_12864data(temph|(0x01<<(7-xbit)));
else
write_12864data(temph&(~(0x01<<(7-xbit))));
write_12864data(templ);
}
else
{
write_12864data(temph);
if(colour==1)
write_12864data(templ|(0x01<<(15-xbit)));
else
write_12864data(templ&(~(0x01<<(15-xbit))));
}
write_12864com(0x30);
}

MSN:wuhuachaoabc@hotmail.com
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top