Here is the code. Look at the comments, and modify the RAW number to number when the display show 30.0degC.
Code:define osc 4 adcon1.7=1 ANSEL = %000001 'Disable Inputs Tranne AN0 ADCON1 = %10001110 OSCCON = %01100000 'Internal RC set to 4MHZ TRISA = %00000001 ' impostazioni INP/OUT TRISB = %00000000 ' delle porte '---------------------------------------------------- DEFINE LCD_DREG PORTB 'Porta B DATA OUT DEFINE LCD_DBIT 4 '0 --> Bit 0-3 : 4 --> Bit 4-7 DEFINE LCD_RSREG PORTB 'LCD register select port - Porta B --> RS DEFINE LCD_RSBIT 2 'LCD register select bit - Pin RS B2 DEFINE LCD_EREG PORTB 'LCD enable port - Porta B --> EN DEFINE LCD_EBIT 3 'LCD enable bit - Pin EN B3DEFINE LCD_BITS 4 'LCD bus size 4 or 8 DEFINE LCD_LINES 2 'Number lines on LCD DEFINE LCD_COMMANDUS 2000 'Command delay time in us DEFINE LCD_DATAUS 50 'Data delay time in us Rele VAR PORTA.6 ' Pin 15 '-------------------------------------------------------------- '---------Define ADCin Parameters DEFINE ADC_BITS 10 'set number of bits in result DEFINE ADC_CLOCK 3 'set clock source (3=rc) DEFINE ADC_SAMPLEUS 50 'Set sampling time in uS ' RAM Assignments and Variables '=========================================================================== temp var word temperature var word samples var word sample VAR BYTE quanta con 1250 Tmax VAR byte Tmin VAR byte '=========================================================================== Tmin=16 Tmax=30 START: Lcdout $FE, 1 low rele main: sample = 1 samples= 0 FOR sample = 1 TO 20 'Take 20 samples ADCIN 0, temp 'Read AN0 into temp variable samples = samples + temp PAUSE 50 ' Wait 1/4 seconds per reading NEXT sample temp = samples/20 'Average over 20 samples (Every 5 seconds) temperature= temp */ quanta if temp > 675 then high rele 'Instead 675 write the correct RAW number for 30degC if temp < 675 then low rele 'Instead 675 write the correct RAW number for 30degC LCDOUT $FE, 2 ' ritorna al primo carattere lcdout $FE, 2, "Temp ",dec2 (temperature/10),".", dec1 (temperature/10),"C" 'lcdout $FE, $C0, "Tmin ",#Tmin, " Tmax ",#Tmax FOR NORMAL OPERATION UNCOMMENT LINE lcdout $FE, $C0, "RAW:",dec temp 'this show the ADC value FOR NORMAL OPERATION COMMENT OR DELETE THIS LINE 'When the display show 30,0 degC look at the RAW number on LCD and rewrite it in lines: if temp > 675 then high rele 'and if temp < 675 then low rele . goto main




Bookmarks