Universitatea Tehnica Cluj [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Universitatea Tehnica Cluj-Napoca Facultatea de Automatica si Calculatoare An:2011-2012

Automat Bancar

Student:Veja Alina-Andreea

Grupa:30215

CUPRINS

1. Specificatia proiectului 2. Schema bloc cu explicatii 3. Componente 4. Justificarea solutiei alese 5. Instructiuni de utilizare 6. Posibilitati de dezvoltare ulterioara

2

1. SPECIFICATIA PROIECTULUI

Sa se proiecteze un automat bancar pentru extrageri de sume in EURO. Se presupune ca suma maxima care poate fi extrasa o data este de maximum 1.000 EURO. Operatiile efectuate initial sunt de identificare a cardului şi alegere a operatiei. In cazul cererii de eliberare de numerar se introduce suma, se verifica existenta sumei cerute şi se actualizeaza contul. Apoi se elibereaza cardul, suma si, eventual, chitanta.

3

2.SCHEMA BLOC CU EXPLICATII Avem intrarile: - Vectorul de 4 biti prin care se specifica adresa contului pe care se vor efectua operatii; - Vectorul de 16 biti pe care se introduce suma care se doreste a fi extrasa; - Un tact universal prin care se sincronizeaza componentele; - 12 biti pentru inroducerea PIN-ului; - O intrare pentru alegerea operatei; - O intrare pentru confirmarea chitantei; Componentele principale: - Identificator de card - Memorie ROM in care sunt retinute codurile PIN - Comparator pe 12 biti pentru codul PIN - Alegerea operatiei - Comparator intre suma dorita si 1000 - Memorie RAM pentru solduri - Comparator intre sold si suma dorita - Scazator pentru obtinerea noului sold dupa extragere - Unitate pentru eliberarea cardului

4

5

3.COMPONENTE 1.Identificator de card – transforma vectorul de 4 biti ”ADR” intrun intreg care va fi adresa din memoriile RAM(in care se retine soldul clientului) si ROM(contine codul PIN al fiecarui client). library IEEE; use IEEE.STD_LOGIC_1164.all; entity IDN_CARD is port(ADR: in STD_LOGIC_VECTOR(3 downto 0); ADR_INDEX: out INTEGER range 0 to 15; CLK: in STD_LOGIC); end IDN_CARD; architecture ARH of IDN_CARD is begin PROCES: process(CLK) variable nr_cont: INTEGER; begin nr_cont:=0; if CLK'EVENT AND CLK = '1' then if ADR = "0000" then nr_cont := 0; elsif ADR = "0001" then nr_cont:= 1; elsif ADR = "0010" then nr_cont:= 2; elsif ADR = "0011" then nr_cont:= 3; elsif ADR = "0100" then nr_cont:= 4; elsif ADR = "0101" then nr_cont:= 5; elsif ADR = "0110" then nr_cont := 6; elsif ADR = "0111" then nr_cont:= 7; elsif ADR = "1000" then nr_cont:= 8; elsif ADR = "1001" then nr_cont:= 9; elsif ADR = "1010" then nr_cont:= 10; elsif ADR = "1011" then nr_cont:= 11; elsif ADR = "1100" then nr_cont:= 12; elsif ADR = "1101" then nr_cont:= 13; elsif ADR = "1110" then nr_cont:= 14; elsif ADR = "1111" then nr_cont:= 15; end if; end if; ADR_INDEX