Ir ao conteúdo
  • Cadastre-se
Jones Damas

Multiplexação de teclado e lcd

Recommended Posts

Olá pessoal, gostaria de uma ajuda na multiplexação de um lcd com teclado matricial. É o seguinte!

Tenho uma placa que encontrei aqui na empresa onde trabalho, me parece ser de uma catraca eletrônica, ela utiliza o microcontrolador PIC16F876A.

Comprei um outro microcontrolador PIC16F876A pra colocar nessa placa e fazer alguns testes. Acontece que o teclado e o LCD estão ligados nos mesmos pinos do microcontrolador, Gostaria de uma ajuda pra por exemplo mostrar no lcd a tecla pressionada. Desenhei o circuito no isis proteus e estou anexando aqui, se alguém puder me dar uma luz fico agradecido.

placa.rar

Editado por Jones Damas

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jones Damas ,

 

Quantos sinais do microcontrolador estão indo ao seu display, e quantas teclas existem em seu teclado matricial ( tipo 4x3, 4x4, etc ) ?

 

Paulo

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um teclado 4 x 3 onde as linhas estão ligadas no PORTB - RB4, RB5, RB6 e RB7 em paralelo com lcd 16 x 2 ligados em D4, D5, D6, D7. Colunas do teclado ligados em GND, RC2 e RA5.

Editado por Jones Damas

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jones Damas ,

 

Pera, faltam coisas aqui...

 

- O LCD usa no mínimo 5 sinais, e na maioria dos casos, 6 sinais. voce não informou os sinais de controle R/W e nem o CS ( Enable ). 

 

- Um teclado 4x3 precisa de 7 sinais , e nenhum pode ser o GND.

 

Concordo que as 4 linhas do teclado podem ser os 4 sinais de dados do display LCD. Mas o sinal de Enable do Lcd tem de ser exclusivo ao Lcd. Caso o sinal de R/W do Lcd também seja controlado pelo Pic, pode ser compartilhado com o teclado, e então faltam apenas dois sinais para totalizar as 3 colunas do teclado.

 

Mas pode ser que o seu display tenha o sinal R/W permanentemente ligado ao Vcc ou ao Gnd, ( basta apenas gravar dados no display, e se esperamos um determinado tempo, nunca precisamos ler... ), e nesse caso o sinal que controla o display é o CS ( Enable ). Então ele teria de ser também exclusivo ao Lcd.

 

Resumindo : precisamos de um total de 8 pinos, onde seriam compartilhados 5 entre o teclado e o display, dois seriam exclusivos do teclado, e um exclusivo do display.

 

Paulo

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Paulo, vê ai o circuito em anexo na primeira pergunta, criei no proteus. Também não entendi por que a primeira coluna do teclado vai no GND. Revisei o circuito no proteus aqui e é isso mesmo, não parece ter erro.

Perdão. esqueci de colocar todos os outros pinos no LCD. RB1 -> RS, RB2 -> RW, RB3 -> E, estes são exclusivo do LCD.

Aqui está o circuito

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jones Damas ,

 

Bom, abri o BIO7 aqui.

 

Não tem sentido o sinal de R/W do display estar ligado ao GND e também ir até o pino RB2 do Pic. O mais provável é que em RB2 vá justamente o sinal dessa primeira coluna do teclado. E o sinal de R/W do display seja mesmo ligado só  no GND.

 

Olha de novo isso, senão não vai ter como diferenciar uma coluna de outra....

 

Paulo

 

 

 

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu vou conferir o esquema da placa novamente. Mais o sinal de R/W do display está indo no pino RB2 mesmo,

Agora, o GND é só no proteus que esta ligado no R/W, porque não simulava ai pesquisando na net falaram para colocar o GND no R/W.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não gosto de baixar links com projetos. mó trabalho. se achar que deve ler mais alguma opinião, queira por gentileza publicar o esquema em desenho. Acho que figuras aparecem direto na tela do forum. Ou se preferir vá de @aphawk mesmo.

 

Em tempo.. rw no gnd só se não for ler o sinal busy

 

abç

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jones Damas ,

 

Po... quer matar a gente aqui ???? kkk

 

Bom, agora tudo bem, já entendi o funcionamento.

 

Como disse a Isadora, o RW deve estar no Ground mesmo, então o software não deve estar lendo nenhuma informação do display, devendo ter de esperar sempre um tempo mínimo a cada escrita no display.

 

Para gravar algo no display, os pinos todos de sinais ligados ao display são configurados como OUTPUT, e então a informação é gravada no display.

 

Para se ler o Teclado, o software coloca o sinal de ENABLE do display em nível 0 ( desabilita o display ), e os 4 pinos do PIC que vão aos sinais D4,D5,D6 e D7 do display LCD ( e também vão às 4 linhas do teclado, através de alguns resistires ) são transformados em INPUTS, e o software vai colocar nível 0 na primeira coluna, e ler as 4 linhas; depois volta a coluna a nível 1, em seguida  coloca a segunda coluna em nível 0 e lê de novo as 4 linhas, e finalmente continua até a terceira coluna. A seguir, o software transforma de novo os 4 pinos do PIC usados na leitura das linhas em OUTPUT, e continua o procedimento normal de escrita no display.

 

Entendeu o processo ? 

 

Paulo

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi sim Paulo, eu tenho que usar interrupções pra fazer isso? Tem algum exemplo pra que possa basear nele? não precisa ser para esse circuito, mais de display e teclado juntos.

 

 

Isadora Ferraz, Segue as imagens do projeto, caso queira dar sua contribuição.

placa.PNG

placaBio07.BMP

Compartilhar este post


Link para o post
Compartilhar em outros sites

O esquema tá 1/2 confuso. Use mais símbolos gnd e vcc pra não cruzar tanta linha. 1 pergunta.. é  esquema que você xupou ou é você que está bolando? tem maneira + eficaz de ler tecla sem tanta confusão. P.ex. usa só 6 pinos pro display e 7 pras teclas. Talvez nem precise multiplexar... Já disse.. esquema confuso e com pouco baixa resolução... desculpa ... esta é a minha kk

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Isadora Ferraz Como disse no primeiro post, este é um circuito pronto de uma placa de catraca eletrônica com o PIC16F876A, e gostaria de aproveita-lo para fazer alguma coisa (só estudo mesmo). Mais se tiver um exemplo de multiplexação de display e teclado já esta bom.

 

placaBio08.BMP

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jones Damas ,

 

Infelizmente eu não programo mais para os Pics, e também não uso C, só programo em Basic. Entendo o hardware porque é quase igual aos AVRs.....

 

Vai ter de esperar outros membros te ajudarem com exemplos em C para os Pics.

 

Usar ou não interrupção é você que decide, meu amigo !

 

Não é imprescindível, depende do que você quiser fazer pode ajudar, mas isso é com você.

 

Como a @Isadora Ferraz falou, essa placa  é esquisita, tem cara de ser feita por alguém sem muita experiência, pois desperdiçou recursos que poderiam ter feito a leitura do teclado sem ter de misturar pinos com o Display. Enfim, como é a placa que você tem, vai ter de manter o principio que expliquei acima.

 

Paulo

Editado por aphawk
correção
  • Curtir 1

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

×