- Aparatūras iestatīšana un prasības
- N76E003 LED un spiedpogas saskarnes ķēde
- N76E003 izvilkšanas shēma
- Vienkārša GPIO vadības programma N76E003
- N76E003 programmēšana un izejas pārbaude
Iepriekšējā apmācībā mēs izmantojām pamata mirgojošu LED programmu, lai sāktu darbu ar N76E003 rokasgrāmatu, mēs jau iemācījāmies konfigurēt Keil IDE un iestatīt vidi nuvoton mikrokontrolleru bloka N76E003 programmēšanai. Ir pienācis laiks virzīties mazliet tālāk un izmantot GPIO pamata saskarni, lai kontrolētu papildu aparatūru. Ja jūs interesē, varat pārbaudīt arī citas mikrokontrolleru GPIO apmācības, kas norādītas zemāk -
- STM32 Nucleo64 ar CubeMx un TrueSTUDIO - LED vadību
- STM8S ar Cosmic C GPIO vadību
- PIC ar MPLABX LED Blink apmācību
- MSP430 ar Code Composer Studio - vienkārša LED vadība
Tā kā mūsu iepriekšējā apmācībā mēs mirgošanai izmantojām tikai gaismas diode, kā izeju izmantojot IO tapu. Šajā apmācībā mēs uzzināsim, kā izmantot citu IO tapu kā ieeju un kontrolēt papildu LED. Netērējot daudz laika, novērtēsim, kāda veida aparatūras iestatīšana mums nepieciešama.
Aparatūras iestatīšana un prasības
Tā kā slēdzis jāizmanto kā ievade, vispirms mums ir nepieciešama spiedpoga. Mēs arī pieprasām, lai ar šo spiedpogu vadītu papildu LED. Izņemot šos divus, mums ir vajadzīgs arī rezistors, lai ierobežotu LED strāvu, un papildu rezistors nolaižamajiem nolūkiem pāri spiedpogai. Tas tiks tālāk parādīts shematiskajā sadaļā. Mums nepieciešamās sastāvdaļas -
- Spiedpoga (jebkura veida īslaicīgs slēdzis - taustes slēdzis)
- Jebkura LED krāsa
- 4.7k rezistors nolaižamiem nolūkiem
- 100R rezistors
Nemaz nerunājot par to, ka, izņemot iepriekš minētos komponentus, mums ir nepieciešama N76E003 mikrokontrolleru bāzes padome, kā arī Nu-Link programmētājs. Turklāt visu komponentu savienošanai ir nepieciešami arī paneļa un savienojuma vadi, kā parādīts zemāk.
N76E003 LED un spiedpogas saskarnes ķēde
Kā redzam zemāk redzamajā shēmā, testa LED, kas atrodas izstrādes paneļa iekšpusē, ir savienots ar 1.4 pieslēgvietu un papildu LED ir pievienots pie 1.5. Rezistoru R3 izmanto, lai ierobežotu LED strāvu.
1. tapā ir pievienota spiedpoga ar nosaukumu SW. Ikreiz, kad tiek nospiesta poga, tapa kļūst augsta. Pretējā gadījumā tas samazināsies par 4,7K nolaižamo rezistoru R1. Jūs varat uzzināt vairāk par pievilkamiem un nolaižamiem rezistoriem, ja esat jauns šīs koncepcijas pārstāvis.
Piespraude ir arī ar programmu saistīta tapa, kurai piekļūst programmētājs. To izmanto, lai nosūtītu programmas datus. Tomēr mēs redzēsim šo tapu izvēles iemeslu, kā arī iegūsim patiesu informāciju par N76E003 tapu kartēšanu.
N76E003 izvilkšanas shēma
Pin diagramma N76E003 var redzēt zemāk image-
Kā redzam, katrai tapai ir vairākas funkcijas, un to var izmantot dažādiem mērķiem. Ņemsim piemēru. Tapu 1.7 var izmantot kā pārtraukumu, analogo ieeju vai kā vispārējas nozīmes ieejas-izejas darbību. Tādējādi, ja jebkuru tapu izmanto kā I / O tapas, attiecīgā funkcionalitāte nebūs pieejama.
Sakarā ar to tapu 1.5, kas tiek izmantota kā LED izejas tapa, tā zaudēs PWM un citas funkcionalitātes. Bet tā nav problēma, jo šim projektam nav nepieciešama cita funkcionalitāte. Iemesls, kāpēc izvēlaties tapu 1.5 kā izvadi un tapu 1.6 kā ievadi, jo GND un VDD tapas ir vistuvāk pieejamas ērtai savienošanai.
Tomēr šajā mikrokontrollerī no 20 tapām 18 tapas var izmantot kā GPIO tapu. Spraudnis 2.0 tiek īpaši izmantots ievades atiestatīšanai, un to nevar izmantot kā izvadi. Izņemot šo tapu, visas tapas var konfigurēt zemāk aprakstītajā režīmā.
Saskaņā ar datu lapu PxM1.n un PxM2.n ir divi reģistri, kurus izmanto, lai noteiktu I / O porta vadības darbību. Tagad, sākot rakstīt un lasīt GPIO portu, ir pavisam cita lieta. Tā kā rakstīšana ostas vadības reģistrā maina ostas fiksācijas stāvokli, turpretī ostas lasīšana iegūst loģiskā stāvokļa statusu. Bet, lai lasītu portu, tas jāiestata ievades režīmā.
Vienkārša GPIO vadības programma N76E003
Pilna šajā apmācībā izmantotā programma ir atrodama šīs lapas apakšā, koda skaidrojums ir šāds.
Piespraudes iestatīšana kā ievade
Vispirms sāksim ar ievadi. Kā tika apspriests tieši iepriekš, lai lasītu porta statusu, tas jāiestata kā ievade. Tāpēc, tā kā mēs par ievades slēdža tapu esam izvēlējušies P1.6, mēs to apzīmējām caur zemāk esošo koda fragmenta rindu.
#define SW P16
Šī pati tapa ir jāiestata kā ievade. Tādējādi iestatīšanas funkcijā tapa tiek iestatīta kā ievade, izmantojot zemāk esošo līniju.
void setup (void) {P14_Quasi_Mode; P15_Quasi_Mode; P16_Input_Mode; }
Šī rinda P16_Input_Mode; ir definēts galvenes failā Function_define.h “BSP include library”, kas nosaka pin bitu kā P1M1- = SET_BIT6; P1M2 & = ~ SET_BIT6 . SET_BIT6 arī definēta pašā galvenes failā kā-
#define SET_BIT6 0x40
Piespraudes iestatīšana kā izeja
Tāpat kā ievades tapa, izejas tapa, kuru izmanto iebūvētais testa LED un ārējais LED1, ir definēta arī koda pirmajā sadaļā ar attiecīgajiem PIN.
#define Test_LED P14 #define LED1 P15
Šīs tapas ir iestatītas kā izeja iestatīšanas funkcijā, izmantojot zemāk redzamās rindas.
void setup (void) { P14_Quasi_Mode; // Izeja P15_Quasi_Mode; // izeja P16_Input_Mode; }
Šīs rindas ir definētas arī galvenes failā Function_define.h, kur tas nosaka pin bitu kā P1M1 & = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . SET_BIT6 arī definēta pašā galvenes failā kā-
#define SET_BIT4 0x10
Bezgalīgs kamēr cilpa
Aparatūra, ja tā ir savienota ar strāvu un darbojas nevainojami un kurai nepārtraukti jādod izvadi, programma nekad neapstājas. Tā rīkojas bezgalīgi ilgi. Šeit parādās bezgalīga cilpa funkcija. Pieteikums cilpa while laikā darbojas bezgalīgi.
kamēr (1) { Test_LED = 0; sw_delay (150); Testa_LED = 1; sw_delay (150); ja (SW == 1) {LED1 = 0; } cits {LED1 = 1; }}}
Iepriekš minētais, kamēr cilpa mirgo LED, atbilstoši sw_delay vērtībai, kā arī pārbauda SW statusu. Nospiežot slēdzi, P1.6 būs augsts, un līdz ar to, nospiežot, nolasīšanas statuss būs 1. Šajā situācijā uz laiku slēdzis tiek nospiests un ports P1.6 paliek augsts, LED1 mirgos.
N76E003 programmēšana un izejas pārbaude
Sākot darbu ar N76E003 apmācību, mēs iemācījāmies jau programmēt N76E003, tāpēc mēs vienkārši atkārtosim tās pašas darbības, lai programmētu mūsu dēli. Kods tika veiksmīgi sastādīts un atgrieza 0 brīdinājumus un 0 kļūdas, un tas mirgo, izmantojot Keil noklusējuma mirgošanas metodi.
Kā redzat iepriekš redzamajā attēlā, mūsu ārējā gaismas diode iedegas, kad nospiežu spiedpogu. Pilnīga projekta darbība ir atrodama zemāk esošajā videoklipā. Ceru, ka jums patika apmācība un uzzinājāt kaut ko noderīgu, ja jums ir kādi jautājumi, atstājiet tos komentāru sadaļā zemāk. Varat arī izmantot mūsu forumus, lai uzdotu citus tehniskus jautājumus.