Problema con codigo para matriz de leds

Hola amigos :
Tengo el siguiente problema, comenze a incursionar en el manejo de matrices de leds casi sin ningun conocimiento , ya pude programar algunas cosillas , pero ahora tengo un problema serio, queria hacer un programa en asembler para hacer aparecer letras en una matriz, en la simulacion me sale rebien tendria que aparecer una H , pero en la realidad solo se prende la primera columna de mi matriz y ahi se queda , reviso todo , mi PIC, mi codigo pero no encontre falla alguna, se que no es el PIC porque funciona con otros codigos que hize , talvez alguien me pueda ayudar a descifrar mi problema, agradecido de antemano.

Código:
;=   Autor : Sergio Ureña
;=   Ultima modificacion : 22/08/07
;=   Proyecto 2
;=
;=   Oscilador XT 4MHz
;=   Watchdog Timer Activado	
;=	 Matriz de leds 7x5 

		
	list p=16f877			; Se indica el tipo de procesador
	#include <p16f877.inc>		; Se incluye la definicion de los registros internos en una libreria

	; **** Configuracion de los FUSES ****
	__CONFIG _CP_OFF &  _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_OFF & _WDT_ON & _XT_OSC

	ERRORLEVEL	 -302   		; elimina BANK WARNING
    ERRORLEVEL	 -207   		; elimina LABEL AFTER COLUMN 1

	PDel0 		EQU		0x20	; Reservamos memoria ram
	PDel1		EQU		0x21
	COL			EQU		0x23	; Columna a representar
	ROTAR		EQU		0x24	; Posicion a rotar
	AUX			EQU		0x25

	org 0x00					; Inicio en el vector de Reset
	goto INICIO		 			; Va a la primera instruccion del programa

; Descripcion: Delay 4000 ciclos
;-------------------------------------------------------------
DEMORA  movlw     .5        ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .159      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
        clrwdt              ; 1 ciclo delay
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
        return              ; 2+2 Fin.
;-------------------------------------------------------------

INICIO 

	clrf  	PORTB				; Borrado de lineas no utilizadas de puerto B
	clrf  	PORTC				; Borrado de lineas no utilizadas de puerto C
	bsf  	STATUS,RP0			; Cambio al banco 1
	movlw  	B'00000001'				; RB0 como entrada el resto salidas
	movwf  	TRISB				
	movlw 	0xE0				; RA0 - RA4 son salidas el resto entradas
	movwf 	TRISC
	bcf		STATUS,RP0			; Cambio al banco 0
	movlw	.255
	movwf	AUX
	

MATRIZ
	movlw 	0x00
	movwf	COL

	movlw	0x05
	movwf	ROTAR

	movlw	0x01
	movwf	PORTC

	decfsz	AUX,1
	goto	BARRIDO
	goto	SLE

BARRIDO
	call TABLA_DATOS
	
	movwf	PORTB
	call	DEMORA
        bcf		STATUS,C
	incf	COL,1
	rlf		PORTC,1
	decfsz	ROTAR,1
	goto	BARRIDO
	goto 	MATRIZ
	
TABLA_DATOS
	clrw
	addwf	COL,W
	addwf	PCL,f	
	

CARACTER_H						
	retlw   0xFE			
	retlw   0x10				
	retlw   0x10				
	retlw   0x10
	retlw   0xFE	

SLE	sleep

	end							; Fin del programa
 
Última edición por un moderador:
Hola que tal te puedo ayudar en tu problema, enviame el diagrama circuital y yo te obsequio el codigo fuente para visualizar la H y cualquier numero.
 
hola compañero,
lamentablemente por tu codigo no es posible determinar tu error ya que hace lo que pretende, sin embargo creo que el error puede estar en tu interconexion fisica, puesto que no estableces como se interconecta el pic con la matriz de leds.
Debes de tener un error de algun falso contacto o igualmente de logica al enviar los datos a la matriz, te aconsejaria probar primero si no existe algun error de cableado y posteriormente, revisar como envias los datos ya que por tu codigo, envias unos para encender una columna completa y tambien 1 logico para habilitar la correspondiente fila, lo cual puede que no sea verdad y tengas que enviar logica negativa(ceros en lugar de unos). (solo se ne ocurre, no he manejado matrices de leds de momento)
 
MATRIZ DE LED
Recién en esta oportunidad me estoy integrando al foro y también hago llegar una matriz de led con el pic 16f628A que muestra letras desplazándose el problema es que los números no se notan bien en la simulación quiera corregir que debo modificar y también quisiera aumentar un eprom 24c256 la fecha y temperatura envió para que lo vean la simulación en proteus 7.6sp0 y MPLAB 8.43 espero su respuesta.
 

Adjuntos

  • matrix desplazando letras.rar
    76.9 KB · Visitas: 715
hola soy nuevo en esto de los pics y me gustaria trabajar con una matriz como la suya, me podria ayudar enviandome el archivo en basic por favor, es el lenguaje que medio entiendo
muchas gracias de antemano























<a href=http://www.gospelaudio.com/ >mp3 songs</a>























<a href=http://www.gospelaudio.com/ >free sheet music</a>























<a href=http://www.musicfrost.com/ >music stores</a>
 
Atrás
Arriba