PROYECTOS » sensores con LCD
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 15/03/2022 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
INCLUDE "MODEDEFS.BAS"
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 1
TRISA = %00001111
TRISE = %00000011
T VAR WORD : TL VAR WORD : TH VAR WORD
D VAR WORD : DL VAR WORD : DH VAR WORD
L VAR WORD : LL VAR WORD : LH VAR WORD
P VAR WORD : PL VAR WORD : PH VAR WORD
I VAR BYTE
F VAR BYTE
INICIO:
PAUSE 500
LCDOUT $FE, 1, " FACFYM-UNPRG "
LCDOUT $FE,$C0," GRUPO E "
PAUSE 1500
ADCON1 = $02
HIGH PORTB.7
GOTO PRINCIPAL
END
PRINCIPAL:
GOSUB TEMPERATURA
GOSUB DISTANCIA
GOSUB LDR
GOSUB POTENCIOMETRO
GOSUB INTERRUPTOR
GOSUB FOTODIODO
LCDOUT $FE, 1, "T=",DEC T," D=",DEC D," L=",DEC L
LCDOUT $FE,$C0,"P=",DEC P," I=",DEC I," F=",DEC F
PAUSE 250
TOGGLE PORTB.7
GOTO PRINCIPAL
END
TEMPERATURA:
ADCON0 = $41
GOSUB ESPERA
TH=ADRESH*4
TL=ADRESL/64
T=TH+TL
t=t/2
RETURN
DISTANCIA:
ADCON0 = $49
GOSUB ESPERA
DH=ADRESH*4
DL=ADRESL/64
D=DH+DL
RETURN
LDR:
ADCON0 = $51
GOSUB ESPERA
LH=ADRESH*4
LL=ADRESL/64
L=LH+LL
RETURN
POTENCIOMETRO:
ADCON0 = $59
GOSUB ESPERA
PH=ADRESH*4
PL=ADRESL/64
P=PH+PL
RETURN
INTERRUPTOR:
IF PORTE.0=1 THEN
I=1
ELSE
I=0
ENDIF
RETURN
FOTODIODO:
IF PORTE.1=1 THEN
F=0
ELSE
F=1
ENDIF
RETURN
ESPERA:
PAUSEUS 50
ADCON0.2 = 1
PAUSEUS 50
RETURN