# Display + teclado + pic



## Sergio Ureña (Oct 9, 2006)

Hola un gran favor necesito conectar 2 display a un teclado que tiene 4 patas que sacan en binario en numero que se pulso ejemplo se apieto el 1 saldria '0001' esto tengo que hacerlo mediante un pic16f84a , mi problema es que no me ubico como hacer algo asi, si alguien tiene algun codigo parecido o me podria guiar como hacerlo , se agradeceria mucho estoy programando en ASM.


----------



## EinSoldiatGott (Oct 10, 2006)

Sergio Ureña dijo:
			
		

> Hola un gran favor necesito conectar 2 display a un teclado que tiene 4 patas que sacan en binario en numero que se pulso ejemplo se apieto el 1 saldria '0001' esto tengo que hacerlo mediante un pic16f84a , mi problema es que no me ubico como hacer algo asi, si alguien tiene algun codigo parecido o me podria guiar como hacerlo , se agradeceria mucho estoy programando en ASM.



Hola, revise este link http://www.x-robotics.com/downloads/rutinas/teclado.txt, e sun arutina para leer el teclado.

Es usted Francisco Ureña???

Saludos


----------



## Braulio (Nov 1, 2006)

Tu teclado esta muy interesante, eso te facilita las cosas. Los display son de 7 segmentos? si es así te aconsejo esto: ingresas el valor en binario por el puerto A, luego en tu programa para el 16F84, haces q el micro chequee mediante un bucle a cada momemto ese puerto, y si existe un dato lo guarde y mediante una tabla donde estarán los codigos de 7 segmentos obtenga el valor correspondiente, y finalmente lo saque por el puerto B; ahora como son 2 display el micro debe  multiplexar constantemente entre los 2 para eso puedes usar el ultimo pin del puerto B ya que el dispaly necesita solo 7; puedes haga ambas tareas (rebisar PA y multiplexar en PB) en el mismo bucle y si existe un dato nuevo llamar a una subrutina.
Cuando se ingrese un dato nuevo deberás también desplazar el dato anterior al otro display (de derecha a izquierda como en las calculadoras)
Ojala te sirva de algo la idea.
Salu2:
BRAULIO


----------



## ben99 (Nov 1, 2006)

amigo aqui

caballero mira a ver si pudes hacer este.

LO DEMAS........................................................

#INCLUDE<P16F84A.INC>

;DECLARACION DE VARIABLES
NUMERO   EQU   20
REG1   EQU   21
REG2   EQU   22
REG3   EQU   23
RESTA  EQU   24
   ORG   00
   GOTO   INICIO




TABLA  
   ADDWF   PCL,1
   RETLW   B'11000000'  ;ANODO COMUN
   RETLW   B'11111001'
   RETLW   B'10100100'
   RETLW   B'10110000'
   RETLW   B'10011001'
   RETLW   B'10010010'
   RETLW   B'10000010'
   RETLW   B'11111000'
   RETLW   B'10000000'
   RETLW   B'10011000'
   RETLW   B'10111111'
INICIO   
   BSF   STATUS,5
   MOVLW   H'00'
   MOVWF   PORTB
   MOVLW      B'01111'
                MOVWF     PORTA
   BCF   STATUS,5
   CLRF   PORTB
   CLRF        PORTA
GER   
 YYYYY  MOVF   PORTA,0
movwf  NUMERO
     GOTO   DECODIFICAR


   VISUALIZACION  
	MOVF	UNIDAD,W
	CALL	TABLA
	BCF	PORTA,4
	MOVWF	PORTB
	CALL	RETARDO
	BSF	PORTA,4
	MOVF	DECENAS,W
	CALL	TABLA
	MOVWF	PORTB
	BCF	PORTB,7
	CALL	RETARDO
	BSF	PORTB,7
	RETURN  


DECODIFICAR
	MOVF	NUMERO,W
	MOVWF	RESTA
	CLRF	DECENAS
	MOVLW	.10
RE	SUBWF	RESTA,1
	BTFSC	STATUS,0
	GOTO	INCREME
	ADDWF	RESTA,1
	MOVF	RESTA,W
	MOVWF	UNIDAD
	CALL	VISUALIZACION
	GOTO         YYYY	
INCREME	INCF	DECENAS,1
	GOTO	RE


SALUDOS


----------

