Problema 16f84, teclado y dos displays

#1
Hola a todos. Tengo el siguiente problema.... Quiero hacer un programa en un pic 16f84 que al ingresar un numero a traves de un teclado matricial de 3x4 conectado al puertob del pic, este numero sea visualizado en dos display de 7 segmentos (solo se pueden ingresar numeros de dos digitos 0-99). Habia pensado en utilizar alguna especie de multiplexado para controlar ambos displays pero me di cuenta de que me faltarian pines del pic, ya que solo me queda disponible el pueertoA y un pin del puertob.:cry:
La idea es utilizar el 16f84 ya que es el unico que tengo a mano en estos momentos y no me gustaria utilizar otros CI...
Porfavor si alguien tiene una idea para guiarme se lo agradeceria muchisimo
saludos!
 
#3
Otra forma es usando el CD4511 conectado al PORTA para que mandes los datos a los display y para multiplexarlos usas el mismo del teclado, pero como te sirve un pin del PORTB y con el CD4511 te sobraria un pin del PORTA, ya tienes dos pines para multiplexar los display.
 
#4
Otra forma es usando el CD4511 conectado al PORTA para que mandes los datos a los display y para multiplexarlos usas el mismo del teclado, pero como te sirve un pin del PORTB y con el CD4511 te sobraria un pin del PORTA, ya tienes dos pines para multiplexar los display.
Si eso mismo estaba tratando de hacer pero tenia la duda de la velocidad del 4511 daria o no problemas que crees tu?


chico3001 dijo:
intenta usando deserializadores y manda la informacion en forma serial...
que es un deserializador disculpa mi ignorancia:confused::confused:
investigare en la web

Gracias a ambos:)
 
#6
Si de velocidad se trata no habría problemas pero te sugiero el 74HC/HCT4511, algo similar si usas un deserializador (registros de desplazamiento), que con un par de ellos ya no necesitarías multiplexar los display y solo usarias 2 a 3 pines del PIC.
 
#8
Meta muchas gracias exelente pagina muy util ya que uso ese mismo libro para aprender(y)

Bueno solucione el problema utilizando dos 4511 uno para el control de las decenas y el otro para las unidades. El pin RA4 (que me dio problemas pues no recordaba que era de colector abierto:rolleyes:) y el RB7 los utilice para controlar el pin 5 (enable/store input)
y asi lograr que "almacenara" el digito utilizado y pudiera mostrar otro cuando lo requiera.
Aca dejo el codigo en asm del circuito una foto de la conexion en proteus y en el zip todos los archivos dados por mplab y el circuito en proteus.

Muchas gracias por su ayuda fue de gran utilidad para guiar mi mente...
Cualquier comentario o sugerencia para mejorar tanto el programa como el circuito o alguna correccion (aun no lo armo solo lo simule en proteus) me sera de gran utilidad
(la verdad es un proyecto extremadamente sencillo jajja ) gracias otra vez:apreton:

PHP:
	include	"p16f84a.inc"


	CBLOCK	0x0C
	decena
	unidad
	ENDC

	ORG	0
	goto	configuracion
	ORG	05
	
	
configuracion

	call Teclado_Inicializa
	bsf	STATUS,RP0
	clrf	TRISA
	bcf	STATUS,RP0
	
	clrw
	clrf	decena
	clrf	unidad
	clrf	PORTA
inicio
	bcf	PORTA,4
	bcf	PORTB,7
primer_digito
	call	Teclado_LeeHex
;	call	Teclado_EsperaDejePulsar
	btfss	STATUS,C
	goto	primer_digito
	movwf	decena
	call	Retardo_100ms
	call	Teclado_EsperaDejePulsar
;	movwf	decena


segundo_digito
	call	Teclado_LeeHex
;	call	Teclado_EsperaDejePulsar
	btfss	STATUS,C
	goto	segundo_digito
	movwf	unidad
	call	Retardo_100ms
	call	Teclado_EsperaDejePulsar
;	movwf	unidad

display


	bcf PORTB,7

	
	movfw	decena
	movwf	PORTA
	bsf	PORTA,4
	call	Retardo_1ms
	bcf	PORTA,4

	bsf	PORTB,7
	movfw	unidad
	movwf	PORTA
	call	Retardo_1ms
	bcf	PORTB,7


	goto inicio
	
	
	include	"TECLADO3x4.inc"
	include	"RETARDOS.inc"
	end
 

Adjuntos

Última edición:
#10
Al parecer hay un error en el programa no se puede simular
Si. Efectivamente hay un error en el archivo DSN
Como este post ya tiene tiempo publicado, puede ser que ya no coloquen el proyecto otra vez.
Así que aqui les dejo el proyecto de simulación corregido.
Todo el código esta tal cual y fue publicado originalmente, solo corregi el archivo DSN
Que hace referencia a un archivo no encontrado y aunque se le actualize la ruta
del archivo, seguia apareciendo el mismo error. :apreton:
 

Adjuntos

#11
Darkbytes, quiero pedirte un servicio brother, ayudame a corregir mi diseño es solo un manejo de teclado 3x4 que no puedo corregirlo, por favor te agradezco
 
#13
Darkbytes, quiero pedirte un servicio brother, ayudame a corregir mi diseño es solo un manejo de teclado 3x4 que no puedo corregirlo, por favor te agradezco
Disculpas por no haber atendido a este post.
Si todavia requieres ayuda, sube tu código y veremos en que te puedo ayudar.



En esa pagina que por cierto visite hace tiempo, lo que hay mas que nada son ejemplos
que contienen solo los ejecutables y poco código.
Esta bien para ver lo que se puede hacer, pero uno se queda con las ganas de ver los códigos.
No se si ya se actualizo, pero al parecer sigue igual.
Saludos.
 
Última edición:
#14
ese código esta en assembler cierto?....bueno yo tambien tengo problemas con el teclado, he leido algo sobre el antirebote, sería bueno nos guiaran con un codigo en pic basic pro....gracias
 
#16
Disculpas por no haber atendido a este post.
Si todavia requieres ayuda, sube tu código y veremos en que te puedo ayudar.





En esa pagina que por cierto visite hace tiempo, lo que hay mas que nada son ejemplos
que contienen solo los ejecutables y poco código.
Esta bien para ver lo que se puede hacer, pero uno se queda con las ganas de ver los códigos.
No se si ya se actualizo, pero al parecer sigue igual.
Saludos.
Ok, todo te viene el código completo y bien explicado en el libro. Busca bien ya que tienes todas las librerías y funciona a la primera.
 

Temas similares

Arriba