- Alfanumerički LCD zaslon 16x2
- LCD CCS knjižnica 16x2 za MSP430
- LCD funkcije za LCD zaslon 16x2 na MSP430
- Kružna shema na sučelju LCD-a s MSP430
- Programiranje MSP430 pomoću Code Composer Studio za LCD zaslon
Ovaj je članak nastavak naše serije tutorijala o programiranju MSP430 pomoću Code Composer Studio. Posljednji se vodič temeljio na vanjskim prekidima na MSP430 pomoću GPIO pinova. Ovaj se vodič bavi povezivanjem zaslona s MSP430, a kada je u pitanju prikaz LCD zaslona 16 * 2, to je prvi izbor za bilo kojeg elektroničkog hobista. Prije smo također povezali LCD s MSP430 pomoću Arduino IDE-a, u ovom uputstvu koristit ćemo matičnu platformu Code Composer umjesto da koristimo Arduino IDE, na taj način kao dizajner dobivamo veću fleksibilnost.
Da biste saznali više o LCD zaslonu 16x2 i korištenju s drugim mikrokontrolerima, pogledajte dolje upute.
- Povezivanje LCD zaslona s ATmega16
- Povezivanje LCD zaslona s Raspberry Pi
- Povezivanje LCD-a s PIC mikrokontrolerom
- Povezivanje LCD zaslona s ARM7-LPC2148
- Povezivanje LCD zaslona s NodeMCU
- Povezivanje LCD-a sa STM32
- Povezivanje LCD zaslona s MSP430G2
- Povezivanje LCD-a sa STM8
Ima ugrađeni IC hd44780 koji može pohraniti naredbu i podatke koji su joj proslijeđeni. LCD modul ima oko 16 pinova. Od toga su 8 podatkovne igle, od toga 4 opskrbne igle za pozadinsko osvjetljenje LED-a i cijeli LCD modul, 3 za kontrolu rada i 1 pinova za podešavanje kontrasta. Vodič se temelji na knjižnici koju je stvorio Dennis Eichmann. Korištenje knjižnice s odvojenim funkcijama vrlo je jednostavno za ispis različitih vrsta podataka. Također sadrži odredbe za prikaz podataka u različitim oblicima s vodećim, praznim i izbrisanim nulama. To je prilično opsežna i sveobuhvatna knjižnica i podesiva je za različite veze. Ovdje je datoteka zaglavlja izmijenjena da prilagodi paralelnu konfiguraciju od 8 pina za podatkovnu komunikaciju.
Alfanumerički LCD zaslon 16x2
Generički zaslon 16x2 ima ugrađeni IC hd44780 (zaokružen crvenom bojom dolje), koji može pohraniti naredbu i podatke koji su mu proslijeđeni. LCD modul ima oko 16 pinova. Od toga su 8 podatkovne igle, od toga 4 opskrbne igle za pozadinsko osvjetljenje LED-a i cijeli LCD modul, 3 za kontrolu rada i 1 pina za podešavanje kontrasta.

Ovaj LCD modul prikazan je iznad svestrano i koristi minimalne igle u usporedbi s drugim segmentiranim LCD-ima. Ako vas zanima kako točno sve ovo funkcionira, trebali biste provjeriti rad LCD zaslona 16x2 gdje smo već detaljno razgovarali o tome kako LCD radi.

RS pin: RS = 1 omogućit će podatkovni registar na LCD-u, koji se koristi za upisivanje vrijednosti u podatkovni registar na LCD-u. RS = 0 omogućit će upisnik registra LCD-a.
Omogući pribadaču: okidač negativnog ruba; kada se pin promijeni iz HIGH stanja u LOW, LCD će se zatražiti da upiše u podatkovne igle. Pozitivno aktivirano rubom; kad se iglica promijeni iz stanja NISKO u VISOKO, LCD će se zatražiti čitanje s podatkovnih pinova.
R / W pin: R / W = 0 će upisati u registar uputa ili registar podataka prema odabiru RS pin-a. R / W = 1 očitat će se s IR ili DR prema odabiru RS pina.
RS R / W rad
0 0 IR zapisivanje kao interna operacija (prikaz čist, itd.)
0 1 Čitanje zastave zauzetosti (DB7) i brojača adresa (DB0 do DB6)
1 0 DR zapis kao interna operacija (DR u DDRAM ili CGRAM)
1 1 DR očitano kao interna operacija (DDRAM ili CGRAM na DR)
D0-D7 pribadače: Podaci se prenose u i iz naredbe i registara podataka kroz ove pribadače.
Igle za opskrbu: V P, V dd igle se koriste za napajanje LCD modula. Igle A, K napajat će LED pozadinsko osvjetljenje. V 0 igle koriste se za kontrolu kontrasta.
LCD CCS knjižnica 16x2 za MSP430
Vodič se temelji na knjižnici koju je stvorio Dennis Eichmann. Korištenje knjižnice s odvojenim funkcijama vrlo je jednostavno za ispis različitih vrsta podataka. Također sadrži odredbe za prikaz podataka u različitim oblicima s vodećim, praznim i izbrisanim nulama. To je prilično opsežna i sveobuhvatna knjižnica i podesiva je za različite veze. Ovdje je datoteka zaglavlja izmijenjena da prilagodi paralelnu konfiguraciju od 8 pina za podatkovnu komunikaciju. Knjižnicu možete preuzeti s donje veze, nakon preuzimanja slijedite korake u nastavku za dodavanje knjižnice u CCS.
Preuzmite knjižnicu 16x2 za MSP430 - Code Composer Studio
Korak 1: Stvaranje datoteka i projekata
Zadani CCS projekt izrađuje se pomoću izbornika datoteka. U dijaloškom okviru Stvori projekt odaberite uređaj i navedite hd44780 kao naziv projekta. Pod vrstom Projekt i alatnim lancem odaberite vrstu izlaza kao Statičku biblioteku i izradite projekt.

U traci Project Explorer (lijeva strana) stvorite datoteku zaglavlja unutar mape uključivanja i nazovite je hd44780.h . Zatim kopirajte sadržaj preuzete datoteke hd44780.h u ovu novostvorenu.
Sada stvorite glavni projekt promjenom vrste izlaza u izvršnu i stvorite projekt nazvan CCS_LCD .
Korak 2: Uključite staze pretraživanja do glavnog projekta
U dijaloški okvir svojstava projekta hd44780 i unutar opcija uključivanja za kompajler MSP430 dodajte mapu uključi u datoteku stazu pretraživanja.

Zatim izradite ovaj projekt da biste stvorili potrebne datoteke povezivanja kao što su .lib datoteke . Izgradnjom ovoga stvorit će se datoteka hd44780.lib unutar mape za uklanjanje pogrešaka.
Korak 3: Uključite staze pretraživanja za Linker
U dijaloški okvir svojstava za projekt CCS_LCD i u putanju za pretraživanje datoteka kartice MSP430 Linker uključite hd44780.lib koji se nalazi unutar mape za otklanjanje pogrešaka projekta hd44780. Mapa otklanjanja pogrešaka također je uključena u put pretraživanja datoteke.
Mapa uključivanja ponovno je dodana u opcije uključivanja kompajlera MSP430 projekta CCS_LCD .

Biblioteka je uspješno sastavljena i dodana u povezivač glavnog projekta.
LCD funkcije za LCD zaslon 16x2 na MSP430
void hd44780_timer_isr (void): To se povremeno naziva u ISR-u mjerača vremena A. Odbrojavanje A koristi se za povremeno obavljanje LCD funkcija poput čišćenja zaslona, postavljanja kursora i prikazivanja podataka. Funkcija se koristi u ISR-u. Ne vraća ništa.
uint8_t hd44780_write_string (char * ch__string, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): Zapisat će niz naveden u prvom argumentu.
char * ch__string: Niz koji se zapisuje u međuspremnik podataka (unutar funkcije hd44780_timer_isr ). Podaci će se kopirati u registar podataka i registar uputa LCD IC-a kad se povremeno pozove hd44780_timer_isr .
uint8_t u8__row: Definira red u kojem će se niz zapisati.
uint8_t u8__column: Definira stupac u koji će se zapisati niz.
uint8_t u8__cr_lf: Ako je postavljeno 1, redak će se prenijeti na sljedeći. Ako je 0, ispis se zaustavlja u istom redu.
void hd44780_clear_screen (void): Ova će funkcija očistiti cijeli zaslon. Ne vraća ništa.
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): funkcija će prikazati vrijednost LCD na nepotpisanom 16-bitu.
uint16_t u16__value: Cijeli broj koji će se prikazati naveden je u prvom argumentu.
uint8_t u8__leading_zero_handling: Ako se položi 0, početne nule će se prikazati na cijeloj vrijednosti. Ako se položi 1, nule će biti prazne. Ako se kao parametar preda 2, prikazat će se samo značajne znamenke.
uint8_t u8__row: Odabran je redak u kojem je prikazan cijeli broj.
uint8_t u8__column: Stupac koji se ispisuje odabire se pomoću argumenta.
uint8_t u8__cr_lf: Ako je postavljeno 1, redak će se prenijeti na sljedeći. Ako je 0, ispis se zaustavlja u istom redu.
Kružna shema na sučelju LCD-a s MSP430
Kompletni dijagram sklopa prikazan je na donjoj slici. Kao što vidite, hardverske veze su vrlo jednostavne, a kompletnu ploču napajali smo pomoću adaptera od 5 V.

Priključci se izrađuju prema gornjoj skici. Molimo pogledajte donju tablicu za detaljne veze.
| Vss | Uzemljenje 5V napajanja |
| Vdd | 5V |
| V0 | Izlaz potenciometra |
| RS | P2.1 |
| R / W | Prizemlje |
| 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 | Otpornik od 220 Ohma |
| K | Prizemlje |
Anoda LED pozadinskog osvjetljenja ne može se izravno povezati s napajanjem od 5V. Trebao bi biti povezan s otporom kako bi se minimalizirao protok struje kroz LCD modul. Povezao sam se pomoću perf ploče za lemljenje LCD-a, a zatim sam spojio žice za povezivanje LCD-a s pločom MSP430, moja postavka izgleda ovako dolje, ali za povezivanje možete jednostavno koristiti pločicu.

Programiranje MSP430 pomoću Code Composer Studio za LCD zaslon
Kompletni kod korišten u ovom projektu dan je na dnu ove stranice. Objašnjenje upotrebe koda je sljedeće. Prvo otvorite datoteku zaglavlja (hd44780.h) i uključite broj dijela mikrokontrolera u prvi dio datoteke.
#include "msp430g2553.h"
Prvo mora biti zaustavljen tajmer čuvara. Upravljački registri DCOCTL i BCSCTL1 koriste se za konfiguriranje oscilatora mikrokontrolera. Redovi u nastavku konfigurirat će MCLK na 1 MHz.
WDTCTL = (WDTPW - WDTHOLD); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;
Priključci porta 1 moraju se spomenuti kao izlazni podaci koji će se koristiti za podatkovne pribadače. Pin 0 i pin 1 također se moraju spomenuti kao izlaz u priključku 2, koji će se koristiti za RS i R / W pin.
P1DIR = 0xFF; P2DIR = (0x01 - 0x02);
Ugrađeni mjerač vremena koristi se za povremeno prikazivanje vrijednosti. Tajmer A odabran je s SMCLK (1 MHz) kao izvorom sata, a kontinuirani način rada je način rada.
TA0CCR1 = 32768; TA0CCTL1 = CCIE; TA0CTL = (TASSEL_2 - MC_2 - TACLR);
Prekidi za kanale za usporedbu 1 i 2 i prekid prelijevanja timera dijele isti vektor prekida ( TIMER0_A1_VECTOR ) s različitim početnim adresama. Kanal za usporedbu hvatanja 1 (CCR1) koristi 2 kao adresu koja se koristi u slučaju prekidača.
#pragma vector = TIMER0_A1_VECTOR __prekinuti prazninu timer_0_a1_isr (void) { prekidač (TA0IV) { slučaj 2: { hd44780_timer_isr (); pauza; } } }
Nakon što sastavite kôd, možete ga prenijeti na ploču MSP430, kao što je objašnjeno u početku rada s vodičem za MSP430. Ako sve bude kako se očekivalo, trebali biste vidjeti LCD zaslon s određenim kontrastom kao što je prikazano u nastavku.

Ako je vaš test vrlo zatamnjen, možete pokušati prilagoditi potenciometar kako biste postigli bolji kontrast. Kompletni rad projekta također se može naći u videu dolje povezanom. Nadam se da vam se svidio projekt i bilo vam je zanimljivo izraditi vlastiti. Ako imate pitanja, ostavite ih u odjeljku za komentare u nastavku. Sva svoja tehnička pitanja možete napisati i na forumima kako biste na njih dobili odgovore ili započeli raspravu.
