- Material som krävs:
- Kort introduktion till 16 × 2 LCD-display för punktmatris:
- Kretsschema och anslutning:
- Programmering MSP430 för LCD med Energia:
- 16x2 LCD med MSP430G2:
Detta är den tredje självstudien i sekvensen av självstudier där vi lär oss att programmera MSP430G2 LaunchPad med Energia IDE. I vår tidigare handledning lärde vi oss hur man styr digitala in- och utgångsstift på vårt MSP-kort. I den här handledningen lär vi oss hur man gränssnitt en LCD med kortet så att vi kan visa användbar information.
LCD-skärmen som vi använder i detta projekt är den vanligaste 16 × 2 punktmatris LCD-skärmen liksom Alfanumeriska skärmar. De flesta av oss skulle ha stött på detta antingen genom offentliga PCO: er eller andra elektronikprojekt. En skärm som denna kommer att vara mycket användbar för våra framtida handledning för att visa data och annan felsökningsinformation. Gränssnittet mellan denna LCD och MSP430 är mycket enkelt tack vare det tillgängliga biblioteket. Så låt oss dyka in !!
Material som krävs:
- MSP430G2 LaunchPad från Texas Instruments
- 16 × 2 Punktmatris LCD-skärm
- Anslutande ledningar
- Energia IDE
Kort introduktion till 16 × 2 LCD-display för punktmatris:
Som tidigare nämnts erbjuder Energia IDE ett vackert bibliotek som gör gränssnittet till en bit kaka och det är därför inte obligatoriskt att veta någonting om displaymodulen. Men skulle det inte vara intressant att visa vad vi använder !!
Namnet 16 × 2 innebär att skärmen har 16 kolumner och 2 rader, som tillsammans (16 * 2) bildar 32 rutor. En enda ruta skulle se ut så här på bilden nedan
En enda ruta har 40 pixlar (punkter) med en matrisordning på 5 rader och 8 kolumner, dessa 40 pixlar bildar tillsammans ett tecken. På samma sätt kan 32 tecken visas med alla rutor. Låt oss nu titta på pinouts.
LCD-skärmen har totalt 16 stift, som visas ovan, de kan kategoriseras i fyra grupper enligt följande
Källstift (1, 2 och 3): Dessa stift ger ström och kontrastnivå för skärmen
Kontrollstift (4, 5 och 6): Dessa stift sätter / kontrollerar register i LCD-gränssnitts-IC (mer hittar du i länken nedan)
Data / Command Pins (7 till 14): Dessa pins ger information om vilken information som ska visas på LCD-skärmen.
LED-stift (15 och 16): Dessa stift används för att lysa bakgrundsbelysningen på LCD vid behov (tillval).
Av alla dessa 16 stift ska endast 10 stift användas som obligatoriska för att LCD-skärmen ska fungera korrekt om du vill veta mer om dessa LCD-skärmar hoppa till denna LCD-artikel.
Kretsschema och anslutning:
Det fullständiga kretsschemat för att koppla samman en 16 × 2 punktmatris LCD-skärm med MSP430G2 visas nedan.
En viktig begränsning vid gränssnitt mellan dessa två är deras driftspänningar. LCD-skärmen har en driftspänning på + 5V medan MSP fungerar endast med 3,6V. Tur för oss har datapinnen på LCD-gränssnittet IC (HD44780U) en bred driftsspänning på 2,7V till 5,5V. Så vi behöver bara oroa oss för Vdd (stift 2) på LCD-skärmen medan datapinnarna kan fungera även med 3,6 V.
MSP430G2-kortet ger dig som standard inte en + 5V-stift, men vi kan göra ett litet hack för att få + 5V från MSP430 med USB-porten. Om du tittar nära USB-porten kan du hitta en terminal som heter TP1, den här terminalen ger oss + 5v. Allt vi behöver göra är att löda en liten manlig huvudstift som visas nedan så att vi kan ansluta den till vår LCD-skärm.
Obs! Anslut inte laster som kan förbruka mer än 50 mA till denna 5V-stift eftersom den kan steka din USB-port.
Om du inte är intresserad av lödning, använd helt enkelt en + 5V-reglerad strömförsörjning och strömförsörj LCD-skärmen, i så fall, se till att du ansluter marken på din strömförsörjning till MSP-kortets jord.
När du är klar med + 5V-stiften är de andra stiften ganska enkla att ansluta. Nu när vår hårdvara är klar, låt oss gå vidare till programvarudelen.
Programmering MSP430 för LCD med Energia:
Det kompletta programmet för gränssnitt mellan en MSP430G2553 och LCD-display finns i slutet av denna sida. Koden kan sammanställas, laddas upp och användas som sådan. I följande stycken kommer jag att förklara hur programmet fungerar.
Innan vi fortsätter med förklaringen måste vi notera de stift som vi använder. Om du tittar på kretsschemat ovan och MSP430 pin-out diagram nedan
Du kan dra slutsatsen att vi har anslutit LCD-skärmen enligt följande tabell
LCD-stiftnamn |
Anslutna till |
Vss |
Jord |
Vdd |
+ 5V USB-stift |
Rs |
Stift 2 i MSP |
R / W |
Jord |
Gör det möjligt |
Stift 3 i MSP |
D4 |
Stift 4 i MSP |
D5 |
Stift 5 i MSP |
D6 |
Stift 6 i MSP |
D7 |
Stift 7 i MSP |
Med detta i åtanke låt oss börja definiera de LCD-stift som används i vårt program. Vi kommer att namnge varje stift med ett mer meningsfullt namn så att vi lätt kan använda det senare.
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
Detta betyder helt enkelt att istället för att ringa stift 2 kan jag hänvisa till det som RS nedan, på samma sätt för alla 6 stift.
Nästa steg är att inkludera LCD-biblioteket. Detta bibliotek skulle ha installerats automatiskt när du installerade Energia IDE. Så lägg bara till det med hjälp av följande rad
#omfatta
Nästa steg är att nämna de stift som LCD-skärmen är ansluten till, eftersom vi redan har nämnt den med #define kan vi nu helt enkelt nämna namnen på LCD-stiften. Se till att samma ordning följs.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Låt oss nu gå in i funktionen tomrumsinställning () . Det finns så många typer av LCD-skärmar som varierar i storlek och natur, den som vi använder är 16 * 2 så låt oss specificera det i vårt program
lcd.begin (16, 2);
För att skriva ut något på LCD-skärmen måste vi nämna två saker i programmet. En är positionen för texten som kan nämnas med raden lcd.setCursor () och den andra är innehållet att skriva ut som kan nämnas av lcd.print (). På den här raden sätter vi markören till 1: a raden och 1: a kolumnen.
lcd.setCursor (0,0);
På samma sätt kan vi också
lcd.setCursor (0, 1); // ställ markören till 1: a kolumn 2: a raden
Precis som att radera en whiteboard efter att ha skrivit på den, bör en LCD också raderas när något är skrivet på den. Detta kan göras med hjälp av nedanstående rad
lcd.clear ();
Så den fullständiga void setup () -funktionen skulle se ut så här.
ogiltig installation () {lcd.begin (16, 2); // Vi använder en 16 * 2 LCD-skärm lcd.setCursor (0,0); // Placera markören på 1: a raden 1: a kolumnen lcd.print ("MSP430G2553"); // Visa ett introduktionsmeddelande lcd.setCursor (0, 1); // ställ markören till 1: a kolumn 2: a raden lcd.print ("- CircuitDigest"); // Visa en introduktionsfördröjning (2000); // Vänta tills displayen visar info lcd.clear (); // Rengör sedan det}
Därefter, inuti vår void loop () -funktion, låt oss fortsätta öka ett nummer för varje 500 ms och visa numret på LCD-skärmen. Detta nummer testar och initialiseras till 1 enligt nedan
int-test = 1;
För att skapa en fördröjning kan vi använda den inbyggda funktionsfördröjningen (). Vi måste nämna hur mycket tid vi behöver förseningen för att inträffa. I vårt fall har jag använt 500 ms enligt nedan
fördröjning (500);
Att öka en variabel kan göras med test ++, resten är redan förklarade. Den fullständiga koden i håligheten visas nedan
void loop () {lcd.print ("LCD med MSP"); // Visa ett introduktionsmeddelande lcd.setCursor (0, 1); // ställ markören till kolumn 0, rad 1 lcd.print (test); // Visa en introduktionsfördröjning (500); lcd.clear (); // Rengör sedan testet ++; }
16x2 LCD med MSP430G2:
När din hårdvara och kod är redo ansluter du helt enkelt din dator och laddar upp koden som vi gjorde i handledning en. När koden har laddats upp ska du se skärmen som visar följande.
Efter två sekunder ändras skärmen från inställning till slinga och börjar stega variabeln och visas på skärmen som bilden nedan visar.
Den kompletta arbets kan hittas i videon nedan. Fortsätt och försök ändra vad som visas på LCD-skärmen och spela med det. Hoppas att du förstod handledningen och lärt dig något användbart från den. Om du är osäker, lämna dem i kommentarsektionen nedan eller använd forumen. Låt oss träffas i en annan handledning.