- Laitteiston asennus ja vaatimus
- N76E003 LED- ja painonappiliitäntäpiiri
- N76E003 Kiinnityskaavio
- Yksinkertainen GPIO-ohjausohjelma mallille N76E003
- N76E003: n ohjelmointi ja ulostulon tarkistaminen
Edellisessä opetusohjelmassa käytimme LED-vilkkumisen perusohjelmaa N76E003- oppaan käytön aloittamiseen, opimme jo määrittämään Keil IDE: n ja asettamaan ympäristön nuvoton-mikrokontrolleriyksikön N76E003 ohjelmoimiseksi. On aika siirtyä hieman pidemmälle ja käyttää GPIO- perusliitäntää lisälaitteiden ohjaamiseen. Jos olet kiinnostunut, voit tarkistaa myös muut alla luetellut mikro-ohjaimen GPIO-oppaat-
- STM32 Nucleo64, CubeMx ja TrueSTUDIO - LED-ohjaus
- STM8S Cosmic C GPIO -ohjauksella
- PIC MPLABX LED Blink -oppaalla
- MSP430 ja Code Composer Studio - yksinkertainen LED-ohjaus
Koska edellisessä opetusohjelmassa käytimme vain LEDiä vilkkumaan käyttämällä IO-nastaa ulostulona. Tässä opetusohjelmassa opimme käyttämään toista IO-nastaa tulona ja ohjaamaan ylimääräistä LEDiä. Arvioimatta, millaista laitteistoasetusta tarvitsemme tuhlaamatta paljon aikaa.
Laitteiston asennus ja vaatimus
Koska kytkintä on käytettävä tulona, tarvitsemme ensin painonäppäimen. Tarvitsemme myös ylimääräisen LEDin ohjaamisen tällä painikkeella. Näiden kahden lisäksi tarvitsemme myös vastuksen rajoittamaan LED-virtaa ja ylimääräisen vastuksen alasvetotarkoituksia varten painikkeen yli. Tämä osoitetaan edelleen kaaviollisessa osassa. Tarvittavat komponentit -
- Painike (mikä tahansa hetkellinen kytkin - kosketuskytkin)
- Mikä tahansa LEDin väri
- 4.7k vastus alasvetotarkoituksiin
- 100R vastus
Puhumattakaan siitä, että edellä mainittuja komponentteja lukuun ottamatta tarvitsemme N76E003-mikrokontrolleripohjaisen kehityskortin sekä Nu-Link-ohjelmoijan. Lisäksi kaikkien komponenttien liittämiseen tarvitaan leipälauta- ja kytkentäjohtoja alla olevan kuvan mukaisesti.
N76E003 LED- ja painonappiliitäntäpiiri
Kuten alla olevasta kaaviosta voidaan nähdä, kehityskortin sisällä oleva testi-LED on kytketty porttiin 1.4 ja ylimääräinen LED- portti 1.5. Vastusta R3 käytetään rajoittamaan LED-virtaa.
Napaan 1.6 kytketään painike SW nimeltä. Aina kun painiketta painetaan, tappi nousee korkealle. Muuten se laskee 4.7K alasvetovastuksella R1. Voit oppia lisää ylös- ja alasvetovastuksista, jos olet uusi käsite.
Tappi on myös ohjelmaan liittyvä tappi, jota ohjelmoija käyttää. Sitä käytetään ohjelmatietojen lähettämiseen. Näemme kuitenkin syyn näiden nastojen valitsemiseen sekä saamme oikeudenmukaista tietoa N76E003: n tappi-kartoituksesta.
N76E003 Kiinnityskaavio
Tappi kaavio N76E003 voidaan nähdä alla kuva-
Kuten näemme, jokaisella tapilla on useita toimintoja ja niitä voidaan käyttää eri tarkoituksiin. Otetaan esimerkki. Tappia 1.7 voidaan käyttää keskeytys- tai analogitulona tai yleiskäyttöisenä tulo- ja lähtötoimintana. Siten, jos jotain nastaa käytetään I / O-nastoina, vastaava toiminto ei ole käytettävissä.
Tämän vuoksi tappi 1.5, jota käytetään LED-ulostulotapina, menettää PWM: n ja muut toiminnot. Mutta se ei ole ongelma, koska toista toimintoa ei vaadita tässä projektissa. Syynä nastan 1,5 valitsemiseen lähdöksi ja nastan 1,6 tuloksi, koska GND- ja VDD-nastat ovat lähinnä helppoa liittämistä varten.
Tässä mikrokontrollerissa 20 nastasta 18 nastaa voidaan kuitenkin käyttää GPIO-nastana. Tappia 2.0 käytetään erityisesti Reset-tuloon, eikä sitä voida käyttää lähtöön. Tämän nastan lisäksi kaikki nastat voidaan määrittää alla kuvatussa tilassa.
Datalehden mukaan PxM1.n ja PxM2.n ovat kaksi rekisteriä, joita käytetään määrittämään I / O-portin ohjaustoiminta. Nyt GPIO-portin kirjoittaminen ja lukeminen on täysin erilainen asia. Koska kirjoittaminen sataman ohjausrekisteriin muuttaa portin lukitustilaa, kun taas portin lukeminen saa logiikkatilan. Mutta portin lukemista varten se on asetettava syöttötilaan.
Yksinkertainen GPIO-ohjausohjelma mallille N76E003
Tässä opetusohjelmassa käytetty koko ohjelma löytyy tämän sivun alaosasta, koodin selitys on seuraava.
Nastan asettaminen tuloksi
Aloitetaan ensin syötteestä. Kuten juuri aiemmin keskusteltiin, portin tilan lukemiseksi se on asetettava syötteeksi. Siksi, kun olemme valinneet P1.6: n tulokytkimen piniksi, olemme merkinneet sen koodinpätkän alla olevan rivin kautta.
#define SW P16
Tämä sama tappi on asetettava tuloksi. Siten asetustoiminnossa tappi asetetaan tuloksi käyttämällä alla olevaa riviä.
void setup (void) {P14_Quasi_Mode; P15_Quasi_Mode; P16_Input_Mode; }
Tämä rivi P16_Input_Mode; on määritelty "BSP include library" -otsikkotiedostossa Function_define.h, joka asettaa nastabitin arvoksi P1M1- = SET_BIT6; P1M2 & = ~ SET_BIT6 . SET_BIT6 on myös määritelty samassa otsikkotiedostoon AS-
#define SET_BIT6 0x40
Nastojen asettaminen lähdöksi
Sama kuin tulotappi, sisäänrakennetun testiledin ja ulkoisen LED1: n käyttämä ulostulotapa määritetään myös koodin ensimmäisessä osassa vastaavilla PIN-koodeilla.
#define Test_LED P14 #define LED1 P15
Nämä nastat asetetaan lähtöön asetustoiminnossa käyttämällä alla olevia rivejä.
void setup (void) { P14_Quasi_Mode; // Lähtö P15_Quasi_Mode; // Output P16_Input_Mode; }
Nämä rivit on määritelty myös Function_define.h- otsikkotiedostossa, jossa se asettaa pin-bitiksi P1M1 & = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . SET_BIT6 on myös määritelty samassa otsikkotiedostoon AS-
#define SET_BIT4 0x10
Ääretön, vaikka silmukka
Laitteisto, jos se on kytketty virtalähteeseen ja toimii täydellisesti ja sen pitäisi tuottaa lähtö jatkuvasti, sovellus ei koskaan pysähdy. Se tekee saman loputtomina aikoina. Tässä tulee loputon silmukka -toiminto. Application-silmukan sisällä oleva sovellus toimii loputtomasti.
kun (1) { Test_LED = 0; viive (150); Testi_LED = 1; viive (150); jos (SW == 1) {LED1 = 0; } muu {LED1 = 1; }}}
Yllä oleva silmukka vilkkuu lediä sw_delay- arvon mukaan ja tarkistaa myös SW-tilan. Jos kytkintä painetaan, P1.6 on korkea, ja kun sitä painetaan, lukutila on 1. Tässä tilanteessa kytkintä painetaan jonkin aikaa ja portti P1.6 pysyy korkealla, LED1 palaa.
N76E003: n ohjelmointi ja ulostulon tarkistaminen
Meidän aloittanut N76E003 opetusohjelma, opimme ohjelmoida N76E003 jo, joten me vain toistaa samat vaiheet tässä ohjelmoida meidän aluksella. Koodi koottiin onnistuneesti ja palautti 0 varoituksen ja 0 virhettä ja välähti käyttäen Keilin oletusarvoista vilkkumenetelmää.
Kuten yllä olevasta kuvasta näet, ulkoinen LED-merkkivalo syttyy, kun painan painonappia. Projektin täydellinen toiminta löytyy alla olevasta videosta. Toivottavasti pidit opetusohjelmasta ja opit jotain hyödyllistä, jos sinulla on kysyttävää, jätä ne alla olevaan kommenttiosioon. Voit myös käyttää foorumeitamme kysyäksesi muita teknisiä kysymyksiä.