Documente Academic
Documente Profesional
Documente Cultură
12:00
Text comun la problemele 1 si 2 din partea I‐a:
Se doreste proiectarea unui microcontroller cu urmatoarele caracteristici:
a) Processor pe 8 biti; memorie MD pe 8 biti;
b) MD de 1 kB organizata pe 4 bankuri/file;
c) 55 de intructiuni organizate pe clasele de instructiuni ale 16F84;
d) MP de 20 k‐cuvinte
e) Stiva pe 10 niveluri
f) 5 surse de intreruperi, toate de acelasi nivel de prioritate (2 timere)
g) Curent maxim pe orice port de iesire de 8 mA
h) Procesor tip RISC
i) U alimentare intre 3,5 V si 5,5 V
j) Orice alte ipoteze sunt necesare vor fi alese (explicit) de studenti
Toate intrebarile de mai jos se refera la descrierea anterioara de uC. OBS: Unele subiecte pot fi deschise (nu
sunt specificate toate datele necesare)! Este necesar sa faceti alegeri de valori, ipoteze de lucru etc. , pe care
sa le scrieti in raspunsul Dvs.
Justificati pe scurt dar complet raspunsul, indicand pasii rationamentului.
1. [ 2 pct] Explicati cum deduceti cati biti are identificatorul de instructiuni la acest uC? (Nu se pune
problema vreunei optimizari). Justificati pe scurt dar complet raspunsul, indicand pasii
rationamentului. Cati biti credeti ca va avea o instructiune de tip CLRF (“sterge locatie”)?
2. [2 pct] Estimati numarul maxim de salturi Call imbricate posibile (CALL … CALL … CALL … … RETURN
…RETURN). Dar daca acestea sunt intr‐o rutina de intrerupere?
3. [ 2 pct] Propuneti un timp rezonabil de propagare printr‐o poarta din uC. Considerati ca circuitul de
decodare de instructiuni are 12 niveluri de porti iar ALU are 8 niveluri (i.e., maxim 8 porti inseriate).
Citirea MP se face in 40 ns iar a MD in 60 ns. Alegeti o valoare de intarziere pe poarta, apoi propuneti
o varianta de procedura de tip pipeline.
4. [ 3 pct] o poarta CMOS comanda simultan alte 2 porti CMOS. A) desenati o schema echivalenta; B)
explicati cum va fi timpul de comutatie al celor 3 porti afectat de aceasta configuratie, fata de cazul in
care prima poarta comanda o singura poarta.
5. [ 2 pct] Inlocuieste o problema de mai sus. Precizati pe care doriti sa o inlocuiti! (NU se corecteaza
ambele.) Se doreste alimentarea unui LED pe un pin de port de iesire; LEDul consuma 15 mA. [ 0.5
pct] Propuneti un circuit de comanda, comentati.
6. [ 2 pct] Inlocuieste o problema de mai sus. Precizati pe care doriti sa o inlocuiti! (NU se corecteaza
ambele.) Explicati daca opcodul pentru o instructiune de citire din MD (dati si un exemplu de
asemenea instructiune la 16F84!) are disponibili mai multi biti pentru identificatorul de instructiuni
decat o instructiunea de salt CALL.
7. [ 1 pct] Adauga 1 pct la punctaj/ Inlocuieste 1 pct la o problema de mai sus. Se da in
catalogul/manualul pentru PIC12F629 instructiunea:
a) cu aceasta instructiune se poate sterge un bit din stiva? Dar din MP? B) pe cate cuvinte sunt filele
(bancurile) MD ale acestui procesor, daca MD are 2 k?
8. [ 1 pct] Adauga 1 pct la punctaj/ Inlocuieste 1 pct la o problema de mai sus. La un procesor
(PIC12F629), se da in catalog duratele fronturilor la pinii de iesire de la un port ca mai jos:
© problemele de circuit: Horia‐Nicolai Teodorescu 2022
Pp ca palierul ar trebui sa fie >> decat durata fronturilor, ce frecventa maxima poate fi generata
(corect, fara „hazard logic”) pe un pin la acest procesor?
Partea a II‐a [9 pcte]
Partea I:
3 pcte (a) Să se implementeze în cod asm următorul pseudocod:
‐ se definesc regiştrii RX,RY (locaţiile 0x30 si 0x31 din bank2) şi RZ (locaţia 0x20 din bank1)
‐ se iniţializează RX şi RY cu două valori la alegere
‐ dacă RX>=50 atunci RX = Rx‐50, iar daca RY<20 atunci RY=100‐RY
‐ se calculează minimul dintre RX şi RY şi se transferă în RZ
‐ valoarea rezultată a lui RZ se împarte la 4.
Precizaţi valorile lui RX,RY şi RZ la final de program, şi care sunt instrucţiunile care modifică flagurile de C şi Z
şi valoarea finală a acestora.
1.5 pcte (b) Să se scrie în asm rutina de generare a unei întârzieri (delay) de 5ms (explicaţi cum s‐a calculat
timpul prin numărul total de cicli mașină în funcţie de frecvenţa aleasă pentru oscilator).
Partea a II‐a:
3.5 pcte (a) Să se realizeze în cod C sau asm (la alegere) un algoritm de avertizare a unei persoane
nevăzătoare. Valoarea de la senzor de distanţă se consideră a fi citită (nu trebuie scris codul pentru citire
senzor) şi se păstrează într‐o variabilă d (exprima distanţa în cm). Dacă distanţa d este sub 50 cm, atunci se
generează un semnal sonor pe un buzzer aflat pe pinul RB7 (pinul 7 al PORTB) de frecvenţă 250Hz (T=4ms).
Dacă distanţa d este între 50 şi 150 cm, atunci semnal sonor are frecvenţă de 25Hz (T=40ms), iar dacă
distanţa este peste 150 cm nu se generează nici un sunet. Pentru generarea de sunete se ştie că semnalul
PWM are factor de umplere de 50% (T=T1+T0, T0=T1=T/2). Generarea de sunete poate fi activată, respectiv
oprită la apăsarea/eliberarea unui buton aflat pe pinul RB0.
1 pct (b) Realizaţi pentru problema dată o întrerupere externă pentru butonul RB0.
© problemele de circuit: Horia‐Nicolai Teodorescu 2022