- Nødvendige materialer:
- Kort introduktion til 16 × 2 Punktmatrix LCD-display:
- Kredsløbsdiagram og forbindelse:
- Programmering MSP430 til LCD ved hjælp af Energia:
- 16x2 LCD med MSP430G2:
Dette er den tredje tutorial i sekvensen af tutorials, hvor vi lærer at programmere MSP430G2 LaunchPad ved hjælp af Energia IDE. I vores tidligere vejledning lærte vi, hvordan man styrer de digitale input- og output-pins på vores MSP-kort. I denne vejledning lærer vi, hvordan man bruger en LCD-skærm til kortet, så vi kan vise nyttige oplysninger.
LCD'et, som vi bruger i dette projekt, er det mest anvendte 16 × 2 Punktmatrix-LCD-display som alfanumeriske skærme. De fleste af os ville være stødt på dette enten gennem offentlige pc'er eller andre elektronikprojekter. En skærm som denne vil være meget praktisk til vores fremtidige vejledninger til at vise data og anden fejlretningsinformation. Interfacering af denne LCD med MSP430 er meget let takket være det tilgængelige bibliotek. Så lad os dykke ind !!
Nødvendige materialer:
- MSP430G2 LaunchPad fra Texas Instruments
- 16 × 2 Punktmatrix LCD-skærm
- Tilslutning af ledninger
- Energia IDE
Kort introduktion til 16 × 2 Punktmatrix LCD-display:
Som tidligere fortalt giver Energia IDE et smukt bibliotek, der gør grænsefladen et stykke kage, og det er derfor ikke obligatorisk at vide noget om displaymodulet. Men ville det ikke være interessant at vise, hvad vi bruger !!
Navnet 16 × 2 indebærer, at skærmen har 16 kolonner og 2 rækker, som tilsammen (16 * 2) danner 32 felter. En enkelt kasse ville se sådan ud på billedet nedenfor
En enkelt boks har 40 pixels (prikker) med en matrixrækkefølge på 5 rækker og 8 kolonner, disse 40 pixels danner tilsammen et tegn. Tilsvarende kan 32 tegn vises ved hjælp af alle felterne. Lad os nu se på pinouts.
LCD'et har i alt 16 pins, som vist ovenfor, de kan kategoriseres i fire grupper som følger
Kildestifter (1, 2 og 3): Disse stifter kilder skærmens effekt- og kontrastniveau
Kontrolstifter (4, 5 og 6): Disse stifter indstiller / styrer registre i LCD-interface IC (mere kan findes i linket nedenfor)
Data / Command Pins (7 til 14): Disse pins giver data om, hvilke oplysninger der skal vises på LCD'et.
LED-ben (15 og 16): Disse ben bruges til at tænde LCD-baggrundsbelysningen, hvis det er nødvendigt (valgfrit).
Ud af alle disse 16 ben skal kun 10 ben bruges obligatorisk til korrekt funktion af LCD'et, hvis du vil vide mere om dette LCD-display, spring til denne LCD-artikel.
Kredsløbsdiagram og forbindelse:
Det komplette kredsløbsdiagram til interface til en 16 × 2 dotmatrix LCD-skærm med MSP430G2 er vist nedenfor.
En vigtig begrænsning, mens de grænseflader mellem disse to er deres driftsspændinger. LCD-skærmen har en driftsspænding på + 5V, mens MSP kun fungerer med 3,6V. Heldig for os har datapinnen på LCD-interface IC (HD44780U) en bred driftsspænding på 2,7V til 5,5V. Så vi skal kun bekymre os om Vdd (pin 2) på LCD'et, mens datapindene kan fungere selv med 3,6V.
MSP430G2-kortet giver dig som standard ikke en + 5V-pin, men vi kan lave et lille hack for at få + 5V fra MSP430 ved hjælp af USB-porten. Hvis du ser nærmere på USB-porten, kan du finde en terminal kaldet TP1, denne terminal giver os + 5v. Alt, hvad vi skal gøre, er at lodde en lille mandhovedstift som vist nedenfor, så vi kan forbinde den til vores LCD-skærm.
Bemærk: Tilslut ikke belastninger, der muligvis bruger mere end 50 mA til denne 5V-pin, da den muligvis steger din USB-port.
Hvis du ikke er interesseret i lodning, skal du blot bruge en + 5V reguleret forsyning og strømforsyning til LCD-skærmen. I så fald skal du sørge for at slutte jorden til din strømforsyning til jorden på MSP-kortet.
Når du er færdig med + 5V-stiften, der forbinder, er de andre stifter ret ligetil. Nu hvor vores hardware er klar, lad os gå videre til softwaredelen.
Programmering MSP430 til LCD ved hjælp af Energia:
Det komplette program til interface af en MSP430G2553 med LCD-skærm findes i slutningen af denne side. Koden kan kompileres, uploades og bruges som sådan. I de følgende afsnit vil jeg forklare, hvordan programmet fungerer.
Inden vi går videre med forklaringen, skal vi notere de ben, vi bruger. Hvis du ser på kredsløbsdiagrammet ovenfor og MSP430 pin-out-diagrammet nedenfor
Du kan konkludere, at vi har tilsluttet LCD'et i henhold til nedenstående tabel
LCD pin-navn |
Forbundet til |
Vss |
Jord |
Vdd |
+ 5V USB-pin |
Rs |
Pin 2 i MSP |
R / W |
Jord |
Aktiver |
Pin 3 af MSP |
D4 |
Pin 4 af MSP |
D5 |
Pin 5 af MSP |
D6 |
Pin 6 i MSP |
D7 |
Pin 7 i MSP |
Lad os med dette i tankerne definere de LCD-ben, der bruges i vores program. Vi navngiver hver pin med et mere meningsfuldt navn, så vi nemt kan bruge det senere.
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
Dette betyder simpelthen, at jeg i stedet for at kalde pin 2 kan henvise til det som RS herefter, ligesom for alle 6 pins.
Det næste skridt ville være at inkludere LCD-biblioteket. Dette bibliotek ville være blevet installeret automatisk, da du installerede Energia IDE. Så bare tilføj det ved hjælp af følgende linje
#omfatte
Det næste trin er at nævne de ben, som LCD-skærmen er forbundet med, som vi allerede har navngivet den ved hjælp af #define, kan vi nu blot nævne navnene på LCD-benene. Sørg for, at den samme rækkefølge følges.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Lad os nu gå ind i funktionen tomrumsopsætning () . Der er så mange typer LCD-skærme, der varierer i størrelse og art, den vi bruger er 16 * 2, så lad os specificere det i vores program
lcd.begin (16, 2);
For at udskrive noget på LCD'et skal vi nævne to ting i programmet. Den ene er placeringen af teksten, som kan nævnes ved hjælp af linjen lcd.setCursor (), og den anden er det indhold, der skal udskrives, som kan nævnes af lcd.print (). I denne linje er vi sætte markøren til en st række og 1 st kolonne.
lcd.setCursor (0,0);
På samme måde kan vi også
lcd.setCursor (0, 1); // sæt markøren til 1. kolonne 2. række
Ligesom at slette en tavle efter at have skrevet på den, skal en LCD også slettes, når der er skrevet noget på den. Dette kan gøres ved hjælp af nedenstående linje
lcd.clear ();
Så den komplette ugyldige opsætning () -funktion vil se sådan ud.
ugyldig opsætning () {lcd.begin (16, 2); // Vi bruger en 16 * 2 LCD-skærm lcd.setCursor (0,0); // Placer markøren på 1. række 1. kolonne lcd.print ("MSP430G2553"); // Vis en introduktionsmeddelelse lcd.setCursor (0, 1); // sæt markøren til 1. kolonne 2. række lcd.print ("- CircuitDigest"); // Vis en forsinket introduktionsmeddelelse (2000); // Vent på visning for at vise info lcd.clear (); // Rens det derefter}
Lad os derefter fortsætte med at inkrementere et tal for hver 500 ms inden for vores ugyldige loop () -funktion og vise nummeret i LCD'et. Dette nummer tester og initialiseres til 1 som vist nedenfor
int test = 1;
For at skabe en forsinkelse kan vi bruge den indbyggede funktionsforsinkelse (). Vi skal nævne, hvor lang tid vi har brug for forsinkelsen. I vores tilfælde har jeg brugt 500 ms som vist nedenfor
forsinkelse (500);
Forøgelse af en variabel kan udføres ved test ++, resten er alle allerede forklaret. Den komplette kode inde i tomrummet er vist nedenfor
ugyldig sløjfe () {lcd.print ("LCD med MSP"); // Vis en introduktionsmeddelelse lcd.setCursor (0, 1); // sæt markøren til kolonne 0, linje 1 lcd.print (test); // Vis en forsinket introduktionsmeddelelse (500); lcd.clear (); // Rens det derefter test ++; }
16x2 LCD med MSP430G2:
Når din hardware og kode er klar, skal du blot forbinde dit bord på computeren og uploade koden, som vi gjorde i tutorial en. Når koden er uploadet, skal du se skærmen, der viser følgende.
Efter to sekunder skifter skærmbilledet fra setup til loop og begynder at inkrementere variablen og vises på skærmen som vist nedenstående billede.
Det komplette arbejde kan findes i videoen nedenfor. Gå videre og prøv at ændre det, der vises på LCD'et, og leg med det. Håber du har forstået vejledningen og lært noget nyttigt fra det. Hvis du er i tvivl, skal du lade dem være i kommentarfeltet nedenfor eller bruge foraene. Lad os mødes i en anden tutorial.