mira este programa que hice en BasicAtom que es el programador que utilice, los valores de la tabla se guarda en la FLAHS donde se guarda el programa no en la EEPROM, lo unico malo es q una vez almacenada los valores en la tabla no se pueden modificar con el pic corriendo!, para modificarlo tienes q quemar el pic de nuevo. El programa es para obtener el valor de la temperatura introduciendo la resistencia de una PT-100.
'Variables
tablaresis wordtable 10000,10198,10396,10593,10790,10986,11183,11379,11575,11770,|
11966,12161,12355,12550,12744,12937,13131,13324,13517,13710,|
13902,14094,14286,14477,14668,14859,15050,15240,15430,15620,|
15809,15998,16187,16375,16564,16752,16939,17127,17314,17687,0
tablatemp bytetable 0,5,10,15,20,25,30,35,40,45,|
50,55,60,65,70,75,80,85,90,95,|
100,105,110,115,120,125,130,135,140,145,|
150,155,160,165,170,175,180,185,190,200,0
resmed var word 'Resistencia que se pide por teclado
selec var byte 'es por tabla o por calculo float
pos var byte 'Posicion del vector en la tabla
postable var byte 'posicion de la tabla
a var bit
temp var sword
'--------------------------------------------------------------------------------
Principal:
gosub pantini 'Ve a la Función pantalla inicio
gosub calc 'Ve a la parte de Calculos
gosub pantfi 'Ve a la panatalla final
debugin [dec resmed]
GOTO Principal 'Repetir indefinidamente
end
'------------------------------------------------------------------------------
pantini: 'FUNCION PARA LA PANTALLA INICIO
debug [0,"UNEFA",10,13]
debug ["LABORATORIO DE uC",10,13]
debug ["INTEGRANTES: MIGUEL BRAVO CI: 16551287",10,13]
debug [" APONTE JUAN CI: NOTRABAJO",10,13,10,13]
debug [" CALCULO DE TEMPERATURA DE UNA SONDA TIPO PT100 DADA SU RESISTENCIA EN OHM",10,13]
debug ["==> CALCULO POR TABLA PULSE 0",10,13]
debug ["==> CALCULO POR MATEMATICA PULSE 1",10,13,10,13]
return
calc: 'FUNCIÓN PARA EL CALCULO DE LA RESISTENCIA
do
debug ["INTRODUZCA EL TIPO DE CALCULO :"]
debugin [dec selec]
while ((selec<0) OR (selec>1))
do
debug ["INTRODUZCA LA RESISTENCIA MEDIDA EN OHM :"]
debugin [dec resmed]
while ((resmed<10000) OR (resmed>17687))
if (selec=0) then 'seleccion por tablas
debug ["CALCULO POR TABLA:",10,13]
postable=0
a=0
do
if (resmed <= tablaresis(postable)) then
pos=postable-1
a=1
endif
postable=postable+1
while(a<>1)
endif
'Calculo
temp=tablatemp(pos+1)*100-((((-resmed+tablaresis(pos+1))*100))/(tablaresis(pos+1)-tablaresis(pos)))*(tablatemp(pos+1)-tablatemp(pos))
temp=temp/10
return
pantfi:
'debug ["Posicion en tabla es de:",dec pos,10,13]
'debug ["Valor min:",dec tablaresis(pos),10,13]
debug ["EL VALOR DE TEMPERATURA ES:",dec temp,10,13]
return
Cualquier cosa me avisas!!!...