Tablero matricial con leds y PIC

#1
Les dejo el esquematico, en forma de imagen y como archivo de eagle. los valores de las resistencias son de 33kOhm y los transistores son de propósito general en este caso el NPN es bc548 y el PNP es bc558, los integrados aparte del PIC16F84A son 74LS138, uhmm el cristal es de 4Mhz y los condensadores son de 27pF, ah la resistencia del reset es de 4.7kOhm. ademas tiene dos alimentaciones, una para el PIC e integrados que es de 5V y otra para la alimentacion de los Leds que puedes variar para regular el brillo. Si a VDD le das 5V brillaran bastante bien. eso es todo disfrútenlo.
 

Adjuntos

#2
aqui te envio el archivo "panel de mensajes.asm" ademas necesitas una cabecera "RETARDOS.inc" que deveras incluir al ensamblar el archivo en el MPLAB. Si solo lo quieres probar sin que tenga ninguna modificacion te envio el archivo listo para grabar "panel de mensajes.hex". Si tienes alguna duda solo consultame que en cuanto pueda te responderé
 

Adjuntos

#4
Muchisimas gracias por el código ese rdtá completo y muy bien hecho solo me faltaría alambrarlo para hacerlo que funcione , primero dios me comunico contigo mas tarde para decirte los resultados y de nueva cuenta muchisimas gracias
 
#9
Bueno si la verdad si puede llegar a ser dos veces mas largo con la consecuencia de que los led pierden brillo, seria de aumentar un poco la corriente, y mantener la corriente eficaz, y bueno otra solucion seria la de hacer un barrido vertical y ya no horizontal pero se necesitaria cambiar casi todo.
 
#10
Buenas amigo monte el circuito con el pic 16f84a y me funciono perfecto pero el pic se me daño y consegui fue un pic16F628A que supuestamente lo sustituye pero que cosas tengo que cambiar en el programa para que me trabaje igual que con el pic16f84A ya que no soy muy ducho programando en ensamblador.
 
#14
buenas noches resulta que quisiera realizar el proyecto del panel con leds pero cuando quiero abrir los archivos no se puede, como el del programa asm o de retardos etc al abrir me sale un mensaje acerca de un programita que hay que buscar en internet para abrir estos archivos por el contrario al abrir el archivo del esquematico se visualizo rapidamente y no me requirio nada si me pudieras asesorar o tal vex me equivoco yo gracias
 
#15
#16
Hola con todos este proyecto es muy interesante,quisiera saber que modificaciones deberia hacerle al programa y al circuito para sacar mensajes en matrix display de 5x7 usando al menos 15 matrices en forma horizontal y con pic16f877 de preferencia simulado en proteus. Seria mas bacan si los datos se puedan introducir por teclado y sacar por display matrix.
Gracias de antemano.
 
#17
Disculpen, soy novato en la programacion en ensamblador, y siempre he utilizado la instruccion movlw para cargar en el registro w una cantidad pero no un caracter... disculpen mi ignorancia
 

Vick

Moderador
#18
luchommarinn dijo:
Disculpen, soy novato en la programacion en ensamblador, y siempre he utilizado la instruccion movlw para cargar en el registro w una cantidad pero no un caracter... disculpen mi ignorancia
En realidad estas cargandole un valor numérico a W, solo que es el correspondiente al código ascii de la "j" en este caso, por ejemplo:

movlw 'j'

guardará el valor 01101010 en W que es el código ascii de la "j" sería exactamente igual si lo hicieras así:

movlw b'01101010'

 
#19
Hola amigos tengo el mismo proyecto pero pero de una matrix 8x8 con el pic 16f84a y el 74164 pero no entiendo muy bien el programa porque se necesito usar las 8 salidas del puerto B y las otras 8 del ic 74164 pero no se como mandarle los datos al 74164 desde el 16f84a y como tambien hacer el reloj para el 74164
 
#20
Holas a todos... Soy nuevo en la programacion de PIC, nose si porfavor alguien me pueda ayudar a entender esta parte del codigo:

Código:
DEZPLAZAR_32
			movlw			d'6'
			movwf			CONTA
DEZPLAZAR	movlw			0x20					;Esta rutina en general dezplaza una posicion todas
			movwf			FSR						;las columnas existentes en el panel, hacia la izquierda.
OTRA_VEZ	movf			INDF,W					; y luego llama a rutina barrido hasta que se barra los 
			decf			FSR,F					; 6 datos de cada caracterm, ahi es cuando retorna a
			movwf			INDF					; buscar el siguiente dato para almacenarlo
			incf			FSR,F
			incf			FSR,F
			movlw			0x46
			xorwf			FSR,W
			btfss			STATUS,Z
			goto			OTRA_VEZ
			call			BARRIDO
			decfsz			CONTA,F
			goto			DEZPLAZAR
			return

BARRIDO		clrf			PORTA
			movlw			0x20					;Barre el Panel,hasta llegar a la ultima columna								
			movwf			FSR
INCREMENTAR	movf			INDF,W
			movwf			PORTB
			call			Retardo_1ms
			call			Retardo_500micros
			clrf			PORTB
			incf			PORTA,F
			;call			Retardo_2s
			incf			FSR,F
			btfss			FSR,6
			goto			INCREMENTAR
			return
Muchas Gracias de antemano
Saludos
 
Última edición por un moderador: