Pro zajištění dobré komunikace mezi lidským světem a světem strojů hrají zobrazovací jednotky důležitou roli. A proto jsou důležitou součástí vestavěných systémů. Zobrazovací jednotky - velké i malé, fungují na stejném základním principu. Kromě komplexních zobrazovacích jednotek, jako jsou grafické displeje a 3D zobrazování, musíte znát práci s jednoduchými displeji, jako jsou jednotky 16x1 a 16x2. Zobrazovací jednotka 16x1 bude mít 16 znaků a bude v jednom řádku. 16x2 LCD bude mít celkem 32 znaků 16 v 1. řádku a dalších 16 ve 2. řádkučára. Zde je třeba pochopit, že v každém znaku je 5x10 = 50 pixelů, aby bylo možné zobrazit jeden znak, musí všech 50 pixelů spolupracovat. S tím si ale nemusíme dělat starosti, protože v zobrazovací jednotce je další řadič (HD44780), který řídí pixely. (vidíte to na LCD jednotce, je to černé oko vzadu).
Požadované komponenty
Hardware:
Mikrokontrolér ATmega32
Napájení (5 V)
Programátor AVR-ISP
JHD_162ALCD (16x2 LCD)
100uF kondenzátor.
Software:
Atmel studio 6.1
Progisp nebo flash magie
Schéma zapojení a vysvětlení
Jak je znázorněno na LCD rozhraní s obvodem ATmega32, můžete vidět, že PORTA z ATMEGA32 je připojena k LCD datového portu. Zde je třeba pamatovat na zakázání komunikace JTAG v PORTC ATMEGA změnou bajtů pojistek, pokud chcete použít PORTC jako normální komunikační port. V 16x2 LCD je 16 kolíků, pokud je podsvícení, pokud není podsvícení, bude 14 kolíků. Jeden může napájet nebo nechat kolíky podsvícení. Nyní ve 14 kolíky jsou 8 datových kolíky (7-14 nebo D0-D7), 2 napájecí kolíky elektrárny (1 & 2 nebo VSS a VDD nebo GND a + 5 V), 3 rd kolík pro řízení kontrastu (VEE-určuje, jak silná znaky musí být vyobrazeno), 3 ovládací piny (RS & RW & E)
Ve výše uvedeném obvodu na rozhraní 16x2 LCD s mikrokontrolérem AVR můžete pozorovat, že jsem vzal pouze dva ovládací piny. To dává flexibilitu lepšího porozumění. Kontrastní bit a READ / WRITE se často nepoužívají, aby mohly být zkratovány na zem. LCD displej se tak dostane do nejvyššího kontrastu a režimu čtení. Abychom mohli odpovídajícím způsobem odesílat znaky a data, musíme pouze ovládat piny ENABLE a RS.
Připojení mezi mikrokontrolérem ATmega32 a 16x2 LCD je uvedeno níže:
PIN1 nebo VSS - zem
PIN2 nebo VDD nebo VCC - napájení + 5 V.
PIN3 nebo VEE - země (poskytuje maximální kontrast nejlepší pro začátečníky)
PIN4 nebo RS (výběr registru) - PD6 mikrokontroléru
PIN5 nebo RW (čtení / zápis) - uzemnění (přepne LCD do režimu čtení, což uživateli usnadní komunikaci)
PIN6 nebo E (povolit) - PD5 mikrokontroléru
PIN7 nebo D0 - PA0 mikrokontroléru
PIN8 nebo D1 - PA1
PIN9 nebo D2 - PA2
PIN10 nebo D3 - PA3
PIN11 nebo D4 - PA4
PIN12 nebo D5 - PA5
PIN13 nebo D6 - PA6
PIN14 nebo D7 - PA7
V obvodu, který vidíte, jsme použili 8bitovou komunikaci (D0-D7), ale to není povinné a můžeme také použít 4bitovou komunikaci (D4-D7), ale se 4bitovým komunikačním programem se pro začátečníky stává trochu složitější, takže jsme šli s 8bitová komunikace.
Takže z pouhého pozorování z výše uvedené tabulky připojujeme 10 pinů LCD k řadiči, ve kterém 8 pinů jsou datové piny a 2 piny pro ovládání.
Pracovní
Chcete-li začít, musíte znát funkce 10 pinů 16x2 LCD (8 datových pinů + 2 ovládací piny). 8 datových pinů slouží k odesílání dat nebo příkazů na LCD. Ve dvou kontrolních kolících:
1. Pin RS (výběr výběru) má informovat LCD, zda do něj posíláme data nebo mu dáváme příkaz.
Například:
Ve výše uvedené tabulce jedna pro datový port (D7-D0) hodnota „0b0010 1000 nebo 0x28“ říká LCD, aby zobrazila symbol „(“. V tabulce dvě stejná hodnota 0x28 říká LCD „jste LCD 5x7 bodů a chovat se jako jeden “, takže pro stejnou hodnotu může uživatel definovat dvě věci, nyní je tato situace neutralizována pinem pro výběr registru, pokud je pin RS nastaven na nízkou hodnotu, LCD pochopí, že posíláme příkaz. Pokud nastavíme RS pin na vysokou hodnotu LCD chápe, že odesíláme data. A tak v obou případech LCD respektuje hodnotu datového portu podle hodnoty pinu RS.
2. E (Enable) pin je jednoduše říct „LED indikace napájení PC“, tento pin je nastaven na high, aby řekl LCD „přijímat data z datového portu řadiče“. Jakmile tento pin poklesne po vysokém, LCD zpracuje přijatá data a zobrazí odpovídající výsledek. Tento pin je tedy před odesláním dat nastaven na vysokou hodnotu a po odeslání dat je stažen na zem.
Nyní po připojení hardwaru spusťte Atmel studio a spusťte nový projekt pro psaní programu, nyní otevřete programovací obrazovku a spusťte program wring. Program musí následovat jako následující show.
Nejprve řekneme řadiči, které porty používáme pro data a ovládání LCD. Poté sdělte řadiči, kdy má odeslat data nebo příkaz, hraním s kolíky RS a E.
Stručné vysvětlení pojmů použitých v programu:
1. E je nastaveno vysoko (říká LCD přijímat data) a RS je nastaveno nízko (říká LCD dáváme příkaz)
2. Dát hodnotu 0x01 datovému portu jako příkaz k vymazání obrazovky
3. E je nastavena vysoko (říká LCD, aby přijímala data) a RS je nastavena vysoko (říká LCD, že dáváme data)
4. Vezmeme-li řetězec znaků, posíláme každý znak v řetězci jeden po druhém.
5. E je nastaveno na nízkou hodnotu (sděluje LCD, že jsme dokončili odesílání dat)
6. Po posledním příkazu LCD ukončí komunikaci a zpracuje data a zobrazí řetězec znaků na obrazovce.
V tomto scénáři budeme posílat znaky jeden po druhém. Znaky se na LCD zadávají pomocí kódů ASCII (americký standardní kód pro výměnu informací).
Tabulka kódů ASCII je uvedena výše. Zde, aby se na displeji LCD zobrazil znak „@“, musíme poslat hexadecimální kód „64“. Pokud pošleme na displej „0x62“, zobrazí se symbol „>“. Takto pošleme příslušné kódy na LCD, aby se zobrazilo jméno.
Způsob komunikace mezi LCD a mikrokontrolérem ATmega32 AVR je nejlépe vysvětlit krok za krokem v C kódu níže,