Electrónica Digital · Tema 8

AND y OR

Todos o alguno: las dos formas de combinar condiciones, de los interruptores en serie al 74HC08.

01 · Punto de partida

Cerradura de dos llaves

Caja fuerte con dos llaves (AND: giran las dos o no abre) y alarma con dos sensores (OR: basta uno). Dos condiciones, dos respuestas: todos vs alguno. El resto del tema es detalle de pines.

  • ¿Qué fila da 1 en cada una?
  • ¿Cómo se dibujan y qué chips son?
  • ¿Qué se hace con entradas sobrantes?
  • ¿AND/OR con 3 o 4 entradas?

02 · AND

Todos, sin excepción

Y = A·B: 1 solo con 11 (Σm(3)). Símbolo en D; 74HC08 trae 4. Es el interruptor serie del curso 2 con silicio: la corriente lógica pasa solo si todos cierran.

A=1 → B=1 →todos →Y=1

03 · OR

Alguno alcanza

Y = A+B: 0 solo con 00 (Σm(1,2,3)). Símbolo de espalda curva; 74HC32 trae 4. Ojo programador: 1+1 = 1 (no 2): el OR no suma, une.

AND (serie)

El 0 domina

Un 0 apaga todo: 0·X = 0. Permisos: todos los checks en verde.

OR (paralelo)

El 1 domina

Un 1 enciende todo: 1+X = 1. Alarmas: cualquier sensor dispara.

04 · Más y menos entradas

Sobrantes y faltantes

AND con entrada libre → 1
A·1 = A: a Vcc (con R) o a otra entrada. Flotante jamás (Tema 3).
OR con entrada libre → 0
A+0 = A: a masa. Al revés arruina la función (1 domina).
3 y 4 entradas
74HC11 (triple AND-3) y 74HC4075 (triple OR-3): menos chips, misma tabla extendida (8 filas).
Conmutan
A·B = B·A: el orden no importa. Cablear por comodidad, no por superstición.

05 · Puertas en código

Todos y alguno, N-arios

AND/OR de N entradas más la cerradura y la alarma del inicio.

Python en tu navegador. Agregá llaves y sensores a voluntad.

def and_(*xs):
    return int(all(xs))


def or_(*xs):
    return int(any(xs))


print("AND:", [and_(a, b) for a in (0, 1) for b in (0, 1)])
print("OR: ", [or_(a, b) for a in (0, 1) for b in (0, 1)])
print("AND-3:", and_(1, 1, 1), and_(1, 0, 1))

AND: [0, 0, 0, 1]. OR: [0, 1, 1, 1]. AND-3 con un 0 → 0: el 0 domina en cualquier ancho.

Cerradura y alarma

def cerradura(llave1, llave2):
    return and_(llave1, llave2)


def alarma(humo, calor, armado):
    return and_(armado, or_(humo, calor))


print("caja:", cerradura(1, 0), cerradura(1, 1))
print("alarma desarmada:", alarma(1, 0, 0), "armada:", alarma(1, 0, 1))

06 · Analogía programador

&& y || con pines

  1. 1
    AND = &&.

    Cortocircuita en el primer 0: igual que tu if (a && b), en nanosegundos.

  2. 2
    OR = ||.

    Basta un verdadero: permisos, flags o cualquiera de N sensores.

  3. 3
    Dominancia = identidad.

    0·X=0 y 1+X=1 como x && false: el absorbente manda sin mirar lo demás.

07 · Exploración

Laboratorio: todos vs alguno

Dos interruptores y selector AND/OR: el laboratorio muestra Y, LED, minterm y quién domina.

LABORATORIO 8

Todos/alguno

AND · A=1 B=1 → 1

Y1
LED● prendido
Fila/minterm11 · m3
Dominanadie (11)

AND 1·1: Y=1.

Preguntas para explorar

  1. En AND con A=1, B=0: ¿Y? ¿Quién domina? Pasá a OR sin tocar A/B: ¿Y ahora?
  2. ¿Qué combinación da 0 en OR? ¿Y 1 en AND?
  3. Si B queda fija en 1: ¿qué puerta se vuelve un buffer? ¿Y con B = 0?
Ver respuestas sugeridas
  1. AND: 0 (domina el 0). OR: 1 (domina el 1). Mismos bits, decisión opuesta.
  2. OR: solo 00. AND: solo 11. Una fila decide cada puerta.
  3. B=1: AND(A,1) = A (buffer). B=0: OR(A,0) = A (buffer). Entrada fija = puerta degradada a cable.

08 · Comprensión

Confusiones frecuentes

«OR suma: 1+1 = 2»

1+1 = 1 en OR: une, no suma. Sumar con acarreo es el Tema 23 (XOR mediante).

«Entrada libre al aire»

AND libre a 1, OR libre a 0, siempre cableadas. Flotante = antena (Tema 3).

«El orden importa»

Conmutan y asocian: (A·B)·C = A·(B·C). Reordenar para cablear prolijo es legal.

«AND de 3 = dos chips»

74HC11 trae AND-3 triple: una puerta de 3 cabe en un chip. Revisar el catálogo antes de apilar.

09 · Práctica guiada

Ejercicios de todos/alguno

Ejercicio 1: riego automático

Bomba ON si (modo auto Y suelo seco) O (modo manual). Escribí la función, tabla y minterms. Verificá con and_()/or_().

Ver solución razonada

Y = M + A·S: filas con M=1 (4–7) más A·S (3, 7): Σm(3, 4, 5, 6, 7). Igual forma que la alarma del Tema 6.

Ejercicio 2: enable con AND

Señal CLK que pasa solo si EN = 1. ¿Puerta? ¿Qué pasa con EN = 0? ¿Riesgo de glitch?

Ver solución

AND(CLK, EN): con EN=0 sale 0 fijo. Riesgo: cambiar EN cerca del flanco mete runt (Tema 28 lo explica).

Ejercicio 3: montar AND-OR

74HC08 + 74HC32, botones con pull-down, LED. Medí las 4 filas de cada puerta. ¿Alguna difiere de 0001/0111?

Ver solución

No: silicio obediente. Si difiere, revisar pull-down (10k a masa) y Vcc.

10 · Síntesis

Ideas para recordar

  • AND = 0001 (Σm(3)); OR = 0111 (Σm(1,2,3)).
  • 0 domina AND; 1 domina OR.
  • AND libre → 1; OR libre → 0; nunca flotante.
  • 74HC08 / 74HC32 ×4; HC11/HC4075 para 3 entradas.
  • Conmutan: cablear por comodidad.

Todos y alguno dominados. Ahora sus gemelas universales: en el próximo tema, NAND y NOR.