Kuinka MCU käyttää LCD-näyttöä ja suunnitteluun liittyviä näkökohtia

2023-07-17

Yksisiruisen mikrotietokoneen luokittelu ja sovellus
Muistityypin mukaan MCU voidaan jakaa kahteen tyyppiin ilman on-chip ROM:ia ja sirulla varustettuun ROM-muistiin. Sirut, joissa ei ole ROM-muistia, on liitettävä ulkoiseen EPROM-muistiin (yleensä 8031); sirut on-chip ROM jaetaan edelleen on-chip EPROM (tyypillisesti 87C51), MASK on-chip mask ROM (tyypillisesti 87C51) Chip on 8051), on-chip Flash-tyyppi (tyypillinen siru on 89C51) ja muita tyyppejä.
Käyttötarkoituksen mukaan se voidaan jakaa yleiskäyttöiseen ja erikoiskäyttöön; Dataväylän leveyden ja kerralla käsiteltävissä olevien datatavujen pituuden mukaan se voidaan jakaa 8-, 16- ja 32-bittisiin MCU:ihin.
Tällä hetkellä kotimaiset MCU-sovellusmarkkinat ovat laajimmin käytetty kulutuselektroniikan alalla, jota seuraavat teollisuusala ja autoelektroniikkamarkkinat. Kulutuselektroniikkaan kuuluvat muun muassa kodinkoneet, televisiot, pelikonsolit sekä ääni- ja videojärjestelmät. Teollisuuden aloja ovat älykoti, automaatio, lääketieteelliset sovellukset sekä uusi energian tuotanto ja jakelu. Autoalaan kuuluvat autojen voimansiirto- ja turvaohjausjärjestelmät jne.
Shenzhen Hongjia Technology Co., Ltd. on erikoistunut räätälöitävissä olevien 1,14-10,1 tuuman LCD-näyttöjen ja kosketusnäyttöjen tutkimukseen ja kehitykseen, tuotantoon ja myyntiin ja jotka tarjoavat tukevia MCU-näyttöjä, mukaan lukien SPI-liitäntä, MCU-liitäntä, RGB-liitäntä, MIPI-liitäntä, jne. Kokoja ja malleja on monia, myös resistiivinen kosketusnäyttö ja kapasitiivinen kosketusnäyttö voidaan toimittaa.
Yksisiruisen mikrotietokoneen perustoiminto

Useimmille MCU:ille seuraavat toiminnot ovat yleisimmät ja perustoiminnot. Eri MCU:iden kuvaus voi olla erilainen, mutta pohjimmiltaan ne ovat samat:

1. Ajastin (ajastin): Vaikka ajastimia on monia tyyppejä, ne voidaan luokitella kahteen luokkaan: yksi on ajastin kiinteällä aikavälillä, eli ajastus on järjestelmän asettama, eikä käyttäjäohjelmaa voi ohjata. Käyttäjäohjelmat voivat valita vain useita kiinteitä aikavälejä, kuten 32 Hz, 16 Hz, 8 Hz jne. Tällainen ajastin on yleisempi 4-bittisissä MCU:issa, joten sitä voidaan käyttää liittyvien toimintojen, kuten kellon ja ajoituksen, toteuttamiseen. .
Toinen tyyppi on ohjelmoitava ajastin (ohjelmoitava ajastin). Kuten nimestä voi päätellä, tämän tyyppisen ajastimen ajoitusaikaa voidaan ohjata käyttäjän ohjelmalla. Ohjausmenetelmiä ovat: kellolähteen valinta, taajuusjaon valinta (Prescale) ja esivalmistettu numeroasetus jne. Joissakin MCU:issa on kaikki kolme samanaikaisesti, kun taas toisissa niitä voi olla yksi tai kaksi. Tällainen ajastinsovellus on erittäin joustava, ja myös todellinen käyttö muuttuu jatkuvasti. Yksi yleisimmistä sovelluksista on käyttää sitä PWM-lähdön toteuttamiseen.
Koska kellon lähde voidaan valita vapaasti, tällaiset ajastimet yhdistetään yleensä tapahtumalaskurien kanssa.
2. IO-portit: Jokaisessa MCU:ssa on tietty määrä IO-portteja. Ilman IO-portteja MCU menettää viestintäkanavan ulkomaailman kanssa. IO-portin kokoonpanon mukaan se voidaan jakaa seuraaviin tyyppeihin:
Puhdas tulo- tai lähtöportti: Tämän tyyppinen IO-portti määräytyy MCU-laitteiston suunnittelun mukaan. Se voidaan vain syöttää tai tulostaa, eikä sitä voi asettaa ohjelmistolla reaaliajassa.
Suoraan lukea ja kirjoittaa IO-portit: Esimerkiksi MCS-51:n IO-portit kuuluvat tämän tyyppisiin IO-portteihin. Suorittaessaan read IO port -käskyä se on tuloportti; kun kirjoita IO-portti käsky suoritetaan, se on automaattisesti lähtöportti.
Ohjelmaohjelmointi tulo- ja lähtösuunnan asettamiseen: tämän tyyppisen IO-portin tulo tai lähtö asetetaan ohjelmalla todellisten tarpeiden mukaan, sovellus on suhteellisen joustava ja joitain väylätason sovelluksia voidaan toteuttaa, kuten I2C väylä, erilaiset LCD-näytöt, LED-ajurit ohjausväylä jne.
IO-portin käytössä on pidettävä mielessä tärkeä seikka: tuloportissa on oltava selkeä tasosignaali sen varmistamiseksi, että se ei voi kellua (se voidaan saavuttaa lisäämällä pull-up tai pull-up). alas vastus); lähtöportille sen lähtö Tilatasolla tulee huomioida sen ulkoinen liitäntä ja on varmistettava, ettei valmius- tai staattisessa tilassa ole virtalähdettä tai nielua.
3. Ulkoinen keskeytys: Ulkoinen keskeytys on myös useimpien MCU:iden perustoiminto. Sitä käytetään yleensä signaalien reaaliaikaiseen laukaisuun, datanäytteistöön ja tilan havaitsemiseen. Keskeytyksiä on useita tyyppejä: nouseva reuna, laskevan reunan liipaisin ja tason liipaisin. Ulkoiset keskeytykset toteutetaan yleensä tuloporttien kautta. Jos se on IO-portti, keskeytystoiminto on käytössä vain, kun se on asetettu tuloon; jos se on lähtöportti, ulkoinen keskeytystoiminto kytkeytyy automaattisesti pois päältä (ATMEL:n Atiny-sarjassa on joitain poikkeuksia, lähtöportti voi myös laukaista keskeytystoiminnon). Ulkoisen keskeytyksen sovellus on seuraava:
Ulkoisten laukaisusignaalien havaitseminen: toinen perustuu reaaliaikaisiin vaatimuksiin, kuten piiohjattujen tasasuuntaajien ohjaus, purskesignaalien havaitseminen jne., ja toinen on virransäästön tarve.
Signaalin taajuuden mittaus: Ulkoinen keskeytys on ihanteellinen valinta varmistaaksesi, että signaalia ei menetetä.
Datan dekoodaus: Kaukosäädinsovellusten alalla suunnittelukustannusten vähentämiseksi on usein tarpeen käyttää ohjelmistoja erilaisten koodattujen tietojen, kuten Manchesterin ja PWM-koodauksen, purkamiseen.
Avaimen tunnistus ja järjestelmän herätys: Lepotilaan siirtyvä MCU on yleensä herätettävä ulkoisen keskeytyksen kautta. Perusmuoto on avain, ja tason muutos syntyy avaimen toiminnasta.
4. Tiedonsiirtorajapinta: MCU:n tarjoama tietoliikenneliitäntä sisältää yleensä SPI-liitännän, UART-, I2C-liitännän jne., jotka kuvataan seuraavasti:
SPI-liitäntä: Tämäntyyppinen liitäntä on useimpien MCU:iden tarjoama yksinkertaisin viestintämenetelmä. Sen tiedonsiirtoa ohjaa synkroninen kello. Signaalit sisältävät: SDI (serial data input), SDO (serial data output), SCLK (sarjakello) ja Ready-signaalin; joissakin tapauksissa ei ehkä ole Valmis-signaalia; Tämän tyyppinen käyttöliittymä voi toimia Master-tilassa tai Slave-tilassa, suosittu sanonta on nähdä kuka antaa kellosignaalin, kellon tarjoava osapuoli on isäntä ja vastakkainen osapuoli Silloin se on Slaver.
UART (Universal Asynchronous Receive Transmit): Se on yksinkertaisin asynkronisen lähetyksen liitäntä. Sen signaalilinjat ovat vain Rx ja Tx. Tietojen perusmuoto on: aloitusbitti + databitti (7-bittiä/8-bittiä) + pariteettibitti (parillinen, pariton tai ei mitään) + lopetusbitti (1-2 bittiä). Yhden databitin kulumaa aikaa kutsutaan siirtonopeudeksi (baud rate).
Useimmissa MCU:issa databittien pituus, tiedontarkistusmenetelmä (pariton tarkistus, parillinen tarkistus tai ei tarkistusta), pysäytysbitin pituus (Stop Bit) ja siirtonopeus voidaan asettaa joustavasti ohjelmoimalla. Varmasti. Yleisimmin käytetty tapa tämäntyyppisissä liitännöissä on kommunikoida tietokoneen sarjaportin kanssa.
I2C-liitäntä: I2C on Philipsin kehittämä tiedonsiirtoprotokolla, joka on myös toteutettu kahdella signaalilla: SDAT (serial data input and output) ja SCLK (sarjakello). Sen suurin etu on, että tähän väylään voidaan liittää useita laitteita, jotka voidaan tunnistaa ja käyttää osoitteiden kautta; yksi I2C-väylän suurimmista eduista on, että se on erittäin kätevä käyttää ohjelmistoa sen toteuttamiseen IO-portin kautta, ja sen tiedonsiirtonopeus on täysin SCLK:n ohjaama. Ohjatakseen se voi olla nopea tai hidas, toisin kuin UART-liitäntä , jolla on tiukat nopeusvaatimukset.
5. Watchdog (watchdog-ajastin): Watchdog on myös useimpien MCU:iden peruskokoonpano (joissakin 4-bittisissä MCU:issa ei ehkä ole tätä toimintoa), ja useimmat MCU-vahtikoirat voivat vain sallia ohjelmien nollata ne, eivätkä ne voi nollata niitä. Se on suljettu (jotkut asetetaan, kun ohjelma poltetaan, kuten Microchip PIC -sarjan MCU), ja jotkin MCU:t määrittävät, avataanko se tietyllä tavalla, kuten Samsungin KS57-sarja, kunhan ohjelma käyttää Watchdog-rekisteriä. , kytkeytyy automaattisesti päälle, eikä sitä voi sammuttaa uudelleen. Yleisesti ottaen vahtikoiran nollausaika voidaan asettaa ohjelmakohtaisesti. Watchdogin perussovellus on tarjota itsepalautuskyky MCU:lle kaatuessa odottamattomien vikojen vuoksi.

Mikrokontrolleri ohjelmointi
MCU-ohjelmien ohjelmoinnin ja PC-ohjelmien ohjelmoinnin välillä on suuri ero. Vaikka C-pohjaiset MCU-kehitystyökalut ovat tulossa yhä suositumpia, tehokkaalle ohjelmakoodille ja kokoonpanosta tykkäävälle suunnittelijalle kokoonpanokieli Edelleen tiiviin ja tehokkain ohjelmointikieli.

MCU-ohjelmoinnin peruskehyksen voidaan sanoa olevan suurin piirtein sama, jaettu yleensä kolmeen osaan: alustusosaan (tämä on suurin ero MCU-ohjelmoinnin ja PC-ohjelmoinnin välillä), pääohjelman silmukan runko ja keskeytyskäsittelyohjelma, jotka ovat vastaavasti. selitetty seuraavasti:
1. Alustus: Kaikkien MCU-ohjelmien suunnittelussa alustus on yksinkertaisin ja tärkein vaihe, joka sisältää yleensä seuraavat:
Peitä kaikki keskeytykset ja alusta pinoosoitin: Alustusosa ei yleensä halua keskeytyksiä tapahtuvan.
Tyhjennä järjestelmän RAM-alue ja näyttö Muisti: Vaikka joskus se ei välttämättä ole täysin tarpeellista, on luotettavuuden ja johdonmukaisuuden kannalta, erityisesti tahattomien virheiden estämiseksi, suositeltavaa kehittää hyviä ohjelmointitottumuksia.
IO-portin alustus: Aseta kyseisen IO-portin tulo- ja lähtötila projektin sovellusvaatimusten mukaisesti. Tuloporttia varten sinun on asetettava sen ylös- tai alasvetovastus; lähtöporttia varten sinun on asetettava sen lähtötaso tarpeettomien virheiden välttämiseksi.
Keskeytysasetukset: Kaikille keskeytyslähteille, joita projektissa on käytettävä, ne tulee ottaa käyttöön ja keskeytysten laukaisuehdot on asetettava, kun taas käyttämättömien redundanttien keskeytysten on oltava pois päältä.
Muiden toiminnallisten moduulien alustus: Kaikille MCU:n oheistoiminnallisille moduuleille, joita on käytettävä, on tehtävä vastaavat asetukset projektin sovellusvaatimusten mukaan, kuten UART-viestintä, tiedonsiirtonopeus, tiedon pituus, vahvistusmenetelmä ja Stop. Bitti on asetettava Pituus jne., ja Ohjelmoija-ajastimelle on asetettava sen kellolähde, taajuusjako ja Reload Data jne.
Parametrien alustus: Kun MCU-laitteiston ja -resurssien alustus on valmis, seuraava vaihe on alustaa jotkin ohjelmassa käytetyt muuttujat ja tiedot. Tämän osan alustus on suunniteltava tietyn projektin ja ohjelman yleisen järjestelyn mukaan. Joissakin sovelluksissa, jotka käyttävät EEPROM-muistia projektin esivalmistettujen tietojen tallentamiseen, on suositeltavaa kopioida tarvittavat tiedot MCU:n RAM-muistiin alustuksen aikana, jotta ohjelman tiedonkulkunopeus paranee ja järjestelmän virrankulutus pienenee (periaatteessa , pääsy ulkoiseen EEPROMiin lisää virtalähteen virrankulutusta).
2. Pääohjelman silmukkarunko: Useimmat MCU:t toimivat jatkuvasti pitkään, joten pääohjelman runko on periaatteessa suunniteltu syklisesti. Sovelluksissa, joissa on useita työtiloja, voi olla useita. Silmukan runko muunnetaan keskenään tilalipun kautta. Ohjelman päärungossa on yleensä järjestetty seuraavat moduulit:
Laskentaohjelma: Laskentaohjelma on yleensä aikaa vievä, joten se vastustaa tiukasti kaikenlaista keskeytyskäsittelyä, erityisesti kerto- ja jakooperaatioita.
Ohjelmien käsittely, joilla on alhaiset reaaliaikavaatimukset tai ei lainkaan reaaliaikaisia ​​vaatimuksia;

Näytön lähetysohjelma: pääasiassa sovelluksille, joissa on ulkoinen LED- ja LCD-ohjain.
3. Keskeytyskäsittelyohjelma: Keskeytysohjelmaa käytetään pääasiassa sellaisten tehtävien ja tapahtumien käsittelyyn, joilla on korkeat reaaliaikaiset vaatimukset, kuten ulkoisten äkillisten signaalien havaitseminen, näppäinten havaitseminen ja käsittely, ajoituslaskenta, LED-näytön skannaus jne.
Yleensä keskeytysohjelman tulee pitää koodi mahdollisimman ytimekkäänä ja lyhyenä. Toiminnoissa, joita ei tarvitse käsitellä reaaliajassa, voit asettaa liipaisulipun keskeytykseen, jolloin pääohjelma suorittaa tietyn tapahtuman – tämä on erittäin tärkeää. Erityisesti pienitehoisten ja hitaiden MCU:iden kohdalla on tarpeen varmistaa oikea-aikainen vastaus kaikkiin keskeytuksiin.
4. Eri tehtäväelinten järjestämistä varten eri MCU:illa on erilaiset käsittelymenetelmät:
Esimerkiksi pieninopeuksisissa, vähän tehoa käyttävissä MCU-sovelluksissa (Fosc=32768Hz) ottaen huomioon, että tällaiset projektit ovat kaikki kädessä pidettäviä laitteita ja käyttävät tavallisia LCD-näyttöjä, painikkeiden ja näyttöjen vaste vaatii suurta reaaliaikaista suorituskykyä, joten yleensä ajastettu keskeytys käytetään näppäintoimintojen ja datan näytön käsittelemiseen; ja nopeille MCU:ille, kuten Fosc>1MHz-sovelluksille, koska MCU:lla on tarpeeksi aikaa suorittaa pääohjelman silmukan runko tällä hetkellä, se voidaan keskeyttää vain vastaavassa Aseta eri trigger-liput ja laittaa kaikki tehtävät. pääohjelman rungossa suoritettavaksi.
5. MCU:n ohjelmointisuunnittelussa vielä yksi kohta, joka vaatii erityistä huomiota:

Estääksesi saman muuttujan tai datan samanaikaisen käytön tai asettamisen keskeytyksessä ja pääohjelman rungossa. Tehokas ennaltaehkäisevä menetelmä on järjestää tällaisten tietojen käsittely moduulissa ja määrittää, suoritetaanko datan asiaankuuluva toimenpide arvioimalla liipaisulippu; kun taas muissa ohjelman rungoissa (pääasiassa keskeytykset) käsiteltävät tiedot Käsittelypaikka asettaa vain laukaisun lipun. - Tämä varmistaa, että tietojen suoritus on ennustettavaa ja ainutlaatuista.

Mikrokontrollerikehitystaidot

1. Kuinka vähentää ohjelman virheitä
Ohjelmistovirheiden vähentämiseksi sinun tulee ensin ottaa huomioon seuraavat yli alueen hallintaparametrit, jotka tulee ottaa huomioon järjestelmän käytön aikana.
Fyysiset parametrit: Nämä parametrit ovat pääasiassa järjestelmän syöttöparametreja, mukaan lukien heräteparametrit, toimintaparametrit hankinnan ja käsittelyn aikana sekä tulosparametrit käsittelyn lopussa.

Resurssiparametrit: Nämä parametrit ovat pääasiassa järjestelmän piirien, laitteiden ja toiminnallisten yksiköiden resursseja, kuten muistikapasiteetti, tallennusyksikön pituus ja pinoamissyvyys.
Sovellusparametrit: Nämä sovellusparametrit edustavat usein joidenkin yksisiruisten mikrotietokoneiden ja toiminnallisten yksiköiden sovellusolosuhteita. Prosessiparametrit: Viittaa parametreihin, jotka muuttuvat järjestyksessä järjestelmän toiminnan aikana.


2. Kuinka parantaa C-kielen ohjelmointikoodin tehokkuutta
Yksisiruisten mikrotietokoneiden kehittämisessä ja soveltamisessa on väistämätön trendi käyttää C-kieltä yksisiruisen mikrotietokoneohjelman suunnittelussa. Jos haluat saavuttaa suurimman tehokkuuden ohjelmoimalla C-kielellä, on parasta tuntea käyttämäsi C-kääntäjä. Testaa ensin kutakin käännettyä C-kieltä vastaava lauserivien määrä kokoonpanokielellä, jotta tiedät selkeästi tehokkuuden. Käytä jatkossa ohjelmoinnissa korkeimman käännöstehokkuuden omaavaa lausetta. Jokaisella C-kääntäjällä on tiettyjä eroja, joten myös kääntämisen tehokkuus on erilainen. Erinomaisen sulautetun järjestelmän C-kääntäjän koodin pituus ja suoritusaika ovat vain 5-20 % pidempiä kuin sama toimintotaso kokoonpanokielellä kirjoitettuna.

Monimutkaisissa projekteissa, joissa kehitysaika on tiukka, voidaan käyttää C-kieltä, mutta lähtökohtana on, että tunnet hyvin MCU-järjestelmän C-kielen ja C-kääntäjän ja kiinnität erityistä huomiota C-kääntäjäjärjestelmän tietotyyppeihin ja algoritmeihin. voi tukea. Vaikka C-kieli on yleisin korkean tason kieli, eri MCU-valmistajien C-kielen käännösjärjestelmät ovat erilaisia, erityisesti joidenkin erikoistoimintomoduulien toiminnassa. Joten jos et ymmärrä näitä ominaisuuksia, virheenkorjauksessa on paljon ongelmia, mikä johtaa alhaisempaan suoritustehokkuuteen kuin kokoonpanokieli.

3. Yksisiruisen mikrotietokoneen häiriöntorjuntaongelman ratkaiseminen Tehokkain tapa estää häiriöt on poistaa häiriölähde ja katkaista häiriöpolku, mutta se on usein vaikeaa, joten se riippuu vain onko yksisiruisen mikrotietokoneen häiriönestokyky riittävän vahva. Samalla kun se parantaa laitteistojärjestelmän häirinnänestokykyä, ohjelmiston häirintäesto on ominaista sen joustavan suunnittelun,
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. By using this site, you agree to our use of cookies. Privacy Policy