PROYECTOS » control de temperatura
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 22/03/2022 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
INCLUDE "MODEDEFS.BAS"
DEFINE LCD_DREG PORTD 'CONFIGURACION DE LCD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 1
TRISA = %00001111 ' PORTA.0 ... PORTA.4 ENTREDAS
TRISE = %00000011 ' PORTA B TODAS SALIDAS
'******DEFINICION DE ALIAS******
SALIDA VAR PORTC.0
'*****DEFINICION DE VARIABLES*****
T VAR WORD : TL VAR WORD : TH VAR WORD
SP VAR WORD : SPL VAR WORD : SPH VAR WORD
'*****INICIO DE PROGRAMA******
INICIO:
PAUSE 500 'ESPERA 0.5 SEG. PARA INICIAR LCD
LCDOUT $FE, 1, " FACFYM - UNPRG " 'SALUDO INICIAL
LCDOUT $FE,$C0,"CONTROL TEMP GE" 'SALUDO INICIAL
PAUSE 1500 'ESPERA 1.5 SEG
ADCON1 = $02 'SEL AN0...AN4 COMO ENTRADAS ANALOGICAS
GOTO PRINCIPAL 'SALTO A SUBRUTINA PRINCIPAL
END
'*****PROGRAMA PRINCIPAL*******
PRINCIPAL:
GOSUB TEMPERATURA 'SALTO A SUBRUTINA TEMPERATURA
GOSUB SETPOINT 'SALTO A SUBRUTINA SETPOINT
GOSUB CONTROL 'SALTO A SUBRUTINA CONTROL
LCDOUT $FE, 1, "SET POINT = ",DEC SP," C" 'VISUALIZA VALORES
LCDOUT $FE,$C0,"TEMPERATURA = ",DEC T,"C" 'VISUALIZA VALORES
PAUSE 250 'ESPERA 250 MILISEGUNDOS
TOGGLE PORTB.7 'ALTERNA EL ESTADO DEL LED OPER
GOTO PRINCIPAL 'SALTA A SUBRUTINA PRINCIPAL
END
'*****SUBRUTINAS PARA LEER ADC****
TEMPERATURA:
ADCON0 = $41 '$01000001: FOSC/8;ACTUIVA CANAL 0 ,JUST IZQU.
GOSUB ESPERA 'SALTA A SUBRUTINA ESPERA
TH=ADRESH*4 'DEZPLAZA EL REG ADRESH 2 BITS IZQUIERDA
TL=ADRESL/64 'DESPLAZA EL REG ADRESL 6 BITS DERECHA
T=TH+TL 'FORMA EL DATO TEMPERATURA DE 10 BITS
T=T/2 'LM 0-1V ; VALOR T:0-205 :1023/5
RETURN
SETPOINT:
ADCON0 = $49 'ACTIVA CANAL 1
GOSUB ESPERA 'SALTA A SUBRUTINA ESPERA
SPH=ADRESH*4 'DEZPLAZA EL REG ADRESH 2 BITS IZQUIERDA
SPL=ADRESL/64 'DESPLAZA EL REG ADRESL 6 BITS DERECHA
SP=SPH+SPL 'FORMA EL DATO SETPOINT DE 10 BITS
SP=SP/10 'CONVIERTE VALOR DE SETPOINT DE 0 A 100 C
RETURN
ESPERA:
PAUSEUS 50 'ESPERA 50 MICROSEGUNDOS
ADCON0.2 = 1 'INICIA LA CONVERSION
PAUSEUS 50 'ESPERA PARA TERMINAR LA CONVERSION
RETURN
CONTROL:
IF T>SP THEN
LOW SALIDA 'DESACTIVA SALIDA
ELSE
HIGH SALIDA 'ACTIVA SALIDA
ENDIF
PAUSE 1000
RETURN