TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: neosud en 21 de Marzo de 2005, 18:11:00

Título: INKEY
Publicado por: neosud en 21 de Marzo de 2005, 18:11:00
HOLA AMIGOS DEL FORO, RECIBAN EL SALUDO DE SU AMIGO NEOSUD.
ESTOY UN TANTO PREOCUPADO, HACE POCO EMPECE A REALIZAR UNA APLICACION DONDE UTILIZABA UN TECLADO HEXADECIMAL, UN PIC16F877 Y 6 DISPLAY CATODO COMUN.
LO Q DESEABA HACER ERA INGRESAR POR EL TECLADO UN DETERMINADO VALOR SIENDO ESTE COMO MAXIMO 999999 PERO PODRIA SER UN NUMERO DE 1 DIGITO, 2 O MAS SIENDO COMO MAX. 6 DIGITOS. PARA LUEGO PRESIONAR ENTER EN EL TECLADO E INICIAR LA LECTURA DE UN PULSADOR NORMALMENTE ABIERTO, Q CADA VEZ Q INGRESARA UNA SEÑAL BAJA EL NUMERO EXPRESADO EN LOS DISPLAY DISMINUYERA EN 1 Y ASI SUCESIVAMENTE HASTA LLEGAR A CERO ENVIANDOSE EN ESE MOMENTO UNA SEÑAL PARA ACTIVAR UN RELE.
EL PROBLEMA Q TENGO ES Q UTILICE LA INSTRUCCION INKEY Y NO PUEDO LEER NINGUNA DE LAS 4 TECLAS DE LA PRIMERA COLUMNA, ESTUVE REVISANDO LA AYUDA DEL SOFTWARE PBASIC PLUS Y DICE Q LEE TECLADO DE 4X3 PERO HACIENDO LA CONEXION DE RB7 SE LEE UN TECLADO DE 4X4, REALMENTE NO SE Q ESTA PASANDO YA Q HE SEGUIDO LA CONEXION SUGERIDA EN LA AYUDA Y EL EJEMPLO Q ALLI PRESENTAN.

EL TECLADO  Q UTILIZO SACAN AL EXTERIOR 9 PINES, LOS 4 PRIMEROS SON PARA LAS FILAS, LOS OTROS 4 SON LAS COLUMNAS Y EL ULTIMO ESTA CONECTADO A UNA PARTE METALICA DEL TECLADO, YA HE REALIZADO ALGUNAS APLICACIONES CON ESTE MISMO TECLADO EN ASM PERO ESTA VEZ DECIDI HACERLO EN PBPLUS POR LA FACILIDAD DE MANEJO DE MULTIPLICACIONES Y VARIABLES DE 32 BITS.

COMO SOLUCIONAR ESTE DILEMA, PODRIAN AYUDARME PLEASE, ALGUIEN YA PASO POR ESTO?

PROGRAMA INICIAL REALIZADO PARA LA IDENTIFICACION DE LAS TECLAS PULSADAS:

DEVICE 16F877
XTAL=20

DIM VAR1 AS BYTE

OUTPUT PORTB

MAIN:
VAR1=INKEY
DELAYMS 50
PORTB=VAR1
GOTO MAIN

NOTA: CONECTE A LAS LINEAS RB0,RB1,RB2,RB3 LAS RESISTENCIAS DE 470 OHM A LAS FILAS DEL TECLADO Y LAS DEMAS LAS CONECTE DIRECTO A LAS COLUMNAS DEL TECLADO, ESTO ES CORRECTO O ES AL CONTRARIO, RESISTORES A COLUMNAS Y FILAS VAN DIRECTO?

Título: RE: INKEY
Publicado por: RGL en 23 de Abril de 2005, 18:29:00
Lo único que veo que no has puesto en el programa es:

 DECLARE KEYPAD_PORT PORTB

El resto de cosas está bien.

También has omitido poner las R pull up del puerto B. Comprueba estas dos cosas y la linea que va a RB7 que no está cortada en algún punto.

Yo no he usado ese comando pero debería ir bien.


Saludos.
Ricky
Título: RE: INKEY
Publicado por: neosud en 29 de Abril de 2005, 10:26:00
EN LA AYUDA DEL COMANDO INKEY HAY UN ESQUEMATICO, NO ME QUEDA MUY CLARO SI LOS PINES RBO,RB1,RB2 Y RB3 SE CONECTAN A LAS FILAS O COLUMNAS DEL TECLADO, EN MI HARDWARE ESTAN CONECTADOS A LAS FILAS, ELLO ES DEBERIA SER ASI.ME QUEDA DUDAS EN CUANTO A ELLO
UNA CNSULTA ADICIONAL, LAS RESISTENCIAS PULL-UP INTERNAS DE LA PUERTA B SE ENCUENTRAN EN TODOS SUS PINES O SOLO EN LOS 4 MAS SIGNIFICATIVOS.

GRACIAS RLG POR SU AYUDA, LO VOY A PROBAR Y HABER Q SUCEDE, SALUDOS
Título: RE: INKEY
Publicado por: RGL en 01 de Mayo de 2005, 00:10:00
Cada uno de los pines del B tiene una resistencia de pullup.

Las líneas más significativas son columnas y las de menos peso son filas.

sALUDOS
Ricky