CONTROL CON HISTRESIS EN MICROCODE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
LCD_DREG PORTB
LCD_DBIT 4
LCD_RSREG PORTB
LCD_RSBIT 2
LCD_EREG PORTB
LCD_EBIT 1
DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
TRISA = 255
TRISC= 0
TRISD= 255
lm var byte
y VAR byte
set VAR byte
Y1 VAR byte
hist VAR byte
Y2 VAR byte
z VAR byte
lcdout $fe,1
pause 100
Lcdout "ESPE"
lcdout $fe,$c0,"CONTROL DIGITAL"
pause 300
inicio:
ADCIN 0,lm
ADCIN 1,set
ADCIN 2,hist
if PORTD.0=0 then
y=(20*lm)/51
y1=(20*set)/51
if y>y1 then
LOW PORTC.0
else
HIGH PORTC.0
endif
lcdout $fe,1
pause 100
Lcdout "LM35", DEC y, " C "
lcdout $fe,$c0,"SETPOINT= ",DEC y1,"C"
pause 300
else
y=(20*lm)/51
y1=(20*set)/51
y2=((20*hist)/51)
z=(y2*y1)/100
if (y1+z)<y then
LOW PORTC.0
endif
if (y1-z)>y then
HIGH PORTC.0
endif
lcdout $fe,1
pause 100
Lcdout "histe", DEC y2, " % "
lcdout $fe,$c0,"SETPOINT= ",DEC y1,"C"
pause 300
lcdout $fe,1
pause 100
Lcdout "lm35 ", DEC y, " C "
pause 300
endif
goto inicio