Sunteți pe pagina 1din 2

Ora 

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  
 

S-ar putea să vă placă și