Ficha 02 · Flip-flops, contadores, displays, diagnóstico
- Flip-flops
- Contadores
- Displays
- Diagnóstico
Parte I · Flip-flops
Exercício 1 · D Flip-Flop (10 pts)
Tens um D Flip-Flop com: - D = 1 - CLK em 0 → 1 (borda de subida) - Q anterior = 0
Qual o novo valor de Q? E de /Q?
Na borda de subida do CLK, Q captura o valor de D: - Q = 1 (novo). - /Q = 0 (sempre complemento de Q).
Q mantém valor até à próxima borda de subida do CLK.
Exercício 2 · Aplicações (10 pts)
Para que serve um D Flip-Flop em circuitos reais?
- Memória de 1 bit — armazena estado entre clock cycles.
- Registo — N D-FFs paralelos guardam N bits (ex.: 8 → registo de 1 byte).
- Sincronização — captura um sinal assíncrono no instante do clock (evita problemas de timing).
- Detecção de borda — combinando 2 FFs detecta transições 0→1 ou 1→0.
- Shift register — D-FFs em série deslocam bits a cada clock (paralelo↔série).
- Contadores — combinados com lógica formam contadores de qualquer valor.
- Máquinas de estados — estado atual fica guardado em N D-FFs.
Em qualquer chip digital síncrono moderno (CPU, microcontrolador, FPGA), os D-FFs são milhões.
Parte II · Contadores
Exercício 3 · Divisão (10 pts)
Tens 4 D Flip-Flops em série (cascade), cada um a dividir frequência por 2. Se a frequência de entrada é 8 MHz, quais as frequências em cada saída?
8 MHz → FF1 → 4 MHz → FF2 → 2 MHz → FF3 → 1 MHz → FF4 → 500 kHz
- Q0: 8 MHz / 2 = 4 MHz
- Q1: / 2 = 2 MHz
- Q2: / 2 = 1 MHz
- Q3: / 2 = 500 kHz
Contador binário 4 bits conta de 0 a 15, gerando saídas Q0-Q3.
Aplicação clássica: divisor de relógio em sistemas digitais; gerar várias frequências a partir de uma só.
Exercício 4 · Chip 74xx (10 pts)
Para cada situação, escolhe o chip contador adequado:
a) Contar pulsos até 16 e fazer reset. b) Contar para cima e para baixo conforme sinal. c) Sequenciar 10 acções repetidas (luz de Natal estilo "knight rider").
a) 74161 (4 bits síncrono) ou 74163 com reset síncrono. Conta 0-15 e auto-resets.
b) 74193 (4 bits up/down) — tem 2 entradas de clock: uma para incrementar, outra para decrementar.
c) CD4017 (decade counter) — tem 10 saídas (Q0-Q9), apenas uma activa a cada clock. Perfeito para sequências de luzes ou activar 10 itens em rotação.
Combinando vários: 2× CD4017 dão 100 estados (decade × decade). Ou CD4060 (14 bits) para contagens longas.
Parte III · Displays
Exercício 5 · Display 7 segmentos (15 pts)
Tens um display 7 segmentos de anodo comum e queres mostrar o dígito "5".
a) Que segmentos acendem? b) Para acender cada segmento, o pino fica em LOW ou HIGH? c) Por que é importante o resistor em cada segmento?
a) Para "5" acendem: a, c, d, f, g (5 segmentos).
─a─ Acesos: a, c, d, f, g
f| |
─g─
|c
─d─
b) Anodo comum = todos os anodos juntos ao +VCC. Para acender um segmento, o seu cátodo vai a LOW (0 V) — corrente flui de VCC pelo LED para o pino.
Para 5: segmentos a, c, d, f, g em LOW; b, e em HIGH (desligados).
c) Resistor limitador: - Cada LED tem queda V_F ≈ 2 V e corrente nominal ~10-20 mA. - Sem resistor: I = (VCC − V_F) / 0 = infinito → LED queima imediatamente. - Resistor R = (VCC − V_F) / I_LED: - Para 5 V, V_F=2V, I=15mA: R = 3/0,015 = 200 Ω (comercial 220 Ω). - 1 resistor por segmento (não 1 só para todos, senão a corrente depende de quantos acesos).
Exercício 6 · Multiplexação (10 pts)
Tens 4 dígitos 7 segmentos. Sem multiplexação seriam 4 × 7 = 28 pinos. Como reduzir para apenas 12 com multiplexação?
Multiplexação: - 7 segmentos ligados em paralelo entre os 4 dígitos (mesma linha para segmento "a" nos 4 dígitos, etc.). - 1 pino de selector por dígito (controla o anodo/cátodo comum desse dígito).
Pinos: 7 (segmentos a-g) + 1 (dp) + 4 (selectores) = 12 pinos
Funcionamento: - Activar selector dígito 1 + enviar segmentos do número desse dígito. - Esperar ~1-2 ms. - Desligar dígito 1, activar dígito 2 + enviar os seus segmentos. - Continuar ciclicamente.
A frequência total deve ser > 100 Hz (cada dígito acende > 25× por segundo) para o olho não notar piscar.
Microcontrolador faz isto trivialmente em interrupção de temporizador.
Comercial: MAX7219 (chip dedicado) faz tudo isto a partir de 3 pinos SPI — solução super-elegante. ~2-3 € por chip.
Parte IV · Famílias lógicas
Exercício 7 · TTL vs CMOS (10 pts)
Indica diferenças entre TTL (74xx) e CMOS (40xx, 74HCxx):
| TTL (74xx) | CMOS (40xx, 74HCxx) | |
|---|---|---|
| Tecnologia | BJT bipolar | MOSFET |
| Alimentação | 5 V estrito | 3-15 V (4000); 5 V (74HC) |
| Consumo idle | ~10 mA | < 1 µA |
| Consumo a comutar | Constante | Cresce com frequência |
| Velocidade | Alta (~25 MHz) | Média a alta (10-100 MHz) |
| Sensível a estática | Pouco | Muito (manusear com cuidado) |
| Vintage | Comum em equipamento antigo | Padrão moderno |
Hoje 74HC é a família mais comum — CMOS pin-compatível com TTL antigo, mas com vantagens energéticas.
TTL puro (74xx puro) quase só sobrevive em manutenção de equipamentos antigos. Em design novo: 74HC ou microcontroladores.
Exercício 8 · Tensão LOW/HIGH (10 pts)
Mediste 1,5 V num pino de um chip 74HC04 (CMOS 5V). É LOW, HIGH ou indeterminado?
Para CMOS 5V: - 0 (LOW) = 0 a 1,5 V. - 1 (HIGH) = 3,5 a 5 V. - Zona indeterminada: 1,5 a 3,5 V (margem grande para evitar erros).
1,5 V está exactamente no limite superior do LOW. Tecnicamente LOW, mas: - Próximo do limite → sensível a ruído. - Pode ser interpretado como HIGH em condições marginais (temperatura alta, ruído).
Investigar: - Há fan-out excessivo? (Demasiadas portas a usar a mesma saída → tensão baixa.) - Soldadura fria que aumenta impedância da ligação? - Carga anómala (resistor descarregado para GND)?
Bom design: garantir 0 V ou próximo (< 0,5 V) para LOW e > 4,5 V para HIGH; com margem para variações.
Parte V · Aplicação
Exercício 9 · Cenário (10 pts)
Tens de fazer um circuito que conta quantas vezes uma máquina passou (sensor de presença) e mostra o valor num display de 4 dígitos. Estimativa de duração: anos. Que abordagem preferes?
Microcontrolador é a resposta (~95% dos casos).
Razões: 1. Flexibilidade: software permite acrescentar funcionalidades (reset, threshold, comunicação, hora). 2. Display 4 dígitos: chip MAX7219 + 3 pinos SPI → trivial. 3. Sensor: 1 pino interrupt. 4. Custo: Arduino Nano + MAX7219 + display + sensor < 15 € total. 5. Tempo de desenvolvimento: horas. 6. Persistência da contagem: EEPROM interna ou flash; sobrevive a falta de electricidade.
Implementação com lógica discreta seria: - 4 contadores CD4026 (decade) com display 7 segmentos integrado. - 1 chip de cascade. - Reset manual ou com botão. - Sem persistência (perde com a luz). - ~10-15 chips, montagem complexa.
Decisão final: microcontrolador (Arduino Pro Mini, ESP8266 ou similar) com MAX7219 para display.
Bonus: ESP8266 acrescenta WiFi → contagem enviada para painel central / Google Sheets em tempo real. Custo adicional: 2 € (módulo NodeMCU já tem WiFi).