Documente Academic
Documente Profesional
Documente Cultură
HN Teodorescu.
1. Care dintre următoarele afirmații este adevărată: a) microcontroler RISC tipice au peste 200
de instrucțiuni; b) acumulatorul este un registru al stivei; c) orice ALU are doi regiștri
aferenți; d) expresia „microcontroler pe 8 biți” se referă la numărul de biți ai cuvintelor
memoriei de program; e) puterea consumată de un microcontroler crește cu frecvența de tact.
Explicați pe scurt răspunsurile.
2. Dorim să citim pinii B1-B3 la microcontroler 16F84, iar valoarea citită să o transferăm cât
mai rapid pe pinii B4-B6. Scrieți programul care să realizeze aceasta. Cât va dura transferul,
în cicli mașină?
3. Explicați structura unui microcontroler pe 4 biți, care are 250 de cuvinte în memoria de
program, 60 de cuvinte în memoria de date, 20 de instrucțiuni, iar numărul maxim de bucle
imbricate este 2. Precizați lărgimea (capacitatea în biți) a magistralelor de la PC, ALU, stiva,
numărul de biți în memoria de date. (Există un grad relativ mare de libertate în răspuns,
deoarece unele elemente, precum tipul instrucțiunilor, nu au fost precizate. Puteți alege orice
răspuns permis de problemă.)
4. Se citește un cuvânt din bancul al doilea de memorie al unui microcontroler 16F84. Primii 4
biți sunt operați AND cu ultimii patru biți și sunt puși în locul primilor 4 biți ai cuvântului
inițial. Rezultatul este trimis la portul B. (microcontroler 16F84).
Se citește un cuvânt de la portul B și se determină paritatea acestuia, adică se determină dacă
numărul se divide la 2; dacă da, numărul este pus într-o locație de memorie din bancul al
doilea, dacă nu, numărul este divizat la 2 și rezultatul este pus în bancul întâi (microcontroler
16F84).
6. Să se scrie un program care să urmărească modificarea biților B4-B7 și, la apariția unei
modificări, să genereze pe B2 trenuri de câte 5 impulsuri cu durata de 16 cicli mașină și cu
factorul de umplere reprezentat de partea întreagă a numărului 𝑛/8, unde 𝑛 este numărul citit
de pe port. Generarea celor 5 impulsuri va fi urmată de o pauză de cel puțin 4 cicli mașină.
Procesul (generarea trenului de impulsuri + pauză) nu va putea fi întrerupt de o nouă
modificare a portului B4-B7, dar va putea fi stopată de o modificare pe pinul B0. Puteți alege
orice soluție de rezolvare a problemei (testare în buclă, întreruperi etc.). Cu ce întârziere față
de modificarea stării pe pinii B4-B7 va începe programul generarea trenului de impulsuri
(secvenței PWM) în soluția Dvs.? (microcontroler 16F84).
este conectat la +5V cu un capăt, iar comutatorul (un buton) este conectat la masă. La
închiderea comutatorului, a cărui poziție normală este „circuit deschis”, microcontrolerul
trebuie să genereze 5 impulsuri cu factor de umplere variabil, în ordinea 1/25, 2/25, 3/25,
4/25, 1/5. Rezolvați prin monitorizarea în buclă a pinului B3.
c) Circuitul comutatorului nu este bine ales. Ce se va putea întâmpla „în lumea reală” la
apăsarea butonului? Cum ați putea corecta circuitul? Ce valoare de rezistență ați alege?
d) Rezolvați punctul (b) folosind întreruperi.
factor de umplere variabil, începând de la factorul 1/10 până la factorul 9/10, cu pas de
2/10, în buclă infinită (chiar dacă butonul nu mai este apăsat). Rezolvați prin
monitorizarea în buclă a pinului B3.
c) Circuitul comutatorului nu este bine ales. Ce se va putea întâmpla „în lumea reală” la
apăsarea butonului? Cum ați putea corecta circuitul? Ce valoare de rezistență ați alege?
d) Rezolvați punctul (b) folosind întreruperi.
e) Să se determine timpul de răspuns la modificarea valorii pe pinul B3 în cele două
variante (monitorizare, întreruperi). Se dă 𝑓 1 MHz (16F84).
13. Un microcontroler execută (doar) 8 operații, dintre care două folosesc constante, iar patru
accesează valori din memoria de date. Memoria de date este organizată pe cuvinte de 12 biți
(ne-uzual), ca și dimensiunea regiștrilor ALU, iar capacitatea completă a memoriei de date
este de 1 𝑘-cuvânt (1024 cuvinte de 12 biți). Codul instrucțiunilor care accesează memoria de
date are doar 8 biți tip (𝑓𝑓𝑓 … 𝑓).
a) De câți biți avem nevoie pentru a identifica o instrucțiune?
b) Câți biți sunt necesari pentru codul instrucțiunilor? De ce?
c) Câți biți are un cuvânt din memoria de program?
d) Este necesar să organizam memoria de date pe file de memorie (bankuri)? De ce?
e) Câte cuvinte include o fila de memorie (un bank)?
f) Câte bancuri are memoria de date?
g) Care este legătura dintre numărul de biți ai numărătorului de program și cele de mai sus?
Explicați.
h) Explicați legătura (relația) dintre numărul de biți ai regiștrilor ALU și consumul de putere al
ALU.
© HN Teodorescu 2017-2020 (Autorul crede ca aceste probleme sunt noi.)
Probleme suplimentare microcontrolere & microsisteme.
HN Teodorescu.
i) Este vreo legătură între tipul de capsulă folosită pentru un microprocesor și frecvența
maximă de tact a procesorului? Explicați.
14. Desenați cât mai complet schema bloc a unui microcontroler elementar– cat mai general;
particularizati la tip: microcontroler 16F84.
15. Explicați cum se corelează dimensiunea (numărul de cuvinte al) stivei cu numărul de bucle
imbricate care pot fi realizate într-un program pe microsistemul respectiv.
16. Explicați cu cine și cum se corelează numărul de biți ai unui cuvânt al stivei.