Probacu ukratko da opisem postupak:
Nakon standardne inicijalizacije LCD-a, potrebno je komandom:
lcd_cmd(0x40); //
inicirati upis u LCD CGRAM koji ima kapacitet od 8karaktera (64bajta).
Ovde je data procedura koja vrsi upis korisnicki definisanih karaktera:
// ovde definisi specijalne karaktere
#define SPECIJALNI_KARAKTERI 56 // koliko * 8
unsigned char const special_chars[56] = {
0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00, // 0 oC
0x04,0x04,0x1F,0x04,0x04,0x00,0x1F,0x00, // 1 ±
0x03,0x06,0x1A,0x1A,0x1A,0x06,0x03,0x00, // 2 znak za alarm
0x00,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00, // 3 prazan kruzic LED off
0x00,0x0E,0x1F,0x1F,0x1F,0x0E,0x00,0x00, // 4 pun kruzic LED on
0x04,0x08,0x10,0x0E,0x10,0x08,0x04,0x00, // 5 nastavak zvucnika za alarm
0x08,0x04,0x1E,0x1F,0x1E,0x04,0x08,0x00 // 6 znak strelice za selekciju
};
lcd_cmd(0x40); // ajmo svi u CGRAM
for(j=0; j<=SPECIJALNI_KARAKTERI-1; j++)
{
lcd_data(special_chars[j]);
}
Jeste da je kod na C jeziku ali mislim da nije problem da se ukapira princip.
Jos jedna bitna stavka je kako kreirati korisnicke karaktere. Ja sam za tu priliku napravio jedan programicic koji besplatno mozete skinuti sa linka:
http://epraktikum.co.yu/software.php
Dovoljno je da nacrtate zeljeni karakter, a program ce vam genersitai sekvencu HEX
kodova, koje je potrebno ubaciti u program mikrokontrolera i to je to.
Sada jednostavno u programu vase karaktere pozivate kao 0..7 karakter:
lcd_data(0); za oC
lcd_data(1); za ±
lcd_data(2); za znak za alarm
...
lcd_data(7);