Cum se utilizează modulul LCD 12864 în detaliu?

May 07, 2017

Lăsaţi un mesaj

Observații la începutul articolului: Acest articol este doar o introducere specifică a operațiunii 12864. Este doar pentru noii veniți care tocmai au contactat 12864. Vă rugăm să aruncați o privire la el. Scrierea articolului este relativ liberă. Se recomandă ca începătorii să se refere mai întâi la manualul 12864 și la manualul în limba engleză a driverului de control ST7920. , Citiți din nou acest articol după ce ați avut o înțelegere preliminară, veți avea o înțelegere mai profundă. Este recomandat să citiți cu atenție manualul ST7920 în limba engleză! Există o introducere detaliată în detalii, iar cea mai mare parte a chinezei 12864 este, de asemenea, tradusă din chineză.

Acest articol este împărțit în trei pași pentru a introduce principiul resurselor interne 12864, o explicație detaliată a setului de instrucțiuni și exemple de aplicații.

Există patru tipuri de operații pentru 12864:

1). Citiți starea de ocupat (conținutul adresei pointerului va fi citit în același timp). După inițializare, fiecare citire și scriere pe 12864 trebuie să fie detecție ocupată. 2) Scrieți comenzi: puteți verifica lista de comenzi pentru toate comenzile, iar utilizarea detaliată a comenzilor va fi explicată mai târziu. Adresa de scriere este, de asemenea, comanda de scriere. 3) Scrieți date: Obiectele de operare sunt DDRAM, CGRAM, GDRAM.

4), citiți datele: obiectul operațiunii este și DDRAM, CGRAM, GDRAM.



12864液晶模块


Pentru studiul lui 12864, trebuie mai întâi să înțelegeți resursele sale interne. Știind ce este în el, îl puteți folosi mai convenabil.

Mai întâi, introduceți pe scurt câteva nume în limba engleză:

DDRAM: (Data DisplayRam), RAM de afișare a datelor, ceea ce scrieți în el, va afișa ceea ce va afișa pe ecran.

CGROM: ​​(CharacterGeneration ROM), ROM pentru generarea caracterelor. În interior se află fonturile pentru stocarea caracterelor chinezești, cunoscute și sub numele de biblioteca de caractere chinezești. Metodele de codificare sunt GB2312 (chineză simplificată) și BIG5 (chineză tradițională). Autorul folosește QC12864B al lui Yusong Electronics, iar explicația se bazează pe acest exemplu. CGRAM: (CharacterGeneration RAM), RAM de generare de caractere, 12864 oferă 64x2B CGRAM, care poate fi folosit pentru 4 16×16 caractere definite de utilizator, fiecare caracter ocupă 32 de octeți.

GDRAM: (Graphic DisplayRAM): RAM de afișare grafică. Această zonă este folosită pentru desen. Același lucru este adevărat – orice este scris în el, ecranul va afișa ceea ce este afișat. Diferența dintre acesta și DDRAM este că datele scrise pe DDRAM sunt. Codificarea caracterelor și afișarea caracterelor sunt mai întâi găsite în CGROM și apoi mapate pe ecran, iar atunci când scrieți date pe GDRAM, informațiile matricei de puncte ale graficului utilizează 1 bit pentru a-și salva afișarea sau nu.

HCGROM: ​​(ROM de generare a caracterelor de jumătate de înălțime): generator de caractere de jumătate de lățime, care reprezintă litere și cifre, adică codul ASCII. Cât despre ICONRAM (IRAM): Se pare că 12864 în prezent pe piață nu are această funcție și nu am găsit-o. Informații despre aplicație, așa că nu le voi prezenta aici.

Mai jos vom începe o explicație a 12864 în jurul listei de resurse enumerate mai sus: DDRAM:

12864 folosit de autor are 4 rânduri x 32 de octeți de spațiu DDRAM în interior. Dar la un moment dat, ecranul poate afișa doar 2 linii x 32 de octeți de spațiu, deci ce rămâne cu spațiul rămas? Ele pot fi folosite pentru cache, iar aceste spații pot fi utile atunci când implementați afișajul de defilare.

Structura DDRAM este următoarea:

80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H, 88H, 89H, 8AH, 8BH, 8CH, 8DH, 8EH, 8FH90H, 91H, 92H, 93H, 93H, 9H, 95H , 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FHAOH, A1H, A2H, A3H, A4H, A5H, A6H, A7H, A8H, A9H, AAH, ABH, ACH, ADH, AEH, AFHBOH2, , B3H, B4H, B5H, B6H, B7H, B8H, B9H, BAH, BBH, BCH, BDH, BEH, BFH

Corespondența dintre adresă și afișarea pe ecran este următoarea:

Rând-80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H Al doilea rând: 90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H Al treilea rând: 88H, 88H, 88H, 88H , 8CH, 8DH, 8EH, 8FH Al patrulea rând: 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FH

Notă: Datele din partea roșie sunt afișate în jumătatea superioară a ecranului, iar datele din partea verde sunt afișate în jumătatea inferioară a ecranului. În general, folosim spațiul din cele două linii de mai sus pentru a afișa caractere, adică 80H~8FH, 90H~9FH. Spațiul fiecărei adrese este de 2 octeți, adică 1 cuvânt, deci poate fi folosit pentru a stoca caractere. Spațiul total de codificare este de 128 de octeți. Deoarece codarea fiecărui caracter chinezesc este de 2 octeți, fiecare adresă trebuie să folosească 2 octeți pentru a stoca un caracter chinezesc. Desigur, este și posibil să folosiți acești 2 octeți unul de celălalt, adică sunt afișate 2 caractere cu jumătate de lățime.

Datele stocate în DDRAM sunt toate coduri de caractere, iar codurile care pot fi scrise includ codul ASCII, codul GB2312 și codul BlG5. Biblioteca de fonturi 12864 folosită de autor pare a fi incompletă, iar"numărul" dintre caractere nu pot fi afișate, dar sunt afișate alte caractere. Dacă afișați un articol lung cu caractere chinezești, avantajul nu este potrivit.

Citirea și scrierea datelor DDRAM:

Toate datele citite și scrise ar trebui să trimită mai întâi adresa, apoi să citească și să scrie. Când scrieți date pe DDRAM, asigurați-vă că acestea sunt în setul de instrucțiuni de bază (deschis cu instrucțiunea 0x30), apoi scrieți adresa și apoi scrieți doi octeți de date consecutiv. Când citiți date, mai întâi scrieți adresa sub setul de instrucțiuni de bază, apoi citiți-o din nou și apoi citiți continuu 2 octeți de date. După citire, indicatorul de adresă este automat unul și trece la cuvântul următor. Dacă trebuie să citiți următorul Conținutul cuvântului trebuie să citească continuu doar 2 octeți de date. Lectura falsă de aici trebuie remarcată. Nu numai citirea CGRAM necesită o citire falsă, dar citirea altor GDRAM și DDRAM necesită mai întâi o citire falsă, iar apoi citirea ulterioară este o citire adevărată. Citirea falsă este de a citi datele o dată, dar datele nu vor fi stocate. Adică datele citite pentru prima dată după trimiterea adresei sunt greșite, iar datele de după aceasta sunt corecte. (manechin înseamnă lectură falsă)

12864液晶模块




Lucrurile care trebuie explicate despre stocarea codului în DDRAM sunt următoarele:

1) De fiecare dată, unitatea de operare a DDRAM este un cuvânt, adică 2 octeți. Când scrieți date pe DDRAM, scrieți mai întâi adresa, apoi trimiteți continuu 2 octeți de date și trimiteți mai întâi cuvântul înalt. Sunt trimise datele secțiunii, apoi datele octetului inferior. Același lucru este valabil și atunci când citiți date. Scrieți mai întâi adresa, apoi citiți datele cu octeți mari și apoi citiți datele cu octeți mici (vă rugăm să acordați atenție citirii false când citiți datele).

2). Când se afișează caractere cu jumătate de lățime a codului ASCII, trimiteți 2 octeți de cod ASCII la fiecare adresă, iar 2 caractere cu jumătate de lățime vor fi afișate corespunzătoare poziției de pe ecran. Cel din stânga este caracterul cu octeți mari, iar cel din dreapta este un caracter cu octeți mici.

3). La afișarea caracterelor chinezești, cei doi octeți de codificare a caracterelor chinezești trebuie să fie stocați în același spațiu de adrese și nu pot fi stocați în două adrese separat, altfel caracterele afișate nu vor fi caracterele dorite. Cei 2 octeți din fiecare cuvânt sunt combinați automat pentru a găsi fontul și pentru a afișa caracterele. Prin urmare, dacă scriem codarea de 2 octeți a unui caracter chinezesc la o adresă, caracterul va fi afișat corect. Octetul înalt al codificării este stocat în octetul mic al adresei anterioare, iar octetul mic al codificării este stocat în cuvântul înalt al adresei următoare. Secțiunea, evident că nu se vor combina pentru a găsi fontul, ci pentru a găsi fontul împreună cu octetul corespunzător fiecărei adrese.


12864液晶模块


4). Deoarece controlerul ST7920 oferă 4 caractere personalizate, aceste 4 caractere personalizate pot fi, de asemenea, afișate complet. În mod similar, aceste 4 caractere personalizate sunt, de asemenea, codificate, dar codarea acestor 4 caractere Sunt fixe, sunt 0000H, 0002HO004H și, respectiv, 0006H. Așa cum se arată mai jos:

12864液晶模块




Imaginea de mai sus desenează doar spațiul CGRAM de 2 caractere și vor fi 2 caractere în viitor. Se poate observa că fiecare caracter are 16 rânduri și 16 coloane, iar fiecare rând folosește 2 octeți. Prin urmare, spațiul ocupat de un caracter este de 32 de biți, iar adresa este de 6 biți. Adresele celor 4 caractere sunt: ​​O0H~ OFH,

10H~1FH, 20H~2FH, 30H~3FH. Codificarea folosește 2 octeți. Se poate observa că 2 biți sunt arbitrari, ceea ce indică faptul că pot exista mai multe codificări pentru aceste 4 caractere, dar folosim adesea cele 4 codificări enumerate mai sus.

CGRAM: (citire și scriere de date)

Structura CGRAM este prezentată mai sus. Aici adăugăm ceva conținut pentru a citi și scrie CGRAM. Înainte de a citi și a scrie, scrie mai întâi adresa. Instrucțiunea de a scrie CGRAM este adresa Ox4O{{1}}. Dar când scriem adresa, trebuie să scriem doar adresa primei rânduri. De exemplu, primul caracter este Ox40+OOH, apoi scrieți 2 octeți de date continuu, iar apoi indicatorul de adresă va crește automat cu unul și va sări la următoarea linie. Adresă și apoi scrieți 2 octeți de date. De fapt, programarea este să scrieți adresa și apoi să scrieți continuu 32 de octeți de date. Pentru a citi date, scrieți mai întâi prima adresă, apoi citiți fals o dată și apoi citiți continuu 32 de octeți de date.

GDRAM: (RAM pentru afișaj grafic)

Structura spațială a desenului RAM este prezentată în figura de mai jos:




Trimite anchetă