Cum se utilizează un LCD grafic

26 IANUARIE 2009

Să luăm ca exemplu produsul Winstar WG240128B.
SEMNALE DE CONTROL
Întreaga imagine este compusă din 240 puncte/pixel/caracter pe coloană şi 128 de puncte pe linie după cum este prezentat în fotografia de mai sus. Dar înainte de a ajunge la imagine, semnalul trebuie procesat întâi. Iar aceasta este responsabilitatea controlerului fiecărui modul. Controlerul este acela care gestionează semnalele întregului modul. În cele ce urmează sunt prezentate aceste semnale.
1. Semnal CP
Acesta este baza întregii imagini. El reprezintă un singur punct sau un singur pixel sau un singur caracter al imaginii.
2. Semnal LP
Acesta este semnalul responsabil cu schimbarea altei linii dacă semnalul CP ocupă întreaga linie. El comunică spre CP să treacă la altă linie.
3. Semnal FLM
După ce semnalul LP îşi îndeplineşte misiunea de a comunica semnalului CP să schimbe linia, FLM va fi semnalul care indică semnalului LP să schimbe pagina dacă linia este gata. Astfel, acest semnal este responsabil pentru întreaga pagină.
4. Semnal M
După cum caracterul, linia şi pagina sunt gata, semnalul M se produce pentru a spune către BIAS să-şi schimbe tensiunea astfel încât ecranul LCD să se modifice sau să se oprească.

DIAGRAMA BLOC A MODULULUI LCD
Dacă acum ştim cum apare fiecare punct pe fiecare linie şi în fiecare pagină, putem vedea acum ce se ascunde în spatele fiecărui modul grafic LCD.
Astfel, după cum se poate observa din imagine, înainte de acţionarea punctelor din fiecare linie şi fiecare pagină, există alte procese care se întâmplă. Întreaga imagine provine din semnalul COMMON şi cipul integrat SEGMENT IC care construieşte linia şi coloana fiecărui caracter. De fapt semnalul este cerut de la CONTROLER şi tensiunile potrivite de la circuitul de polarizare (BIAS Circuit) care va fi acţionat de generatorul de tensiune negativă pentru a evita căderea alimentării sau arderea altor componente integrate.

APLICAÞIE CU CONTROLER ŞI CI 8051
Lăsând la o parte circuitul modulului LCD, ne este necesară de asemenea cunoaşterea prin care se obţine imaginea reală pe care vrem să o afişăm pe ecran. Cum poate fi pus un singur caracter pe imaginea actuală.
Primul lucru pe care trebuie să-l aflăm este circuitul integrat de pe magistrala de date (microprocesor) pe care-l utilizăm la implementarea programului modulului. Acesta va sta ca fundament al tuturor datelor pe care vrem să le transmitem către modul şi, de asemenea, programul nostru va fi bazat pe tipul de CI pe magistrala de date pe care-l utilizăm.
Winstar Display Co., Ltd. utilizează uzual microprocesorul 8051 de la Intel, iar pentru programare utilizează limbajul C. La acest nivel se realizează întregul program pe care-l vom folosi pentru diferite aplicaţii cu modulul aflat în discuţie, depinzând de capacitatea aplicaţiei.
Winstar şi-a propus alegerea potrivită a unui CI Controler pentru modul depinzând de funcţia LCD sau de cererile clienţilor. Programele pot fi create pe baza specificaţiilor circuitului integrat ce urmează să fie utilizat. Din aceste specificaţii, se poate cunoaşte interfaţarea corectă a circuitului la magistrala sa de date, precum şi calea corectă de programare şi utilizare a controlerului. Astfel cu ajutorul controlerului şi a CI de pe magistrala de date se pot crea toate elementele pe care dorim să le vedem pe ecran. Haideţi să vedem acum cum a fost creat modulul propus spre exemplificare WG240128A.
Se poate porni ţinând cont de următoarele caracteristici. După înţelegerea controlerului, trebuie studiate programarea şi conexiunile sale.

Interfaţa RAM
Memoria RAM externă este utilizată pentru stocarea datelor de afişare (text, grafic şi date externe CG). La o singură baleiere datele sub formă de text, grafic şi date externe CG, pot fi liber alocate zonei de memorie (max. 64 KB).
Cu baleiere dublă, LCD I este alocat de la 0000H la 7FFFH (max. 32 KB), LCD II este alocat de la 8000H la FFFFH (max. 32 KB). Datele sub formă de text, grafic şi CG extern pot fi liber alocate în LCD I. În LCD II, aceleaşi adrese trebuie alocate ca în LCD I, cu excepţia ad15. ad15 determină selecţia LCD I sau LCD II. El poate utiliza semnalele de adresă decodate ce0 (0000 la 07FFH), ce1 (0800 la 0FFFH) cu 4KB. ce0 şi ce1 permit decodarea adreselor în domeniile (0000 la 07FFH) şi (0800 la 0FFFH) cu un spaţiu de memorie de 4-KB.
Dacă cunoaştem aceste lucruri, se poate trece acum la programarea propriu-zisă.

CREAREA UNUI PROGRAM
Înainte de trecerea la realizarea programului, trebuie observate porturile microprocesorului pentru conectare şi compatibilitate.
Împreună cu informaţiile de mai sus, cunoaşterea limbajului C este un instrument important cu ajutorul căruia se implementează programul. Pot fi aplicate diferite operaţii precum +, -, *, /, %, ++, –, >, <, <=, >=, &, ^, ~, >>, << , !, !=, ==. Alături de acestea, bineînţeles sunt utilizate instrucţiuni de programare precum instrucţiuni buclă (for, while şi do while), instrucţiuni de comutaţie, matrice, şiruri etc. TIPURI DE VARIABILE: Acestea sunt foarte important de cunoscut. Tip date BYTE Domeniu valori enum 16 (-) 32768 ~ (+)32767 signed short 16 (-) 32768 ~ (+)32767 unsigned short 16 0 ~ 65535 signed int 16 (-) 32768 ~ (+) 32767 unsigned int 16 0 ~ 65535 signed long 32 (-)2147483648 ~ (+)2147483648 unsigned long 32 0 ~ 4294967295 float 32 0.175494E-38 ~ 0.402823E+38 sbit 1 0~1 sfr 8 0 ~ 255 sfr16 16 0 ~ 65535 Tip date BYTE Domeniu valori bit 1 0~1 signed char 8 (-)128 ~ (+)127 unsigned char 8 0 ~ 255 EXEMPLU DE PROGRAM GRAFIC #include
#include
#define DATA_BUS P1
sbit LCM_CD = P3^0;
sbit LCM_FS = P3^1;
sbit LCM_MD2 = P3^2;
sbit LCM_RESET = P3^3;
sbit LCM_CE = P3^4;
sbit LCM_WR = P3^6;
sbit LCM_RD = P3^7;
unsigned char code picture [128] [30] =
notă: codul imaginii poate fi pus aici.
void write_command (unsigned char par_1)
{
LCM_CD = 1;
LCM_CE = 0;
LCM_WR = 0;
_nop_();
_nop_();
DATA_BUS = par_1;
_nop_();
_nop_();
LCM_CE = 1;
LCM_WR = 1;
}
void write_data (unsigned char par_1)
{
LCM_CD = 0;
LCM_CE = 0;
LCM_WR = 0;
_nop_();
_nop_();
DATA_BUS = par_1;
_nop_();
_nop_();
LCM_CE = 1;
LCM_WR =1;
}
void init_T6963C ()
{
LCM_RESET = 0;
_nop_();
_nop_();
_nop_();
LCM_RESET = 1;
_nop_();
_nop_();
_nop_();
LCM_MD2 = 1;
LCM_FS = 0;
write_data (0x00);
write_data (0x00);
write_command(0x40);
write_data (0x00);
write_data (0x02);
write_command(0x42);
write_data (0x1E);
write_data (0x00);
write_command(0x41);
write_data (0x1E);
write_data (0x00);
write_command(0x43);
write_command (0x80);
write_command (0x98);
}
void clear ()
{
unsigned char i, j;
write_data (0x00);
write_data (0x20);
write_command (0x24);
write_command (0xB0);
for ( i=0; i<=128; i++) { for (j=0; j<=30; j++) { write_data (0x55); } } write_command (0xB2); } void fill_screen (picture) char picture [128] [30]; { unsigned char i, j; write_data (0x00); write_data (0x20); write_command (0x24); } void main () { init_T6963C (); clear (); fill_screen (picture1); while (); { } } Acest articol se doreşte a fi de mare ajutor pentru utilizatorii care doresc să înţeleagă utilizarea modulelor grafice LCD. Pentru mai multe detalii despre acest subiect găsiţi informaţii la: Winstar Display Co. Ltd.,
Tel: 886-4-24262208,
Fax: 886-4-24262207,
sales@winstar.com.tw
Persoană contact:
Melissa Wang
melissa@winstar.com.tw

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

  • Folosim datele dumneavoastră cu caracter personal NUMAI pentru a răspunde comentariilor/solicitărilor dumneavoastră.
  • Pentru a primi raspunsuri adecvate solicitărilor dumneavoastră, este posibil să transferăm adresa de email și numele dumneavoastră către autorul articolului.
  • Pentru mai multe informații privind politica noastră de confidențialitate și de prelucrare a datelor cu caracter personal, accesați link-ul Politica de prelucrare a datelor (GDPR) si Cookie-uri.
  • Dacă aveți întrebări sau nelămuriri cu privire la modul în care noi prelucrăm datele dumneavoastră cu caracter personal, puteți contacta responsabilul nostru cu protecția datelor la adresa de email: gdpr@esp2000.ro
  • Abonați-vă la newsletter-ul revistei noastre