16×2 LCD wordt zo genoemd omdat; het 16 Kolommen en 2 Rijen heeft. Er zijn veel combinaties beschikbaar, zoals 8×1, 8×2, 10×2, 16×1, enz. Maar de meest gebruikte is de 16*2 LCD, vandaar dat we die hier gebruiken.
Alle hierboven genoemde LCD-displays hebben 16 pinnen en de programmeeraanpak is ook hetzelfde, zodat de keuze aan u wordt overgelaten. Hieronder vindt u de pinout en de pinbeschrijving van de 16×2 LCD-module:
Sr.nr |
Pin No. |
Pin Name |
Pin Type |
Pin Description |
Pin Connection |
Pin 1 |
Ground |
Source Pin |
Dit is een grondpen van de LCD |
Verbonden met de grond van de MCU/voedingsbron |
|
Pin 2 |
VCC |
Source Pin |
Dit is de voedingsspanningspin van het LCD |
Gesloten op de voedingspen van de stroombron |
|
Pin 3 |
V0/VEE |
Control Pin |
Het contrast van het LCD-scherm wordt aangepast. |
Aangesloten op een variabele POT die 0-5V |
|
Pin 4 |
Register Select |
Control Pin |
Schakelt tussen Command/Data Register |
Aangesloten op een MCU-pin en krijgt ofwel 0 of 1. 0 -> Command Mode 1-> Data Mode |
|
Pin 5 |
Read/Write |
Control Pin |
Schakelt het LCD-scherm tussen lezen en schrijven |
Geschakeld op een MCU-pin en krijgt een 0 of een 1. 0 -> Schrijf-bewerking 1-> Leesbewerkingen |
|
Pin 6 |
Enable |
Control Pin |
Moet hoog worden gehouden om lees-/schrijfbewerkingen uit te voeren |
Verbonden met MCU en wordt altijd hoog gehouden. |
|
Pin 7-14 |
Data Bits (0-7) |
Data/Command Pin |
Pins gebruikt om commando of data naar het LCD-scherm te sturen. |
In 4-draads modus Alleen 4 pinnen (0-3) zijn verbonden met de MCU In 8-draads modus Alle 8 pinnen (0- 7) zijn verbonden met de MCU Alle 8 pinnen (0- 7) zijn verbonden met de MCU .7) zijn verbonden met de MCU |
|
Pin 15 |
LED positief |
LED Pin |
Normale LED-achtige werking om het LCD-scherm te verlichten |
Aangesloten op +5V |
|
Pin 16 |
LED negatief |
LED Pin |
Normale LED-achtige werking om het LCD-scherm te verlichten aangesloten op GND. |
Verbonden met massa |
Het is niet erg als u de functie van alle pinnen niet begrijpt, ik zal ze hieronder in detail uitleggen. Laten we nu ons LCD-scherm omdraaien:
Ok, wat zijn die twee zwarte cirkels op de achterkant van ons LCD-scherm?
Deze zwarte cirkels bestaan uit een interface-IC en de bijbehorende componenten die ons helpen om dit LCD-scherm met de MCU te gebruiken. Omdat onze LCD een 16*2 Dot matrix LCD is en dus (16*2=32) 32 karakters in totaal zal hebben en elk karakter zal bestaan uit 5*8 Pixel Dots. Een enkel karakter met al zijn pixels ingeschakeld is te zien in de onderstaande afbeelding.
Dus nu weten we dat elk karakter (5*8=40) 40 Pixels heeft en voor 32 karakters hebben we (32*40) 1280 Pixels. Verder moet de LCD ook instructies krijgen over de positie van de Pixels.
Het wordt een hectische taak om alles met de hulp van MCU te verwerken, vandaar dat een Interface IC zoals HD44780 wordt gebruikt, dat op de LCD Module zelf wordt gemonteerd. De functie van dit IC is om de opdrachten en gegevens van de MCU te ontvangen en ze te verwerken tot zinvolle informatie op ons LCD-scherm.
Laten we de verschillende soorten modi en opties bespreken die beschikbaar zijn in ons LCD-scherm dat moet worden bestuurd door onze besturingspinnen.
4-bits en 8-bits modus van LCD:
Het LCD-scherm kan in twee verschillende modi werken, namelijk de 4-bits modus en de 8-bits modus. In de 4-bit modus verzenden we de gegevens nibble voor nibble, eerst de bovenste nibble en dan de onderste nibble. Voor degenen die niet weten wat een nibble is: een nibble is een groep van vier bits, dus de onderste vier bits (D0-D3) van een byte vormen de lower nibble terwijl de bovenste vier bits (D4-D7) van een byte de higher nibble vormen. Hierdoor kunnen we 8 bit data versturen.
Waarbij we in 8 bit mode de 8 bit data direct in één keer kunnen versturen omdat we alle 8 datalijnen gebruiken.
Nu zult u het wel geraden hebben, Ja 8 bit mode is sneller en foutlozer dan 4 bit mode. Maar het grote nadeel is dat het 8 datalijnen nodig heeft die verbonden zijn met de microcontroller. Hierdoor komen we I/O pinnen tekort op onze MCU, dus wordt de 4-bit mode veel gebruikt. Er worden geen controlepinnen gebruikt om deze modes in te stellen. Het is alleen de manier van programmeren die verandert.
Lees en schrijf mode van LCD:
Zoals gezegd, bestaat het LCD zelf uit een Interface IC. De MCU kan zowel lezen als schrijven naar dit interface-IC. In de meeste gevallen schrijven we alleen naar het IC, omdat lezen het complexer maakt en dergelijke scenario’s zeer zeldzaam zijn. Informatie zoals de positie van de cursor, de status van de interrupts, enz. kan worden gelezen, maar dat valt buiten het bestek van deze tutorial.
Het interface-IC dat in de meeste LCD-schermen aanwezig is, is HD44780U. Om ons LCD-scherm te kunnen programmeren, moeten we de volledige datasheet van het IC kennen. De datasheet wordt hier gegeven.
LCD Commando’s:
Er zijn enkele vooraf ingestelde commando-instructies in het LCD-scherm, die we naar het LCD-scherm moeten sturen via een microcontroller. Enkele belangrijke commando-instructies worden hieronder gegeven:
Hex Code |
Command to LCD Instruction Register |
0F |
LCD ON, cursor AAN |
Toonscherm wissen |
|
Return home |
|
Cursor verkleinen (cursor naar links schuiven) |
|
Cursor vergroten (cursor naar rechts verplaatsen) |
|
Cursor naar rechts verplaatsen |
|
Verschuiving display links |
|
0E |
Display AAN, cursor knippert |
Cursor naar begin van eerste regel |
|
C0 |
Cursor naar begin van tweede regel |
2 lijnen en 5×7 matrix |
|
Cursor lijn 1 positie 3 |
|
3C |
Activeer tweede lijn |
Display UIT, cursor UIT |
|
C1 |
Jump naar tweede regel, positie 1 |
OC |
Display AAN, cursor UIT |
C1 |
Jump naar tweede regel, positie 1 |
C2 |
Jump naar tweede regel, positie 2 |