Questo esercizio sembra facile, ma ho un problema "tecnico"
All’ingresso, il cliente pigia un pulsante per ritirare il ticket con il turno e su un display (a due cifre) viene visualizzato il tempo medio di attesa per l’utente espresso in minuti.
Il sistema considera un tempo medio di attesa di 2 minuti a cliente. Il numero massimo di sportelli in servizio è pari a due, ma non sempre sono in servizio contemporaneamente.
Gli addetti agli sportelli comunicano al sistema l’attivazione dello sportello tramite un interruttore che invia al sistema un livello alto TTL compatibile.
Quando il cliente termina l’operazione, l’addetto allo sportello lo comunica al sistema tramite un ulteriore pulsante che invia un impulso TTL compatibile al sistema.
Si dispone di clock a qualsiasi frequenza provvisti di un ingresso di SET e di uno di RESET, attivabili tramite un impulso.
Schema a blocchi incompleto o sbagliato:
L'uscita U1 se si verifica fa saltare la sommatoria con il full adder e visualizza direttamente il conteggio del contatore sul display. Però se questo non accade deve prima fare una somma del contatore pari a se stesso e poi visualizzare sul display il numero di minuti medio da attendere per il suo turno.
In che modo posso dire di seguire un percorso invece che un altro in presenza di una condizione sapendo che alal fine il display è uno?
Avviso clienti tempo di attesa sportello
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
5 messaggi
• Pagina 1 di 1
0
voti
Problemi di questo genere si risolvono iniziando ad elencare per bene tutti i requisiti di partenza.
Ad esempio mi pare che è stato previsto il caso di un "operatore" che se ne va (con la somma dei conteggi) ma non è previsto il caso di ritorno del secondo operatore ... con la conseguente divisione del tempo.
Sviluppare questa soluzione con logica classica è sicuramente possibile ma la vedo piuttosto complicata.
Questo, oggi, è uno di quei casi in cui è sicuramente vantaggioso l'uso di un microcontrollore (qualsiasi oggettino ad 8 bit va bene(HC08, AVR, PIC, ST, MPS...) oppure di un "sistemino chiavi in mano" tipo l'Arduino.
Poi, con veramente 10 righe di codice, potresti risolvere il problema ... e sopratutto poter modificare facilmente il comportamento se ti sei dimenticato di qualcosa ....
Buona sperimentazione
Bye
Ser.Tom
Ad esempio mi pare che è stato previsto il caso di un "operatore" che se ne va (con la somma dei conteggi) ma non è previsto il caso di ritorno del secondo operatore ... con la conseguente divisione del tempo.
Sviluppare questa soluzione con logica classica è sicuramente possibile ma la vedo piuttosto complicata.
Questo, oggi, è uno di quei casi in cui è sicuramente vantaggioso l'uso di un microcontrollore (qualsiasi oggettino ad 8 bit va bene(HC08, AVR, PIC, ST, MPS...) oppure di un "sistemino chiavi in mano" tipo l'Arduino.
Poi, con veramente 10 righe di codice, potresti risolvere il problema ... e sopratutto poter modificare facilmente il comportamento se ti sei dimenticato di qualcosa ....
Buona sperimentazione
Bye
Ser.Tom0
voti
E' un esercizio di compito che il professore propone in sede di esami, lo svolgimento avviene con carta penna e calcolatrice, nello specifico aveva lasciato 2 ore di tempo per farlo. Tempo che ho già abbondantemente superato
Quindi la soluzione è quella in logica classica. Adesso continuo a studiarci sopra per trovare una soluzione funzionante, giusto per essere preparato per un compito simile
Quindi la soluzione è quella in logica classica. Adesso continuo a studiarci sopra per trovare una soluzione funzionante, giusto per essere preparato per un compito simile
0
voti
Ciao Linrush, ma qui ci troviamo su più fronti !
C'è ancora da "sconfiggere" lo stepper e un'altra "logica cablata" ci si para dinanzi.
Va bene, non indugiamo.
Una precisazione, quanto segue ... :
... lo potresti spiegare un "pochino meglio" ?
Per quanto sopra il tempo medio di attesa (due minuti) è da considerarsi tale quando sono attivi entrambi gli sportelli ?
Nel caso in cui uno sportello venisse "disattivato", dovrebbe essere rivalutato il tempo totale di attesa ?
Saluti
C'è ancora da "sconfiggere" lo stepper e un'altra "logica cablata" ci si para dinanzi.
Va bene, non indugiamo.
Una precisazione, quanto segue ... :
Linrush ha scritto:L'uscita U1 se si verifica fa saltare la sommatoria con il full adder e visualizza direttamente il conteggio del contatore sul display. Però se questo non accade deve prima fare una somma del contatore pari a se stesso e poi visualizzare sul display il numero di minuti medio da attendere per il suo turno.
... lo potresti spiegare un "pochino meglio" ?
Per quanto sopra il tempo medio di attesa (due minuti) è da considerarsi tale quando sono attivi entrambi gli sportelli ?
Nel caso in cui uno sportello venisse "disattivato", dovrebbe essere rivalutato il tempo totale di attesa ?
Saluti
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8985
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
0
voti
Funzionamento shift register 74299
I/O -> S/P
Shift L/R attivi in logica negativa
S1 e S0 abilitano l'inserimento di 0 o di 1 quando viene fatto lo shift. Nel nostro caso inseriamo gli 0, quindi:
S1=1 S0=0 => SL=1 e SR=0
S1=0 S0=1 => SL=0 e SR=1
SL - SR sono attivi come abbiamo detto in logica negativa, agli ingressi del registro poniamo una not per ottenere il risultato voluto
poiché per come ho impostato la circuiteria SL=1 significa abilitato alla moltiplicazione.
Il Clock viene abilitato sul fronte di salita quando almeno uno degli impiegati libera un posto (A1F - A2F) o quando un cliente prende un
ticket (TICKET) in modo da aggironare il registro al valore corretto del contatore.
A1 e A2 indicano rispettivamente l'addetto 1 e l'addetto 2 a lavoro. Possibili casi sono: 01 - 10 - 11
Quando vi è un solo cliente alla posta, indifferentemente che vi siano 1 o 2 addetti attivi sul display dovrà apparire 0 Minuti.
Quando vi sono 2 clienti alla posta bisogna controllare il numero di addetti attivi. Se sono entrambi operativi dovrà apparire 0 sul
display, altrimenti 2.
Ecco come ottengo questo risultato:
OR1-NAND1
Utilizzata per gestire il caso di un cliente alla posta.
Funzionamento:
Collego le uscite del 2 bit meno significativo al più significativo del contatore alla OR per avere certezza che la NAND1 si abilita solo
quando il primo bit del contatore è a 1 e la OR da 0, ovvero per tutti i casi di conteggio maggiore di 1.
La NAND1 riceverà 1 dal primo bit e 0 dalla OR1 dando in uscita 1 che verrà memorizzato in un FF-D. Se La OR1 da 1 invece che 0 questa
andrà a resettare il FF, invece se correttamente darà 0, ritarderemo il segnale di clock in logica negativa affinchè il dato posso
raggiungere l'ingresso per poi essere trasferito all'uscita Q.
OR2-NAND2
Utilizzata per gestire il caso di due clienti alla posta.
stesso funzionamento di OR1-NAND1
Sia per OR1-NAND1 che per OR2-NAND2 occorre controllare il numero di addetti operativi in quel momento (A1 e A2)
Collego A1 e A2 entrambi in una OR e una AND (OR3 e AND1). OR3 mi serve solo per sapere che qualche addeto è attivo, mentre AND1 che
entrambi siano attivi.
CASO OR1-NAND1
Conoscere quanti addeti sono attivi non ha importanza, avrò sempre 0 sul dispay e uso la porta OR3 insieme al'uscita del FF sulla AND2
CASO OR2-NAND2
Per visualizzare 0 sul display entrambi devono essere necessariamente attivi, collego la AND1 con l'uscita del FF sulla AND3
Collego entrambi in casi in OR4 che resetterà il registro e visualizzerò 0 sul display.
Ho utilizzato le uscite OR3 e AND1 per gestire i casi di shift verso destra/sinistra per la divisione/moltiplicazione che corrisponde al
numero di minuti presenti nel registro dopo lo shift che bisogna visualizzare nel display, che è collegato al decoder dispay.
Si moltiplica per 2 quando ad un nuovo up/down counter è presente un solo addetto.
Si divide per 2 solo quando si passa da 2 addetti operativi a 1
Quando la AND1 è 0 significa che è presente un solo addetto, quindi insieme alla OR3 vengono collegati alla NAND3. Ho collegato anche la
OR3 per controllare il caso, che abbiamo assunto che non si può verificare, che entrambi sono non operativi. Avremo 1 in uscita per
indicare che bisogna moltiplicare ed effettuare uno shift a sinistra anteponendo una porta NOT per l'ingresso SL in logica negativa.
Per la divisione introduco elementi di memoria per tenere traccia del cambiamento da 1 addetto attivo a 2 nel modo seguente:
Memorizzo l'uscita della AND1, che indica il numero degli addetti attivi in due FF-D sincronizzati con un segnale di clock uno doppio
rispetto all'altro.
1 FF memorizza il dato di uscita e lo aggiorna ogni secondo (FF che memorizza lo stato precedente al cambiamento)
1 FF memorizza il dato di uscita e lo aggiorna ogni mezzo secondo (FF che memorizza lo stato più recente)
Userò l'uscita Q dal FF più recente e quella Q' dal FF aggiornato allo stato precedente per la porta AND4 che darà 1 in uscita per
abilitare la divisione. Uscita negata per l'ingresso SR del registro.
Le uscite delle porte AND4 e NAND3 vengono utilizzare per abilitare gli ingressi S1 e S0 del registro che abilitano lo shift verso destra
o sinistra con inserzione di zeri.
Il circuito ha ils eguente funzionamento:
La porta AND4 rappresenta la divisione (SR), la porta NAND3 la motiplicazione (SL). Entrami non possono essere abilitati, solo uno dei
due è 1, mentre l'altro è 0. Per sapere chi dei due è 1 collego entrambi in una AND5 che darà sempre 0, poi collego l'uscita in una OR5
che prende il segnale SL, se questa uscita è 1 vorrà dire che SL è attivo e SR no, quindi memorizzo l'usicta in un FF-D che viene
aggiornato ad ogni segnale di SL e SR. Le uscite del FF saranno il settaggio corretto per impostare S1 ed S0.
Mi auguro di essere stato chiaro
5 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 58 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




