- Componenti richiesti:
- LCD grafico:
- Visualizzazione di un'immagine sul display LCD grafico utilizzando 8051:
- Spiegazione del circuito:
- Spiegazione della programmazione:
Nella nostra vita quotidiana, vediamo molti tipi di dispositivi per la visualizzazione di testo, immagini e grafica. Gli LCD sono uno dei dispositivi di visualizzazione più popolari in elettronica e vengono utilizzati principalmente in tutti i progetti che visualizzano un qualche tipo di informazione. Esistono molti tipi di LCD utilizzati nei progetti elettronici. Abbiamo già utilizzato LCD 16X2 in molti dei nostri progetti e anche LCD TFT con Arduino. Puoi trovare tutti i nostri progetti relativi a LCD 16X2 seguendo questo link, incluso l' interfacciamento con 8051, AVR, Arduino e molti altri.
In questo tutorial faremo l' interfacciamento grafico LCD con il microcontrollore 8051. In questo progetto, mostreremo come visualizzare un'immagine su LCD grafico (GLCD).
Componenti richiesti:
- LCD grafico
- Microcontrollore AT89c52 8051
- 7805 regolatore di tensione
- Condensatore 1000uf
- Condensatore da 10 uF
- Resistenza da 10K
- 10K POT
- Oscillatore in cristallo 12 MH
- Cavo di collegamento
- Tagliere per il pane
- Burg si spoglia maschio
- Alimentazione elettrica
- GUIDATO
- Resistenza da 220 Ohm
- Resistenza da 1K
LCD grafico:
Un semplice LCD 16x2 ha 16 pin, ma l' LCD grafico ha 20 pin. La descrizione dei pin è fornita di seguito come da scheda tecnica:
N. pin | Nome pin | Descrizione | Funzione |
1 | VSS | Terra | 0 Volt |
2 | VDD | Alimentazione elettrica | 5 Volt |
3 | V0 | Regolazione del contrasto LCD | |
4 | RS | Selezione registro comando / dati | RS = 0: selezione comando e RS = 1: selezione dati |
5 | R / W | Lettura / scrittura registro | R / W = 0: scrittura selezione e R / W = 1: lettura selezione |
6 | E | Abilita segnale | |
7 | DB0 | Pin di input / output dati (DB0-DB7) | 8 bit (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, segnale di selezione del chip per IC1 |
16 | CS2 | Chip Select | CS2 = 1, segnale di selezione del chip per IC2 |
17 | RST | Ripristina | Ripristina GLCD |
18 | VEE | Tensione negativa per driver LCD | |
19 | UN | Retroilluminazione a LED | 5 Volt |
20 | K | Retroilluminazione a LED | Terra |
Visualizzazione di un'immagine sul display LCD grafico utilizzando 8051:
Per mostrare un'immagine su un LCD grafico, prima dobbiamo convertire quell'immagine in codice assembly, in modo che il microcontrollore 8051 possa capirlo e leggerlo. Quindi dobbiamo seguire i seguenti passaggi per convertire l'immagine in codice HEX:
Passaggio 1: per prima cosa dobbiamo scaricare un'applicazione che converta l'immagine (formato BMP) in codice assembly. Quindi scarica l' applicazione di conversione di immagini BMP2ASM da questo collegamento, fai clic con il pulsante destro del mouse sul collegamento e quindi fai clic su Salva collegamento con nome…
Passo 2: Quindi, seleziona l'immagine che desideri visualizzare sul display LCD grafico e convertila in BMP, (se non è già in formato BMP) utilizzando qualsiasi applicazione come MS Paint, Photoshop ecc. Oppure puoi trovare molti siti Web online per la conversione del formato immagine. Abbiamo sotto l'immagine BMP, con dimensioni 128x64:
Passaggio 3: ora estrai il file BMP2ASM.zip, che abbiamo scaricato nel passaggio 1, apri Bmp2asm.exe al suo interno e seleziona l'immagine BMP.
Passaggio 4: ora premere "Converti" nella finestra dell'applicazione BMP2ASM.
Passaggio 5: quindi copiare il codice generato e incollarlo nel programma di 8051 in Keil uVision. Apporta alcune modifiche e compila il codice.
Ora il tuo codice è pronto per essere caricato nel microcontrollore 8051.
Spiegazione del circuito:
Il collegamento del circuito, per l' interfacciamento dell'LCD grafico al microcontrollore 8051, è facile e quasi uguale al collegamento dell'LCD 16x2 all'8051. Ma l'LCD 16x2 ha 16 pin e GLCD ha 20 pin.
Un potenziometro da 10K viene utilizzato per impostare il contrasto per GLCD. Perni di controllo GLCD RS, R / W ed E sono collegati direttamente 89C52 numero pin P1.0, P1.1 e P1.2. I pin di selezione del chip CS1 e CS2 dell'LCD sono collegati rispettivamente ai pin P1.3 e P1.4. I pin dati DB0-DB7 sono collegati direttamente alla PORTA P2. Un regolatore di tensione 7805 viene utilizzato per la normale alimentazione a 5 volt. Nel video dimostrativo, ho utilizzato l'alimentatore Arduino.
Spiegazione della programmazione:
Prima di tutto, includiamo i file di intestazione richiesti nel programma e definiamo i bit per i pin di controllo e dati di GLCD.
#includere
Dopo di ciò, abbiamo creato una funzione di ritardo.
void delay (int itime) {int i, j; per (i = 0; i
La funzione void lcd_disp_on () viene utilizzata per l'accensione del display.
La funzione void setCursorY (int y) viene creata per impostare la colonna in GLCD e la funzione void setCursorX (int x) viene creata per impostare la pagina su GLCD. Il file di codice completo è fornito nella sezione del codice sottostante.
Dopo aver impostato Colonna e Pagina, abbiamo scritto una funzione per inviare comandi e dati a GLCD.
void lcdprint (char dat, int size) {unsigned int i; per (i = 0; i
Nella funzione void main () , abbiamo cancellato GLCD e quindi impostato Colonna e Pagina. Successivamente, invia i dati al display LCD utilizzando la funzione void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (immagine, x); }}…………………..
Flusso di codice:
- Per prima cosa, quando accendiamo il sistema, il programma cancella il GLCD e accende il display.
- Quindi imposta il cursore su Colonna, da dove vogliamo scrivere i dati.
- Quindi imposta il cursore su Pagina, da dove vogliamo scrivere i dati.
- Ora il programma invia i dati alla posizione selezionata uno per uno fino a 128X8 volte. Perché un GLCD ha 8 pagine e 128 colonne.