Hola.
Bueno....... no entiendo muy bien tu pregunta "a la hora de diseño".
Creo que lo que quieres decir es cuando apena vas a programar el µicro.
Si es asi pues no es tan complicado, solo utiliza la instrucción DATA.
Aquí te va el manual:
5.11. DATA
{Label} DATA {@Location,}Constant{,Constant...}
Store constants in on-chip non-volatile EEPROM when the device is first
programmed. If the optional Location value is omitted, the first DATA
statement starts storing at address 0 and subsequent statements store at
the following locations. If the Location value is specified, it denotes the
starting location where these values are stored. An optional Label (not
followed by a colon) can be assigned to the starting EEPROM address
for later reference by the program.
Constant can be a numeric constant or a string constant. Only the
least significant byte of numeric values are stored unless the WORD
modifier is used. Strings are stored as consecutive bytes of ASCII
values. No length or terminator is automatically added.
DATA only works with microcontrollers with on-chip EEPROM such as the
PIC12F675, 16F84, PIC16C84 and the PIC16F87x series. It will not work
on devices with on-chip I2C interfaced serial EEPROM like the 12CE67x
and 16CE62x parts. Since EEPROM is non-volatile memory, the data
will remain intact even if the power is turned off.
The data is stored in the EEPROM space only once at the time the
microcontroller is programmed, not each time the program is run. WRITE
can be used to set the values of the on-chip EEPROM at runtime. READ
is used to retrieve these stored DATA values at runtime.
‘ Store 10, 20 and 30 starting at location 4
DATA @4,10,20,30
‘ Assign a label to a word at the next location
dlabel DATA word $1234 ‘ Stores $34, $12
‘ Skip 4 locations and store 10 0s
DATA (4),0(10)
Como ves no es tan difícil.
Además el manual recomienda que una ves corriendo el programa ("tiempo real") utilices las instrucciones read y write. Bueno, read la usas para leer lo que escribiste con DATA.
Aqui te va un ejemplo que utilicé alguna ves:
Read 0,SPPISTON.BYTE0 ' LEE LA LOCALIDAD DE MEMORIA O
Read 1,SPPISTON.BYTE1 ' LEE LA LOCALIDAD DE MEMORIA 1
Read 2,SPTIEMPO.BYTE0 ' LEE LA LOCALIDAD DE MEMORIA 2
Read 3,SPTIEMPO.BYTE1 ' LEE LA LOCALIDAD DE MEMORIA 3
IF ENTER=1 Then DAT
Write 0,SPPISTON.BYTE0
Write 1,SPPISTON.BYTE1
IF REGRESAR=1 Then INICIO
GoTo SPDISTANCIA
PRODUCT1: LCDOut $FE,1, "TIEMPO DE EJECUCION"
LCDOut $fe,$C0,#SPTIEMPO
Pause 50
High HABTIEMPO
DATO1:
SerIn2 INDATOS2,16780,100,loop6,[DEC5 SPTIEMPO]
IF ENTER=1 Then DATO1
Write 2,SPTIEMPO.BYTE0
Write 3,SPTIEMPO.BYTE1
IF REGRESAR=1 Then INICIO
GoTo PRODUCT1
En el ejemplo no utilizo DATA porque es un sistema que el usuario puede configurar según sus necesidades, asi que no era necesario grabarle nada al µicro puesto que se calibraría después.
PD: el código quizá no te diga nada porque es un "copy paste" de secciones del programa utilizado asi que no tienen mucho sentido.
Lo de read pistón está al comienzo y lo de write va al último del programa.
Espero te sirva
d--(^_^)--b