hola.he visto por aqui que hay gente con problemas al realizar una tabla que pase de los 255bytes.incluso mas pequeñas si la llamada a la tabla se realiza en medio del sector de alguna pagina de la eeprom.
por eso me he entretenido intentando buscar una solucion.y aunque puede que el tema este solucionado en el foro,he decidido realizar este programa para de paso aprender yo tambien.
en este programa he puesto una tabla de unos 1000 Bytes.sin problemas de que se desborde el contador de programa.ya que he usado un 12F675,pues he
usado toda la memoria eeprom de programa de que dispone este chip.
solo lo he probado con el MPLAB SIM y solo me ha dado dos problemas.
uno de ellos es que he tenido de disponer en la tabla un ORG 300.en el principio de la direccion 0x300.no se porque el simulador no me ha puesto peros en
las direcciones 0x100 o en la 0x200.como es una directiva del ensamblador,no nos va a ocupar ninguna posicion de memoria en la eeprom.
pero si que nos va a entorpecer a la hora de compilar nuestro programa.ya que vamos a tener que estar atentos a disponer en la tabla un org 300.
en el sitio adecuado para no desperdiciar espacio.y para que no nos de error al compilar.
otra cosa que me ha ocurrido.y que no se que puede ser,es que no puedo meter ningun dato en la direccion 1024 de la memoria de programa.
supongo que estara ocupada para algo interno del pic.
y abajo pongo el codigo.espero les sea de utilidad.
;*************************************************www.ingeniopic.com*******************************************************
; PROGRAMA : TABLAS
; Funcion : LECTURA DE TABLAS DE MAS DE 255 Bytes
;
;
; Revision : 1.0 24/07/2010 Programa para : PIC12F675
; CPU Clock : 4 MHz Reloj instruccion :
; WDT : Deshabilitado Tipo de reloj : IntRC
; Code Prot : OFF
;*****************************************************www.ingeniopic.com***************************************************
;FUNCIONAMIENTO DEL CIRCUITO:
;Para encender o apagar la luz se realizara una pulsacion breve sobre el pulsador.
;Si queremos entrar en el modo de regulacion,realizaremos una pulsacion larga (siempre que la luz este encendida)
LIST P=12F675 ;Se indica el modo de procesador
RADIX HEX ;Sistema de numeracion hexadecimal
INCLUDE "P12F675.inc"
;registros internos
__CONFIG _INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _MCLRE_OFF
ERRORLEVEL -302
CBLOCK 0x20 ;comienza el bloque de ram en la direccion 0x08
INDICE ;registro de direccionamiento de la tabla
TEMP_PCLATH ;temporal del PCLATH
TEMP_PCL ;temporal del PCL
ENDC ;fin del bloque de ram
BANK0 MACRO
BCF STATUS,RP0
ENDM
BANK1 MACRO
BSF STATUS,RP0
ENDM
;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>>
ORG 0x00 ;Inicio en el Vector de Reset
goto INICIO ;ir a la primera instruccion del programa
;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>
ORG 0X05
INICIO BANK0 ;selecciona banco 0
clrf GPIO ;inicializar GPIO
movlw 07h ;pines como E/S digitales
movwf CMCON ;aplica anterior instruccion
BANK1 ;selecciona banco 1
clrf ANSEL ;Digital I/O
clrf TRISIO ;pines de GPIO como salidas
BANK0 ;selecciona banco 0
clrf INTCON ;anula interrupciones
;<<<<<<<------------------------------------------------PROGRAMA PRINCIPAL---------------------------------------->>>>>>>>>>>>>>
PRINCIPAL movlw 0x00 ;sector donde esta la tabla ubicada(muy importante)
movwf PCLATH
sigue call TABLA ;salto a TABLA
movwf GPIO ;carga valor recivido de la tabla en puerto de salida
incf INDICE,F ;incrementa indice de tabla
goto sigue ;lee siguiente valor
TABLA movlw 0XFF ;valor final de sector
movwf TEMP_PCL ;temporal del PCL
movfw PCL ;carga en el acumulador direccion PC actual
subwf TEMP_PCL,F ;sumala al registro temporal del PCL
movlw D'8' ;sumale el valor 8
subwf TEMP_PCL,F ;al registro temporal PCL
movfw TEMP_PCL ;carga en W el contenido del registro temporal del PCL
xorwf INDICE,W ;compara si es igual al indice
btfsc STATUS,Z ;si es asi.(valor final del sector)
incf PCLATH,F ;incrementa PCLATH (para leer datos del siguiente sector)
movfw INDICE ;en caso contrario carga el contenido de INDICE en w
addwf PCL,f ;direcciona el valor a leer de la tabla.
retlw d'0'
retlw d'1'
retlw d'2'
retlw d'3'
retlw d'4'
retlw d'5'
retlw d'6'
retlw d'7'
retlw d'8'
retlw d'9'
retlw d'10'
retlw d'11'
retlw d'12'
retlw d'13'
retlw d'14'
retlw d'15'
retlw d'16'
retlw d'17'
retlw d'18'
retlw d'19'
retlw d'20'
retlw d'21'
retlw d'22'
retlw d'23'
retlw d'24'
retlw d'25'
retlw d'26'
retlw d'27'
retlw d'28'
retlw d'29'
retlw d'30'
retlw d'31'
retlw d'32'
retlw d'33'
retlw d'34'
retlw d'35'
retlw d'36'
retlw d'37'
retlw d'38'
retlw d'39'
retlw d'40'
retlw d'41'
retlw d'42'
retlw d'43'
retlw d'44'
retlw d'45'
retlw d'46'
retlw d'47'
retlw d'48'
retlw d'49'
retlw d'50'
retlw d'51'
retlw d'52'
retlw d'53'
retlw d'54'
retlw d'55'
retlw d'56'
retlw d'57'
retlw d'58'
retlw d'59'
retlw d'60'
retlw d'61'
retlw d'62'
retlw d'64'
retlw d'64'
retlw d'65'
retlw d'66'
retlw d'67'
retlw d'68'
retlw d'69'
retlw d'70'
retlw d'71'
retlw d'72'
retlw d'73'
retlw d'74'
retlw d'75'
retlw d'76'
retlw d'77'
retlw d'78'
retlw d'79'
retlw d'80'
retlw d'81'
retlw d'82'
retlw d'83'
retlw d'84'
retlw d'85'
retlw d'86'
retlw d'87'
retlw d'88'
retlw d'89'
retlw d'90'
retlw d'91'
retlw d'92'
retlw d'93'
retlw d'94'
retlw d'95'
retlw d'96'
retlw d'97'
retlw d'98'
retlw d'99'
retlw d'100'
retlw d'101'
retlw d'102'
retlw d'103'
retlw d'104'
retlw d'105'
retlw d'106'
retlw d'107'
retlw d'108'
retlw d'109'
retlw d'110'
retlw d'111'
retlw d'112'
retlw d'113'
retlw d'114'
retlw d'115'
retlw d'116'
retlw d'117'
retlw d'118'
retlw d'119'
retlw d'120'
retlw d'121'
retlw d'122'
retlw d'123'
retlw d'124'
retlw d'125'
retlw d'126'
retlw d'127'
retlw d'128'
retlw d'129'
retlw d'130'
retlw d'131'
retlw d'132'
retlw d'133'
retlw d'134'
retlw d'135'
retlw d'136'
retlw d'137'
retlw d'138'
retlw d'139'
retlw d'140'
retlw d'141'
retlw d'142'
retlw d'143'
retlw d'144'
retlw d'145'
retlw d'146'
retlw d'147'
retlw d'148'
retlw d'149'
retlw d'150'
retlw d'151'
retlw d'152'
retlw d'153'
retlw d'154'
retlw d'155'
retlw d'156'
retlw d'157'
retlw d'158'
retlw d'159'
retlw d'160'
retlw d'161'
retlw d'162'
retlw d'164'
retlw d'164'
retlw d'165'
retlw d'166'
retlw d'167'
retlw d'168'
retlw d'169'
retlw d'170'
retlw d'171'
retlw d'172'
retlw d'173'
retlw d'174'
retlw d'175'
retlw d'176'
retlw d'177'
retlw d'178'
retlw d'179'
retlw d'180'
retlw d'181'
retlw d'182'
retlw d'183'
retlw d'184'
retlw d'185'
retlw d'186'
retlw d'187'
retlw d'188'
retlw d'189'
retlw d'190'
retlw d'191'
retlw d'192'
retlw d'193'
retlw d'194'
retlw d'195'
retlw d'196'
retlw d'197'
retlw d'198'
retlw d'199'
retlw d'200'
retlw d'201'
retlw d'202'
retlw d'203'
retlw d'204'
retlw d'205'
retlw d'206'
retlw d'207'
retlw d'208'
retlw d'209'
retlw d'210'
retlw d'211'
retlw d'212'
retlw d'213'
retlw d'214'
retlw d'215'
retlw d'216'
retlw d'217'
retlw d'218'
retlw d'219'
retlw d'220'
retlw d'221'
retlw d'222'
retlw d'223'
retlw d'224'
retlw d'225'
retlw d'226'
retlw d'227'
retlw d'228'
retlw d'229'
retlw d'230'
retlw d'231'
retlw d'232'
retlw d'233'
retlw d'234'
retlw d'235'
retlw d'236'
retlw d'237'
retlw d'238'
retlw d'239'
retlw d'240'
retlw d'241'
retlw d'242'
retlw d'243'
retlw d'244'
retlw d'245'
retlw d'246'
retlw d'247'
retlw d'248'
retlw d'249'
retlw d'250'
retlw d'251'
retlw d'252'
retlw d'253'
retlw d'254'
retlw d'255'
retlw d'0'
retlw d'1'
retlw d'2'
retlw d'3'
retlw d'4'
retlw d'5'
retlw d'6'
retlw d'7'
retlw d'8'
retlw d'9'
retlw d'10'
retlw d'11'
retlw d'12'
retlw d'13'
retlw d'14'
retlw d'15'
retlw d'16'
retlw d'17'
retlw d'18'
retlw d'19'
retlw d'20'
retlw d'21'
retlw d'22'
retlw d'23'
retlw d'24'
retlw d'25'
retlw d'26'
retlw d'27'
retlw d'28'
retlw d'29'
retlw d'30'
retlw d'31'
retlw d'32'
retlw d'33'
retlw d'34'
retlw d'35'
retlw d'36'
retlw d'37'
retlw d'38'
retlw d'39'
retlw d'40'
retlw d'41'
retlw d'42'
retlw d'43'
retlw d'44'
retlw d'45'
retlw d'46'
retlw d'47'
retlw d'48'
retlw d'49'
retlw d'50'
retlw d'51'
retlw d'52'
retlw d'53'
retlw d'54'
retlw d'55'
retlw d'56'
retlw d'57'
retlw d'58'
retlw d'59'
retlw d'60'
retlw d'61'
retlw d'62'
retlw d'64'
retlw d'64'
retlw d'65'
retlw d'66'
retlw d'67'
retlw d'68'
retlw d'69'
retlw d'70'
retlw d'71'
retlw d'72'
retlw d'73'
retlw d'74'
retlw d'75'
retlw d'76'
retlw d'77'
retlw d'78'
retlw d'79'
retlw d'80'
retlw d'81'
retlw d'82'
retlw d'83'
retlw d'84'
retlw d'85'
retlw d'86'
retlw d'87'
retlw d'88'
retlw d'89'
retlw d'90'
retlw d'91'
retlw d'92'
retlw d'93'
retlw d'94'
retlw d'95'
retlw d'96'
retlw d'97'
retlw d'98'
retlw d'99'
retlw d'100'
retlw d'101'
retlw d'102'
retlw d'103'
retlw d'104'
retlw d'105'
retlw d'106'
retlw d'107'
retlw d'108'
retlw d'109'
retlw d'110'
retlw d'111'
retlw d'112'
retlw d'113'
retlw d'114'
retlw d'115'
retlw d'116'
retlw d'117'
retlw d'118'
retlw d'119'
retlw d'120'
retlw d'121'
retlw d'122'
retlw d'123'
retlw d'124'
retlw d'125'
retlw d'126'
retlw d'127'
retlw d'128'
retlw d'129'
retlw d'130'
retlw d'131'
retlw d'132'
retlw d'133'
retlw d'134'
retlw d'135'
retlw d'136'
retlw d'137'
retlw d'138'
retlw d'139'
retlw d'140'
retlw d'141'
retlw d'142'
retlw d'143'
retlw d'144'
retlw d'145'
retlw d'146'
retlw d'147'
retlw d'148'
retlw d'149'
retlw d'150'
retlw d'151'
retlw d'152'
retlw d'153'
retlw d'154'
retlw d'155'
retlw d'156'
retlw d'157'
retlw d'158'
retlw d'159'
retlw d'160'
retlw d'161'
retlw d'162'
retlw d'164'
retlw d'164'
retlw d'165'
retlw d'166'
retlw d'167'
retlw d'168'
retlw d'169'
retlw d'170'
retlw d'171'
retlw d'172'
retlw d'173'
retlw d'174'
retlw d'175'
retlw d'176'
retlw d'177'
retlw d'178'
retlw d'179'
retlw d'180'
retlw d'181'
retlw d'182'
retlw d'183'
retlw d'184'
retlw d'185'
retlw d'186'
retlw d'187'
retlw d'188'
retlw d'189'
retlw d'190'
retlw d'191'
retlw d'192'
retlw d'193'
retlw d'194'
retlw d'195'
retlw d'196'
retlw d'197'
retlw d'198'
retlw d'199'
retlw d'200'
retlw d'201'
retlw d'202'
retlw d'203'
retlw d'204'
retlw d'205'
retlw d'206'
retlw d'207'
retlw d'208'
retlw d'209'
retlw d'210'
retlw d'211'
retlw d'212'
retlw d'213'
retlw d'214'
retlw d'215'
retlw d'216'
retlw d'217'
retlw d'218'
retlw d'219'
retlw d'220'
retlw d'221'
retlw d'222'
retlw d'223'
retlw d'224'
retlw d'225'
retlw d'226'
retlw d'227'
retlw d'228'
retlw d'229'
retlw d'230'
retlw d'231'
retlw d'232'
retlw d'233'
retlw d'234'
retlw d'235'
retlw d'236'
retlw d'237'
retlw d'238'
retlw d'239'
retlw d'240'
retlw d'241'
retlw d'242'
retlw d'243'
retlw d'244'
retlw d'245'
retlw d'246'
retlw d'247'
retlw d'248'
retlw d'249'
retlw d'250'
retlw d'251'
retlw d'252'
retlw d'253'
retlw d'254'
retlw d'255'
retlw d'0'
retlw d'1'
retlw d'2'
retlw d'3'
retlw d'4'
retlw d'5'
retlw d'6'
retlw d'7'
retlw d'8'
retlw d'9'
retlw d'10'
retlw d'11'
retlw d'12'
retlw d'13'
retlw d'14'
retlw d'15'
retlw d'16'
retlw d'17'
retlw d'18'
retlw d'19'
retlw d'20'
retlw d'21'
retlw d'22'
retlw d'23'
retlw d'24'
retlw d'25'
retlw d'26'
retlw d'27'
retlw d'28'
retlw d'29'
retlw d'30'
retlw d'31'
retlw d'32'
retlw d'33'
retlw d'34'
retlw d'35'
retlw d'36'
retlw d'37'
retlw d'38'
retlw d'39'
retlw d'40'
retlw d'41'
retlw d'42'
retlw d'43'
retlw d'44'
retlw d'45'
retlw d'46'
retlw d'47'
retlw d'48'
retlw d'49'
retlw d'50'
retlw d'51'
retlw d'52'
retlw d'53'
retlw d'54'
retlw d'55'
retlw d'56'
retlw d'57'
retlw d'58'
retlw d'59'
retlw d'60'
retlw d'61'
retlw d'62'
retlw d'64'
retlw d'64'
retlw d'65'
retlw d'66'
retlw d'67'
retlw d'68'
retlw d'69'
retlw d'70'
retlw d'71'
retlw d'72'
retlw d'73'
retlw d'74'
retlw d'75'
retlw d'76'
retlw d'77'
retlw d'78'
retlw d'79'
retlw d'80'
retlw d'81'
retlw d'82'
retlw d'83'
retlw d'84'
retlw d'85'
retlw d'86'
retlw d'87'
retlw d'88'
retlw d'89'
retlw d'90'
retlw d'91'
retlw d'92'
retlw d'93'
retlw d'94'
retlw d'95'
retlw d'96'
retlw d'97'
retlw d'98'
retlw d'99'
retlw d'100'
retlw d'101'
retlw d'102'
retlw d'103'
retlw d'104'
retlw d'105'
retlw d'106'
retlw d'107'
retlw d'108'
retlw d'109'
retlw d'110'
retlw d'111'
retlw d'112'
retlw d'113'
retlw d'114'
retlw d'115'
retlw d'116'
retlw d'117'
retlw d'118'
retlw d'119'
retlw d'120'
retlw d'121'
retlw d'122'
retlw d'123'
retlw d'124'
retlw d'125'
retlw d'126'
retlw d'127'
retlw d'128'
retlw d'129'
retlw d'130'
retlw d'131'
retlw d'132'
retlw d'133'
retlw d'134'
retlw d'135'
retlw d'136'
retlw d'137'
retlw d'138'
retlw d'139'
retlw d'140'
retlw d'141'
retlw d'142'
retlw d'143'
retlw d'144'
retlw d'145'
retlw d'146'
retlw d'147'
retlw d'148'
retlw d'149'
retlw d'150'
retlw d'151'
retlw d'152'
retlw d'153'
retlw d'154'
retlw d'155'
retlw d'156'
retlw d'157'
retlw d'158'
retlw d'159'
retlw d'160'
retlw d'161'
retlw d'162'
retlw d'164'
retlw d'164'
retlw d'165'
retlw d'166'
retlw d'167'
retlw d'168'
retlw d'169'
retlw d'170'
retlw d'171'
retlw d'172'
retlw d'173'
retlw d'174'
retlw d'175'
retlw d'176'
retlw d'177'
retlw d'178'
retlw d'179'
retlw d'180'
retlw d'181'
retlw d'182'
retlw d'183'
retlw d'184'
retlw d'185'
retlw d'186'
retlw d'187'
retlw d'188'
retlw d'189'
retlw d'190'
retlw d'191'
retlw d'192'
retlw d'193'
retlw d'194'
retlw d'195'
retlw d'196'
retlw d'197'
retlw d'198'
retlw d'199'
retlw d'200'
retlw d'201'
retlw d'202'
retlw d'203'
retlw d'204'
retlw d'205'
retlw d'206'
retlw d'207'
retlw d'208'
retlw d'209'
retlw d'210'
retlw d'211'
retlw d'212'
retlw d'213'
retlw d'214'
retlw d'215'
retlw d'216'
retlw d'217'
retlw d'218'
retlw d'219'
retlw d'220'
retlw d'221'
retlw d'222'
retlw d'223'
ORG 300
retlw d'224'
retlw d'225'
retlw d'226'
retlw d'227'
retlw d'228'
retlw d'229'
retlw d'230'
retlw d'231'
retlw d'232'
retlw d'233'
retlw d'234'
retlw d'235'
retlw d'236'
retlw d'237'
retlw d'238'
retlw d'239'
retlw d'240'
retlw d'241'
retlw d'242'
retlw d'243'
retlw d'244'
retlw d'245'
retlw d'246'
retlw d'247'
retlw d'248'
retlw d'249'
retlw d'250'
retlw d'251'
retlw d'252'
retlw d'253'
retlw d'254'
retlw d'255'
retlw d'0'
retlw d'1'
retlw d'2'
retlw d'3'
retlw d'4'
retlw d'5'
retlw d'6'
retlw d'7'
retlw d'8'
retlw d'9'
retlw d'10'
retlw d'11'
retlw d'12'
retlw d'13'
retlw d'14'
retlw d'15'
retlw d'16'
retlw d'17'
retlw d'18'
retlw d'19'
retlw d'20'
retlw d'21'
retlw d'22'
retlw d'23'
retlw d'24'
retlw d'25'
retlw d'26'
retlw d'27'
retlw d'28'
retlw d'29'
retlw d'30'
retlw d'31'
retlw d'32'
retlw d'33'
retlw d'34'
retlw d'35'
retlw d'36'
retlw d'37'
retlw d'38'
retlw d'39'
retlw d'40'
retlw d'41'
retlw d'42'
retlw d'43'
retlw d'44'
retlw d'45'
retlw d'46'
retlw d'47'
retlw d'48'
retlw d'49'
retlw d'50'
retlw d'51'
retlw d'52'
retlw d'53'
retlw d'54'
retlw d'55'
retlw d'56'
retlw d'57'
retlw d'58'
retlw d'59'
retlw d'60'
retlw d'61'
retlw d'62'
retlw d'64'
retlw d'64'
retlw d'65'
retlw d'66'
retlw d'67'
retlw d'68'
retlw d'69'
retlw d'70'
retlw d'71'
retlw d'72'
retlw d'73'
retlw d'74'
retlw d'75'
retlw d'76'
retlw d'77'
retlw d'78'
retlw d'79'
retlw d'80'
retlw d'81'
retlw d'82'
retlw d'83'
retlw d'84'
retlw d'85'
retlw d'86'
retlw d'87'
retlw d'88'
retlw d'89'
retlw d'90'
retlw d'91'
retlw d'92'
retlw d'93'
retlw d'94'
retlw d'95'
retlw d'96'
retlw d'97'
retlw d'98'
retlw d'99'
retlw d'100'
retlw d'101'
retlw d'102'
retlw d'103'
retlw d'104'
retlw d'105'
retlw d'106'
retlw d'107'
retlw d'108'
retlw d'109'
retlw d'110'
retlw d'111'
retlw d'112'
retlw d'113'
retlw d'114'
retlw d'115'
retlw d'116'
retlw d'117'
retlw d'118'
retlw d'119'
retlw d'120'
retlw d'121'
retlw d'122'
retlw d'123'
retlw d'124'
retlw d'125'
retlw d'126'
retlw d'127'
retlw d'128'
retlw d'129'
retlw d'130'
retlw d'131'
retlw d'132'
retlw d'133'
retlw d'134'
retlw d'135'
retlw d'136'
retlw d'137'
retlw d'138'
retlw d'139'
retlw d'140'
retlw d'141'
retlw d'142'
retlw d'143'
retlw d'144'
retlw d'145'
retlw d'146'
retlw d'147'
retlw d'148'
retlw d'149'
retlw d'150'
retlw d'151'
retlw d'152'
retlw d'153'
retlw d'154'
retlw d'155'
retlw d'156'
retlw d'157'
retlw d'158'
retlw d'159'
retlw d'160'
retlw d'161'
retlw d'162'
retlw d'164'
retlw d'164'
retlw d'165'
retlw d'166'
retlw d'167'
retlw d'168'
retlw d'169'
retlw d'170'
retlw d'171'
retlw d'172'
retlw d'173'
retlw d'174'
retlw d'175'
retlw d'176'
retlw d'177'
retlw d'178'
retlw d'179'
retlw d'180'
retlw d'181'
retlw d'182'
retlw d'183'
retlw d'184'
retlw d'185'
retlw d'186'
retlw d'187'
retlw d'188'
retlw d'189'
retlw d'190'
retlw d'191'
retlw d'192'
retlw d'193'
retlw d'194'
retlw d'195'
retlw d'196'
retlw d'197'
retlw d'198'
retlw d'199'
retlw d'200'
retlw d'201'
retlw d'202'
retlw d'203'
retlw d'204'
retlw d'205'
retlw d'206'
retlw d'207'
retlw d'208'
retlw d'209'
retlw d'210'
retlw d'211'
retlw d'212'
retlw d'213'
retlw d'214'
retlw d'215'
retlw d'216'
retlw d'217'
retlw d'218'
retlw d'219'
retlw d'220'
retlw d'221'
retlw d'222'
END