What is required??
I am using a
HQM1286404 LCD it’s a pretty old one and please don’t be mistaken with newer
versions of LCD, if you are using any other version you have to find its
datasheet for wiring connections because wiring connections may be different
from version to version. I will provide connections for HQM1286404 LCD only and its pretty hard
to get accurate wiring connection , so better consult your datasheet and
internet as well. Except this you will need a AVR MCU, I am using ATMEGA 8 here
and of course an LCD library you can
find o many libraries on internet but I am giving a best link to download a
very nice library written by Mr. Fabian Maximilian Thiele , thanx to him the
link for this library is GLCD_LIBRARY
LCD PIN-OUT CONNECTIONS
Here is the
correct pin-out of LCD:
1
Vcc
2
GND
3
VCON
4-11
DB0-DB7
12
CS2
13
CS1
14
RESET
15
R/W
16
D/I
17
EN
18
Vee out
19
LED Anode
20
LED Kathode
NOTE:- in some cases you will found that your LCD screen is swapped into two halves in such cases just swap the chip select pins and problem will be corrected...:)
LIBRARY USE
The library ,
which you have downloaded contains to files ks0108.c and ks0108.h you have to copy these files and have to
paste in the same folder wher .c file of your main program is contained and you
have to add corresponding header files in the beginning of the program too like
#include
"ks0108.h"
#include
"ks0108.c"
the .h files contains the information about
pin connection and commands you can easily change the connection pin and ports
from there .
Getting familiar
with commands is just a learning by doing thig more you do more you learn. Just go through the library to know more about the command its self explaining.
Along with these library files some font files are also provided these fonts must be added by adding corresponding header file in beginning of the program.except these font you can fetch your windows font with the help of this java program GLCDFontCreator2
SOURCE CODE
here is an
interesting source code to start with
#include <inttypes.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "ks0108.h"
#include "ks0108.c"
#include
"arial_bold_14.h"
int main(void) {
// Wait a little while the display starts up
for(volatile uint16_t i=0; i<15000; i++);
// Initialize the LCD
ks0108Init(0);
// Select a font
ks0108SelectFont(Arial_Bold_14, ks0108ReadFontData, BLACK);
// Set a position
ks0108GotoXY(15,10);
// Print some text
ks0108Puts_P(PSTR("Tech_strong"));
// two little circles
ks0108DrawCircle(30, 30, 5, BLACK);
ks0108DrawCircle(90, 30, 5, BLACK);
// again some text
ks0108GotoXY(29,38);
ks0108Puts_P(PSTR("Tutorials"));
// a loading bar
for(int x=0;x<128;x++)
{
ks0108GotoXY(x,50);
ks0108DrawRect(x, 50, 80, 10, BLACK);
}
while(1);
}
CIRCUIT DIAGRAM
now just
implement this easy circuit burn your MCU with corresponding .hex file and
enjoy your GRAPHICAL lcd.
NOTE:- In my program I have changed
data port of LCD from PORTA to PORTD so be careful if you are using this
circuit connection you will have to change PORTA to PORTD in ks0108.h file of
library be careful ….!!
I think it was a
useful article for you all in case of any query, doubt or critical view just
leave a comment in next tutorial we will discuss about displaying an image on
this LCD,… till then bye…!
THNX..:)
I'm getting this error when i build the program .
ReplyDeletecan you help me to solve this problem..i will be very thank ful of you.
variable 'Arial_Bold_14' must be const in order to be put into read-only section by means of '__attribute__((progmem))
you should change it like it :
Deletestatic const uint8_t Arial_Bold_14[] PROGMEM = {
it needs to add const
sir,do you know any website or blog that have tutorials for ATtiny 25/45/85....
ReplyDeletei will be very thankful of you if you suggest me any link.
just google for i......u will get evrything...:)t
DeleteI was trying to implement the above circuit using proteus. I made the same connections as shown in the circuit but the glcd is showing nothing. Please help
ReplyDeleteI was doing the above project using proteus. But I am not getting anything on the Glcd display. It is showing nothing. Please help.
ReplyDeletehii nikesh
Deletei hv checked this project on proteus a number of time n its working, may be ur connections are nt right or ur nt using right glcd check evrythng one more time it will work..
hi abhilash,
ReplyDeletei want to implement this project and iam the beginner in this area. so, please clarify my doubts
1) does this lcd suitable to interface on Atmega 16a
2) can i use AVR studio to run this code.
yes abhi, u cn use atmega16a and avr studio for this project..:)
Deletehi abhilash,
ReplyDeleteiam beginner in this area and i want to do your above stated lcd interfacing project. I want to use the following platform. Does it suitable or not please clarify me
1) microcontroller Atmega 16a
2) platform Avrstudio
yes sure...you are going good...:)
DeleteThank you
ReplyDeletegood job.it is necessary that we have to connect backlight of lcd in hardware.The above circuit working in a proteus very well.
ReplyDelete