
Originally Posted by
richard
[CODE]
this will work the pbp inline intermediate results are word sized
Code:
If temperature > (Tmax*100) then
rele=1
else
rele=0
Endif
I tried, but nothing changes
my code now is :
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
' -------- bit a bit controllo 0=output 1=input
INTCON = 0 ' NO INTERRUPT
ADCON1 = 001110 '
ADCON0 = 0101 'Disable Converter Module
ANSEL = 000001 'Disable Inputs Tranne AN0
OSCCON = 100000 'Internal RC set to 4MHZ
CMCON = 7
TRISA = 001111 ' impostazioni INP/OUT
TRISB = 000000 ' 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 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 ...
'===========================================================================
'===========================================================================
'===========================================================================
'***** 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
Dummy var word
DatoEE var byte
Tcomp VAR word
Grade var Byte
TimeOut var word ' Variable for SetUp Menu Time-Out
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:
'*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
'*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
for sample = 0 to 3
rele=1
pause 1000
rele=0
pause 1000
next sample
Lcdout $FE, 1 'Clear screen
temp = 0 'Clear temp register
temperature = 0 'Clear temperature register
sample = 1 'Clear sample register
samples = 0 'Clear samples register
'rele=0
main:
samples=0
FOR sample = 1 TO 20 'Take 20 samples
ADCIN 0, temp 'Read AN0 into temp variable
samples = samples + temp
PAUSE 40 ' 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," TEmpe", temperature
If temperature > (Tmax*100) then
rele=1
else
rele=0
Endif
goto main
Bookmarks