Priority Encoder

© by Vittorio Crapella - i2viu

PRIORITY ENCODER

ESEMPIO DI APPLICAZIONE DIDATTICA

Progettare un circuito per gestire la chiamata di un infermiere in una corsia ospedaliera, con queste caratteristiche:

Gestire 10 posti letti con relativi pulsanti di chiamata, visualizzazione del numero del chiamante (0 ÷ 10) su display a 7 segmenti posto in guardiola, emissione di un segnale sonoro quando è premuto almeno un pulsante, accensione di un LED all'esterno della stanza e un led sopra il letto del chiamante supponendo di avere 2 letti per stanza. Se ci saranno più chiamate sul display apparirà il numero a priorità più alta ma tutte le chiamate resteranno visualizzate con i relativi led fuori stanza e relativi led sui letti.

I due diodi che comandano il led fuori stanza si comportano come degli AND a due ingressi cioè basta uno dei due (ingressi) diodi che sia portato a massa che il led si accende, infatti si attaccano sulle uscite delle due memorie SET-RESET che assumono livello basso quando viene premuto un pulsante letto.

Ora vediamo di capire come funziona la memoria S-R, bisogna per prima cosa avere bene chiaro come funziona un NAND cioè basta un ingresso dei due di ogni NAND che va a livello basso (0V) per mandare la relativa uscita del NAND a livello alto (quasi +5V) , mentre devono essere entrambi gli ingressi a livello alto per mandare la relativa uscita bassa.

Appurato questo diventa ora intuibile che quando alimento il circuito essendo i condensatori in parallelo al rest scarichi portano per un istante a livello basso l'ingresso e da quanto detto sopra l'uscita va alta ma siccome questa uscita va anche al pin del NAND superiore che ne ha già uno a livello alto, quello del pulsante letto, avremo l'uscita di questo NAND a livello basso che andando sul pin del NAND sotto, anche se il condensatore si carica e il suo pin torna alto, basta questo collegato all'uscita del NAND superiore per garantire lo stato stabile alle uscite dei NAND S-R.

In queste condizioni i LED letto saranno tutti spenti perché collegati a delle uscite che sono a livello basso 0V, pure i LED fuori stanza saranno spenti perché i diodi che li comandano sono tutti collegati a delle uscite a livello alto.

Fino a quando non viene premuto nessun pulsante letto il 74LS147 ha le sue 4 uscite a livello alto e pertanto dopo l'inversione di stato mediante 74LS04 avremo 4 livelli bassi che decodificati dal 74LS47 produrranno l'equivalente valore numerico sul display cioè 0.

Ora supponiamo che venga premuto il pulsante letto 1 che porta per un istante il pin a cui è collegato a livello basso, l'uscita di quel NAND va alta che riportata sul pin del NAND sotto che ha già il pin del pulsante reset alto manderà basso la sua uscita che riportata sul NAND superiore basterà a mantenere stabile il nuovo stato della memoria S-R, cioè questa volta avremo il led letto 1 acceso e il diodo che comanda il led fuori stanza 1 si trova collegato a livello basso pertanto accenderà il led.

Qualsiasi pulsante letto premuto darà in uscita dal 74LS147 una combinazione binaria che invertita dal 74LS04 corrisponderà al valore binario a 4 bit del numero relativo al pulsante premuto e questo avverrà in modo prioritario in base al valore più elevato del pulsante premuto.

In presenza di almeno un pulsante premuto avremo che almeno uno dei 4 bit di uscita del 74LS04 assumerà livello alto e pertanto il buzzer piezoelettrico riceverà un livello alto che lo farà suonare avvisando che c'è una chiamata e sul display apparirà il numero relativo alla stanza chiamante.