3. O código a seguir é utilizado para exibir números de 0 a 9 em um display de 7 segmentos interfaceado com codificador BCD. void ENVIA_BCD(unsigned char NUMERO) { RB0 = NUMERO & 0b1; RB1 = (NUMERO >> 1) & 0b1; RB2 = (NUMERO >> 2) & 0b1; RB3 = (NUMERO >> 3) & 0b1; } Caso um segundo display seja inserido e a seleção se dê por meio do pino RB4 (0 para display unitário e 1 para display da dezena), qual dos códigos a seguir será capaz de exibir ambos os dígitos simultaneamente para um observador sensível a qualquer variação mais lenta que 50Hz?
Soluções para a tarefa
O código para mostrar os dois dígitos simultaneamente deveria mostrar a unidade durante 10 ms como máximo (desligando a dezena) e logo a dezena durante 10 ms como máximo (desligando a unidade), para eles piscar com frequência de 50 Hz ou mais.
Como se fazer o código para mostrar os dois números?
Se desejarmos mostrar um número de dois dígitos utilizando 4 bits e mais um bit como seleção, o programa deve faze a sequência a seguir:
- Acender o display das unidades e desligar o display das dezenas;
- Enviar o código BCD das unidades;
- Acender o display das dezenas e desligar o display das unidades;
- Enviar o código BCD das dezenas.
Se essa sequência for feita muito rápido, um observador não notará como os números piscam. O decodificador BCD (por exemplo, o circuito integrado 4511) possui uma entrada chamada BI (Blank Input) que desliga por completo o display ligado a ele
Se o observador é sensível a qualquer variação mais lenta que 50 Hz, a sequência descrita não pode durar mais de , portanto, cada dígito deveria estar aceso 10 ms e desligado outros 10 ms como máximo.
Utilizando a função apresentada, é possível utilizar o código a seguir para mostrar o número (é importante lembrar que na prática isto é incorreto, pois, retarda a execução de todo o programa, o correto é utilizar uma interrupção de um temporizador):
while(1){
ENVIA_BCD(numero%10);
RB4=0;//Envio a unidade
delay(10);
ENVIA_BCD(numero/10);
RB4=1;//Envio a dezena
delay(10);
//Outras tarefas
}
Saiba mais sobre a linguagem C em https://brainly.com.br/tarefa/28035640
#SPJ1