SALUDOS
este es el codigo
DEFIne osc 4
DEFINE LCD_DREG PORTB ' Setea el port de datos LCD
DEFINE LCD_DBIT 0 ' Setea el bit de comienzo de datos (0 o 4) si el bus es de 4-bit
DEFINE LCD_RSREG PORTC ' Setea el port LCD Register Select
DEFINE LCD_RSBIT 4 ' Setea el bit LCD Register Select
DEFINE LCD_EREG PORTC ' Setea el port LCD Enable
DEFINE LCD_EBIT 5 ' Setea el bit LCD Enable
DEFINE LCD_BITS 4 ' Setea el tamaño del bus LCD (4 o 8 bits)
DEFINE LCD_LINES 2 ' Setea el numero de lineas en el LCD
ACD VAR WORD
MAP VAR WORD
RPM VAR WORD
TRISB = %00000000
TRISA = %00001111 ' PORTA DEL BIT 7-1 SON LALIDAS Y EL BIT 0 ENTRADA
ADCON1 = %10000010 ' RESULTADOS JUTIFICAR A LA DERECHA Y EL BIT RA0 A RA4 COMO ENTRADO ANALOGICA
ADCON0 = %01011001 ' QUEDA CONF EL CLOCK FOSC/8 el modulo de A/D Y EP PUETO RA3 IN ANALOGICA
Pause 500 ' pausa de 500 ms
loop_2: ADCON0.2 = 1 'Start Conversion
Bucle_2: pause 5
if ADCON0.2 = 1 Then bucle_2 'wait for low on bit-2 of ADCON0, conversion finished
ACD.highbyte = ADRESH 'move HIGH byte of result to ADC
ACD.lowbyte = ADRESL 'move LOW byte of result to ADC
MAP = (50*ACD)/1023*100
LCDOUT $FE,1
IF PORTD.0=1 then nolcd
LCDOUT #MAp, " mV "
nolcd: IF RPM<910 then fallas1
PAUSE 100
GOTO LOOP_2
fallas1: if MAP=0 then MAProto
IF MAP>4000 THEN MAPalto
if MAP<300 THEN MAPbajo
goto loop_2
MAPalto: lcdout $fe,1, "VOLT S MAP ALTO "
LCDOUT $fe,$C0,"ERROR CODIGO 33 "
PAUSE 100
GOTO loop_2
MAPbajo: lcdout $fe,1, "VOLT S MAP BAJO"
LCDOUT $fe,$C0,"ERROR CODIGO 34 "
PAUSE 100
GOTO loop_2
MAProto: lcdout $fe,1, "SENSOR CON DEFCT"
LCDOUT $fe,$C0,"CHEQUEAR SEN MAP"
PAUSE 100
GOTO loop_2
END