Ir ao conteúdo

Posts recomendados

Postado

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

Postado

É 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.

Postado

@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
Postado

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

Postado

@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
Postado

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.

  • Membro VIP
Postado

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
Postado

@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
Postado

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

  • Membro VIP
Postado

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
Postado

@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

  • Curtir 1
  • 3 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

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...