Az emberi világ és a gépi világ közötti jó kommunikáció megteremtése érdekében a kijelző egységek fontos szerepet játszanak. Tehát a beágyazott rendszerek fontos részét képezik. A nagy vagy kicsi kijelző egységek ugyanazon az alapelven működnek. Az összetett megjelenítő egységek, például a grafikus kijelzők és a 3D megjelenítések mellett ismerni kell az egyszerű kijelzőkkel való munkát, például a 16x1 és 16x2 egységeket. A 16x1-es kijelzőegység 16 karakterből áll és egy sorban lesz. A 16x2 LCD lesz 32 karakter összesen 16in 1 -jén sor és további 16 2 ndvonal. Itt meg kell érteni, hogy minden karakterben 5x10 = 50 pixel van, így egy karakter megjelenítéséhez mind az 50 pixelnek együtt kell működnie. De nem kell aggódnunk emiatt, mert a kijelzőegységben van egy másik vezérlő (HD44780), amely a pixelek vezérlését végzi. (LCD egységben láthatja, hátul a fekete szem).
Szükséges alkatrészek
Hardver:
ATmega32 mikrovezérlő
Tápegység (5v)
AVR-ISP programozó
JHD_162ALCD (16x2 LCD)
100uF kondenzátor.
Szoftver:
Atmel stúdió 6.1
Progisp vagy flash varázslat
Áramkör diagram és magyarázat
Amint azt az LCD és az ATmega32 áramkör közötti interfész mutatja, láthatja, hogy az ATMEGA32 PORTA az adatport LCD-jéhez csatlakozik. Itt nem szabad elfelejteni letiltani a JTAG kommunikációt az ATMEGA PORTC-jában a biztosíték byte-ok megváltoztatásával, ha a PORTC-ot normál kommunikációs portként akarja használni. A 16x2 LCD-ben 16 érintkező van, ha van háttérvilágítás, ha nincs háttérvilágítás, akkor 14 tű lesz. A hátsó lámpa csapjai bekapcsolhatók, vagy elhagyhatók. Most a 14 csapok vannak 8 adatok csapok (7-14 vagy D0-D7), 2 tápegység csapok (1 & 2 vagy VSS & VDD vagy GND & + 5V), 3 rd pin kontraszt vezérlő (VEE-kontrollok milyen vastag a karaktereket kell lennie ábra), 3 vezérlőcsap (RS & RW & E)
A fenti áramkörben a 16x2 LCD és az AVR mikrovezérlő közötti interfészen megfigyelheti azt, hogy csak két vezérlőtüzet vettem. Ez rugalmasabbá teszi a jobb megértést. A kontrasztbitet és a READ / WRITE-t nem használják gyakran, így testzárlatosak lehetnek. Ez az LCD-t a legnagyobb kontrasztú és olvasási módba helyezi. Csak az ENABLE és az RS csapokat kell vezérelnünk, hogy ennek megfelelően küldhessünk karaktereket és adatokat.
Az ATmega32 mikrovezérlő és a 16x2 LCD közötti kapcsolatok az alábbiak:
PIN1 vagy VSS - föld
PIN2 vagy VDD vagy VCC - + 5v teljesítmény
PIN3 vagy VEE - föld (a legjobb kontrasztot nyújtja a kezdőknek)
PIN4 vagy RS (Register Selection) - a mikrovezérlő PD6-ja
PIN5 vagy RW (olvasás / írás) - földelés (az LCD-t olvasási módba állítja, megkönnyíti a kommunikációt a felhasználó számára)
PIN6 vagy E (engedélyezés) - a mikrovezérlő PD5-je
A mikrokontroller PIN7 vagy D0 - PA0
PIN8 vagy D1 - PA1
PIN9 vagy D2 - PA2
PIN10 vagy D3 - PA3
PIN11 vagy D4 - PA4
PIN12 vagy D5 - PA5
PIN13 vagy D6 - PA6
PIN14 vagy D7 - PA7
Az áramkörben látható, hogy 8 bites kommunikációt használtunk (D0-D7), de ez nem kötelező, és használhatunk 4 bites kommunikációt is (D4-D7), de a 4 bites kommunikációs program egy kicsit bonyolulttá válik a kezdők számára, így csak mentünk 8 bites kommunikáció.
Tehát puszta megfigyelésből a fenti táblázatból 10 érintkezős LCD-t csatlakoztatunk a vezérlőhöz, amelyben 8 érintkező adat és 2 vezérlő érintkező.
Dolgozó
A kezdéshez ismernie kell a 16x2 LCD 10 érintkezőjének funkcióit (8 adatcsap + 2 vezérlőcsap). A 8 adatcsap adat- vagy parancsküldésre szolgál az LCD-re. Két vezérlő csapban:
1. Az RS (Register selection) pin segítségével meg kell mondani az LCD-nek, hogy adatokat küldünk-e neki, vagy parancsolunk-e neki.
Például:
A fenti táblázatban az egyik az adatport (D7-D0) esetében a „0b0010 1000 vagy 0x28” értékre szólítja az LCD-t, hogy jelenítse meg a „(” szimbólumot. A 2. táblázatban ugyanaz a 0x28 érték mondja az LCD-nek, hogy „Ön 5x7 pontos viselkedj, mint egy ”, tehát ugyanazért az értékért a felhasználó két dolgot definiálhat, most ezt a helyzetet semlegesíti a Register Selection pin, ha az RS pin alacsonyra van állítva, akkor az LCD megérti, hogy parancsot küldünk. Ha az RS pin-t magasra állítjuk, akkor Az LCD megérti, hogy az adatokat küldjük, és így mindkét esetben az LCD az RS port értéke szerint tiszteletben tartja az adatport értékét.
2. Az E (Engedélyezés) tű egyszerűen a „számítógép áramellátásának LED-jét” jelzi, ez a tű magasra van állítva, hogy az LCD-nek azt mondja: „A vezérlő adatportjának fogadására”. Amint ez a tű magasra süllyed, az LCD feldolgozza a fogadott adatokat, és megmutatja a megfelelő eredményt. Tehát ez a tű magasra van állítva az adatok elküldése előtt, és az adatok elküldése után a földre húzódik.
A hardver csatlakoztatása után indítsa el az Atmel stúdiót, és kezdjen el egy új projektet a program megírásához, nyissa meg a programozási képernyőt, és indítsa el a programot. A programnak követendő show-ként kell követnie.
Először elmondjuk a vezérlőnek, hogy mely portokat használjuk az adatok és az LCD vezérléséhez. Ezután mondja meg a vezérlőnek, hogy mikor kell adatokat vagy parancsot küldeni, az RS és E csapokkal játszva.
A programban használt fogalmak rövid ismertetése:
1. E értéke magasra van állítva (az LCD-nek azt mondja, hogy fogadjon adatokat), az RS-je pedig alacsony (az LCD-nek azt mondja, hogy parancsot adunk)
2. A 0x01 érték megadása az adatportnak parancsként a képernyő törléséhez
3. Az E értéke magas (az LCD-nek azt mondja, hogy fogadjon adatokat), az RS pedig magas (az LCD-nek azt mondja, hogy adunk adatokat)
4. Vegyünk egy karakterláncot, amely az egyes karaktereket egyenként elküldi.
5. Az E alacsony szintre van állítva (azt mondja az LCD-nek, hogy készen állunk az adatok küldésére)
6. Az utolsó parancs után az LCD befejezi a kommunikációt, feldolgozza az adatokat és megjeleníti a képernyőn a karakterláncot.
Ebben a forgatókönyvben egymás után küldjük el a karaktereket. A karaktereket az LCD-nek ASCII kódok (amerikai szabványos információcsere kód) adják.
Az ASCII kódok táblázata fent látható. Ahhoz, hogy az LCD kijelzőn megjelenhessen egy „@” karakter, hexadecimális kódot kell küldeni „64”. Ha '0x62'-t küldünk az LCD-re, akkor a'> 'szimbólum jelenik meg. Így elküldjük a megfelelő kódokat az LCD-nek, hogy megjelenítsen egy nevet.
Az LCD és az ATmega32 AVR mikrovezérlő közötti kommunikáció módját az alábbiakban a C kód lépésről lépésre lehet a legjobban elmagyarázni,