Quote Originally Posted by louislouis View Post
Pplease post the whole code.
Code:
'****************************************************************
'*  Name    : 16F88_LM235.BAS                                   *
'*  Author  :                                    *
'*  Notice  : Copyright (c) 2020                                *
'*          : All Rights Reserved                               *
'*  Date    : 04/04/2020                                        *
'*  Version : 1.0                                               *
'*  
'****************************************************************
'PIC 16F88
'    Hardware Assignments
'    --------------------
' LCD circuitery
'01     - Vss (GND)
'02     - Vdd (+5V)
'08 RS  - PORTB.2
'09 E   - PORTB.3
'10 DB4 - PORTB.4
'11 DB5 - PORTB.5
'12 DB6 - PORTB.6
'13 DB7 - PORTB.7


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 B3


DEFINE 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


'    EEPROM Locations Codice ASCII es. a=97 b=98 c=99 ...
'=========================================================================== 
    DATA @0,16  '   16 Tenp min.
    DATA @1,30  '   30 Temp Max.
'=========================================================================== 


'===========================================================================
'*****  SETTAGGIO PORTE 


'      VAR      PORTA.0     'LM235M            Pin 17  
IncButton    VAR    PORTA.1     'SW          Pin 18
DecButton    VAR    PORTA.2     'SW          Pin 1
SetButton    VAR    PORTA.3     'SW          Pin 2     
'      VAR    PORTA.4     '                  Pin 3     
'      VAR    PORTA.5     '                  Pin 4
Rele   VAR    PORTA.6     '                  Pin 15
'      VAR    PORTA.7     '                  Pin 16 
'-----------------------------------------------
'       Var       PORTB.0   '                   Pin  6
'       var    PORTB.1   '                   Pin  7
l_rs    var       PORTB.2   'LCD  sig. RS       Pin  8
l_en    Var    PORTB.3   'LCD sig. E         Pin  9
l_d4    var       PORTB.4   'LCD 4              Pin 10
l_d5    var    PORTB.5   'LCD 5              Pin 11
l_d6    var    PORTB.6   'LCD 6              Pin 12
l_d7    var    PORTB.7   'LCD 7              Pin 13


'--------------------------------------------------------------


'---------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
'===========================================================================        
CounterA    var byte    ' General purpose Variable
CounterB    var byte    ' General purpose Variable
CounterC    var byte    ' General purpose Variable
temp        var word
temperature var word
samples     var word 
Dummy       var word  
sample      VAR BYTE  
quanta      con 1250
DatoEE      var byte
Tmax        VAR Byte
Tmin        VAR Byte
Tcomp       VAR word
Grade       var Byte
TimeOut     var word    ' Variable for SetUp Menu Time-Out
'===========================================================================




 
START:
'*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
'*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~


' --------  bit a bit controllo 0=output  1=input


INTCON = 0           ' NO INTERRUPT
ADCON1 = 001110   '
ADCON0=  000101   'Disable Converter Module
while !adcon0.0:wend ' Attende che il convertitore sia spento prima di fare il resto 
ANSEL  = 000001   'Disable Inputs Tranne AN0
OSCCON = 100000   'Internal RC set to 4MHZ
CMCON  = 7           '
        '76543210 
TRISA  = 111111   ' impostazioni INP/OUT
TRISB  = 000000   ' delle porte  
'----------------------------------------------------


' Per utilizare i pin RA6 ed RA7 come I/O bisogna impostare lo switch in fase 
' di programmazione Oscillotar come "INTRC_IO"
  PORTA.6=0  





'    Leggi Dati dalla EEPROM
'=========================================================================== 
 Read 0,DatoEE
 Tmin=DatoEE


 Read 1,DatoEE
 Tmax=DatoEE                                                                 
'=========================================================================== 
    
Lcdout $FE, 1           'Clear screen


MAIN:


'Subroutine to measure temp
'----------------------------------------------------
TEMP_READ:                          
temp = 0                            'Clear temp register
temperature = 0                     'Clear temperature register 
sample = 0                          'Clear sample register 
samples = 0                         'Clear samples register


do
sample = 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*10) */ quanta       
  
   
    Pause 200        ' Timeout for LCD to settle
    LCDOUT $FE, 1   ' cancella LCD   
    LCDOUT $FE, 2   ' ritorna al primo carattere  
    lcdout $FE, 2,   "Temp. ",dec2 (temperature/100),".", dec1 (temperature//100),$DF,"C "
    lcdout $FE, $C0, "Tmin ",#Tmin DIG 1,#Tmin Dig 0," Tmax ",#Tmax DIG 1,#Tmax Dig 0
    




    If temperature> TMax then 
      PORTA.6=1 
    else 
      PORTA.6=0 
    Endif


    'lcdout $FE, $C0, "Tmax ",#Tmax DIG 1,#Tmax Dig 0," Tco ",dec2 (Tcomp/100),".", dec1 (Tcomp//100)
loop


goto MAIN
'*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
'*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~