Sunteți pe pagina 1din 8

Facultatea de Automatică și Calculatoare

Disciplina: Proiectarea sistemelor numerice

Automat bancar

Profesor coordonator: Realizatori:


Vlad-Cristian Miclea Morar Oana

Muresan Ioana Danina


Grupa 30216
Să se proiecteze un automat bancar pentru extrageri de sume în EURO. Se
presupune că suma maximă care poate fi extrasă o dată este de maximum 1.000 euro. Iniţial
se efectuează identificarea cardului şi se alege operaţia. Vor fi suportate minim 4
carduri/conturi diferite şi se vor implementa minimum 4 operaţii diferite. Automatul
dispune de o casă în care iniţial se introduce o anumită sumă (număr de bancnote de
diferite valori). În cazul cererii de eliberare de numerar se introduce suma, se verifică
existenţa sumei cerute, se vizualizează tipurile de bancnote emise şi se actualizează contul.
Apoi se eliberează cardul, suma şi, eventual, chitanţa.

Selectiile multiplexorului reprezinta cele 4 operatii pe care utilizatorul le poate alege :


 00 - Interogare sold
 01 - Retragere numerar
 10 - Depunere numerar
 11 – Modificare PIN
Intrari :
 Start : o variabila; pt. start=1 => card introdus
 CLOCK,STOP
 PIN : sir a cate 16 biti , reprezentand cifrele de la 0-9
 SELECTIE
 STOP :o variabila; pentru stop=1 => finalizarea tuturor operatiunilor si
eliberarea cardului (start=0)
 Suma retrasa
 Suma depusa
 PIN nou: sir a cate 16 biti , reprezentand cifrele de la 0-9
Iesiri:
SOLD :suma curenta din cont
Unitate de control Unitate de executie

Verificare PIN Memorie cu pinuri

Retragere numerar Memorie cu bacnote disponibile in


automat

Solicitare chitanta

Memorie cu
Schimbare PIN solduri

Multiplexor
Actualizare sold

Sumator
Depunere numerar Multiplexor
Scazator
Interogare sold

Scazator
Start
PIN

Memorie RAM cu PIN-uri

Multiplexor 4:1

00 11 PIN nou
01 10

Memorie RAM cu date Memorie RAM cu date Memorie RAM cu date Memorie RAM cu
card -sold disponibil card- sold disponibil card-sold disponibil date card- PIN

Suma retrasa Suma depusa

Afisare sold Scazator Sumator

Memorie RAM cu Memorie RAM cu


bacnote disponibile bacnote disponibile

Solicitare chitanta
Introducere PIN

1 0

Validare PIN Mesaj eroare

Alegere
optiune
00 01 10 11

Memorie RAM cu
Afisare sold Introducere Introducere datele cardului
Introducere
Suma retrasa Suma depusa PIN nou

Schimbare PIN
0 1 Actualizare sold in memorie
Chitanta
in memorie
0 Sold 1
suficient
cont
Eliberare chitanta
0 1
1 Sold suficient 0 Chitanta
bancomat
Mesaj eroare

Mesaj eroare
Compunerea sumei
Eliberare chitanta

Actualizare sold
in memorie

0
1
Chitanta

Eliberare chitanta
Instrucţiuni de utilizare
-În momentul în care utilizatorul doreşte să folosească acest automat bancar, va trebui să
procedeze conform următorilor paşi:

1. În primul rând(pasul 0), este necesar să fie introdus cardul şi codul pin asociat. După ce
această acţiune a fost realizată, automatul trece la pasul 1.
2. Primul pas constă în a verifica dacă pin-ul introdus de către utilizator este corect.
Rezultatul aceastei operaţii poate fi interpretat în două moduri: dacă pin-ul este corect
introdus, automatul va trece la pasul 2, iar în caz contrar, va ajunge la pasul 0.
3. Dacă verificarea codului pin a fost realizată cu succes, automatul ajunge la pasul denumit
„Alege opţiunea”. În acest moment, utilizatorul are patru posibilităţi: poate alege afişarea
soldului de pe card, operaţiunea de retragere numerar. operaţiunea de depunere
numerar.dar si operatiunea de schimbare pin.
4.Dacă a fost aleasă prima operaţiune, soldul de pe card, va fi afişat pe ecran.
5.În cazul operaţiunii de retragere numerar, utilizatorul va introduce suma dorită, iar
automatul va verifica dacă această acţiune se poate realiza,verificand daca exista sold
suficient in cont,dar si in bancomat. În caz afirmativ, se trece la compunerea sumei, altfel se
va afişa un mesaj de eroare.
6. În cazul operaţiunii de depunere numerar, utilizatorul va introduce suma,bancnota cu
bancnota.Se va actualiza soldul in memorie,dar si memoria cu bancnote.
7. În cazul operaţiunii de schimbare pin, utilizatorul va introduce noul pin,care se va
actualiza in memoria cu pinuri,la adresa acestuia.
8.Cutia denumită „Chitanţă” întreabă utilizatorul dacă doreşte inscripţionarea soldului pe
chitanţă. În caz afirmativ, se va elibera chitanţa respectivă, altfel, automatul va reveni la
pasul 0 şi procesul se va încheia.

COMPONENTE
1.Memorie cu pinuri
- o memorie RAM ce contine 4 pinuri
RAM_TYPE := (0 => "0000000000000000", --0000
1 =>"0001001000110100", --1234
2=>"0000011000010010", --0612
3=>"1001011000110010"); --9632
-in aceasta memorie,daca semnalul de schimbare pin este
activat,se va introduce noul pin,la adresa pinului respectiv.
- RAM(conv_integer(adresa_pin)) <= noul_pin;
2. Memorie cu bacnote disponibile in automat
– o memorie RAM ce contine numarul de bancnote existente in automat in functie de
valoarea fiecareia (5,10,20,50,100,200,500 euro)
-aceasta componenta contine doua semnale:
enable_r(retragere), enable_d(depunere).
-Daca primul este activ,se compune suma retrasa si se actualizeaza memoria,iar
daca al doilea este activ,se actualizeaza,de asemenea,memoria,cu bancnota
introdusa.
3.Memorie cu solduri
-o memorie RAM ce contine soldul fiecaruia dintre cele 4 carduri existente.
RAM_TYPE := (0 => "0000000000" --0 euro
1 =>"0001100100", --100 euro
2=>"0100000101", --261
3=>"1000000000"); --512
4.Sumator
-este utilizat in momentul in care este selectata optiunea de depunere
numerar,pentru a calcula suma dintre soldul curent si suma introdusa.
-sumele sunt reprezentate ca si vectori de 10 biti.
5.Scazator
-este utilizat in momentul in care este selectata optiunea de retragere
numerar,pentru a calcula diferenta dintre soldul curent si suma retrasa.
-sumele sunt reprezentate ca si vectori de 10 biti.

6.Verificare pin
-este utilizat pentru a verifica daca pinul introdus corespunde unui pin din memorie.
7.Retragere numerar
8.Depunere numerar
9.Schimbare pin
10.Actualizare sold
11.Interogare sold

Justificarea solutiei alese


De ce am implementat în acest mod?
Am ales rezolvarea problemei în acest mod, deoarece ni s-a părut foarte interesant în ceea
ce privește funționalitatea automatului. De asemenea, am adoptat un stil de implementare
structurat, uşor de înţeles şi bine organizat Totodată, am dat variabilelor şi semnalelor nume
reprezentative pentru rolul pe care îl au în cadrul aplicaţiei.
De ce am proiectat în acest mod?
Am considerat că acest mod de proiectare este cel mai optim. În rezolvarea problemei se
folosesc module secundare, care sunt legate într-un modul principal. Am ales folosirea
componentelor atât pentru structurarea programului, cât şi pentru o bună înţelegere a
instrucţiunilor utilizate în rezolvarea problemei. Întrucât în modulul principal, pentru
rezolvarea anumitor stări ale bancomatului am avut nevoie şi de alte instrucţiuni pe lângă
instanţierea componentelor am folosit descrierea combinată, oferind astfel lizibilitate
codului. Acest mod structurat şi organizat este favorabil atât proiectantului, cât şi
ultilizatorului acestui proiect.

Posibilitati de dezvoltare ulterioara


Din punct de vedere al dezvoltarii ulterioare, principala imbunatarire ar fi extinderea
memoriior pentru stocarea mai multor coduri PIN si pentru stocarea unor solduri mai
mari.La o scara mai mare  este posibila si introducerea unui cititor de carduri, nu a codului
lor, astfel scapand utilizatorul de introducerea codului cardului, salvand timp pentru acesta.

Pentru dezvoltarea automatului bancar, am putea introduce o altă opțiune prin care
utilizatorul ar putea transfera bani de pe cardul său, în contul altui utilizator.O alta posibila
dezvoltare ar fi introducerea tuturor bancnotelor deodata,nu fiecare pe rand.

De asemenea, o idee interesantă care ar contribui la dezvoltarea automatului bancar, ar fi


introducerea unei alte opțiuni prin care utilizatorul ar putea plăti chiar de la automat orice
tip de factură pe numele său, introducând numărul facturii.

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