Olá pessoal!

Estou começando a estudar uC's, em especial o PIC e estou usando o CCS C.

Quero fazer um controle de acesso, como um cofre, onde terá um LCD para exibir as mensagens e um teclado matricial 4x4 para a entrada da senha.

A principio, já consegui fazer o LCD funcionar com o 16F628A, usando o portB. Quando tento usar o portA, não consigo simular no proteus.

O teclado tem sido um grande problema, nunca consegui ler uma tecla no PIC, no Arduíno foi muito rápido...

Estou usando a biblioteca kbd.c do ccs modificada p/ portA, como podem ver:

#if defined use_portb_kbd
     #byte kbd = getenv("SFR:PORTB")
#else
     #byte kbd = getenv("SFR:PORTA")
#endif

#if defined use_portb_kbd
     #define set_tris_kbd(x) set_tris_b(x)
#else
     #define set_tris_kbd(x) set_tris_a(x)
#endif

Abaixo está o esquema elétrico de uma parte do circuíto, alguém consegue me ajudar?

Exibições: 1932

Anexos

Respostas a este tópico

Olá Paulo,

existe varias maneiras de ler um teclado matricial, da forma que você fez é bem simples só que utiliza vários pinos no PIC. Poste o código CCS e o arquivo *.Dsn do Proteus que você fez, para poder te ajudar. Obs.: Não aconselho usar a biblioteca kbd.c, você pode fazer a sua especificamente.

att:JULIO

Olá Julio, muito obrigado!

Pelo oque tenho visto, ninguém gosta muito dessas bibliotecas do CCS, hehe..

Desconheço outra forma de ligar o teclado, pelo oque você disse, há algum outro jeito que economize pinos, você tem alguma documentação disso pra me passar? Agradecido!

Segue o anexo que você pediu!

Abraços!

Anexos

(1) Existem bibliotecas ótimas, porem cada uma tem sua peculiaridade por causa do hardware.

(2) Usando 4051 como demultiplexador é possível economizar pinos do microcontrolador.

(3) Segue o *.dsn e *.hex já modificado do seu projeto

(4) me passa seu e-mail para envio dos *.c e observações.

abraço,

att:JULIO

Anexos

Maravilha, agradeço a atenção! 

rviinny@gmail.com

Abraços!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço