Zaslon je nužni dio bilo kojeg stroja bilo da se radi o kućanskim aparatima ili industrijskim strojevima. Zaslon ne prikazuje samo mogućnosti upravljanja za upravljanje strojem, već prikazuje i status i izlaz zadatka koji taj stroj obavlja. Postoje mnoge vrste zaslona koji se koriste u elektronici, poput 7-segmentnog zaslona, 16x2 LCD zaslona, TFT zaslona osjetljivog na dodir, OLED zaslona itd.
LCD zaslon 16x2 najosnovniji je modul zaslona, a koristi se i u maloj elektroničkoj opremi poput kalkulatora, digitalnog brojila itd. Napravili smo puno projekata koristeći LCD 16x2, uključujući osnovno povezivanje s drugim mikrokontrolerima:
- LCD povezivanje s mikrokontrolerom 8051
- Povezivanje LCD zaslona s mikrokontrolerom ATmega32
- LCD povezivanje s PIC mikrokontrolerom
- Povezivanje LCD-a 16x2 s Arduinom
- LCD povezivanje 16x2 s Raspberry Pi pomoću Pythona
U ovom uputstvu vidjet ćemo kako povezati LCD 16x2 s Atmega16 AVR mikrokontrolerom i prikazati jednostavnu poruku dobrodošlice.
Komponente potrebne
- Atmega16
- LCD modul od 16x2
- Skakači
- Breadboard

Kružni dijagram


Programiranje Atmega16 za LCD zaslon 16x2
Programiranje ne zahtijeva vanjske knjižnice. Ovdje se Atmega16 programira pomoću USBASP-a i Atmel Studio7.0. Kompletni program i radni video daje se na kraju projekta, samo prenesite program u Atmega16 i zakrenite 10k POT za podešavanje svjetline LCD-a.U početku definirajte frekvenciju procesora i uključite potrebne knjižnice koje se isporučuju s paketom Atmel Studio, poput pristupa za IO pinove i
U programu definirajte RS i EN pin LCD -a. RS klinovi koriste se za odabir registra podataka i naredbi. Omogućavajuća igla zaključava podatke.
#define en PA3 #define rs PA2
Također definirajte koji će se PORT od Atmega16 koristiti za povezivanje LCD-a. Ovdje se koristi PORTA.
#define lcdDirection DDRA #define lcdPort PORTA
Sljedeći je korak konstrukcija funkcije koja će prihvatiti naredbu prosljeđivanjem parametra. Postoji mnogo LCD HEX naredbi. Hex naredbe koriste se za definiranje funkcije LCD-a. Budući da koristimo 4-bitni način LCD-a, bajt (8-bitni) bit će poslan u dva paketa. Jedan će paket biti gornji grickanje (4-bitni), a drugi paket donji grickanje (4-bitni).
void lcdCommand (nepotpisane char naredbe) { lcdPort = (lcdPort & 0x0F) - (naredbe & 0xF0); lcdPort & = ~ (1 <
Sljedeći bi korak bio prihvaćanje znakova i njihovo učvršćivanje na priključku LCD-a. Primljeni znakovi zatim se grickaju na LCD grickaju. Funkcija uzima znak koristeći parametar pass by, a zatim uzima gornji i donji grickanje. Pin rs postavljen je na visoku vrijednost za registar podataka, a zatim se šalje impuls koji raste, kako bi se podaci zaključali. Slično je poslano donje grickanje promjenom vrijednosti omogućavanja i slanjem rastućeg impulsa za omogućavanje.
void lcdChar (nepotpisani char znak) { lcdPort = (lcdPort & 0x0F) - (string & 0xF0); lcdPort - = (1 <
Ova funkcija samo pretvara znak u niz i može se kasnije koristiti u programu tamo gdje je potrebno pisanje niza.
void lcdString (char * str) { int j; za (j = 0; str! = 0; j ++) { lcdChar (str); } }
Sada je napisana funkcija samo za čišćenje ekrana. Samo trebate poslati naredbu 01 u heksadecimalnom položaju, a zatim samo postaviti kursor na početni položaj.
void lcdClear () { lcdCommand (0x01); _zakašnjenje_ms (2); lcdCommand (0x80); }
Sada je u glavnoj funkciji LCD inicijaliziran. U početku postavite smjer PORT za sučelje LCD-a. Ovdje je LUKA postavljena kao IZLAZ pa je postavljena FF.
lcdDirection = 0xFF; _zakašnjenje_ms (20)
Zatim postavite LCD u 4-bitni način slanjem 02 u hex. Pošaljite i 28 u heksadecimalnom položaju da biste ga postavili u 2 retka, matrični pikseli 15x7 u 4-bitnom načinu.
lcdCommand (0x02); lcdCommand (0x28);
Naredbu 0C i 06 se koristi za kontrolu kursora. I na kraju samo očistite zaslon slanjem 01 u heksadecimalnom obliku. Ovo će završiti inicijalizaciju LCD-a.
lcdCommand (0x0c); lcdCommand (0x06); lcdCommand (0x01);
Nakon završetka inicijalizacije samo testirajte LCD slanjem niza. Ovdje šaljemo Gudački „ Razmjena LCD ” u 1 -og reda.
lcdString ("Povezivanje LCD-a");
Zatim pomaknite kursor na sljedeći redak slanjem naredbe c0 u heksadecimalnom obliku. I na kraju na ovom položaju napišite niz "With Atmega1 6".
lcdCommand (0xC0); lcdString ("S Atmega16");

Ovim je završen kompletan vodič o povezivanju LCD-a 16x2 s Atmega16. Imajte na umu da ako ne dobijete nikakvu sliku ili piksele, provjerite ožičenje prema kodu i shemi sklopa ili promijenite vrijednost POT-a pričvršćenog na V0 pin na LCD-u. Ako sumnjate ili imate prijedloga, možete nas kontaktirati pisanjem na naš forum ili komentarom u nastavku.
