Indice |
Introduzione
Oggi ci divertiamo con qualche esperimento col comparatore digitale 74LS85. Potrebbe sempre tornare utile, infatti, saper confrontare due valori numerici e stabilire se sono identici oppure individuare il maggiore o minore. Allo scopo torna utile e comodo il dispositivo Logic Switch visto nella parte III di questa serie di esperimenti pratici, per impostare manualmente i due valori da confrontare ed anche il Logic Indicator per avere subito un riscontro visivo sul risultato del confronto. L’occasione è favorevole per affrontare i display numerici a 7 segmenti ed il relativo Driver 74LS48. Useremo un display in modo un po’ anomalo: non per visualizzare numeri bensì lettere. Infatti abbineremo i tre risultati possibili del comparatore alle seguenti lettere: L per Low (minore), H per High (maggiore) ed E per Equal (uguali). Avremo bisogno di un Encoder e sarà interessante vedere come riusciremo a visualizzare lettere sul display che di solito viene impiegato per visualizzare i numeri da 0 a 9. Allora, siamo pronti? Allestiamo la nostra basetta sperimentale e via col comparatore!
Comparatore
Come al solito è indispensabile avere sott’occhio il data sheet dell’integrato 74LS85, la cui attenta lettura ci rivela:
- le funzioni svolte (General Description e Function Table)
- come collegarlo (Connection Diagram)
- come funziona (Logic Diagram)
- come alimentarlo (Recommended Operatine Condition)
- le caratteristiche elettriche (Electrical Characteristics)
Quindi stiamo trattando un comparatore di due grandezze A e B, di 4 bit ognuna, in grado di stabilire se A>B, A<B o A=B valorizzando con High l’uscita relativa al risultato ottenuto.
Con riferimento al Connection Diagram vediamo quali sono gli ingressi e quali le uscite:
Individuiamo i due ingressi da confrontare A (A3-A0) e B (B3-B0), quindi le tre uscite sui pin 5, 6 e 7. Vi sono altri tre input detti Cascading Inputs che servono nel caso si voglia confrontare grandezze su più di 4 bit: basterà collegare due o più integrati ponendo le uscite OUTPUTS dell’integrato che confronta i bit meno significativi agli ingressi CASCADING INPUTS dell’integrato che opera sui bit più significativi. Nel nostro caso di integrato singolo dovremo porre ad High il pin 3 e a Low i pin 2 e 4 come evidenziato nella Function Table:
In sostanza, nel caso di uguaglianza l’uscita riflette quanto presente sul Cascading Inputs.
Ora, bando alle ciance, andiamo al sodo: cosa ci serve?
- 1 circuito integrato 74LS85
- 1 condensatore da 100 nF
- 1 condensatore da 10 µF
- 3 resistori da 8,2 kΩ
- 1 BreadBoard
- fili rigidi a volontà
- Il Logic Switch & Indicator
- Alimentatore 5 V
Bene, non ci resta che montare l’integrato sulla Bread Board e collegare il Logic Switch & Indicator ricordando di porre tre resistori da 8,2 kΩ tra le uscite del comparatore ed il Logic Indicator per limitare la corrente IOH:
Ora possiamo agevolmente impostare i due valori A e B sul DIP switch ed osservare il LED che si accende in corrispondenza del risultato fornito dal comparatore.
Come anticipato, sarebbe più elegante e comodo, al posto dei LED, usare un bel display a 7 segmenti che ci mostri una H quando A>B, una E in caso di uguaglianza ed una L se A<B. Come fare lo vediamo nel prossimo paragrafo.
Display 7 segmenti
Si tratta di un display numerico, ma osservando i numeri 3, 4 e 7:
Possiamo intuire che girandoli di 180 gradi:
Otteniamo la E di Equal, la h di High e la L di Low: esattamente quanto fa al nostro caso! Quindi ci basta montare al contrario il display ed abbiamo risolto. Volendo essere pignoli potremo, alla fine, trasformare la h minuscola in maiuscola senza grande sforzo:
Resta da risolvere il problema di come alimentare i vari segmenti con un’unica uscita dal comparatore. Per esempio con l’uscita del comparatore A<B dovremmo alimentare ben tre segmenti che non sono altro che LED: non si riesce ad alimentarne uno con la IOH da 0,4 mA, figuriamoci tre! Non solo, questi tre LED sono in comune con le altre uscite e dovremmo mettere una barca di diodi per evitare cortocircuiti: come fare? Il problema è stato risolto costruendo un apposito driver che vediamo subito.
Driver per display 7 segmenti
Il circuito integrato 74LS48 accetta 4 ingressi (A3-A0), che rappresentano in binario il numero che si vuole trasmettere al display, e fornisce 7 output (a-g), corrispondenti ai 7 segmenti del display, in grado di alimentare direttamente i LED. Vediamo il Connection Diagram per capirci meglio:
Per quanto riguarda gli altri tre input denominati LT, BI e RBI, servono per scopi particolari che qui non ci interessano e possiamo tenerli High come specificato nella Truth Table del data sheet.
Quindi col 74LS48 abbiamo risolto il problema di gestire il display. Ora basterà, in qualche modo, fornire a questo integrato, un 3, un 4 o un 7 in binario, per far illuminare rispettivamente la E, la H o la L sul display montato al contrario.
In qualche modo? Già! Quale? Ci occorre un codificatore o Encoder.
Encoder
Una possibilità è quella di ricorrere ad un altro integrato, per esempio il 74LS148 è un codificatore, ha in ingresso 8 linee, ma di queste solo una deve essere attiva, e fornisce in uscita il numero binario su 3 bit relativo alla linea di input attiva. Sembra proprio fare al nostro caso: colleghiamo le tre uscite del comparatore alle linee 3, 4 e 7 e questo integrato ci fornisce il codice binario da dare in pasto al driver del display. Ho detto sembra perché in realtà le cose sono un po’ più complesse e tutto sommato forse non ne abbiamo bisogno: vediamo un’altra possibilità.
Proviamo a ragionare: abbiamo bisogno di un dispositivo che abbia in ingresso le tre uscite del comparatore e ci fornisca un 3, un 4 o un 7 in binario. Vediamo se una tabella delle verità ci aiuta:
L | E | H | A2 | A1 | A0 | Display |
---|---|---|---|---|---|---|
0 | 0 | 1 | 1 | 0 | 0 | 4 |
0 | 1 | 0 | 0 | 1 | 1 | 3 |
1 | 0 | 0 | 1 | 1 | 1 | 7 |
Dove ho messo solo le combinazioni che ci interessano e che sono anche le uniche possibili dato che il comparatore ci garantisce la univocità della sua risposta. In corrispondenza della uscita A>B del comparatore vogliamo che si accenda il 4 sul display che per noi diventerà H e così via per gli altri casi L ed E.
Quindi:
- A2,A1,A0 = 100 è un 4 in binario
- A2,A1,A0 = 011 è un 3
- A2,A1,A0 = 111 è un 7
Ora osserviamo le colonne A2, A1 ed A0 leggendo in verticale i possibili valori:
- A2 vale 1 quando H è 1 oppure L è 1
- A1 deve valere 1 se E oppure L valgono 1
- A0 varrà 1 se E oppure L valgono 1
Riepilogando:
- A2 = H OR L
- A1 = E OR L
- A0 = E OR L
Quindi per codificare un 3, un 4 o un 7 con le tre uscite del comparatore ci bastano tre OR, anzi 2 perché A0 ed A1 sono identici. Bene, dovrebbe essere tutto: passiamo all’assemblaggio e vediamo se funziona.
Assemblaggio
Riepiloghiamo cosa ci serve:
- 1 circuito integrato 74LS85 (comparatore)
- 1 circuito integrato 74LS32 (2 OR per la codifica)
- 1 circuito integrato 74LS48 (Driver per display)
- 1 Display 7 segmenti a catodo comune
- 3 condensatori da 100 nF
- 3 condensatori da 10 uF
- 1 o più BreadBoard
- fili rigidi a volontà
- Il Logic Switch
- Alimentatore 5 V
Ed ora montiamo il tutto e proviamo:
Conclusione
Per chi avesse bisogno degli schemi dei collegamenti avviso che non li ho messi di proposito.
Nel primo esperimento (comparatore-LED), come funziona il Logic Switch & indicator è spiegato qui e per collegare il comparatore invito a consultare il suo data sheet.
Nel secondo esperimento (comparatore-OR-Driver-Display) basta collegare le tre uscite del comparatore a due OR le uscite delle quali vanno agli ingressi del driver 74LS48 che alimenterà i rispettivi segmenti del display.
Se restano dubbi basterà chiedere chiarimenti nel forum.