- 16x2 alfanumerický LCD displej
- 16x2 LCD CCS knižnica pre MSP430
- Funkcie LCD pre 16x2 LCD displej na MSP430
- Schéma zapojenia do rozhrania LCD s MSP430
- Programovanie MSP430 pomocou programu Code Composer Studio pre LCD displej
Tento článok je pokračovaním nášho tutoriálu o programovaní MSP430 pomocou programu Code Composer Studio. Posledný tutoriál bol založený na externých prerušeniach na MSP430 pomocou pinov GPIO. Tento tutoriál sa týka prepojenia displeja s MSP430, čo sa týka zobrazenia 16 * 2 LCD displeja, je prvou voľbou pre každého elektronického fanda. Predtým sme tiež prepojili LCD s MSP430 pomocou Arduino IDE, v tomto tutoriále použijeme natívnu štúdiovú platformu Code Composer namiesto použitia Arduino IDE, čím ako dizajnér získame väčšiu flexibilitu.
Ak sa chcete dozvedieť viac informácií o 16x2 LCD displeji a jeho použití s inými mikrokontrolérmi, pozrite si nižšie uvedené návody.
- Prepojenie LCD s ATmega16
- Prepojenie LCD s Raspberry Pi
- Prepojenie LCD s mikrokontrolérom PIC
- Prepojovací LCD s ARM7-LPC2148
- Prepojenie LCD s NodeMCU
- Prepojenie LCD s STM32
- Prepojenie LCD s MSP430G2
- Prepojenie LCD s STM8
Má vstavaný IC hd44780, ktorý dokáže ukladať príkazy a dáta, ktoré sú mu odovzdané. Modul LCD má asi 16 pinov. 8 z nich sú dátové kolíky, 4 z nich sú napájacie kolíky pre podsvietenie LED a celý LCD modul, 3 na riadenie činnosti a 1 pin na nastavenie kontrastu. Výukový program je založený na knižnici vytvorenej Dennisom Eichmannom. Používanie knižnice so samostatnými funkciami na tlač rôznych typov údajov je veľmi jednoduché. Obsahuje tiež ustanovenia na zobrazovanie údajov v rôznych formách s úvodnými, prázdnymi a odstránenými nulami. Je to veľmi rozsiahla a komplexná knižnica a je konfigurovateľná na rôzne pripojenia. Tu je hlavičkový súbor upravený tak, aby vyhovoval 8-pólovej paralelnej konfigurácii pre dátovú komunikáciu.
16x2 alfanumerický LCD displej
Všeobecný displej 16 x 2 má vstavaný integrovaný obvod hd44780 IC (nižšie označený krúžkom ), ktorý umožňuje ukladať príkazy a údaje, ktoré sa k nemu odovzdávajú. Modul LCD má asi 16 pinov. 8 z nich sú dátové kolíky, 4 z nich sú napájacie kolíky pre podsvietenie LED a celý LCD modul, 3 na riadenie činnosti a 1 pin na nastavenie kontrastu.
Tento LCD modul je zobrazený všestranne a v porovnaní s ostatnými segmentovanými LCD displejmi používa minimálne kolíky. Ak ste zvedaví, ako presne to všetko funguje, mali by ste sa pozrieť na fungovanie 16x2 LCD displeja, kde sme už podrobne hovorili o tom, ako funguje LCD.
RS Pin: RS = 1 umožní dátový register na LCD, ktorý sa používa na zápis hodnôt do dátového registra na LCD. RS = 0 aktivuje inštrukčný register LCD.
Enable pin: Negative edge-triggered; keď sa pin zmení zo stavu HIGH na stav LOW, LCD je vyzvaný k zápisu na dátové piny. Pozitívne spustené na okraji; keď sa pin zmení zo stavu LOW na stav HIGH, LCD je vyzvaný na načítanie z dátových pinov.
Pin R / W: R / W = 0 zapíše do registra inštrukcií alebo dátového registra podľa výberu kolíka RS. R / W = 1 bude čítať z IR alebo DR podľa výberu kolíka RS.
Prevádzka RS R / W
0 0 IR zápis ako interná operácia (jasný displej, atď.)
0 1 Čítanie zaneprázdneného príznaku (DB7) a počítadla adries (DB0 až DB6)
1 0 DR zápis ako interná operácia (DR na DDRAM alebo CGRAM)
1 1 DR načítaný ako interná operácia (DDRAM alebo CGRAM do DR)
Kolíky D0-D7: Údaje sa prenášajú do a z príkazových a dátových registrov cez tieto kolíky.
Napájacie piny: Na napájanie modulu LCD sa používajú piny V ss, V dd. Kolíky A, K budú napájať LED podsvietenie. Kolíky V 0 sa používajú na riadenie kontrastu.
16x2 LCD CCS knižnica pre MSP430
Výukový program je založený na knižnici vytvorenej Dennisom Eichmannom. Používanie knižnice so samostatnými funkciami na tlač rôznych typov údajov je veľmi jednoduché. Obsahuje tiež ustanovenia na zobrazovanie údajov v rôznych formách s úvodnými, prázdnymi a odstránenými nulami. Je to veľmi rozsiahla a komplexná knižnica a je konfigurovateľná na rôzne pripojenia. Tu je hlavičkový súbor upravený tak, aby vyhovoval 8-pólovej paralelnej konfigurácii pre dátovú komunikáciu. Knižnicu je možné stiahnuť z nasledujúceho odkazu. Po stiahnutí postupujte podľa nasledujúcich krokov a pridajte knižnicu do CCS.
Stiahnite si knižnicu 16x2 pre MSP430 - Code Composer Studio
Krok 1: Vytváranie súborov a projektov
Predvolený projekt CCS sa vytvorí pomocou ponuky súborov. V dialógovom okne Vytvoriť projekt vyberte zariadenie a ako názov projektu zadajte hd44780. V časti Typ projektu a reťazec nástrojov vyberte typ výstupu ako Statická knižnica a vytvorte projekt.
V pruhu Project Explorer (ľavá strana) vytvorte hlavičkový súbor v priečinku zahrnutia a pomenujte ho ako hd44780.h . Potom skopírujte obsah stiahnutého súboru hd44780.h do tohto novo vytvoreného.
Teraz vytvorte hlavný projekt zmenou typu výstupu na spustiteľný súbor a vytvorte projekt s názvom CCS_LCD .
Krok 2: Zahrňte vyhľadávacie cesty do hlavného projektu
V dialógovom okne vlastností projektu hd44780 a vo vnútri možností zahrnutia pre kompilátor MSP430 pridajte priečinok zahrnutia do súboru do vyhľadávacej cesty.
Potom vytvorte tento projekt a vytvorte potrebné súbory linkerov, ako sú súbory.lib . Jeho zostavením sa vytvorí súbor hd44780.lib v priečinku ladenia.
Krok 3: Zahrňte vyhľadávacie cesty nástroja Linker
V dialógovom okne vlastností pre projekt CCS_LCD a do cesty hľadania súborov na karte MSP430 Linker zahrňte súbor hd44780.lib, ktorý sa nachádza v priečinku ladenia projektu hd44780. Priečinok ladenia je tiež zahrnutý v ceste hľadania súborov.
Priečinok zahrnutia je opäť pridaný k možnostiam zahrnutia kompilátora MSP430 projektu CCS_LCD .
Knižnica je úspešne skompilovaná a pridaná do linkera hlavného projektu.
Funkcie LCD pre 16x2 LCD displej na MSP430
void hd44780_timer_isr (void): Toto sa pravidelne volá v ISR časovača A. Časovač A sa používa na pravidelné vykonávanie funkcií LCD, ako je čistenie obrazovky, nastavenie kurzora a zobrazovanie údajov. Táto funkcia sa má použiť v ISR. Nič nevracia.
uint8_t hd44780_write_string (char * ch__string, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): Zapíše reťazec uvedený v prvom argumente.
char * ch__string: Reťazec, ktorý sa má zapísať do dátovej medzipamäte (vo vnútri funkcie hd44780_timer_isr ). Dáta sa skopírujú do dátového registra a registra inštrukcií LCD IC, keď sa pravidelne volá hd44780_timer_isr .
uint8_t u8__row: Definuje riadok, do ktorého sa bude reťazec zapisovať.
uint8_t u8__column: Definuje stĺpec, do ktorého sa bude reťazec zapisovať.
uint8_t u8__cr_lf: Ak je nastavená hodnota 1, riadok sa prenesie na ďalší. Ak je 0, tlač sa zastaví na rovnakom riadku.
void hd44780_clear_screen (void): Táto funkcia vymaže celú obrazovku. Nič nevracia.
uint8_t hd44780_output_unsigned_16bit_value (uint16_t u16__value, uint8_t u8__leading_zero_handling, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): Funkcia zobrazí nepodpísané 16-bitové umiestnenie. Na LCD bude zobrazená nepodpísaná hodnota.
uint16_t u16__value: Celé číslo, ktoré sa má zobraziť, je uvedené v prvom argumente.
uint8_t u8__leading_zero_handling: Ak je zadaná 0, zobrazia sa začiatočné nuly až po celočíselnú hodnotu. Ak zadáte 1, nuly sa vyplnia. Ak je ako parameter zadaná hodnota 2, zobrazia sa iba platné číslice.
uint8_t u8__row: Je vybraný riadok, v ktorom je zobrazené celé číslo.
uint8_t u8__column: Stĺpec, ktorý sa má vytlačiť, sa vyberie pomocou argumentu.
uint8_t u8__cr_lf: Ak je nastavená hodnota 1, riadok sa prenesie na ďalší. Ak je 0, tlač sa zastaví na rovnakom riadku.
Schéma zapojenia do rozhrania LCD s MSP430
Celá schéma zapojenia je znázornená na obrázku nižšie. Ako vidíte, hardvérové pripojenia sú veľmi jednoduché a celú dosku sme napájali pomocou adaptéra 5V.
Pripojenia sa vykonávajú podľa vyššie uvedeného náčrtu. Podrobné pripojenia nájdete v nasledujúcej tabuľke.
Vss | Uzemnenie napájacieho zdroja 5 V. |
Vdd | 5V |
V0 | Výstup potenciometra |
RS | P2.1 |
R / W | Uzemnenie |
E | P2.0 |
D0 | P1.0 |
D1 | P1.1 |
D2 | P1.2 |
D3 | P1.3 |
D4 | P1.4 |
D5 | P1.5 |
D6 | P1.6 |
D7 | P1.7 |
A | Rezistor 220 Ohm |
K | Uzemnenie |
Anódu LED podsvietenia nemožno pripojiť priamo k zdroju 5V. Mal by byť pripojený k odporu, aby sa minimalizoval tok prúdu cez modul LCD. Pripojenia som vykonal pomocou dosky perf na spájkovanie LCD a pomocou prepojovacích vodičov na pripojenie LCD k doske MSP430, moje nastavenie vyzerá takto, ale na pripojenie môžete jednoducho použiť prepojovací panel.
Programovanie MSP430 pomocou programu Code Composer Studio pre LCD displej
Celý kód použitý v tomto projekte je uvedený v spodnej časti tejto stránky. Vysvetlenie použitia kódu je nasledujúce. Najskôr otvorte hlavičkový súbor (hd44780.h) a do prvej časti súboru vložte číslo súčasti mikrokontroléra.
#include "msp430g2553.h"
Najskôr je potrebné zastaviť časovač strážneho psa. Na konfiguráciu oscilátora mikrokontroléra sa používajú riadiace registre DCOCTL a BCSCTL1. Riadky nižšie nakonfigurujú MCLK na 1MHZ.
WDTCTL = (WDTPW - WDTHOLD); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;
Ako výstup je potrebné spomenúť kolíky portu 1, ktoré sa majú použiť pre dátové kolíky. Pin 0 a pin 1 je tiež potrebné spomenúť ako výstup v porte 2, ktorý bude použitý pre RS a R / W pin.
P1DIR = 0xFF; P2DIR = (0x01 - 0x02);
Na pravidelné zobrazovanie hodnôt sa používa vstavaný časovač. Časovač A je zvolený s SMCLK (1MHZ) ako zdrojom hodín a prevádzkový režim je prevádzkový režim.
TA0CCR1 = 32768; TA0CCTL1 = CCIE; TA0CTL = (TASSEL_2 - MC_2 - TACLR);
Prerušenia pre porovnávacie kanály 1 a 2 a prerušenie pretečenia časovača zdieľajú rovnaký vektor prerušenia ( TIMER0_A1_VECTOR ) s rôznymi začiatočnými adresami. Zachytenie nákupný kanál 1 (CCR1) používa 2 ako adresa, ktorý je používaný v telesu prepínača.
#pragma vector = TIMER0_A1_VECTOR __interrupt void timer_0_a1_isr (void) { switch (TA0IV) { case 2: { hd44780_timer_isr (); prestávka; } } }
Keď už máte svoj kód skompilovaný, môžete ho nahrať na dosku MSP430, ako je vysvetlené v úvodnej príručke k MSP430. Ak všetko pôjde podľa očakávaní, mali by ste na displeji LCD vidieť určitý kontrast, ako je to znázornené nižšie.
Ak je váš test veľmi slabý, môžete skúsiť upraviť potenciometer, aby ste dosiahli lepší kontrast. Kompletné fungovanie projektu nájdete tiež vo videu, na ktoré odkazujete nižšie. Dúfam, že sa vám projekt páčil a bolo pre vás zaujímavé vytvoriť si vlastný. Ak máte nejaké otázky, nechajte ich prosím v sekcii komentárov nižšie. Môžete tiež napísať všetky svoje technické otázky na fóra, aby ste im odpovedali alebo aby ste začali diskusiu.