afișare de programare pe controlerul st7920

Vreau să spun despre programarea afișajului pe controlerul folosind controlerul ST7920 ATTiny2313.

afișare de programare pe controlerul st7920

Acest ecran are două moduri de funcționare:

Și are 3 moduri de conectare:

  1. Conexiune 8 biți de autobuz
  2. Conexiune 4 biți de autobuz
  3. Conexiuni pentru SPI (3 sau 2 biți de autobuz)

În acest post voi vorbi despre:

  • Lucrul în modul text
  • Conexiuni și programarea cu autobuzul 8 biți
  • Conectivitate și programare SPI

Pentru a conecta afișajul la controler, avem nevoie de:

  1. Display-ul de pe controlerul ST7920
  2. Subscript 2 x 320 ohm rezistor.
  3. Pentru modul rezistor de 8 biți 4.7 ohmi (sau mai mult)
  4. ATTiny2313 controler
  5. Sursa de alimentare la 5V.

schemă de conexiuni

Conectarea la magistrala de date de 8 biți

afișare de programare pe controlerul st7920

Contacte pinout:
GND - sol
VCC - + 5V
V0 - setare de contrast
RS - Definește modul de transfer de date (1 - o transmisie de date 0 - o echipă)
RW - Înregistrarea sau citirea (1 - Reading 0 - scriere)
E - Strobe
D0-D7 - Bus Informații
PSB - Specifică un protocol de transfer de date care urmează să fie utilizate (1 - 8/4 biți de autobuz, 0 - SPI)
BLA - Iluminare anod (+)
BLK - iluminare Catod (-)

Conectarea SPI

afișare de programare pe controlerul st7920

Contacte pinout:
GND - sol
VCC - + 5V
V0 - setare de contrast
RS - (CS) permite și dezactivează afișajul pentru a primi date (1 - Împiedică 0 - Permise)
RW - (SID) magistrală de date
E - (SCLK) Strobe
PSB - Specifică un protocol de transfer de date care urmează să fie utilizate (1 - 8/4 biți de autobuz, 0 - SPI)
BLA - Iluminare anod (+)
BLK - iluminare Catod (-)

rezistențe trimmer

RP1 - Contrast Control
RP2 - Dimmer

Descriere Protocoale de afișare de programare

Mod de 8 biți

Și astfel, de la început, voi spune cum, în general, există o operațiune cu un ecran.
În scopul de a lucra pe ecran, avem nevoie pentru a trimite comenzi și date pe ecran.
Aceasta se referă la echipă: Turn on / off display, afișarea cursorului, mutarea cursorului, etc. Datele includ, de exemplu de caractere pe care doriți să le vedeți pe ecran.

Să ne uităm la un exemplu de modul în care este inițializat la modul de 8 biți.
Să ne uităm la un exemplu de modul în care, inițializa:

  • Amână 50 microsecunde.
  • Trimite modul de comandă de configurare 8 biți.
  • Amână 120 microsecunde.
  • Trimite comanda de comutare de afișare (este specifică dacă cursorul în cazul în care cursorul și intermitent)
  • Amână 50 microsecunde.
  • Reexpediați funcția de setare a modului de 8 biți
  • Amână 120 microsecunde.
  • Transmite o comandă pentru a curăța ecranul
  • Amână 20 microsecunde.
  • Set MOD DE INTRARE (Această comandă spune ce modalitate de a muta cursorul după ce a scris un caracter, avem nevoie la dreapta, respectiv)

Asta e tot, după ce ați urmat acești pași, dacă specificați în afișajul de comandă permite afișarea unui cursor pe ecran veți vedea cursorul.

Luați în considerare modul de a trimite o comandă pentru a afișa un mod de 8 biți:

  • Setați nivelul scăzut E
  • Instalați un nivel scăzut al RS
  • Setați nivelul scăzut RW
  • Amână 1 ms.
  • Stabilirea unui nivel ridicat de E
  • Noi trimitem comanda octetul port de date
  • Amână 1 ms.
  • Setați nivelul scăzut E
  • Amână 50 microsecunde.

Pentru a trimite un octet de date se face exact același lucru, numai la începutul set de mare
nivel RS.
RS = 0 Comandă
RS = 1 Date

Iată cum de a trimite un octet de date:

  • Setați nivelul scăzut E
  • Instalați un nivel ridicat al RS
  • Setați nivelul scăzut RW
  • Amână 1 ms.
  • Stabilirea unui nivel ridicat de E
  • Noi trimitem comanda octetul port de date
  • Amână 1 ms.
  • Setați nivelul scăzut E
  • Amână 50 microsecunde.

Să ne uităm la codul de comandă trimiterea
În primul rând, instalați constantele care ar fi mai convenabil:

comandă funcția de trimitere:

Funcția date de trimitere:

Macroul cod LCD8_MACRO_DELAY a fost folosit, codul său

Acum, ia în considerare comenzile de inițializare într-un ecran de text, modul de 8 biți:

comanda FUNCȚIA SET: DL 0 0 1 0 0 0 RE
DL:

  • Dacă este setat la 1, apoi setați datele de 8 biți
  • Dacă este setat la 0, 4 biți de date set de transmisie
  • Dacă este setat la 1, acesta stabilește un set de comenzi extinse
  • Dacă este setat la 0, apoi a stabilit un set de comenzi de bază

Următorul este STATUS comanda DISPLAY: 0 0 0 0 1 D C B
D:

  • Dacă este setat la 1, afișajul este pornit
  • Dacă este setat la 0 afișajul este oprit
  • Dacă este setat la 1, atunci cursorul este inclus
  • Dacă este setat la 0, cursorul este oprit
  • Dacă este setat la 1, atunci cursorul va clipi
  • Dacă este setat la 0, cursorul nu va clipi

Următoarea simpla comanda CLEAR - curăța ecranul: 0 0 0 0 0 0 0 1

Și ultima comandă este MENȚIUNE MODE SET - stabilirea direcției de deplasare a cursorului: 0 0 0 0 0 1 I / D S

  • Dacă I ​​/ D = 1, atunci cursorul se deplasează spre dreapta
  • Dacă I ​​/ D = 0, atunci cursorul se deplasează spre stânga

Pe baza acestor patru funcții puteți scrie o funcție pentru a inițializa display:

După ecranul de inițializare, ar trebui să vedeți un cursor care clipește.

Acum, despre funcția de a primi o comandă de transmitere / date privind SPI.
Acest mod implică două linii:

  • SID este o persoană de contact de date, display-ul, de asemenea, cunoscut sub numele de RW
  • SCLK - o linie de poarta, de pe panoul de afișare, acesta este E

În modul SPI, transmiterea unei comenzi sau unui un octet de date are loc la un transfer de 24 de biți
protocol de transfer de date este după cum urmează:

  • Vom trece un rând de 4 unități
  • Pass 1 bit RW - citire sau scriere
  • Pass 1 bit RS - comandă sau de date
  • treci 0
  • Am trece de 4 biți ai octetului de date jumătatea superioară
  • Se trece 4 zerouri
  • Se trece de 4 biți ai octetului jumătate redus de date
  • Se trece 4 zero, consecutiv

În acest transfer de un octet este finalizat.

După fiecare bit transmis este poarta, adică:

  • Amână 1 ms.
  • Stabilirea unui nivel ridicat de SCLK
  • Amână 1 ms.
  • Setați SCLK nivel scăzut
  • Amână 1 ms.

Luați în considerare funcția de transmisie de comandă / date în modul SPI, dar mai întâi să declare constante:

Acum, funcția în sine:

modul text

Acum, după ce ați învățat cum să inițializa afișajul puteți selecta oricare dintre caracterele de pe ecran, de exemplu, să se retragă litera A:

Iar afișajul veți vedea A. scrisoare

modul grafic

Biblioteca pentru ST7920