16×2 LCD heter så eftersom den har 16 kolumner och 2 rader. Det finns många kombinationer som 8×1, 8×2, 10×2, 16×1 osv. Men den mest använda är 16*2 LCD, därför använder vi den här.
Alla ovan nämnda LCD-skärmar har 16 stift och programmeringsmetoden är också densamma och därför är valet upp till dig. Nedan följer pinout och pinbeskrivning för 16×2 LCD-modulen:
Sr. nr |
Pin nr. |
Stiftnamn |
Stifttyp |
Stiftbeskrivning |
Stiftanslutning |
Stift 1 |
Massa |
Källstift |
Detta är ett jordstift för LCD |
Anslutits till MCU:ns/strömkällans jord |
|
Pin 2 |
VCC |
Källstift |
Detta är matningsspänningsstiftet för LCD |
ansluten till Försörjningsstiftet för strömkälla |
|
Pin 3 |
V0/VEE |
Kontrollstift |
Justerar kontrasten för LCD-skärmen. |
Kopplas till en variabel POT som kan ge 0-…5V |
|
Pin 4 |
Register Select |
Kontrollstift |
Kopplar mellan kommando- och dataregister |
Kopplas till ett MCU-stift och får antingen 0 eller 1. 0 -> Kommandoläge 1-> Dataläge |
|
Pin 5 |
Läs/skriv |
Kontroll. Pin |
Kopplar LCD:n mellan läs- och skrivfunktion |
Kopplas till en MCU-pin och får antingen 0 eller 1. 0 -> Skrivoperation 1-> Läsoperation |
|
Pin 6 |
Aktivera |
Kontrollstift |
Måste hållas hög för att utföra läs-/skrivoperation |
Kopplas till MCU och hålls alltid hög. |
|
Pin 7-14 |
Databits (0-7) |
Data/Command Pin |
Pins som används för att sända kommando eller data till LCD. |
I 4-trådsläge Bara 4 stift (0-3) är anslutna till MCU I 8-trådsläge Alla 8 stift (0-…7) är anslutna till MCU |
|
Pin 15 |
LED Positiv |
LED Pin |
Normal LED-liknande funktion för att belysa LCD |
Kopplad till +5V |
|
Pin 16 |
LED Negativ |
LED Pin |
Normal lysdiodliknande funktion för att belysa LCD-skärmen kopplad till GND. |
Kopplad till jord |
Det är okej om du inte förstår funktionen för alla stift, jag kommer att förklara i detalj nedan. Låt oss nu vända tillbaka vår LCD:
Okej, vad är de här två svarta cirkelliknande sakerna på baksidan av vår LCD?
Dessa svarta cirklar består av en gränssnitts-IC och dess tillhörande komponenter för att hjälpa oss att använda den här LCD:n med MCU:n. Eftersom vår LCD-skärm är en 16*2 punktmatris LCD-skärm kommer den att ha (16*2=32) 32 tecken totalt och varje tecken kommer att bestå av 5*8 pixelpunkter. Ett enskilt tecken med alla dess pixlar aktiverade visas i bilden nedan.
Så nu vet vi att varje tecken har (5*8=40) 40 pixlar och för 32 tecken kommer vi att ha (32*40) 1280 pixlar. Dessutom bör LCD-skärmen också instrueras om pixlarnas position.
Det blir en hektisk uppgift att hantera allt med hjälp av MCU:n, och därför används en gränssnitts-IC som HD44780, som monteras på själva LCD-modulen. Funktionen för denna IC är att ta emot kommandon och data från MCU:n och bearbeta dem för att visa meningsfull information på vår LCD-skärm.
Låt oss diskutera de olika typerna av lägen och alternativ som finns tillgängliga i vår LCD-skärm och som måste styras av våra styrstift.
4-bitars och 8-bitars LCD-läge:
LCD-skärmen kan arbeta i två olika lägen, nämligen 4-bitars-läget och 8-bitars-läget. I 4-bitsläget skickar vi data nibble för nibble, först övre nibble och sedan nedre nibble. För er som inte vet vad en nibble är: en nibble är en grupp av fyra bitar, så de fyra nedre bitarna (D0-D3) i en byte bildar den nedre nibble medan de fyra övre bitarna (D4-D7) i en byte bildar den högre nibble. Detta gör det möjligt för oss att skicka 8-bitars data.
Vid 8-bitarsläge kan vi skicka 8-bitarsdata direkt i ett slag eftersom vi använder alla 8 dataledningar.
Nu måste du ha gissat det, ja 8-bitarsläge är snabbare och felfri än 4-bitarsläge. Men den stora nackdelen är att det behöver 8 dataledningar anslutna till mikrokontrollern. Detta gör att vi får slut på I/O-stift på vår MCU, så 4-bitarsläget används i stor utsträckning. Inga styrpinnar används för att ställa in dessa lägen. Det är bara sättet att programmera som ändras.
Läs- och skrivläge för LCD:
Som sagt består LCD:n i sig själv av en gränssnitts-IC. MCU:n kan antingen läsa eller skriva till denna interface IC. För det mesta kommer vi bara att skriva till IC:n, eftersom läsning gör det mer komplext och sådana scenarier är mycket sällsynta. Information som markörens position, status för avbrott etc. kan läsas om det behövs, men det ligger utanför denna handledning.
Interface IC som finns i de flesta LCD-skärmar är HD44780U, för att programmera vår LCD-skärm bör vi lära oss hela databladet för IC:et. Databladet finns här.
LCD-kommandon:
Det finns några förinställda kommandoinstruktioner i LCD:n, som vi måste skicka till LCD:n genom en mikrokontroller. Några viktiga kommandoinstruktioner ges nedan:
Hex-kod |
Kommando till LCD-instruktionsregister |
0F |
LCD ON, markör ON |
Rensa skärmen |
|
Return hem |
|
Decrement cursor (flytta markören till vänster) |
|
Inkrementera markören (flytta markören till höger) |
|
Förflytta displayen till höger |
|
Skifta displayen till vänster |
|
0E |
Displayen är på, markören blinkar |
Förskjut markören till början av första raden |
|
C0 |
Förskjut markören till början av andra raden |
2 rader och 5×7 matris |
|
Cursor linje 1 position 3 |
|
3C |
Aktivera andra raden |
Display OFF, markör OFF |
|
C1 |
Springa till andra raden, position 1 |
OC |
Display ON, markör OFF |
C1 |
Springa till andra raden, position 1 |
C2 |
Springa till andra raden, position 2 |