Ayuda con problema en un programa usando el osciloscopio

Buenas, tengo como proyecto utilizando el 16f84a, proyectar un punto en el osciloscopio, este trabajando en X Y para que se vea. Ese punto que proyecto en el osciloscopio tengo que moverlo mediante switches por la pantalla. Aqui esta el pgrama, tiene 1 solo problema que no se porque todavia, pero decrementando los valores en Y no se porque no me toma el valor de la tabla que le tengo ahi. gracias aprecio su ayuda.

LIST p=16f84a
INCLUDE "P16F84A.INC"
COUNT EQU 0X0C
COUNTER EQU 0X0E

ORG 00

GOTO INICIO

ORG 04

ORG 10

INICIO
CLRF COUNT
CLRF COUNTER
BSF STATUS,5
CLRF TRISB
BSF TRISB,0
BSF TRISB,1
BSF TRISB,2
BSF TRISB,3
CLRF TRISA
BCF STATUS,5
CLRF PORTB
CLRF PORTA
MOVLW 0XA0
MOVWF PORTB
IX BTFSS PORTB,0 ;incremento de valores en el plano X
GOTO DX
GOTO INCX
DX BTFSS PORTB,1 ;decremento de valores en el plano X
GOTO IY
GOTO DECX
IY BTFSS PORTB,2 ;incremento de plano Y
GOTO DY
GOTO INCY
DY BTFSS PORTB,3 ;decremento e plano Y
GOTO IX
GOTO DECY

DECX CALL NBITS ;progamacion pa decremento de tabla en X
MOVWF PORTA
GOTO IX
NBITS DECF COUNT
MOVF COUNT,0
RETURN
INCX CALL BITS ;programacion para incremento de la tabla en X
MOVWF PORTA
GOTO IX
BITS INCF COUNT
MOVF COUNT,0
ADDWF PCL,1
TABLA RETLW B'00000000'
TA RETLW B'00000001'
RETLW B'00000010'
RETLW B'00000011'
RETLW B'00000100'
RETLW B'00000101'
RETLW B'00000110'
RETLW B'00000111'
RETLW B'00001000'
RETLW B'00001001'
RETLW B'00001010'
RETLW B'00001011'
RETLW B'00001100'
RETLW B'00001101'
RETLW B'00001110'
RETLW B'00001111'
GOTO TA

DECY CALL NBITSS ;decremento de la tabla en Y
MOVWF PORTB
GOTO IX
NBITSS DECF COUNTER
MOVF COUNTER,0
RETURN
INCY CALL BITSS ;incremento de la tabla en Y
MOVWF PORTB
GOTO IX
BITSS INCF COUNTER
MOVF COUNTER,0
ADDWF PCL,1
TABLA1 RETLW B'00000000'
TA1 RETLW B'00010000'
RETLW B'00100000'
RETLW B'00110000'
RETLW B'01000000'
RETLW B'01010000'
RETLW B'01100000'
RETLW B'01110000'
RETLW B'10000000'
RETLW B'10010000'
RETLW B'10100000'
RETLW B'10110000'
RETLW B'11000000'
RETLW B'11010000'
RETLW B'11100000'
RETLW B'11110000'
GOTO TA1


END
 
supongo que los prgrams xy son iguales, por tanto...


Hay mirado si cambiando las sondas de ch1 y ch2 cambia la figura.

Puede que no tengas activadas las resistencias pushpull?
 
jejej eso es lo que no se... porque para X si lo hace... tiene la misma programacion que X que para Y... lo que no se es porque no toma el valor de la segunda tabla... si no que pone otro valor que creo que es 1 valor de la primera tabla... ese es el unico problema que tiene el programa por que para los incrementos y decrementos de X los hace perfectos... y el incremento de Y tambien lo hace bien... pero el decremento es que no se porque *** no lo hace, aprecio si ayuda aqui porque no se que pasa
 
facil solución tienes. Antes de volver suma al puntero y que lo devuelva la tabla.
Es decir, elimina el return despues de decrementar y envialo a una de las sumas al puntero (pon una etiqueta y a correr).

Saludos
 
Atrás
Arriba