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