Hola amigos:
Imaginemos un lm35 marcando la temperatura en ascenso y cuando deje de subir pare el programa o realice un evento como encender un led he probado esto y como que no, me marca bien la temperatura en lcd pero de encender el led nada de nada. De antemano Gracias.
INCLUDE "modedefs.bas"
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE OSC 4
; PARÁMETROS DEL ADC
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
; VARIABLES
RES VAR WORD
VAL var word
led var portb.3
bajo var word
TEMP1 VAR byte 'variable de 256
TRISA = 1 'puerto a como entrada
TRISB = 0 'puerto b como salida
PAUSE 500 ' creo 0,5 seg para el lcd esta bien
ADCON1 = %10001110
ADCON0 = %11000001
LCDOUT $FE, 1
INICIO:
; INICIAR CONVERSIÓN
ADCIN 0, RES ; LEER EL CANAL A
TEMP1 = 488 * RES ; 1024*488=499712;
VAL = div32 10
LCDOUT $FE,1,"TEMP = ",DEC VAL DIG 3,DEC VAL DIG 2,".",DEC VAL DIG 1, DEC VAL DIG 0,$DF,"C" ; MOSTRAR RESULTADO
PAUSE 500 ; PAUSA 0.5 SEGUNDOS
SEROUT PORTb.0,n2400,[#VAL]
Bajo = val
Pause 2000
If bajo < val then goto rojo
GOTO INICIO
rojo:
high led
pause 10000
low led
GOTO INICIO
END