You are on page 1of 4

Programa del microcontrolador PIC18F2550

#include "FloatToChar.h"

sbit LCD_RS at RB2_bit;

sbit LCD_EN at RB3_bit;

sbit LCD_D7 at RB7_bit;

sbit LCD_D6 at RB6_bit;

sbit LCD_D5 at RB5_bit;

sbit LCD_D4 at RB4_bit;

sbit LCD_RS_Direction at TRISB2_bit;

sbit LCD_EN_Direction at TRISB3_bit;

sbit LCD_D7_Direction at TRISB7_bit;

sbit LCD_D6_Direction at TRISB6_bit;

sbit LCD_D5_Direction at TRISB5_bit;

sbit LCD_D4_Direction at TRISB4_bit;

bit boton;

#define VAL1 RC0_bit

#define VAL2 RC1_bit

#define ON 1

#define OFF 0

void interrupt(){

if(INTCON.INT0IF == 1){

boton = ~boton;

INTCON.INT0IF = 0; // Limpiar bandera de INT0

delay_ms(200);

}
void main()

int SENSOR1, SENSOR2, CONTROL1, CONTROL2,I1,I2,A1,A2,V1,V2;

float HUMEDAD1,HUMEDAD2,CHUMEDAD1,CHUMEDAD2;

char S1[15];

char S2[15];

char C1[15];

char C2[15];

TRISA = 0b00001111; // Entrada RA0.

TRISB = 0b00000000;

TRISC = 0b00000000;

OSCCON = 0b01110011; // Osc. interno f=8MHz

INTCON.INT0IE = 1; // Interrupción externa INT0 habilitada

INTCON.GIE = 1; // Habilita todas las interrupciones

INTCON2.INTEDG0 = 1; // INT0 en flanco de subida

Lcd_Init(); // Inicializar display

Lcd_Cmd(_LCD_CURSOR_OFF); // Ocultar el cursor.

boton=0;

I1=0;

I2=0;

while(1)

SENSOR1 = ADC_Read(2);delay_ms(4);

HUMEDAD1 = (100.0-SENSOR1/1024.0*100.0);

SENSOR2 = ADC_Read(3);delay_ms(4);

HUMEDAD2 = (100.0-SENSOR2/1024.0*100.0);
CONTROL1 = ADC_Read(0);delay_ms(4);

CHUMEDAD1 = (CONTROL1/1024.0*100.0);

CONTROL2 = ADC_Read(1);delay_ms(4);

CHUMEDAD2 = (CONTROL2/1024.0*100.0);

A1=CHUMEDAD1+15 ;

A2=CHUMEDAD2+15;

float2str(S1, HUMEDAD1, 1);

float2str(S2, HUMEDAD2, 1);

float2str(C1, CHUMEDAD1, 1);

float2str(C2, CHUMEDAD2, 1);

if(BOTON==0)

Lcd_Out(1, 1, "HUMEDAD1= ");

Lcd_Out(1, 9, "=");

Lcd_Out_CP(S1);

Lcd_Out(1, 15,"% ");

Lcd_Out(2, 1, "HUMEDAD2= ");

Lcd_Out(2, 9, "=");

Lcd_Out_CP(S2);

Lcd_Out(2, 15,"% ");

if(BOTON==1)

Lcd_Out(1, 1, "CONTROL1= ");

Lcd_Out(1, 9, "=");

Lcd_Out_CP(C1);

Lcd_Out(1, 15,"% ");

Lcd_Out(2, 1, "CONTROL2= ");

Lcd_Out(2, 9, "=");
Lcd_Out_CP(C2);

Lcd_Out(2, 15,"% ");

if(HUMEDAD1<=CHUMEDAD1)VAL1=1;

if(HUMEDAD2<=CHUMEDAD2)VAL2=ON;

if(HUMEDAD1>=A1)VAL1=0;

if(HUMEDAD2>=A2)VAL2=0;

delay_ms(2000);

You might also like