Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contadors y Registros
Contadors y Registros
CONTADORES Y REGISTROS
7.1
CONTADORES
Un contador es un circuito secuencial cuya funcin es seguir una cuenta o conjunto predeterminado de estados como consecuencia de la aplicacin de un tren de pulsos (reloj)
en una de sus entradas.
Los contadores son circuitos construidos a base de flip-flops,
sincronizados a flancos, y de puertas lgicas para realizar la conexin entre los flip-fiops.
Las puertas lgicas en un contador se conectan de forma que fuercen a los flip-flops a
seguir la secuencia prescrita de estados.
Dado que cada flip-flop es capaz de almacenar 2 estados, un sistema de n flip-flops
podr codificar 2n estados (nmeros de cuenta) diferentes. El paso del estado o nmero
de cuenta actual al estado siguiente se realiza en sincronismo con la seal de reloj, de
tal forma que el contador va avanzando por la secuencia de estados hasta que termina
de completar un ciclo, es decir, una secuencia de conteo particular. Una vez terminado
el ciclo, vuelve al estado de partida y comienza un nuevo ciclo. Como cada estado slo
posee un estado siguiente, es fcil deducir que todos los estados que recorre un contador
en un ciclo o secuencia de conteo son diferentes. Si el nmero de estados diferentes que
recorre es k, se habla de un contador mdulo k. El nmero mximo de estados posibles
es 2n, por lo que k ~ 2n. Un contador se denomina binario si k=2n.
7.2
CONTADORES BINARIOS
111
11
Q~+l
O
OO
O
O
Q~+1
Qo
Q~
O O
Para conocer las funciones J y K de cada biestable hay que utilizar la tabla de transiciones de estado de un flip-flop JK. Llegamos a la siguiente tabla:
Q2
-O1
1O-1O1
1
O
11
O
O
1
OOO
O
Ko
K1
Jo
J1
K2
Q~
Q~+l
Qo
J2
Q~+l
~lo nos resta encontrar las expresiones de las entradas J y K de cada biestable en
funcin del estado actual. Para ello debemos minimizar las funciones de la tabla anterior
utilizando mapas de Karnaugh.
-
o10
1 o o
111-
10IlL
1 01
~q;'fo
~~'foloo 00
01
11
oo10
1
- 1 01
00
11
10
-
11
10
O
1O
Ko
01
11 10
1I 1
1I 1
1
CLK
To
TI
T2
T3
T4
=
=
=
Jo
J2
=
=
=
=
=
J3
= K3
J4
= K4
J1
Ko
K1
K2
=
=
Q~
= Q~Q~
= Q~Q~Q~
= Q~Q~Q~Q~
CLK
O
QO
Q2
QIQO
Ql
QO
7.3
CONTADORES NO BINARIOS
Hasta ahora hemos construido contadores binarios, esto, es con n flip-flops la secuencia
que se ha implementado es {..., 0,1,2, ..., 2n-1, ... }. Sin embargo, cabe la posibilidad de
generar secuencias de conteo que no sigan el orden natural o que el nmero de cuentas sea
menor que 2n. En general, un contador que realice k cuentas distintas recibe el nombre
de contador mdulo k.
El mtodo de diseo que hemos expuesto en el apartado anterior para contadores
binarios es un mtodo general que se puede aplicar para cualquier tipo de cuenta y se
puede generalizar para cualquier tipo de flip-flop (JK, RS, T y D).
Como ejemplo de esta afirmacin, construyamos a partir de flip-flops tipo T un contador que siga la secuencia {.oo, O,7, 5,3,4,2, ...}. El primer paso es obtener la Tabla de
Transiciones de estado del flip-flop T:
1T1
O O
O Qn
O
1Qn+1
1=T1+TO
0=T1+TO
0=TO+T1
Qn+1
= Tlf
+ TQn
1
CLK
- -- 11111T2
11
1TI
To
Q2+I
Qo
Q~
QO+I
Q~+I
O
OO
OO
OO
10
O
1 I 1) I o
11 10
1I 1
1I 1I1
10
O
O
CLK
7.4
En este apartado vamos a ver como realizar una carga en paralelo sncrona (en
sncronismo con la seal de reloj). En el caso de una carga sncrona las nicas entradas
sobre las que se pueden actuar son J y K, ya que son las nicas que son sncronas. En
este apartado slo consideraremos flip-flops JK, pero el tratamiento es similar para los
otros tipos de biestables.
Un contador con carga en paralelo, adems de la seal de reloj, necesita una seal
adicional que le indique cuando debe contar y cuando debe cargar el estado o principio
de una nueva cuenta o ciclo. A esta seal se le suele denominar LOAD y su funcin es
seleccionar, mediante MUXes 2 al, las entradas adecuadas de los biestables (J y K) en
funcin de la tabla siguiente:
LOAD
O
Valores de J y K para
el contador cuente
realizar una carga en paralelo
o lo que
7.5
CONTADORES
DENTES
ASCENDENTES /DESCEN-
1
1
CLK
LOAD
Q~
-1
1I
1O
IK1
O
-1 O
OO
Ko
Jo
Q~+1
Qo
J1
I O
O1Qo+1
Es decir, Jo = Q';, Ko =
K1
= 1 Y J1 = Qo
O
1
1O1
1-O O
O
1I
1Q~+1
O
K1
Jo
Qo
J1
O QO+1
Q~ I I Ko
Es decir, Jo = Q~, Ko =
K1
= 1 Y J1 = Q;;
CLK
UPjDOWN
Figura 7.6: Contador reversible
7.6
CONTADORES
BLOQUES
O,
1, 2/ 2, 1,
DISENADOS
O.
A PARTIR DE
Existen varios tipos de contadores en circuitos integrados que cuentan en BCD ({ ... , O,
1,2, ... ,9, O, ... }) o en binario ({ ... , 0,1,2, oo., 15, O, ... }). Estos contadores pueden ser
reversibles o no, tener la posibilidad de carga en paralelo (LOAD), borrado (CLEAR) y
conteo (COUNT) (cuando el conteo es O, el contador est parado y mantiene el valor de
la cuenta). Lo ms usual es que el borrado se realice mediante la activacin de los Clear
de los flip-flops (entradas asncronas) y que, por tanto, sea una seal asncrona. La carga
en paralelo suele ser sncror\a.
Adems del valor de la cuenta, suelen tener como salida una seal de ACARREO, que
se pone a 1 durante la ltima cuenta del contador (en la cuenta 9 si el contador es BCD
o en la 15 si es binario), siendo O en los dems imtantes. Est seal (negada) se suele
utilizar para conectar en cascada, varios contadores.
En la figura 7.7 se muestra el diagrama interno de un contador binario de 4 bits con
carga en paralelo sncrona, borrado asncrono y seal de conteo.
Este contador se puede utilizar como bloque fundamental para disear otros contadores
a partir de l. Por ejemplo, se puede construir un contador mdulo 6 de 4 formas distintas
(ver figura 7.8), segn se use la carga en paralelo sncrona o el borrado asncrono.
(a) Se detecta el estado 0110 (6) Y se impide la cuenta de este estado actuando
el CLEAR (seal asncrona), el cual pone inmediatamente a cero el contador.
sobre
(b) Se detecta el estado 0101 (5) Y se acta sobre LOAD. La carga en paralelo (del
al ser sncrona, se realizar en el ciclo siguiente (en el siguiente flanco de reloj), por lo
cual este estado se contar.
O),
sobre la carga en
10
coUNT
LoflP
J
QfAR
cK
Contador
D
O
O
O
X
X
Borrar
.' XtX
OaX
No
cambiar
1OO
Cargar
entradas
Contar
siguiente
Funcin
estado binario
el<.
COUAJT
CI..EAR
LOAD
Figura 7.7: Contador binario de 4 bits integrado, con carga paralela sncrona, borrado
asncrono y seal de conteo.
o~
oQ
olI
X
Xc,
Q"
Xo
LOAD
11
t==F=F
t=FF
(d)(b)
ACARROO
Q~
CLEAR
CLK
X~
x~ ~
Xl
Xc,
CLEAR
ACARRro
LOAD
CLK
Q"
vw1
o1
Xc,
x~,,
Q
Q"
CLEAR
CLK
Q~
ACARREO
x~
w
(a)
LOAD
(e)
Figura 7.8: Cuatro formas de construir un contador mdulo 6 a partir del contador
integrado anterior.
I
I
D
O
CLK
DI
1 Qn+l
1
CLK
L
L
CLK
D
O
D
1 I Qn+l
1
CLK
7.7
REGISTROS DE DESPLAZAMIENTO
12
s
CLK
s
CLK
d
d3
d2
Q2
Qo
Q do ~ Q3
~
~
~\doU
ciclo O
ciclo
ciclol
ciclo 2
3
4
7. 7.
REGISTROS DE DESPLAZAMIENTO
13
CLK
a
b
7.7.1
Incluyendo los dos tipos de conexiones entre los flip-flops D podemos construir un registro con posibilidad de ser desplazado tanto hacia la derecha corno hacia la izquierda.
La seleccin de una u otra operacin se realizar mediante MUXes en la entrada D de
cada flip-flop. La carga en paralelo y el borrado se pueden aadir usando MUXes 4 a
1, conectando a una de las entradas un dato procedente del exterior (para la carga en
paralelo) o un "O" para el borrado. Ambas operaciones, realizadas de esta forma, son
sncronas.
Seleccin del MUX
a
O
1
1
O
Accin
Desplazamiento a la izquierda
Desplazamiento a la derecha
Carga en paralelo sncrona
Borrado sncrono
La disposicin de los MUXes, sus entradas y sus conexiones se pueden ver en la figura
7.13.
Corno ya sabemos, desplazar un nmero binario i veces a la izquierda equivale a multiplicado por 2i. Igualmente, desplazar un nmero binario hacia la derecha i posiciones
equivale a dividido entre 2i (quedndonos nicamente con la parte entera de dicha divisin). Adems de multiplicar y dividir nmeros entre potencias de 2, los registros
de desplazamiento se utilizan para la conversin de datos paralelo/serie y serie/paralelo
(imprescindible en las comunicaciones serie). Veamos como se utilizan los registros de
desplazamiento en tales aplicaciones.
7.7.2
La manipulacin de datos constituidos por varios bits puede realizarse de dos formas
distintas: en modo serie o en modo paralelo. Se dice que un sistema digital opera en
14
modo serie cuando la informacin se transfiere y manipula bit a bit. Por ejemplo, cuando
el contenido de un registro se transfiere a otro desplazando los bits de un registro al
siguiente, un bit en cada ciclo de reloj. Para prevenir la prdida de datos, se hace recircular
el contenido del primero de los registros. Si el registro es de n bits, sern necesarios n
ciclos de reloj para la transferencia.
En el modo paralelo, la informacin se transfiere y manipula en todos sus bits a la vez.
Por ejemplo, en una transferencia entre dos registros en modo paralelo, todos los bits se
transfieren del primer registro al segundo en un solo ciclo de reloj, mediante una carga en
paralelo. Si los datos son de n bits, los registros han de tener n salidas y n entradas.
7. 7.
REGISTROS DE DESPLAZAMIENTO
15
EJERCICIOS
7.1. Construir un contador mdulo 15 con un contador mdulo 3 ({ ... , 0,1,2,
un contador mdulo 5 ({oo., 2, 3, 4, 5, 6, .oo}) .
oo.})
CLK
7.3. Disear un contador que siga la secuencia de estados de la siguiente figura utilizando
flip-flops JK.
(i) durante 3 ciclos del reloj, la salida S debe ser igual a la entrada A.
(ii) durante los 2 ciclos siguientes, S debe ser igual a la entrada B.
Estas operaciones se realizan continuamente,
realizarse i).
16
(i) Desplazamiento
a la derecha.
(ii) Desplazamiento
a la derecha.
a la izquierda.
(v) Desplazamiento
a la izquierda.
ao
ao
bl
al
bo
b2
a2
Co
Co
bo
Cl
C2
v
8
7.8.
(i) Disear un circuito que a partir de una seal cuadrada de 1Hz genere dos pulsos
de anchura 0.5 sg separados por otro 0.5 sg cada 6 sg.
17
n)
Utilizando dos circuitos del tipo del apartado i) y puertas lgicas generar a
partir de una seal cuadrada de 1Hz dos pulsos de anchura 0.5 sg separados
por otro 0.5 sg cada 36 sg.
m)
Utilizando tres circuitos del tipo del apartado i) y puertas lgicas generar a
partir de una seal cuadrada de 1Hz dos pulsos de anchura 0.5 sg separados
por otro 0.5 sg cada 216 sg.
7.9. Disear un reloj digital que tenga como salidas horas y minutos a partir de una
seal cuadrada de 100Hz. La salida debe proporcionarse en BCD. Se debe permitir
poner en hora el reloj, introduciendo valores arbitrarios de horas y minutos cuando
se active la seal PONER.BN.BORA. Solo se permite utilizar contadores mdulo 16
con carga en paralelo sncrona (no disponen de borrado) y circuitos combinacionales.
7.10.
n)
m)
IV)
v)
7.11.
Utilizando contadores mdulo 16 con seales de carga en paralelo (LOAD), borrado (CLEAR) y conteo (CQUNT) y una salida de ACARREO y puertas lgicas
adicionales construye:
Un contador mdulo 7 que cuente de
a 6.
Utilizando el menor nmero de biestables JK y puertas lgicas adicionales, disea un circuito TOTALMENTE SNCRONO que d como salida la secuencia:
{... , 5 , 20, 2, 9, 20, ...} (en binario natural).
7.13.
Disea un contador que haga la secuencia O, 4, 6, 7, 3, 1 con un registro de desplazamiento a la derecha de 3 bits y puertas lgicas adicionales.
7.14.
18
r)
Activando MARCHA se va cambiando de cancin de forma secuencial, recorriendo primeiro todas las canciones de un CD, a continuacin las del siguiente,
y volviendo al primero una vez finalizada la ltima cancin del ltimo CD.
Il)
Disea un circuito que recibe un nmero x, O :::;x :::; 3, por sus lneas de entrada
DIDo en cada ciclo. El circuito tiene un funcionamiento por periodos de 16 ciclos. En
los quince primeros ciclos va contabilizando el nmero de veces que recibe cada uno
de los valores posibles de su entrada. Estos valores estn siempre disponibles en las
salidas Sx3Sx2SxlSxO para cada uno de los valores posibles de la entrada (O :::;x :::;3).
Por lo tanto, el circuito tiene 16 lneas de salida. Tras los quince ciclos susodichos,
hay un ciclo en el que la entrada es ignorada y que se emplea para restablecer el
estado interno del circuito de cara al siguiente periodo de conteo.
7.16. Disea un circuito con una entrada X y una salida Y (ambas de cuatro bits) que
invierta el orden de los datos siguiendo un ciclo de cuatro flancos de reloj (frecuencia
1 Hz). Su funcionamiento sera el siguiente:
X:
Y:
Xo
O
Xl
X6
X7
Xs
Xg
Xl
Xo
X7
X6
=>
=>
=>
=>
19
Como parte de la solucin del ejercicio se debe calcular qu frecuencia debe tener la
onda utilizada como base de tiempos para poder obtener en la salida las temporizaciones solicitadas. El circuito contar adems con una entrada que indique el estado
del contacto del coche, y slo funcionar cuando ste est activado.
7.18.
POTENOA DE
COCINA
ClK
1)
]~.
BeDI
ElECfRlCA
aCDO
LGP
~:~~:
n)
MAX
Se dispone adems de una seal de reset (RST) que pone el nivel de potencia a O, y una seal de mxima potencia (MAX) que selecciona el nivel de
potencia mxima sin necesidad de pa.'3arpor todos los niveles anteriores.
Slo una de estas dos seales puede estar activa a la vez.
CLK
GP nivel O ------------------~----------------
GP nivel I
GP nivel 2:
GP.
13~-
mve
GP nivel 8
GP nivel 9
""
-~---!
!,
r-----L
"
!:
LJ