Circuito contatore BCD
Abbiamo visto in precedenza che i flip flop a levetta di tipo T possono essere usati come contatori individuali divisi per due. Se colleghiamo insieme diversi flip-flop a levetta in una catena in serie, possiamo produrre un contatore digitale che memorizza o visualizza il numero di volte che si è verificata una particolare sequenza di conteggio.
I flip-flop di tipo T bloccati agiscono come un contatore binario divisione per due e nei contatori asincroni, l’uscita di uno stadio di conteggio fornisce l’impulso di clock per lo stadio successivo. Quindi un contatore a flip-flop ha due possibili stati di uscita e aggiungendo più stadi flip-flop, possiamo fare un contatore divide per 2N. Ma il problema con i contatori binari a 4 bit è che contano da 0000 a 1111. Cioè da 0 a 15 in decimale.
Per fare un contatore digitale che conti da 1 a 10, abbiamo bisogno che il contatore conti solo i numeri binari da 0000 a 1001. Cioè da 0 a 9 in decimale e fortunatamente per noi, i circuiti di conteggio sono facilmente disponibili come circuiti integrati e uno di questi circuiti è il contatore asincrono 74LS90 Decade.
I contatori digitali contano verso l’alto da zero a qualche valore di conteggio predeterminato sull’applicazione di un segnale di clock. Una volta raggiunto il valore di conteggio, il reset riporta il contatore a zero per ricominciare.
Un contatore a decade conta in una sequenza di dieci e poi ritorna a zero dopo il conteggio di nove. Ovviamente per contare fino a un valore binario di nove, il contatore deve avere almeno quattro flip-flop nella sua catena per rappresentare ogni cifra decimale come mostrato.
Diagramma di stato del contatore BCD
Quindi un contatore decennale ha quattro flip-flop e 16 stati potenziali, di cui solo 10 vengono usati e se colleghiamo una serie di contatori insieme potremmo contare fino a 100 o 1.000 o fino a qualsiasi numero di conteggio finale che scegliamo.
Il numero totale di conteggi che un contatore può contare si chiama il suo MODULO. Un contatore che ritorna a zero dopo n conteggi è chiamato un contatore modulo-n, per esempio un contatore modulo-8 (MOD-8), o modulo-16 (MOD-16), ecc, e per un “contatore a n bit”, la gamma completa del conteggio è da 0 a 2n-1.
Ma come abbiamo visto nel tutorial sui contatori asincroni, un contatore che si resetta dopo dieci conteggi con una sequenza di conteggio divide per 10 da 0000 binario (decimale “0”) fino a 1001 (decimale “9”) è chiamato “contatore binario-codificato-decimale” o in breve contatore BCD e un contatore MOD-10 può essere costruito usando un minimo di quattro flip-flop toggle.
Si chiama contatore BCD perché la sua sequenza di dieci stati è quella di un codice BCD e non ha uno schema regolare, a differenza di un contatore binario diritto. Quindi un contatore BCD a uno stadio come il 74LS90 conta da 0 decimale a 9 decimale ed è quindi in grado di contare fino a un massimo di nove impulsi. Si noti inoltre che un contatore digitale può contare in alto o in basso o contare su e giù (bidirezionale) a seconda di un segnale di controllo in ingresso.
Il codice binario-codificato-decimale è un codice 8421 composto da quattro cifre binarie. La designazione 8421 si riferisce al peso binario delle quattro cifre o bit utilizzati. Per esempio, 23 = 8, 22 = 4, 21 = 2 e 20 = 1. Il vantaggio principale del codice BCD è che permette la facile conversione tra le forme decimali e binarie dei numeri.
Il contatore 74LS90 BCD
Il circuito integrato 74LS90 è fondamentalmente un contatore decennale MOD-10 che produce un codice di uscita BCD. Il 74LS90 consiste di quattro flip-flop JK master-slave collegati internamente per fornire un contatore MOD-2 (count-to-2) e un contatore MOD-5 (count-to-5). Il 74LS90 ha un flip-flop JK a levetta indipendente guidato dall’ingresso CLK A e tre flip-flop JK a levetta che formano un contatore asincrono guidato dall’ingresso CLK B come mostrato.
contatore 74LS90 BCD
Le quattro uscite dei contatori sono designate dalla lettera simbolo Q con un pedice numerico uguale al peso binario del bit corrispondente nel codice dei circuiti del contatore BCD. Così, per esempio, QA, QB, QC e QD. La sequenza di conteggio del 74LS90 viene innescata sul fronte negativo del segnale di clock, cioè quando il segnale di clock CLK passa da 1 logico (HIGH) a 0 logico (LOW).
I pin di ingresso aggiuntivi R1 e R2 sono pin di “reset” del contatore mentre gli ingressi S1 e S2 sono pin di “set”. Quando sono collegati a 1 logico, gli ingressi Reset R1 e R2 resettano il contatore a zero, 0 (0000), e quando gli ingressi Set S1 e S2 sono collegati a 1 logico, impostano il contatore al massimo, ovvero 9 (1001) indipendentemente dal numero o dalla posizione attuale del conteggio.
Come abbiamo detto prima, il contatore 74LS90 consiste in un contatore divide-by-2 e un contatore divide-by-5 nello stesso pacchetto. Quindi possiamo usare uno dei due contatori per produrre solo un contatore di frequenza divide-by-2, solo un contatore di frequenza divide-by-5 o i due insieme per produrre il nostro contatore BCD divide-by-10 desiderato.
Con i quattro flip-flop che compongono la sezione del contatore divide-by-5 disabilitati, se un segnale di clock viene applicato al pin di ingresso 14 (CLKA) e l’uscita presa dal pin 12 (QA), possiamo produrre un contatore binario divide-by-2 standard da usare nei circuiti di divisione della frequenza come mostrato.
74LS90 Divide-by-2 Counter
Per produrre un contatore standard divide-by-5, possiamo disabilitare il primo flip-flop sopra, e applicare il segnale di ingresso del clock direttamente al pin 1 (CLKB) con il segnale di uscita preso dal pin 11 (QD) come mostrato.
74LS90 Divide-by-5 Counter
Nota che con questa configurazione divide-by-5 counter, la forma d’onda di uscita non è simmetrica ma ha un rapporto 4:1 mark-space. Cioè quattro segnali di clock in ingresso creano un’uscita BASSA o logica “0” e il quinto segnale di clock in ingresso produce un’uscita ALTA o logica “1”.
Per produrre un contatore decennale BCD divide-by-10, entrambi i circuiti interni del contatore sono usati dando un valore di divide-by 2 volte 5. Poiché la prima uscita QA dal flip-flop “A” non è collegata internamente agli stadi successivi, il contatore può essere esteso per formare un contatore BCD a 4 bit collegando questa uscita QA all’ingresso CLKB come mostrato.
74LS90 Divide-by-10 Counter
Poi possiamo vedere che i contatori BCD sono contatori binari che contano da 0000 a 1001 e poi si resettano perché hanno la capacità di cancellare tutti i loro flip-flop dopo il nono conteggio. Se colleghiamo un interruttore a pulsante (SW1) all’ingresso di clock CLKA, ogni volta che l’interruttore a pulsante viene rilasciato il contatore conterà di uno. Se abbiamo collegato dei diodi emettitori di luce (LED) ai terminali di uscita, QA, QB, QC e QD come mostrato, possiamo visualizzare il conteggio decimale codificato in binario mentre avviene.
74LS90 BCD Decade Counter
Successive applicazioni dell’interruttore a pulsante, SW1 aumenteranno il conteggio fino a nove, 1001. Alla decima applicazione le uscite ABCD si azzerano per iniziare una nuova sequenza di conteggio. Con un tale numero tondo di impulsi MOD-10 possiamo usare il contatore decennale per pilotare un display digitale.
Se vogliamo visualizzare la sequenza di conteggio usando un display a sette segmenti, l’uscita BCD deve essere decodificata adeguatamente prima di poter essere visualizzata. Un circuito digitale che può decodificare le quattro uscite del nostro contatore BCD 74LS90 e illuminare i segmenti richiesti del display è chiamato un Decoder.
Driving a Display
Fortunatamente per noi, qualcuno ha già progettato e sviluppato un IC Decoder BCD a Display a 7 segmenti come il 74LS47 per fare proprio questo. Il 74LS47 ha quattro ingressi per le cifre BCD A, B, C e D e uscite per ciascuno dei segmenti del display a sette segmenti.
Nota che un display LED standard a 7 segmenti ha generalmente otto connessioni di ingresso, una per ogni segmento LED e una che funge da terminale comune o connessione per tutti i segmenti interni del display. Alcuni display hanno anche un’opzione punto decimale (DP).
74LS47 BCD to 7-segment Driver
Il 74LS47 display decoder riceve il codice BCD e genera i segnali necessari per attivare i segmenti LED appropriati responsabili della visualizzazione del numero di impulsi applicati. Poiché il decoder 74LS47 è progettato per pilotare un display common-anode, un’uscita LOW (logica-0) illuminerà un segmento LED mentre un’uscita HIGH (logica-1) lo spegnerà. Per il funzionamento normale, LT (Lamp test), BI/RBO (Blanking Input/Ripple Blanking Output) e RBI (Ripple Blanking Input) devono essere tutti aperti o collegati a logic-1 (HIGH).
Nota che mentre il 74LS47 ha uscite attive LOW ed è progettato per decodificare un display a LED a 7 segmenti ad anodo comune, il 74LS48 decoder/driver IC è esattamente lo stesso tranne che ha uscite attive HIGH progettate per decodificare un display a 7 segmenti a catodo comune. Quindi, a seconda del tipo di display a LED a 7 segmenti che avete, potreste aver bisogno di un IC decoder 74LS47 o 74LS48.
Gli ingressi decimali codificati binari 74LS47 possono essere collegati alle uscite corrispondenti del 74LS90 BCD Counter per visualizzare la sequenza di conteggio sul display a 7 segmenti come mostrato ogni volta che viene premuto il pulsante SW1. Cambiando la posizione del pulsante e della resistenza da 1kΩ, il conteggio può essere fatto cambiare all’attivazione o al rilascio del pulsante SW1.
Circuito finale del contatore BCD a 4 bit
Nota che un display a 7 segmenti è fatto di sette diodi emettitori di luce individuali per formare il display. Il metodo migliore per limitare la corrente attraverso un display a sette segmenti è quello di utilizzare una resistenza limitatrice di corrente in serie con ciascuno dei sette LED come mostrato. Ma possiamo farlo in due modi.
Resistenze di limitazione della corrente
Singola resistenza – qui viene usata una singola resistenza di limitazione della corrente in serie, R. Se non sei particolarmente preoccupato per una luminosità costante del display, allora questa è l’opzione più facile e più semplice per controllare il display a 7 segmenti.
La quantità di luce emessa da un LED varia con la corrente attraverso il dispositivo con la corrente che scorre attraverso il resistore che viene condivisa tra il numero di segmenti del display. Quindi la luminosità del display ora dipende da quanti segmenti sono illuminati allo stesso tempo.
Resistori multipli – qui ogni segmento ha la sua resistenza di limitazione della corrente come mostrato nel nostro semplice circuito contatore BCD sopra.
Generalmente i display a 7 segmenti richiedono circa 12-20 milli-ampere per illuminare i segmenti, quindi il valore resistivo della resistenza di limitazione della corrente (tutti saranno identici) è scelto per limitare la corrente entro questi valori. Si noti che alcuni display possono essere distrutti se pilotati a 40mA e oltre.
Il vantaggio qui è che la luminosità di un particolare segmento LED non dipende dallo stato degli altri sei LED, dando al display una luminosità costante. I valori delle resistenze di limitazione della corrente possono essere scelti per fornire la giusta quantità di luminosità, poiché la quantità di luce ambientale determinerà anche l’intensità richiesta dei LED.
Il nostro circuito mostra un semplice contatore digitale da 0 a 9 utilizzando un contatore 74LS90 BCD e un driver per display a 7 segmenti 74LS47. Per contare oltre il 10 e produrre un contatore a 2 cifre in base dieci e un display, avremmo bisogno di mettere in cascata due contatori separati con divisione per dieci. Un contatore BCD a 2 cifre conterebbe in decimale da 00 a 99 (da 0000 0000 a 1001 1001) e poi tornerebbe a 00. Si noti che anche se sarà un contatore a 2 cifre, i valori che rappresentano i numeri esadecimali da A a F non sono validi in questo codice.
Similmente, se volessimo contare da 0 fino a 999 (0000 0000 0000 a 1001 1001 1001), allora sono necessari tre contatori di decade in cascata. In effetti, i contatori di decade multipli possono essere costruiti semplicemente mettendo in cascata i singoli circuiti di contatori BCD, uno per ogni decade, come mostrato.
Contatore BCD a 2 cifre da 00 a 99
Riassunto contatore BCD
In questo tutorial abbiamo visto che un contatore BCD è un dispositivo che passa attraverso una sequenza di dieci stati quando viene sincronizzato e ritorna a 0 dopo il conteggio di 9. Nel nostro semplice esempio sopra, gli impulsi di clock in ingresso provengono da un interruttore a pulsante, ma i contatori possono essere utilizzati per contare molti eventi del mondo reale, come il conteggio di oggetti in movimento.
Tuttavia, può essere necessario un circuito adatto per generare gli impulsi elettrici per ogni evento da contare, poiché questi eventi possono verificarsi a intervalli di tempo discreti o possono essere completamente casuali.
In molti circuiti elettronici digitali e applicazioni, i contatori digitali sono implementati utilizzando flip-flop Toggle o con qualsiasi altro tipo di flip-flop che può essere collegato per dare la funzione di commutazione richiesta, o con l’uso di circuiti integrati di conteggio dedicati come il 74LS90. I contatori binari sono contatori che passano attraverso una sequenza binaria e un contatore binario a n bit è composto da un numero “n” di flip-flop che contano da 0 a 2n-1.
I contatori BCD seguono una sequenza di dieci stati e contano usando numeri BCD da 0000 a 1001 per poi tornare a 0000 e ripetere. Un tale contatore deve avere almeno quattro flip-flop per rappresentare ogni cifra decimale, poiché una cifra decimale è rappresentata da un codice binario con almeno quattro bit che danno un conteggio MOD-10.
Abbiamo anche visto che l’uscita codificata BCD può essere visualizzata usando quattro LED o con un display digitale. Ma per visualizzare ogni numero da 0 a 9 è necessario un circuito di decodifica, che traduca una rappresentazione del numero codificato in binario nei livelli logici appropriati su ciascuno dei segmenti del display.
I circuiti di decodifica del display possono essere costruiti da elementi logici combinazionali e ci sono molti circuiti integrati dedicati sul mercato per svolgere questa funzione, come il 74LS47 BCD a 7 segmenti decoder/driver IC.
La maggior parte dei display a 7 segmenti sono di solito utilizzati in applicazioni di conteggio a più cifre, quindi mettendo in cascata più contatori BCD, si possono costruire contatori a 4 cifre che danno display con una lettura massima di 9999.
Il contatore BCD 74LS90 è un circuito di conteggio molto flessibile e può essere usato come un divisore di frequenza o fatto per dividere qualsiasi numero intero da 2 a 9 riportando le uscite appropriate agli ingressi Reset e Set dell’IC.