O display de um relógio de pulso pode mostrar um de quatro itens: a hora, o alarme, o cronometro ou a data, controlado por dois sinais e ( 00 mostra o tempo, 01 o alarme, 10 o cronometro e 11 a data - assuma que e controla um MUX de -bit que passa o registro apropriado). Ao pressionar o botão o display mostra o próximo item. Por exemplo, se atualmente esta sendo mostrado a data, o próximo item será a hora. Crie um diagrama de estado para a maquina de estado descrevendo o comportamento da sequência para cada vez que o botão é pressionado, independentemente de por quanto tempo o botão fica pressionado - em outras palavras, espere que o botão seja liberado depois da mudança de estado para avançar para o próximo item. Considere que a hora deve ser o estado inicial.

Passo 1

Beleza, vamos entender o que a questão está pedindo. Temos um relógio de pulso que pode mostrar quatro informações diferentes: hora, alarme, cronômetro e data. Essas informações são controladas por dois sinais, e , que funcionam como um multiplexador (MUX) de -bits para selecionar qual registro mostrar. Além disso, cada vez que a gente pressiona o botão , o display muda para a próxima informação na sequência: hora → alarme → cronômetro → data → hora, e assim por diante. A missão aqui é criar um diagrama de estados para uma máquina de estados que descreva esse comportamento, começando sempre pela hora.
Para resolver isso, vamos precisar conhecer os conceitos de Máquinas de Estados Finitos (MEF) e Diagramas de Estados. Vamos passo a passo entender como cada estado se conecta ao próximo quando o botão é pressionado.

Passo 2

Primeiro, vamos listar os estados que nosso relógio pode estar:
  1. Hora
  2. Alarme
  3. Cronômetro
  4. Data
Esses são os quatro estados principais da nossa máquina de estados. Cada um representa o que está sendo exibido no display do relógio.

Passo 3

Agora, vamos pensar nas transições entre esses estados. A transição acontece sempre que o botão é pressionado. A sequência é cíclica:
  • HoraAlarme
  • AlarmeCronômetro
  • CronômetroData
  • DataHora
Essa sequência se repete cada vez que o botão é pressionado.

Passo 4

Vamos definir uma entrada para nossa máquina de estados, que no caso é o pressionar do botão . Quando , significa que o botão foi pressionado.
Além disso, temos que garantir que a mudança de estado só ocorre após o botão ser liberado, ou seja, a máquina deve esperar antes de aceitar uma nova pressão.

Passo 5

Agora, vamos construir o Diagrama de Estados:
  • Estado Inicial: Hora
  • Transições:
    • De Hora para Alarme quando é pressionado.
    • De Alarme para Cronômetro quando é pressionado.
    • De Cronômetro para Data quando é pressionado.
    • De Data para Hora quando é pressionado.
Visualmente, seria um ciclo onde cada estado aponta para o próximo com a condição de (botão pressionado).

Passo 6

Para formalizar, podemos representar o diagrama de estados com círculos para cada estado e setas que indicam as transições com a condição . Assim:
  • Hora –> Alarme
  • Alarme –> Cronômetro
  • Cronômetro –> Data
  • Data –> Hora
Isso forma um ciclo contínuo que muda o display a cada pressão do botão.

Passo 7

Para implementar isso eletronicamente, usamos os sinais e para controlar o MUX que seleciona qual registro exibir. Cada combinação de e corresponde a um estado:
  • Hora: , ( )
  • Alarme: , ( )
  • Cronômetro: , ( )
  • Data: , ( )
O MUX utiliza esses sinais para direcionar o registro correspondente ao display.

Passo 8

Por fim, vamos garantir que a hora seja o estado inicial da nossa máquina. Isso significa que, ao ligar o relógio, e , exibindo a hora.

Resposta

Criamos uma máquina de estados com quatro estados: Hora, Alarme, Cronômetro e Data. A máquina inicia no estado Hora e, a cada pressão do botão , transita ciclicamente para o próximo estado na sequência. As transições são controladas pelos sinais e que acionam o MUX para exibir a informação correta no display. O diagrama de estados representa essas transições de forma cíclica, garantindo que o display atualize para a próxima informação sempre que o botão for pressionado e posteriormente liberado.

Exercícios relacionados

Desenhe um diagrama de estado em que as saídas geram a sequência conhecida como código Gray e repete). Só deve haver mudança de estados a cada borda de clock se a entrada gent . Converta a Máquina de Estados (FSM) encontrada em um controlador, usando registradores de estado e portas lógicas.
Use comparadores de magnitude e lógica combinacional para projetar um circuito que computa o menor de três números de 8 bits.
Projete um comparador de magnitude de 4 bits com propagação de carry que tem duas saídas: maior ou igual que gte, e menor ou igual que lte. Certifique-se de mostrar as equações usadas no desenvolvimento dos comparadores de 1 bit que serão conectados para formar o de 4 bits.
Usando quatro registradores, projete um circuito que armazene os quatro valores presentes em uma entrada de 8 bits durante os próximos quatro ciclos de clock. O circuito deve ter uma única saída de 8 bits que pode ser configurada usando duas entradas e para selecionar a saída de um dos quatro registradores (Dica: Use um MUX).