Ir ao conteúdo
  • Cadastre-se

Tabela verdade de contador síncrono


Ir à solução Resolvido por rjjj,

Posts recomendados

Olá.

Há um tempo criei um tópico semelhante, mas era de um contador up/down 0-30, e não foi resolvido.

Sinceramente to bem frustrado com as inúmeras tentativas de fazer funcionar que foram em vão, não tenho mais a quem recorrer, alguém pode me ajudar? 😕

 

Vamos lá:

Decidi fazer o contador crescente e decrescente separados, estou usando flip-flops do tipo T.

Para o contador crescente, haviam 3 tabelas: a do estado atual, a do próximo estado e a das entradas T dos flip-flops, eu fiz a tabela do próximo estado simplesmente incrementando 1, e quando o estado era 11110 (30) ou 11111 (31), eu mandei para 00000, pois a contagem é de 0 a 30:

image.thumb.png.6a14e5be36d7544e8fc905e0d08da506.png

Para o decrescente, a mesma coisa, porém, eu decrementei 1, e dessa vez para o estado 11110, eu mandei para 11101 (29), e para o estado 11111, mandei para 00000:

image.thumb.png.29b71a49004b8ce16e9b255808c11d2f.png

Estou usando componentes genéricos de simulação, e estou simulando no OrCAD PSpice. O contador é esse, e logo abaixo, eu conectei os circuitos que obtive a partir da tabela, porém, acho que fica muito extenso pra postar aqui:

image.png.54807ee439078a8ee32ff67de6d006b7.png

Se quiserem visualizar os circuitos, os links são esses:

Crescente: TeTdTcTbTa.

Decrescente: TeTdTcTbTa.

O curioso é que se eu inverto as entradas T quando vou conectar os circuitos, isto é, troco Ta por Te e Tb por Td, aparentemente funciona, segue a imagem do gráfico para o contador crescente que fiz essa inversão:

image.thumb.png.f340c502130cb95ac3d2b29a0516f10f.png

Porém, se não a faço, vejam como fica a contagem:

image.thumb.png.a25047559fabb02779091fc50296f639.png

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Fiz a minha própria versão do seu contador paralelo de 0 a 30 com flip-flops do tipo T. Funcionou sem problemas no Proteus. Segue a tabela de excitação que empreguei F5Rua4D.gif.

 

 

 

ZRSi5YR.png

 

 

 

Também fiz a simplificação de circuitos pelo site que você usou. Deixei as saídas para o número 31 como don't care. Este é o resultado:

 

 

 

YEDSOV0.png

 

 

 

Compare agora com o seu projeto F5Rua4D.gif.

 

 

 

Espero ter ajudado GbhmuXl.gif.

  • Curtir 2
  • Amei 1
Link para o comentário
Compartilhar em outros sites

@rjjj Será que era isso o que eu estava errando então? Inverti a ordem de tudo na tabela?

Porque no seu caso o MSB é o Qa e o LSB é o Qe, e até que faz sentido, eu acabei fazendo ao contrário...

Muito obrigado! :D

 

5 horas atrás, rjjj disse:

Deixei as saídas para o número 31 como don't care

Então, eu mandei para 0 porque se, por exemplo, as saídas fossem ligadas à um display e tivesse lá um don't care, poderia mostrar qualquer coisa.

 

Conseguiria me dar mais uma ajudinha? Agora já modifiquei as tabelas, os contadores crescente e decrescente funcionam:

image.thumb.png.8f73751bcba181c90ca66917907cdee9.png

 

image.thumb.png.86dc53142d8d5a64b3a13ee1d155b96e.png

 

E agora eu parti para a tabela do contador U/D:

image.thumb.png.f17ced063687ddd636554dcf91c8bf25.png

 

Os circuitos são esses: Ta, Tb, Tc, Td, Te.

image.thumb.png.a1105b1266c9e059155c202f86a1f382.png

A letra F é o bit up/down, e no circuito, eu fiz o seguinte:

image.png.e1e3f30818989d322f5456f267f8e2a5.png

Daí eu posso mudar se F é 1 (HI) ou 0 (LO).

Mas olhe como fica o gráfico:

image.thumb.png.757e2f642275d0d74f01db7b517acb97.png

 

Não sei o que pode estar errado 😕

Novamente, muito obrigado pela ajuda!

Link para o comentário
Compartilhar em outros sites

@Lucca Rodrigues

 

 

Deixar o máximo possível de saídas como don't care faz com que as expressões resultantes sejam tão simples quanto possível. Isso, por sua vez, gera circuitos digitais menos complexos. Na prática, células RC com portas Schmitt-Trigger nas entradas assíncronas de RESET e de PRESET garantem que os flip-flops fiquem inicialmente bem definidos. Então, via tabela de excitação, condições don't care ficam impossíveis de acontecer GbhmuXl.gif.

 

 

 

Assim, chego na minha recomendação para o seu contador bidirecional: adicione um novo flip-flop D junto aos flip-flops T da contagem a fim de controlar se ela prossegue como crescente ou como decrescente. Refaça tudo com as novas colunas, dessa vez com uma tabela completa para 0-30-30-0 ou para 30-0-0-30, dependendo do número de início F5Rua4D.gif.

 

 

 

Enfim, desse jeito, para trocar a direção da contagem, basta utilizar a entrada assíncrona de RESET ou de PRESET do flip-flop D. No próximo ciclo de clock o sistema já prosseguirá com a nova direção de contagem. Pode também injetar a sua vontade na entrada D através de um circuito combinacional, mas o valor de Q só mudará no próximo ciclo, ou seja, só no segundo ciclo que a nova direção será efetivamente percebida.

 

 

 

Espero ter ajudado GbhmuXl.gif.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...