Está en la página 1de 2

//Definicin de pines del LCD

sbit LCD_RS at RB4_bit;


sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;
//Definicin de los TRIS del LCD
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
void main( void )
{
//Declaracin de variables.
unsigned int PreI,Radc1,Radc2,Radc3,Radc4,Radc5,Radc6;
char segundos, minutos, horas, contador;
float Pre, Pre1;
char Text[16],Text1[16],Text2[16],Text3[16];
// Configuracion puerto D.
TRISD=0;
PORTD=0;
TRISC=1;
PORTC=0;
//Inicio del LCD.
Lcd_Init();
//Borrado del cursor.
Lcd_Cmd(_LCD_CURSOR_OFF);
//Impresin de texto de inicio.
Lcd_Out( 1, 4, "INTELLIGENT");
Lcd_Out( 2, 6, "CARPET");
delay_ms(2000);
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out( 1, 4, "CARGANDO");
Lcd_Out( 2, 6, "DATOS");
delay_ms(2000);
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
//Impresin de texto de Variables.
Lcd_Out( 1, 1, "PESO:");
Lcd_Out( 2, 1, "HORA:");
while(1) //Bucle infinito.
{
//Lectura del canal 0 y Muestreo de datos para Promedio.
Radc1 = ADC_Read(0);
delay_ms(150);
Radc2 = ADC_Read(0);
delay_ms(150);
Radc3 = ADC_Read(0);
delay_ms(150);
Radc4 = ADC_Read(0);
delay_ms(150);
Radc5 = ADC_Read(0);
delay_ms(150);
Radc6 = ADC_Read(0);
delay_ms(150);
Pre = Radc1+Radc2+Radc3+Radc4+Radc5+Radc6/6;
Pre1 = 0.10861*Pre+10,5555;
//Se forza el resultado a la parte entera.
PreI = Pre1;
//Se convierte el nmero entero a una cadena de caracteres.
IntToStr( PreI, Text );
//Se imprime el resultado.
Lcd_Out( 1, 7, Text);
//Retardo de 100m segundos.
delay_ms(100);
//Sentencia if para SetPoint.
if (PreI=25)
PORTD.F0=1; //Prende el LED
else
PORTD.F0=0; //Apaga el Led
//Osilador para conteo de segundos.
PORTD.F1=1;
delay_ms(200);
PORTD.F1=0;
//Conteo de segundos.
if( Button(&PORTC, 0, 50, 1) )
segundos++;
INTF_bit=0;

if (segundos==60){
minutos++;
segundos=0;
}
if (minutos==60){
horas++;
minutos=0;
}
if (horas==24)
horas=0;
//Se convierte el nmero entero a una cadena de caracteres.
IntToStr( segundos++, Text1 );
IntToStr( minutos++, Text2 );
IntToStr( horas++, Text3 );
Lcd_Out( 2, 7, Text3);
Lcd_Out( 2, 9, Text2);
Lcd_Out( 2, 10, Text1);
delay_ms(10);
T0IF_bit=0;
}
}

También podría gustarte