Define CONF_WORD = 0x23c4
Define CONF_WORD_2 = 0x3eff
'Define CONF_WORD = 0x23e4
'Define CONF_WORD_2 = 0x3eff
Define CLOCK_FREQUENCY = 8 'Frecuencia del reloj en Mhz
'********************************************************************************************
'* NOMBRE PROGRAMA: Control de compresor rotativo *
'* AUTOR: Fermín C. Ruiz Martín VERSIÓN: 0.01 *
'* MICRO: 16F887 FECHA: 28.12.2010 *
'* DESCRIPCIÓN: Versión inicial *
'********************************************************************************************
'******************************** SECCIÓN DE DEFINES ****************************************
'***************************************************************************************************
Define SIMULATION_WAITMS_VALUE = 1 'Ignora los valores de Waitms. Solo habilitado para simulador
'***************************************************************************************************
'******************************** SECCIÓN DE ETIQUETAS *************************************
'******************************** SECCIÓN DE VARIABLES***************************************
'* En esta zona del programa se colacan las variables que puedan cambiar su valor durante
'*el discurrir de nuestro programa. Se realizan anteponiendo la palabra: DIM
'---------------------- Asignación de valores a las variables ------------------------------
'------------------ Reasignación de nombres a los pines del micro --------------------------
Symbol sobretemperatura = RD0 'entrada digital 2.
Symbol ac_ok = RA4 'entrada digital 7. Entrada de señal de 400v.
Symbol equipo_ok = RD2 'salida digita 1.Salida de estado del equipo.
Symbol fallo_st = RD3 'salida digita 2
Symbol contactor = RD7 'salida digita 6.
Symbol fallo_ac = RB0 'salida digita 7
Symbol fallo_secado = RB1 'salida digita 8
Symbol valvula_1 = RB2 'salida digita 9. Electroválvula de secado 1.
Symbol valvula_2 = RB3 'salida digita 10. Electroválvula de secado 2
'------------------------------ Definición de puertos -------------------------------------
AllDigital
'ANSEL = 0x00 'Los pin I/O digitales
OSCCON = 0x7e 'Set intrc To 8mhz, se usara reloj interno a 8Mh
TRISA = %11111111 'Puerto A los configurado como entradas digitales.
TRISB = %00000000 'Puerto B configurado como salidas digitales.
TRISD = %00000011 'Puerto D bits 0 y 1 entradas el resto salidas, todo digitales.
TRISE = %11111111 'Puerto E como entradas digitales.
'-------------------- Inicializacion de timers e interrupciones ---------------------------
main:
equipo_ok = 1
inicio:
contactor = 1 'solo para prueba
fallo_secado = 0 'solo para prueba
valvula_1 = 1 'solo para prueba
valvula_2 = 1 'solo para prueba
prueba_ac:
If ac_ok = 0 Then
fallo_ac = 1
contactor = 0
valvula_1 = 0
valvula_2 = 0
fallo_secado = 1
equipo_ok = 0
Goto prueba_ac
Else
fallo_ac = 0
equipo_ok = 1
Endif
prueba_st:
If sobretemperatura = 0 Then
fallo_st = 1
contactor = 0
valvula_1 = 0
fallo_secado = 1
equipo_ok = 0
Goto prueba_st
Else
fallo_st = 0
equipo_ok = 1
Endif
Goto inicio
'*********************************** FIN DEL PROGRAMA ***************************************
End 'Fin del programa