Microcontrolerul este un dispozitiv, un microcircuit, conceput pentru a controla alte dispozitive. Microcontrolerul conține un procesor, memorie și periferice. De fapt, controlerul "trage picioarele" - trimite impulsuri de diferite lungimi la picioare.
atmega8 în pachetul DIPȘi acest lucru este foarte important să înțelegeți să începeți să învățați despre microcontrolere.
Lista perifericelor controlerului este foarte mare.
- porturi digitale universale - au un mod de operare configurabil atât pentru intrare, cât și pentru ieșire;
- alte interfețe I / O, cum ar fi UART, USB, IEEE 1394, Ethernet;
- convertoare analog-digitale și digital-analogice;
- comparatoare;
- puls modulatoare de lățime;
- cronometre;
- matrice de memorie flash încorporată;
- generator de ceas generat și / wp-admin / post.php? post = 119action = edita cronometrul de supraveghere.
În note, considerăm principiul de lucru cu microcontrolerele Atmel (Avr)
În primul rând, este suficient să se trateze porturile digitale universale.
Fiecare controler de la Atmel are porturi cu numele PORTA, PORTB. în funcție de tipul de microcontroler. Porturile nu încep neapărat cu PORTA - de exemplu, în DIP Atmega8 nu o face. În funcție de tipul de controler, porturile au o capacitate de biți diferită (8, 16, 32, etc.). Portabilitatea portului poate apărea în numele controlorului. De exemplu, aceleași Atmega8, Atmega16, Atmega32. Și poate să nu figurați (Attiny2313 ca o opțiune - dar este, de asemenea, 8-biți). Sper că este intuitiv clar că capacitatea de biți a portului determină câte biți de informații sunt transmise simultan și, prin urmare, câte picioare au un port.
Luați în considerare lucrul cu un microcontroler în C.
Mai întâi trebuie să configurați portul pentru intrare sau ieșire. Acest lucru se poate face folosind registrul DDRx, unde x este portul (A, B, C, etc.) 1 - portul este setat la ieșire, 0 - la intrare.
Numerotarea picioarelor portului:
De exemplu, setați primul bit (1 tulpină) al portului A la ieșire:
0b la început înseamnă că numărul este reprezentat în sincronul binar al calculului. Puteți reprezenta numerele în orice formă convenabilă pentru dvs. Dar este obișnuit să se utilizeze două formulare - binare (binare) și hexazecimal. În sistemul binar, este mai ușor de înțeles (0 - nivel logic scăzut pe picior, 1 - înalt), în format hexazecimal un record mai compact. Ce să utilizați depinde de dvs.
Desigur, o astfel de înregistrare nu este prea confortabil (dar foarte ușor de înțeles și rapid), ca regulă, pentru astfel și astfel de acțiuni sunt prin operații la nivel de bit, dar ele sunt discutate în detaliu (așa cum se aplică la microcontroler) într-una din următoarele note.
Acum putem trece valoarea la port (la același picior):
Ei bine și. De fapt, totul este pentru referință! Aceste cunoștințe elementare plus o mică imaginație plus o experiență de bază în programare sunt suficiente pentru a crea, de exemplu, un fel de lumină LED (de exemplu, ca aici: un cadou pentru fetiță cu mâinile ei (la attiny2313)).
De exemplu, în gcc-avr, cel mai simplu program are următoarea formă:
Și astfel putem lumina / arde LED =)