NUEVOS Cursos de Oficios onLine
 

Programar un pic+teclado matricial+lcd

Seguir
saludos colegas, he entregado enteramente mi tiempo en estas dos semanas en realziar un programa con dichas características en el título, sin embargo he realizado programas en donde al oprimir una tecla (del teclado matricial) en la lcd, aperece un número, y al oprimir otra tecla, desaparece ese número y he aqui aparece este nuevo.
Mi intención es realizar un programa en donde al oprimir una serie de teclas, aparezcan los números en la lcd que he oprimido.
si alguien puede ayudarme le estaré muy agradecido, de antemano muchas gracias....


8 Soluciones propuestas

el programa que uso es Microcode studio plus, en lenguaje BASIC, si alguien puede compartirme el programa utilizando tal programa le estare agradecido
SOLUCIÓN ACEPTADA
ESTO ES ALGO QUE YO HICE UNA VEZ:

LECTURA DE UN TECLADO DE 16 PULSADORES CON DISPLAY DE 7
SEGMENTOS.

CMCON=7 ;convierte en pines digitales el puerto A
fila VAR BYTE ;variable para las filas
colu VAR BYTE ;variable para las columnas
tecla VAR BYTE ;variable para almacenar el número de la tecla
TRISA=0 ;todo el puerto A configurado como salidas
prog1:
PORTB=0 ;el puerto B es = %00000000
TRISB=%11110000 ;configura 4 pines bajos como salida y los demás entrada
IF ((PORTB >> 4)!=%1111) THEN prog1 ;si la tecla es presionada manténgalo en prog1
prog2:
FOR fila = 0 TO 3 ;repetir para las 4 filas del teclado
PORTB=0 ;el puerto B es = %00000000
TRISB=(DCD fila)^%11111111 ;setea una fila a 1 y los invierte a todos los demás
colu= PORTB >> 4 ;desplaza los 4 bits altos al inicio
IF colu != %1111 THEN numtecla ;si una tecla es pulsada ir numtecla
NEXT fila
GOTO prog2
numtecla:
tecla = (fila*4)+(NCD (colu^%1111)) ;calcula el valor de la tecla multiplicando
;por 4 la fila a la que pertenece y sumando a la posición que se encuentra
;para un teclado de 12 pulsadores, debemos cambiar (fila*3)
porta=tecla ; sacar por el puerto A el valor de tecla
GOTO prog1
END

Y ACA HAY UNO PARECIDO:
cmcon=7 ;cambiar a modo digital todo el puerto A
TRISA = 0 ;todo el puerto A es configurado como salidas
A VAR PORTB.0 ;nombres para los pines de las filas
B VAR PORTB.1
C VAR PORTB.2
D VAR PORTB.3
UNO VAR PORTB.4 ;nombres para los pines de las columnas
DOS VAR PORTB.5
TRES VAR PORTB.6
CUATRO VAR PORTB.7
BARRIDO:
LOW A ;hacer bajo la 1era fila
IF UNO = 0 THEN PORTA = 1 ;si la 1ra tecla es presionada sacar 1
IF DOS = 0 THEN PORTA = 2 ;si la 2da tecla es presionada sacar 2
IF TRES = 0 THEN PORTA = 3 ;si la 3ra tecla es presionada sacar 3
IF CUATRO = 0 THEN PORTA = 10 ;si la 4ta tecla es presionada sacar 10
HIGH A ;poner en alto la 1era fila
LOW B ;hacer bajo la 2da fila
IF UNO = 0 THEN PORTA = 4 ;si la 1ra tecla es presionada sacar 4
IF DOS = 0 THEN PORTA = 5 ; y así sucesivamente
IF TRES = 0 THEN PORTA = 6
IF CUATRO = 0 THEN PORTA = 11
HIGH B ;poner en alto la 2da fila
LOW C ;hacer bajo la 3ra fila
IF UNO = 0 THEN PORTA = 7
IF DOS = 0 THEN PORTA = 8
IF TRES = 0 THEN PORTA = 9
IF CUATRO = 0 THEN PORTA = 12
HIGH C ;poner en alto la 3ra fila
LOW D ;hacer bajo la 4ta fila
IF UNO = 0 THEN PORTA = 14
IF DOS = 0 THEN PORTA = 0
IF TRES = 0 THEN PORTA = 15
IF CUATRO = 0 THEN PORTA = 13
HIGH D ;poner en alto la 4ta fila
PAUSE 10 ;pausa de 10 milisegundos
GOTO BARRIDO ;continuar con el barrido de teclas
END
mi idea seria que al ingresar un numero lo muestres en el lcd luego lo multipliques por 10 y le sumes el nuevo numero ingresado por supuesto tendrias problemas si el primer numero es el cero
IRRA2013 escribió:
ESTO ES ALGO QUE YO HICE UNA VEZ:

LECTURA DE UN TECLADO DE 16 PULSADORES CON DISPLAY DE 7
SEGMENTOS.

CMCON=7 ;convierte en pines digitales el puerto A
fila VAR BYTE ;variable para las filas
colu VAR BYTE ;variable para las columnas
tecla VAR BYTE ;variable para almacenar el número de la tecla
TRISA=0 ;todo el puerto A configurado como salidas
prog1:
PORTB=0 ;el puerto B es = %00000000
TRISB=%11110000 ;configura 4 pines bajos como salida y los demás entrada
IF ((PORTB >> 4)!=%1111) THEN prog1 ;si la tecla es presionada manténgalo en prog1
prog2:
FOR fila = 0 TO 3 ;repetir para las 4 filas del teclado
PORTB=0 ;el puerto B es = %00000000
TRISB=(DCD fila)^%11111111 ;setea una fila a 1 y los invierte a todos los demás
colu= PORTB >> 4 ;desplaza los 4 bits altos al inicio
IF colu != %1111 THEN numtecla ;si una tecla es pulsada ir numtecla
NEXT fila
GOTO prog2
numtecla:
tecla = (fila*4)+(NCD (colu^%1111)) ;calcula el valor de la tecla multiplicando
;por 4 la fila a la que pertenece y sumando a la posición que se encuentra
;para un teclado de 12 pulsadores, debemos cambiar (fila*3)
porta=tecla ; sacar por el puerto A el valor de tecla
GOTO prog1
END

Y ACA HAY UNO PARECIDO:
cmcon=7 ;cambiar a modo digital todo el puerto A
TRISA = 0 ;todo el puerto A es configurado como salidas
A VAR PORTB.0 ;nombres para los pines de las filas
B VAR PORTB.1
C VAR PORTB.2
D VAR PORTB.3
UNO VAR PORTB.4 ;nombres para los pines de las columnas
DOS VAR PORTB.5
TRES VAR PORTB.6
CUATRO VAR PORTB.7
BARRIDO:
LOW A ;hacer bajo la 1era fila
IF UNO = 0 THEN PORTA = 1 ;si la 1ra tecla es presionada sacar 1
IF DOS = 0 THEN PORTA = 2 ;si la 2da tecla es presionada sacar 2
IF TRES = 0 THEN PORTA = 3 ;si la 3ra tecla es presionada sacar 3
IF CUATRO = 0 THEN PORTA = 10 ;si la 4ta tecla es presionada sacar 10
HIGH A ;poner en alto la 1era fila
LOW B ;hacer bajo la 2da fila
IF UNO = 0 THEN PORTA = 4 ;si la 1ra tecla es presionada sacar 4
IF DOS = 0 THEN PORTA = 5 ; y así sucesivamente
IF TRES = 0 THEN PORTA = 6
IF CUATRO = 0 THEN PORTA = 11
HIGH B ;poner en alto la 2da fila
LOW C ;hacer bajo la 3ra fila
IF UNO = 0 THEN PORTA = 7
IF DOS = 0 THEN PORTA = 8
IF TRES = 0 THEN PORTA = 9
IF CUATRO = 0 THEN PORTA = 12
HIGH C ;poner en alto la 3ra fila
LOW D ;hacer bajo la 4ta fila
IF UNO = 0 THEN PORTA = 14
IF DOS = 0 THEN PORTA = 0
IF TRES = 0 THEN PORTA = 15
IF CUATRO = 0 THEN PORTA = 13
HIGH D ;poner en alto la 4ta fila
PAUSE 10 ;pausa de 10 milisegundos
GOTO BARRIDO ;continuar con el barrido de teclas
END

Ctrl C, Ctrl V teeth smile Pagina 100 libro: "MICROCONTROLADORES PIC 2º EDICION", Autor: Carlos A. REYES ISBN:9978-45-004-1. Amigo es de caballeros citar la fuente de información y no declararla como propia!
Que sos una mina vos, que detallista y maricon, por dios!
IRRA2013 escribió:
Que sos una mina vos, que detallista y maricon, por dios!

SI viste!!!, pero respeto la propiedad intelectual de los que realmente saben, no como vos que encima que copias sin citar la fuente, no entendes lo que el colega está pidiendo y por otra parte discriminas a la mujer, la misma que te trajo al mundo. Seguí practicando que te falta mucho pibe !
Acaso ayudaste en algo vos, pedazo de puto, sin agraviar a los putos como a vos te gusta, seguro vos estas a favor de los gays, del aborto, de la adopcion, de la igualdad entre el hombre y la mujer y esas cosas inservibles. Porque mejor no te vas a lavar el culo que lo debes tener bien sucio para hacer parecer que te preocupan tanto los semejantes y los ajenos eh, sos un putito vos, y no me vas a mandar a aprender a mi que te cago a baile en lo que sea, asi que no me jodas mas putito y no respondas mas, que te averiguo el ip que es re facil y te voy a buscar a donde sea, total estas en la argentina y te puedo ir a buscar facil, mira que te cago matando a piÑas, te quemo el auto o te cago a tiros la casa eh, entendiste gil.
IRRA2013 escribió:
Acaso ayudaste en algo vos, pedazo de puto, sin agraviar a los putos como a vos te gusta, seguro vos estas a favor de los gays, del aborto, de la adopcion, de la igualdad entre el hombre y la mujer y esas cosas inservibles. Porque mejor no te vas a lavar el culo que lo debes tener bien sucio para hacer parecer que te preocupan tanto los semejantes y los ajenos eh, sos un putito vos, y no me vas a mandar a aprender a mi que te cago a baile en lo que sea, asi que no me jodas mas putito y no respondas mas, que te averiguo el ip que es re facil y te voy a buscar a donde sea, total estas en la argentina y te puedo ir a buscar facil, mira que te cago matando a piÑas, te quemo el auto o te cago a tiros la casa eh, entendiste gil.

Sin palabras !!!