Sunteți pe pagina 1din 8

Universitatea POLITEHNICA Bucureti Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

PROIECT 2
Automat finit pentru detectarea secvenei 111 ntr-un ir binar

Coordonator tiintific: as. ing. Bogdan FLOREA Student: Andrei Adrian Grupa: 432B

2012-2013

Cuprins:
1. Enun 2. Rezumatul proiectului 3. Aspecte teoretice ale proiectului - funcionarea automatului - elemente de OrCAD 4. Simularea OrCAD - schema implementat cu bistabili D - semnalele obinute 5. Organigrama 6. Codul 7. Concluzii 8. Bibliografie

1. Enunt:
1. Sa se realizeze simularea PSpice a functionarii unui automat finit ce detecteaza o secventa de 3 caractere egale cu 1 intr-un sir binar, folosind mediul de programare ORCAD 2. Sa se implementeze acelasi automat pe kit-ul de dezvoltare Arduino Uno

Date de Proiect:
0/0 1/0

0/0

00 00

01

1/0

11

1/1

10

0/0 0/0 0/0 1. Proiectul trebuie implementat folosind bistabili D, porti logice NAND SI NOR, conform ecuatiilor de comanda: D0=notQ1*I+notQ2*I D1=Q0*I Ecuatia de iesire: Y=Q0*Q1*I
2. Pentru implementarea pe kit se va folosi aceeasi diagrama de stare. Intrarea se va citi de la un buton conectat la kit-ul Arduino. Semnalarea detectiei a 3 simboluri egale cu 1 (Y=1) se va face prin aprinderea unui led conectat la kit cu o frecventa de 40Hz.

2. Rezumatul proiectului:
Proiectul const n implementarea unui automat cu stri finite ce detecteaz un ir de bii 111. Setarile automatului sunt numerotate de la 00 la 11, iar tranzitia intre stari se face in functie de valoarea intrarii. Se va semnala existenta a 3 simboluri egale cu 1 in starea 10. Automatul este by default in starea 00, starea 1. Daca se introduce 1 atunci automatul trece in starea 2 (01), daca se introduce 0 se revine in starea 1 (00). Din starea 2 (01), daca se introduce 1 automatul trece in starea 3 (11), iar daca se introduce 0 el revine in starea 1(00). In starea 3(11), daca se introduce 1 atunci automatul trece in starea 4(10), iar daca se introduce 0 atunci revine in starea 1(00). In final, in starea 4(01), daca se introduce 1 atunci el revine in starea 2(01), iar daca se introduce 0 acesta revine in starea 1(00). Pentru implementarea cu ajutorul bistabililor D i a circuitelor logice combinaionale aplicm fiecrei ecuaii de comand formulele lui de Morgan i simplificm ecuaiile date. Dup aceast etap, implementm circuitul n PSpice pentru a-l simula i testa.

3. Aspecte teoretice ale proiectului:


- funcionarea automatului:
Automatul finit este un model de comportament compus din stri, tranziii i aciuni. O stare stocheaz informaii despre trecut, adic reflect schimbrile intrrii de la iniializarea sistemului pn n momentul de fa. O tranziie indic o schimbare de stare i este descris de o condiie care este nevoie s fie ndeplinit pentru a declana tranziia. O aciune este o descriere a unei activiti ce urmeaz a fi executat la un anumit moment. Sunt dou tipuri de automate: automate Mealy si automate Moore.

- elemente de OrCAD
OrCAD 9.2 este o suit de programe produse de Cadence, care conine Capture ( i variaiile acestuia ), utilitarul specializat pe desenarea schemelor electronice, Layout, utilitarul specializat n proiectarea placilor electronice imprimate ( PCB ), PSpice ( i variaiunile acestuia ), utilitarul n care se pot simula scheme electronice sub diveri parametri. PSpice poate simula circuite analogice n domeniul timp ( regim tranzitorilu ), n domeniul frecven ( AC Sweep ), poate calcula PSF-ul ( punctul static de funcionare ) al circuitului, sub diveri parametri de testare. De asemenea, se pot simula i circuite digitale, dar i variaiuni ale circuitelor analogice cu cele digitale.

4. Simularea OrCAD:
Schema implementat cu bistabili D i pori NAND si NOR

n urma simulrii am obinut urmtoarele semnale:

Valorile de la intrare sunt:

Command2: Command3: Command4: Command5: Command6: Command7: Command8:

0.5us 1.5us 2.5us 3.5us 4.5us 5.5us 6.5us

1 1 1 1 0 0 1

5. Organigrama:

00

X= If X=

01

If If X= X =

11

If X=

10 X=

If X=

6. Codul:
const int BUTTON_0 = 8; const int BUTTON_1 = 9; const int Y=10; int a =0; int b =0; int state=0; void setup() { pinMode(BUTTON_0,INPUT); pinMode(BUTTON_1,INPUT); pinMode(Y,OUTPUT); Serial.begin(9600); } void loop(){ switch(state){ case 0: digitalWrite(Y,LOW); a=digitalRead(BUTTON_0); b=digitalRead(BUTTON_1); if (a==1) { state=1;} else{ if(b==1) {state=0;}} break; case 3: digitalWrite(Y,HIGH); delay(12); digitalWrite(Y,LOW); delay(12); a=digitalRead(BUTTON_0); b=digitalRead(BUTTON_1); if (a==1) {state=1;} else{ if(b==1) {state=0;}} break; } Serial.println(state); delay(100); } if(b==1) { state=0;} else {if (a==1) {state=2;}} break;

case 2: digitalWrite(Y,LOW); a=digitalRead(BUTTON_0); b=digitalRead(BUTTON_1); if (a==1) {state=3;} else{ if(b==1) {state=0;}} break;

case 1: digitalWrite(Y,LOW); a=digitalRead(BUTTON_0); b=digitalRead(BUTTON_1);

7. Concluzii:
Acest proiect a avut ca scop crearea unui automat finit care sa recunoasca o anumita secventa de date si sa reactioneze intr-un anumit fel atunci cand primeste pe intrare aceasta secventa. Aplicatiile acestui tip de automat sunt multiple. Pentru realizarea aplicaiei n mediul de programare am parcurs urmtoarele etape: Am elaborat organigrama aplicaiei; Am editat fiierul surs al aplicaiei, conform organigramei. Construirea proiectului a presupus o serie de operaii de programare realizate ntr-o anumit ordine.

Partea de proiectare i simulare a automatului finit descris n acest proiect a fost elaborat n programul Capture CIS Lite Edition din mediul de programaresimulare Orcad Family Release 9.2 Lite Edition. Simularea este realizat n programul PSpice, executat n urma proiectrii.

8. Bibliografie:
http://141.85.53.52/proiect2.php http://ro.wikipedia.org/wiki/Automat_finit http://www.capisci.ro/articole/Arduino

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