Documente Academic
Documente Profesional
Documente Cultură
Chișinau 2023
Lucrare de laborator 8
Tema: Studiul sistemului de întreruperi la microcontrolere.
Scopul : Studiul sistemului de întreruperi în microcontrolere
Alegerea microcontrolerului potrivit.
Studierea Microcontrolerului
Atmega328.
Utilizarea programelor de intrerupere si prioritati.
Pentru cazul ˆıntreruperii externe, registrele EICRA, EIMSK, EIFR s, i SREG sunt
impor- tante. ˆI n tabelul 1.1 sunt prezentat, ii bit, ii registrului EICRA (External Interrupt
Control
Register A). Acest registru este responsabil pentru controlul ˆıntreruperii. Bit, ii acestui reg-
istru sunt urm˘atorii:
Bit 7 6 5 4 3 2 1 0
ISC11 ISC10 ISC01 ISC00
Access R/W R/W R/W R/W
• 10: schimbarea High -Low a valorii pinului INT0 genereaz˘a cerere de ˆıntrerupere;
• 11: schimbarea Low -High a valorii pinului INT0 genereaz˘a cerere de ˆıntrerupere.
ˆI n tabelul 1.2 sunt prezentat, ii bit, ii registrului EIMSK (External Interrupt Mask
Register ). Acest registru este utilizat pentru a activa sau dezactiva masca unuia dintre
pinii INT0 s, i INT1, pentru generarea de ˆıntreruperi. Bit, ii acestui registru sunt
urma˘torii:
Bit 7 6 5 4 3 2 1 0
INT1 INT0
Access R/W R/W
Bit 7 6 5 4 3 2 1 0
INTF1 INTF0
Access R/W R/W
ˆI n algoritmul anterior este prezentat un exemplu de utilizare a funct, iei ISR(). ˆIn
interiorul acesteia se realizeaz˘a, la ˆınceput, dezactivarea ˆıntreruperilor, la nivel global.
Acest lucru previne aparit, ia unei alte ˆıntreruperi ˆın timp ce se trateaza˘ ˆıntreruperea
curenta˘. La final este reactivat sistemul de ˆıntreruperi global al microcontroller-ului. De
asemenea, ˆın corpul funct, iei se verific˘a starea pinului 2 (PC2), iar ˆın funct, ie de aceasta,
este realizat˘a operat, ia de stingere/aprindere a led-ului.
ˆI n interiorul funct, iei setup() se realizeaz˘a, la ˆınceput, init, ializarea portului (liniile 23 s,
i 24) pe care se realizeaz˘a aprinderea led-ului. La linia 26 este activat sistemul de
ˆıntreruperi
global, prin trecerea bitului 7 (SREG I) pe nivelul logic High. Liniile 29:32 permit configu- rarea
ˆıntreruperii, astfel:
– linia 29: trecerea Low-High pe pinul INT0 genereaz˘a ˆıntrerupere;
– linia 30: activare masc˘a INT0 (activare ˆıntrerupere INT0);
–
linia 31: resetarea bit, ilor ce marcheaz˘a aparit, ia unei ˆıntreruperi;
–
linia 32: dezactivare ˆıntrerupere la nivel de port.
Concluzie:
Bibliografie:
1. http://www.bobtech.ro/tutoriale/microcontrolere/65-cum-comanzi-un-lcd-
alfanumeric
2. https://pzik.ru/ro/podklyuchenie-lsd-1602-podklyuchenie-lcd-k-arduino- plate/
3. https://lastminuteengineers.com/arduino-1602-character-lcd- tutorial/