TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: chekrockk en 15 de Julio de 2011, 19:35:53
-
ke tal amigos soy nuevo en el foro........................................
y eske tengo un problema con un programa que estoy realizando en el pic16f887,,,, esl cual es para una matriz de leds...el problema es que el programa sobrepasa los 2k de memoria osea la paguina 0.......e intentado de varias formas cambiar ala siguiente paguina y cuando lo hago no me marca error ni nada. el problema es cuando lo simulo en proteus isis. el cual solo me toma el codigo hasta la pagina 0 o los 2k de memoria, no me simula lo de la otra paguina....no se si me programa este mal por el cual no tome lo de la paguina 1. e intentado y sigue =. :(
esero me puedan auxiliar con este problema gracias de antemano.
-
holas, deberias subir el programa para echarle un ojo. de todas formas por ej si tienes una rutina en la direccion
org 0x900 por ej MENSAJE
y el pc se encuentra en otra página, pones:
pagesel MENSAJE
call MENSAJE
para lectura de tablas con saltos de pagina tienes ejemplos (http://www.todopic.com.ar/foros/index.php?topic=12918.0) en el foro
un saludo
-
holas, deberias subir el programa para echarle un ojo. de todas formas por ej si tienes una rutina en la direccion
org 0x900 por ej MENSAJE
y el pc se encuentra en otra página, pones:
pagesel MENSAJE
call MENSAJE
para lectura de tablas con saltos de pagina tienes ejemplos (http://www.todopic.com.ar/foros/index.php?topic=12918.0) en el foro
un saludo
que tal amigo gracias por contestar. si de esa forma lo estoy haciendo pero sigo teniendo los mismos problemas.
parte de inico del programa de essta forma comienza y asi gui sucesivamente.
LIST P=16F887
INCLUDE <P16F887.INC>
__CONFIG _CONFIG1, _INTOSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_OFF & _IESO_ON & _FCMEN_ON & _LVP_ON
__CONFIG _CONFIG2, _WRT_OFF & _BOR40V
;ERRORLEVEL -306 ; esto te elimina todos los warnings generados del tipo 306
ERRORLEVEL -302 ;
TRISC equ 0x87
TRISD equ 0x88
PORTC equ 0x07
PORTD equ 0x08
STATUS equ 0x03
PCLATH equ 0x0A
F equ 1
W equ 0
CONT1 equ 0x21
CONT2 equ 0x22
CUENTA1 equ 0x23
CUENTA2 equ 0x24
VUELTA1 equ 0x25
CUENTA11 equ 0x26
CUENTA22 equ 0x27
ORG 0x00
GOTO INICIO
ORG 0x05
RETARDO MOVLW 0xDF
MOVWF CUENTA1
ACA1 MOVLW 0x03
MOVWF CUENTA2
ACA DECFSZ CUENTA2,F
GOTO ACA
DECFSZ CUENTA1,F
GOTO ACA1
RETURN
RETA2 MOVLW 0xFF
MOVWF CONT1
AJA1 MOVLW 0xFF
MOVWF CONT2
AJA DECFSZ CONT2,F
GOTO AJA
DECFSZ CONT1,F
GOTO AJA1
RETURN
INICIO BSF STATUS,5
CLRF TRISD
CLRF TRISC
BCF STATUS,5
MOVLW 0x1F
MOVWF VUELTA1
INICIO2 CLRF PORTC
CLRF PORTD
CALL RETA2
CALL RETA2
MOVLW b'11111110' ;PONER TIERRA EN ULTIMA COLUMNA...prende primer punto
MOVWF PORTD
MOVLW b'0000001' ;prende la primera fila de arriba hacia abajo
MOVWF PORTC
CALL RETA2
CALL RETA2
T1 MOVLW b'11111110'
MOVWF PORTD
MOVLW b'0000001' ; PRIMER punto
MOVWF PORTC
CALL RETARDO
MOVLW b'11111101' ; ACTIVAR LA COLUMna 2
MOVWF PORTD
MOVLW b'0000001' ; PRENDE EL segundo punto
MOVWF PORTC
CALL RETARDO
DECFSZ VUELTA1,F
GOTO T1
MOVLW 0X1F
MOVWF VUELTA1
T2 MOVLW b'11111110' ; PONER TIERRA A ULTIMA COLUMNA PARA PRENder el primer punto
MOVWF PORTD
MOVLW b'0000001' ;PRENDE el primer punto
MOVWF PORTC
CALL RETARDO
MOVLW b'11111101' ; VOLVER A PRENDER la segunda columna
MOVWF PORTD
MOVLW b'0000001' ;PRENDE El segundo punto
MOVWF PORTC
CALL RETARDO
MOVLW b'11111011' ; ACTIVA la tercer columna
MOVWF PORTD
MOVLW b'0000001' ;activa el tercer punto
MOVWF PORTC
CALL RETARDO
DECFSZ VUELTA1,F
GOTO T2
MOVLW 0X1F
MOVWF VUELTA1
parte donde ya salta a la segunda pagina o pagina1
R2 MOVLW b'10111111' ; ACTIVA EL PALO DE R
MOVWF PORTD
MOVLW b'1111111' ;LO ACTIVA
MOVWF PORTC
PAGESEL RETARDO
CALL RETARDO
MOVLW b'11011111' ; ACTIVA DOS PUNTOS DE R
MOVWF PORTD
MOVLW b'0001001' ;LOS ACTIVA
MOVWF PORTC
PAGESEL RETARDO
CALL RETARDO
MOVLW b'11101111' ; ACTIVA OTROS DOS PUNTOS DE R
MOVWF PORTD
MOVLW b'0011001' ;LOS ACTIVA
MOVWF PORTC
PAGESEL RETARDO
CALL RETARDO
MOVLW b'11110111' ; ACTIVA TRES PUNTOS DE LA R
MOVWF PORTD
MOVLW b'0100110' ;LOS ACTIVA
MOVWF PORTC
PAGESEL RETARDO
CALL RETARDO
MOVLW b'11111011' ; ACTIVA EL ULTIMO PUNTO DE LA R
MOVWF PORTD
MOVLW b'1000000' ;LOS ACTIVA
MOVWF PORTC
PAGESEL RETARDO
CALL RETARDO
MOVLW b'11111110' ; ACTIVA EL PALO DE LA SEGUNDA E
MOVWF PORTD
MOVLW b'1111110' ;LOS ACTIVA
MOVWF PORTC
PAGESEL RETARDO
CALL RETARDO
DECFSZ VUELTA1,F
GOTO R2
MOVLW 0X1F
MOVWF VUELTA
de esta forma lo estoy haciendo pero sigue =.
gracias