Afișează nokia 5110 - conectare la microcontroler, programare microcontrolere pic

Puteți să comandați un afișaj aici. Afișajul are un controler PCD8544, tensiunea de alimentare poate fi cuprinsă între 2,7 ... 3,3 V, consumul curent este de 240 ... 320 μA. Modulul are următoarele concluzii pentru conectare:

  1. RST - resetați terminalul controlerului de afișaj
  2. Rezoluția CE a datelor
  3. DC - selecție mod de transmisie, comandă sau date
  4. Intrare de date DIN-SPI
  5. CLK - ieșire ceas interfață SPI
  6. VCC - afișează puterea de ieșire
  7. LUMINĂ - controlul de ieșire al luminii de fundal, pentru includere este necesar să se dea un nivel logic scăzut
  8. GND - fir comun (polul negativ al sursei de alimentare)

Transmisia de date se realizează utilizând o interfață standard SPI, frecvența ceasului este de până la 4 MHz. În timpul sesiunii de transfer de date, linia CE trebuie să fie setată la un nivel logic scăzut, permițând astfel transmisia. Atunci când comanda de afișare este transmis, DC trebuie să „trage“ linie la sol (log. 0), la un nivel ridicat de logica pe liniile de curent continuu poate transmite date care vor afișate în mod direct.

Când afișajul este pornit, este necesar să se efectueze procedura de resetare, în decurs de 30 de ms după alimentarea cu energie electrică, pentru emiterea unui impuls negativ pe linia RST, durata minimă a impulsului (nivel logic scăzut) este de 100 ns. Log. 0 pe linia RST poate fi prezentă înainte de aplicarea puterii.

Următorul tabel prezintă comenzile de control al afișajului:

După procedura de resetare, controlerul afișajului este dezactivat, toate segmentele sunt stinse, deci trebuie să inițializați prin trimiterea următoarelor octeți pe afișaj:

După inițializare, afișajul este gata de funcționare, dar este necesar să se efectueze o altă operație, după resetare și inițializarea segmente de stare nu sunt definite, și, prin urmare, afișajul va arăta gunoiul trebuie să fie curățate, specificând toate 0x00 valoare coloane.
Următoarea imagine prezintă schema de conectare a afișajului Nokia 5110 la microcontrolerul PIC16F628A:

Afișează nokia 5110 - conectare la microcontroler, programare microcontrolere pic

Partea principală a codului programului este prezentată mai jos (codul complet este disponibil pentru descărcare la sfârșitul articolului):

Configurarea microcontrolerului

errorlevel -302; nu afișați mesajele cu eroare 302 în listă

Sec. 0020h; registre auxiliare de cont

nomer equ 0023h; stocarea codului ascii pentru caracter

scetbit equ 0024h; numără numărul de biți de numărare

perem equ 0025h; registrator octet helper pentru spi

temp equ 0026h; registru auxiliar de cont

tmp_tab equ 0027h; registrul de stocare a numerelor de tabel

#DEFINE res_lcd PORTB, 0; atribuirea numelor la liniile de intrare / ieșire

#DEFINE cs PORTB, 1; pentru a lucra cu ecranul LCD Noki 5110

#DEFINE dat_com PORTB, 2;

#DEFINE sdata PORTB, 3;

Acest cod afișează 6 linii consecutive, cu o pauză de 1 secundă: "Radiolaba.ru", Cod de test, * Afișaj *, Nokia 5110, Controller, PIC16F628A.

Fiecare caracter are dimensiuni de 5 × 7 pixeli, adică este format din 5 octeți. Controlerul de afișare nu are un generator de caractere încorporat, astfel încât octeții pentru desenarea caracterelor sunt incluse în codul programului sub formă de tabele de date. Un total de 162 de caractere sunt acceptate, acestea sunt caractere speciale, numere, simboluri latine și chirilic, toate sunt împărțite în 4 tabele de date, deoarece un singur tabel poate conține numai 256 octeți de date.

Subroutina generatorului de caractere (viv_symb), bazată pe codul de caractere ASCII, extrage octeții din tabelul corespunzător și le afișează pe ecran. Mai întâi, este definită o tabelă de date în care sunt localizate octetele de caractere, apoi o valoare specifică este scăzută din codul de caractere ASCII astfel încât să nu depășească limitele tabelului atunci când este efectuată tranziția calculată. Valoarea rezultată este înmulțită cu 5, aceasta este necesară pentru a lovi primul octet al simbolului în tranziția calculată, deoarece fiecare caracter ocupă un octet în tabel. Apoi, restul de 4 octeți sunt afișați în ordine.

În subrutina viv_symb, o coloană goală (octetul 0x00) este introdusă suplimentar pentru a separa caracterele de pe ecran, adică 84/6 = 14 caractere care se potrivesc pe un rând al afișajului. Byte pentru desenul de caractere ocupă o parte semnificativă a memoriei programului de microcontroler: 162 * 5 = 810 de cuvinte, sau 40,5% din memorie.

Pentru a afișa simbolul dimensiunii unghiului și a temperaturii, valoarea 176 (codul caracterelor ASCII) trebuie transmisă subrutinei viv_symb.

La sfârșitul acestui articol, puteți descărca, de asemenea, codul de program pentru dubla dimensiunea scoate fontului 9 × 14. Când utilizați acest font, afișajul se va potrivi cu 3 rânduri de 8 caractere. Programul afișează 3 linii în ordine, cu o pauză de 1 secundă: + PIC16 +, Nokia, 5110.

În acest cod nu sunt incluse toate simbolurile: cifre 0-9, majuscule latine A-Z, o perioadă, un spațiu, o linie, plus și un simbol al dimensiunii unghiului și temperaturii. Aceste caractere ocupă 41 * 18 = 738 octeți sau 37% din memoria programelor.

În plus față de simboluri, afișajul poate afișa grafice cu o rezoluție de 48 × 84 pixeli și chiar filme animate. O imagine va ocupa 504 de octeți, prin urmare, pentru stocarea o mulțime de imagini este necesar să se utilizeze memoria externă EEPROM sau o cartelă SD.

Afișează nokia 5110 - conectare la microcontroler, programare microcontrolere pic
Afișează nokia 5110 - conectare la microcontroler, programare microcontrolere pic