- 16x2 aakkosnumeerinen LCD-näyttö
- 16x2 LCD CCS -kirjasto MSP430: lle
- LCD-toiminnot 16x2 LCD-näytölle MSP430: lla
- Piirikaavio käyttöliittymän nestekidenäyttöön MSP430: lla
- MSP430: n ohjelmointi käyttämällä LCD-näytön Code Composer Studiota
Tämä artikkeli on jatkoa opetusohjelmaamme MSP430: n ohjelmoinnille Code Composer Studion avulla. Viimeinen opetusohjelma perustui MSP430: n ulkoisiin keskeytyksiin GPIO-nastojen avulla. Tämä opetusohjelma koskee näytön liittämistä MSP430: een, kun se tulee näyttämään 16 * 2 LCD-näyttö, se on ensimmäinen valinta kaikille sähköisille harrastajille. Aikaisemmin olemme myös liittäneet LCD-näytön MSP430: een Arduino IDE: n avulla, tässä opetusohjelmassa käytämme alkuperäistä Code Composer -studioalustaa sen sijaan, että käytämme Arduino IDE: tä, tällä tavalla suunnittelijana, saamme enemmän joustavuutta.
Lisätietoja 16x2 LCD-näytöstä ja sen käytöstä muiden mikrokontrollerien kanssa, katso alla olevat oppaat.
- Liitettävä LCD-näyttö ATmega16: n kanssa
- LCD-näytön ja Raspberry Pi: n kanssa
- Liitettävä LCD-näyttö PIC-mikrokontrollerilla
- Liitettävä LCD-näyttö ARM7-LPC2148: n kanssa
- Liitettävä LCD-näyttö NodeMCU: n kanssa
- Liitettävä LCD ja STM32
- Liitettävä LCD-näyttö MSP430G2: n kanssa
- Liitettävä LCD ja STM8
Siinä on sisäänrakennettu IC hd44780, joka voi tallentaa sille välitetyt komennot ja tiedot. LCD-moduulissa on noin 16 nastaa. Näistä 8 on datanastoja, joista 4 on taustavalon LED: n ja koko LCD-moduulin syöttötappeja, 3 toiminnan ohjaamiseksi ja 1 nasta kontrastin säätämistä varten. Opetusohjelma perustuu Dennis Eichmannin luomaan kirjastoon. Erilaisten toimintojen kirjastoa on erittäin helppo käyttää erilaisten tietotyyppien tulostamiseen. Siinä on myös säännöksiä tietojen esittämiseksi eri muodoissa nollalla, tyhjennettynä ja poistettuna. Se on melko laaja ja kattava kirjasto, ja se voidaan konfiguroida eri yhteyksille. Tässä otsikkotiedostoa muokataan vastaamaan 8-napaista rinnakkaista kokoonpanoa tiedonsiirtoa varten.
16x2 aakkosnumeerinen LCD-näyttö
Yleisessä 16x2-näytössä on sisäänrakennettu HD44780 IC (ympyröity punaisella alla), joka voi tallentaa sille välitetyt komennot ja tiedot. LCD-moduulissa on noin 16 nastaa. Näistä 8 on datanastoja, joista 4 on taustavalon LED: n ja koko LCD-moduulin syöttötappeja, 3 toiminnan ohjaamiseksi ja 1 nasta kontrastin säätämistä varten.
Tämä LCD-moduuli on esitetty edellä monipuolisena ja käyttää vähimmäisnastoja verrattuna muihin segmentoituihin LCD-näyttöihin. Jos olet utelias tietämään, miten tämä kaikki toimii, kannattaa tarkistaa 16x2 LCD-näytön toiminta, jossa olemme jo keskustelleet LCD-näytön toiminnasta yksityiskohtaisesti.
RS-nasta: RS = 1 ottaa käyttöön tietorekisterin nestekidenäytössä, jota käytetään arvojen kirjoittamiseen LCD-rekisteriin. RS = 0 ottaa käyttöön nestekidenäytön ohjerekisterin.
Ota tappi käyttöön: negatiivinen reuna-liipaisu; kun tappi vaihdetaan HIGH-tilasta LOW-tilaan, nestekidenäyttöä pyydetään kirjoittamaan datanastoihin. Positiivinen reunan laukaisema; kun tappi vaihdetaan LOW-tilasta HIGH-tilaan, LCD: tä kehotetaan lukemaan datanastoista.
R / W-nasta: R / W = 0 kirjoittaa käskyrekisteriin tai tietorekisteriin RS-nastan valinnan mukaisesti. R / W = 1 lukee IR: stä tai DR: stä RS-nastan valinnan mukaan.
RS R / W -käyttö
0 0 IR-kirjoitus sisäisenä toimintona (näyttö tyhjä jne.)
0 1 Lue varattu lippu (DB7) ja osoitelaskuri (DB0 - DB6)
1 0 DR-kirjoitus sisäisenä operaationa (DR - DDRAM tai CGRAM)
1 1 DR luettu sisäisenä toimintona (DDRAM tai CGRAM - DR)
D0-D7-nastat: Tiedot siirretään komento- ja tietorekistereihin ja sieltä pois näiden nastojen kautta.
Syöttötapit: V ss, V dd nastoja käytetään LCD-moduulin virtalähteeseen. A, K-nastat käyttävät LED-taustavaloa. V 0- nastoja käytetään kontrastin säätämiseen.
16x2 LCD CCS -kirjasto MSP430: lle
Opetusohjelma perustuu Dennis Eichmannin luomaan kirjastoon. Erilaisten toimintojen kirjastoa on erittäin helppo käyttää erilaisten tietotyyppien tulostamiseen. Siinä on myös säännöksiä tietojen esittämiseksi eri muodoissa nollalla, tyhjennettynä ja poistettuna. Se on melko laaja ja kattava kirjasto, ja se voidaan konfiguroida eri yhteyksille. Tässä otsikkotiedostoa muokataan vastaamaan 8-napaista rinnakkaista kokoonpanoa tiedonsiirtoa varten. Kirjaston voi ladata alla olevasta linkistä. Lataamisen jälkeen kirjasto lisätään CCS: ään noudattamalla seuraavia ohjeita.
Lataa 16x2-kirjasto MSP430: lle - Code Composer Studio
Vaihe 1: Tiedostojen ja projektien luominen
CCS-oletusprojekti luodaan tiedostovalikosta. Valitse Luo projekti -valintaikkunassa laite ja anna projektin nimeksi hd44780. Valitse projektityypin ja työkaluketjun alta tulostustyyppi staattiseksi kirjastoksi ja luo projekti.
Luo Project Explorer -kaistalla (vasen puoli) otsikkotiedosto sisällytyskansioon ja nimeä se nimellä hd44780.h . Kopioi sitten ladatun hd44780.h-tiedoston sisältö tähän äskettäin luotuun.
Luo nyt pääprojekti muuttamalla ulostulotyyppi suoritettavaksi ja luo projekti nimeltä CCS_LCD .
Vaihe 2: Sisällytä hakupolut pääprojektiin
Lisää hd44780-projektin ominaisuuksien valintaikkunaan ja MSP430-kääntäjän sisällyttämisvaihtoehtojen sisällä lisää hakemistopolku tiedostoon sisältävä kansio.
Luo sitten tämä projekti ja luo tarvittavat linkitystiedostot, kuten .lib-tiedostot . Tämän rakentaminen luo hd44780.lib- tiedoston virheenkorjauskansioon.
Vaihe 3: Sisällytä Linkerin hakupolut
Lisää CCS_LCD- projektin ominaisuuksien valintaikkunaan ja MSP430 Linker -välilehden tiedostohakupolkuun hd44780.lib, joka sijaitsee hd44780-projektin virheenkorjauskansiossa. Virheenkorjauskansio sisältyy myös tiedostojen hakupolkuun.
Sisällytä- kansio lisätään jälleen CCS_LCD- projektin MSP430-kääntäjän sisällytysvalintoihin .
Kirjasto on koottu onnistuneesti ja lisätty pääprojektin linkkiin.
LCD-toiminnot 16x2 LCD-näytölle MSP430: lla
void hd44780_timer_isr (void): Tätä kutsutaan ajoittain Ajastimen A ISR: ssä. Ajastinta A käytetään ajoittain tekemään LCD-toimintoja, kuten näytön tyhjentäminen, kohdistimen asettaminen ja tietojen näyttäminen. Toimintoa käytetään ISR: ssä. Se ei palauta mitään.
uint8_t hd44780_write_string (char * ch__string, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): Se kirjoittaa ensimmäisessä argumentissa määritetyn merkkijonon.
char * ch__string: Datapuskuriin kirjoitettava merkkijono (funktion hd44780_timer_isr sisällä). Tiedot kopioidaan LCD-IC: n tietorekisteriin ja käskyrekisteriin, kun hd44780_timer_isr kutsutaan säännöllisesti.
uint8_t u8__row: Se määrittelee rivin, johon merkkijono kirjoitetaan.
uint8_t u8__column: Se määrittää sarakkeen, johon merkkijono kirjoitetaan.
uint8_t u8__cr_lf: Jos se on asetettu 1, rivi jatkuu seuraavaan. Jos arvo on 0, tulostus pysähtyy samalla rivillä.
void hd44780_clear_screen (void): Tämä toiminto tyhjentää koko ruudun. Se ei palauta mitään.
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): Toiminto näyttää allekirjoittamattoman 16-bittiarvon.
uint16_t u16__value: Näytettävä kokonaisluku annetaan ensimmäisessä argumentissa.
uint8_t u8__leading_zero_handling: Jos 0 välitetään, alkunollat näytetään kokonaislukuarvolle. Jos 1 välitetään, nollat tyhjennetään. Jos 2 välitetään parametrina, vain merkitsevät numerot näytetään.
uint8_t u8__row: Valitaan rivi, jolla kokonaisluku näytetään.
uint8_t u8__column: Tulostettava sarake valitaan argumentin avulla.
uint8_t u8__cr_lf: Jos se on asetettu 1, rivi jatkuu seuraavaan. Jos arvo on 0, tulostus pysähtyy samalla rivillä.
Piirikaavio käyttöliittymän nestekidenäyttöön MSP430: lla
Koko piirikaavio on esitetty alla olevassa kuvassa. Kuten näette, laitteistoyhteydet ovat hyvin yksinkertaisia, ja olemme syöttäneet koko kortin virtalähteeseen 5 V: n sovittimella.
Liitännät tehdään yllä olevan piirroksen mukaisesti. Katso yksityiskohtaiset liitännät alla olevasta taulukosta.
Vss | 5 V: n virtalähteen maa |
Vdd | 5 V |
V0 | Potentiometrin lähtö |
RS | P2.1 |
R / W | Maa |
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 | 220 ohmin vastus |
K | Maa |
LED-taustavalon anodia ei voida liittää suoraan 5 V: n syöttöön. Se on kytkettävä vastukseen, jotta LCD-moduulin läpi kulkeva virta voidaan minimoida. Olen tehnyt yhteyteni perf-kortilla juottaaksesi nestekidenäytön ja sitten liittänyt hyppyjohdoilla nestekidenäytön MSP430-korttiin, kokoonpanoni näyttää tältä alla, mutta voit myös yksinkertaisesti käyttää leipätaulua yhteyksien luomiseen.
MSP430: n ohjelmointi käyttämällä LCD-näytön Code Composer Studiota
Tässä projektissa käytetty täydellinen koodi on tämän sivun alaosassa. Selitys koodin käytöstä on seuraava. Avaa ensin otsikkotiedosto (hd44780.h) ja sisällytä mikro-ohjaimen osanumero tiedoston ensimmäiseen osaan.
#include "msp430g2553.h"
Vartija-ajastin on pysäytettävä ensin. DCOCTL- ja BCSCTL1- ohjausrekistereitä käytetään mikrokontrollerin oskillaattorin konfigurointiin. Alla olevat rivit määrittävät MCLK: n arvoksi 1 MHz.
WDTCTL = (WDTPW - WDTHOLD); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;
Portti 1-nastat on mainittava tuotoksena, jota käytetään datanastoihin. Tappi 0 ja tappi 1 on myös mainittava lähtöön portissa 2, jota käytetään RS- ja R / W-nastoihin.
P1DIR = 0xFF; P2DIR = (0x01 - 0x02);
Sisäänrakennettua ajastinta käytetään arvojen näyttämiseen säännöllisesti. Ajastin A valitaan kellolähteenä SMCLK (1MHZ) ja jatkuva tila on toimintatila.
TA0CCR1 = 32768; TA0CCTL1 = CCIE; TA0CTL = (TASSEL_2 - MC_2 - TACLR);
Vertailukanavien 1 ja 2 keskeytykset ja ajastimen ylivuotokatkaisu jakavat saman keskeytysvektorin ( TIMER0_A1_VECTOR ) eri lähtöosoitteilla. Sieppaa vertailukanava 1 (CCR1) käyttää osoitetta 2, jota käytetään kytkentätapauksessa.
#pragma vector = TIMER0_A1_VECTOR __interrupt void timer_0_a1_isr (void) { switch (TA0IV) { tapaus 2: { hd44780_timer_isr (); tauko; } } }
Kun koodisi on koottu, voit ladata sen MSP430-levylle, kuten MSP430-opetusohjelman käytön alussa selitetään. Jos kaikki menee odotetulla tavalla, sinun pitäisi nähdä nestekidenäyttösi kontrasti alla olevan kuvan mukaisesti.
Jos testi on hyvin himmeä, voit yrittää säätää potentiometriä saadaksesi paremman kontrastin. Projektin täydellinen toiminta löytyy myös alla olevasta videosta. Toivottavasti pidit projektista ja pidit mielenkiintoisena rakentaa oma. Jos sinulla on kysyttävää, jätä ne alla olevaan kommenttiosioon. Voit myös kirjoittaa kaikki tekniset kysymyksesi foorumeille saadaksesi vastauksia tai aloittaaksesi keskustelun.