TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: jo-fe-ar en 25 de Abril de 2009, 03:15:40
-
Hola pues disculpenme tengo un problema, quiero empezar por que cuando presione una tecla, un led se encienda un determinado numero de veces, es decir si presiono la tecla "6", se enciana 6 vces el led
Mi problema es que, por mas que intento detectar la tecla presionada, cuando conecto mi circuito, el led empieza a parpadear por sí solo, y no me reconoce ninguna tecla, realmente creo que estoy mal, ojala me puedan hechar la mano con el código, el teclado matricial es un 4x4, y lo tengo conectado al puertob, el PIC que utilizo es un PIC16F648A,
nota: el programador esta bien, tambien el pic, y tambien el led, ya programe el simple codigo de encender y apagar el led, y funciono perfectamente.
Por favor ayudenme con el código para detectar una tecla.
desde ya gracias
-
Pega aquí tu programa y tu esquema.
-
oK, ESPERO QUE ME PUEDAN AYUDAR,(realmente creo que estoy remal a la hora de checar que tecla fue pulsada no tengo mucha idea por eso ayudenme porfavor :shock:) aqui esta la coneccion del teclado matricial y mas abajo el codigo (pic basic pro 2.46):
1----------2--------3--------A >>fila1
4----------5--------6--------B >>fila2
7----------8--------9--------C >>fila3
*----------0--------#--------D >>fila4
___ ___ ___ ___
col1------col2-----col3-----col4
pines del teclado|corresponden a:
______________________________
1 | fila 2
2 |fila3
3 |col1
4 |fila4
5 |col2
6 |col3
7 |col4
8 |fila1
el teclado esta conectado al pic asi:
pines de teclado | pines del pic
___________________________
1 | portb.0
2 | portb.1
3 | portb.2
4 | portb.3
5 | portb.4
6 | portb.5
7 | portb.6
8 | portb.7
DEVICE=16F648A
CONFIG INTRC_OSC_NOCLKOUT,WDT_OFF,PWRTE_ON,CP_OFF,BODEN_OFF,LVP_OFF,MCLRE_OFF
LED VAR PORTA.0
FILA1 VAR PORTB.7
FILA2 VAR PORTB.0
FILA3 VAR PORTB.1
COL1 VAR PORTB.2
COL2 VAR PORTB.4
COL3 VAR PORTB.5
FILA1 = 0
FILA2 = 0
FILA3 = 0
COL1 = 0
COL2 = 0
COL3 = 0
LOW LED
ANALIZADOR:
IF (FILA1 = 1) AND (COL1 = 1) THEN TECLA1
IF (FILA1 = 1) AND (COL2 = 1) THEN TECLA2
IF (FILA1 = 1) AND (COL3 = 1) THEN TECLA3
IF (FILA2 = 1) AND (COL1 = 1) THEN TECLA4
IF (FILA2 = 1) AND (COL2 = 1) THEN TECLA5
IF (FILA2 = 1) AND (COL3 = 1) THEN TECLA6
IF (FILA3 = 1) AND (COL1 = 1) THEN TECLA7
IF (FILA3 = 1) AND (COL2 = 1) THEN TECLA8
IF (FILA3 = 1) AND (COL3 = 1) THEN TECLA9
GOTO ANALIZADOR
TECLA1:
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA2:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA3:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA4:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA5:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA6:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA7:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA8:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA9:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
-
Hola amigo mira un ejemplo sencillo aqui de como puedes usar el teclado espero que te sirva de algo, y tambien te comento que en el foro hay vastante informacion, tienes que aprende a buscar el buscador del foro y si no encuetras dato puedes preguntar sin problema oh si tienes alguna duda tambien...
http://todopic.mforos.com/8826/4180638-contar-10-pulsos-y-encender-led/?pag=4#24562539