Ir ao conteúdo
  • Cadastre-se
ilovepic

Tabela da Verdade com 20 variaveis

Recommended Posts

Olá a todos,

 

Preciso de criar uma tabela da verdade com 20 entradas e uma saída. Isso é possível?

Estou a utilizar o software, para windows, Logic Friday, mas o mesmo apenas permite 16 inputs.

 

Como o total de linha será de 1 048 576, pois 2^20 dá esse grande número, tentei criar  a seguinte tabela: VjxE47.jpg

 

Todo o resto é desprezível, por isso posso desconsiderar, correcto?

Estou a abordar bem o assunto?

 

Obrigado

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso da pra dividir em partes e unir as saídas de maneira a formar uma só. 

Só diz uma coisa, quando a saída deve se tornar zero? 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque aqui a sua solicitação original que gerou seu pedido.

Ele poderá ser constituído por:

1 - Uma tabela com cerca de 1000 colunas e 1000 linhas, ou...

2 - Uma equação geral do tipo Saída  S = ..................................... (muito grande), ou o conjunto das duas.

 

De qualquer forma, é quase impossível usar o mapa de Karnaugh, pois recai no item 1.

Mesmo uma solução apresentada pelo @Mestre88 recairia em n tabelas com L linhas e C colunas, de modo a que o trabalho seria o mesmo ou maior, pois ainda teria que formar outras tabelas com os resultados parciais obtidos.

 

Considerando que ainda não vi nenhum sistema tão grande em meus 45 anos que lido com eletrônica, sou levado a imaginar que seu pedido seja um problema pedido pelo seu professor, portanto didático.

Ou ele foi feito para não ser resolvido, ou ele foi feito com intenção de fazer você pensar e simplificar (e muito) até que o mesmo se torne um exercício muito, mas muito bem mais simples (e realizável).

De cara (imediatamente) eu excluiria uma solução que usasse algum aplicativo, pois me parece que o problema foi feito para você pensar.

Aguardo sua nova postagem com o meu pedido, constante na primeira linha desta postagem. Com maiores (e melhores) informações, talvez possamos te ajudar.

MOR_AL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos,

Obrigado pelas respostas.

 

O meu conhecimento sobre este tipo de raciocinio não é muito basto. Após alguma pesquisa e leitura de alguns artigos (pois ando um pouco perdido para este grande número de entradas), relembrei que temos dois tipos de estados (certo?):

 

1-Ligado;

2-Desligado;

3-Don't Care;

 

Acontece que tenho que ligar/desligar 16 led's e interpretar o estado de 4 botões. No excel que partilhei os led's são as colunas Px e os botões são Ax. A interpretação deste componentes vai ficar a cargo de um microcontrolador. Acontece que para isso terei que ter um micro que ofereça tal número de pinos ou então utilizar mais do um micro. Por isso pensei utilizar funções lógicas, e através da tabela da verdade conseguir desenvolver um sistema que me fizesse precisar de menos pinos no micro. Ou melhor, me permitisse utilizar apenas um micro, um micro modesto. Segundo li, isso pode ser chamado de multiplexagem, certo?

 

Isto não é para a escola. Mas sim para um sistema que estou a fazer em casa, fruto do meu aprendizado em assembly. Que estou a adorar.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então a coisa muda completamente. 

Não é 20 entradas para uma saída. 

São 16 entradas para 4 saídas. 

O que tem a fazer é determinar quais botões acendem cada Led, ou se devem acender ao mesmo tempo. 

São 4 circuitos independentes, porém ligados aos mesmos botões. 

Feito isso vai conseguir desenvolver um código para o seu micro controlador. 

Sobre multiplexar é algo mais complicado, poderia fazer uma matriz tanto na entrada quanto na saída. Aí vai do seu conhecimento. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas @Mestre88

 

Estava a pensar desta maneira. Para ligar o led P1, terei que dar saída A1 e P1. Para ligar led P2, terei que dar saída A1 e P1. E por aí vai.

 

Acontece que pretendo trocar os botões pelo micro. Desculpe se confundi. O botão é o que liga ao GND. Ligo ou não ligo em função dos 4 GND (botões) que pretendo actuar para os 16 led's.

Expliquei melhor?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi agora.

São 4 botões, que dependendo do estado de cada um, vai acionar um led.

Então são 4 variáveis com 16 saídas.

Estado

das

Variáveis     Saídas

0000             Led0

0001             Led1

. . . 

1111              Led15

 

Vide

http://www.ufjf.br/daniel_silveira/files/2011/06/aula_101.pdf

Com 2 integrados você resolve.

MOR_AL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tivesse que escrever a expressão, seria mais ou menos assim:


(P1 !P2!P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A1

+

(P1! P2 !P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A1

+

(P1!P2! P3 !P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A1

+

....

(P1 !P2!P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A2

+

(P1! P2 !P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A2

+

(P1!P2! P3 !P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A2

+

....

(P1 !P2!P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A3

+

(P1! P2 !P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A3

+

(P1!P2! P3 !P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A3

+

....

(P1 !P2!P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A4

+

(P1! P2 !P3!P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A4

+

(P1!P2! P3 !P4!P5!P6!P7!P8!P9!P10!P11!P12!P13!P14!P15!P16)*A4

+

....

 

Penso que sejam 20 saídas. Pois ligando a saída de A1 (vamos olhar para a primeira expressão), e ligando a saída P1, deixando todas as restantes com nível baixo, teremos o led P1 ligado. É um pouco como a batalha naval, temos que dar a linha e coluna. Neste caso representado pelas letras P e A.

 

Vou ler o documento que passou e pesquisar por multiplexagem no youtube, para perceber melhor como funcionam e como posso colocar neste projecto.

 

Obrigado

adicionado 35 minutos depois

Encontrei este: 74154 (http://www.ti.com/lit/ds/sdls056/sdls056.pdf

Significa que no meu micro apenas terei que gastar 6 pinos, outputs. Mas consigo reduzir o número de pinos que preciso, certo? Se aplicar demux atrás de demux :) É possível demugar até precisar apenas de 4 pinos para a lógica toda? hehe vou testar no proteus

 

Obrigado

adicionado 53 minutos depois

Estou a testar as configurações com o 74154 mas estou com um problema quando preciso aplicar um pull-down nas entradas deste demux. Oram vejam a imagem, s.f., 6IYVyd.jpg

Como já tenho 4 VDC a sair do 74154? Terei que fazer alguma configuração no proteus?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido, tenho que colocar todas as entradas em nível baixo ou alto, não as posso deixar no "ar". Mas mesmo assim ainda tenho 490mV a sair do pino 23, é normal? Como devo calcular a resistência de pull-down?

 

Obrigado

 

Nv9xXO.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 horas atrás, ilovepic disse:

Mas mesmo assim ainda tenho 490mV a sair do pino 23, é normal? Como devo calcular a resistência de pull-down?

 

Isto é normal. Pegue o datasheet do 74154, nele aparece qual a corrente mínima de sink na entrada para levar ao nível baixo ( 0 ) . Deve ser na faixa de 2 mA ou perto disto.

 

Se não me engano, a tensão abaixo de 0,8V já é considerada nível baixo, então pode deixar esses 490 mV sem nenhum problema.

 

Fazem mais de 20 anos que não mexo com TTL ou TTL-LS ........ memória pode errar kkkk !

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sera a coluna Low level output voltage? Que está na casa dos 0.4V, no valor máximo. Presente nesta página?

 

image.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria uma adaptação para usar dois 4028 em cascata, o 74154 é difícil de encontrar no mercado, já é ultrapassado. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É .. de fato foge um pouco do título-tópico

 

Existem mc's com mais saídas o que torna teu desafio menos desafiador. Mas se preferes desafios maiores, um simples pic16f628 pode acionar e controlar os 16 leds e 4 teclas com 2 ports (ou menos). Imagina uma varredura 4x4 com 4 anodos e 4 saídas e 4 catodos em outras 4. P.ex. pra acionar o led0 hás de colocar 1 no anodo e 0 no catodo.

Imagina uma matriz de leds 4x4

4x4-1.png

 

Ao varrer com uma variável de 1 byte a controlar os bits baseado no byte dos botões de entrada, hás de ter o resultado esperado. Em c seria muito fácil, mas em assembly teu desafio é [bem] maior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou a adorar desenvolver com demux e mux :) Ainda estou a aprender mas estou a gostar bastante da ideia de  conseguir pendurar muita coisa num só micro.

 

Digam-se, s,f, se é viável aplicar demux para aproveitar ao máximo os pinos de um micro. Por exemplo, um micro com 4 saídas para ligar um display de 7 segmentos. Aplico um mux de 1x8, pois assim irei precisar de apenas 3 pinos do meu micro.

 

Obrigado

 

[UPDATE1]

Neste caso sei que apenas irei actuar um segmento de cada vez, mas se fizer a uma alta frequencia consigo iludir o olho humano. E assim parece que está tudo ligado, conseguindo simular os números. O que acham?

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, ilovepic disse:

Neste caso sei que apenas irei actuar um segmento de cada vez, mas se fizer a uma alta frequencia consigo iludir o olho humano. E assim parece que está tudo ligado, conseguindo simular os números. O que acham?

Sim, isso já é usado há décadas. Tem até códigos prontos na internet e CIs dedicados a isso no mercado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora que estou a ver. Havia optado por ignorar-te. Ainda bem que tenho memória fraca e nem quero lembrar o motivo :mellow:. Não me faça lembrar pfv.

12 horas atrás, ilovepic disse:

se é viável aplicar demux para aproveitar ao máximo os pinos de um micro. Por exemplo, um micro com 4 saídas para ligar um display de 7 segmentos. Aplico um mux de 1x8, pois assim irei precisar de apenas 3 pinos do meu micro

Certamente amigo é bem viável. Como disse o amigo, desde os primórdios da eletronica digital esta técnica é usada com frequência e com frequência tal que mantém no olho humano a impressão de ser simultâneo. P.ex. pra 8 displays eu uso 800Hz. Pra teres uma ideia, olha pra algum display ou matriz de leds qualquer meneia a cabeça com olhos abertos. Hás de sentir as piscadelas dos leds

Considera estudar algum I2C IO expander como p.ex. pcf8575. Mas não sem antes começares com algo + simples como p.ex. 74hc595

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×