Me e reventado la cabeza tratando de hacer funcionar el siguiente código, me he iniciado en CSS hace algunas semanas y necesito que alguien que conozca sobre C++ y CSS, me diga o recomiende, el por que no me anda el código fuente en el Proteus.
Este es el código, es un termómetro, el LM35 debe registrar la temperatura, mayor a 40°C deben encenderse el cooler y el led TH(Temp. High) y apagarse el led TL(Temp. Low), la idea es montarlo en una PC.
#include <16F887.h>
#fuses XT,NOWDT
#device adc=10
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8)//Puerto Serial. Eliminar sino funciona.
#use fast_io(A)//Define los bancos de memoria automaticamente, solo hay que definir los set_tris_x.
#use fast_io(B)//D
#use fast_io(D)//D
/////////////////////////////////////////////////////////////
#define use_portb_lcd TRUE
#define lcd_ENABLE_pin pin_b0
#define lcd_RW_pin pin_b1
#define lcd_RS_pin pin_b2
#define lcd_DATA4 pin_b3
#define lcd_DATA5 pin_b4
#define lcd_DATA6 pin_b5
#define lcd_DATA7 pin_b6
#include <lcd.c> //Siempre colocar la librería lcd.c despues de definir sus pines.
/////////////////////////////////////////////////////////////
#define TL pin_d5//ledl variable
#define TH pin_d6//ledh variable
#define COOLER pin_d7//cooler variable
/////////////////////////////////////////////////////////////
float T;
int i;
void main(){
set_tris_a(0b00000001);//Seteo de puertos, se debe realizar al usar "use fast_io".
set_tris_b(0b00000000);//S
set_tris_d(0b00000000);//S
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_INTERNAL);
setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
set_adc_channel(0);
////////////////////////////////////////////////////////////
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"Cargando...");
for(i=1;i<16;++i){
lcd_gotoxy(i,2);
printf(lcd_putc,"*");
delay_ms(500);
}
printf(lcd_putc,"\f");
delay_ms(200);
lcd_gotoxy(5,1);
printf(lcd_putc,"SENSOR");
delay_ms(1000);
printf(lcd_putc,"\f");
while(true){
T=(float)read_adc()/2;
lcd_gotoxy(5,1);
printf(lcd_putc,"%f",T);
lcd_gotoxy(14,1);
printf(lcd_putc,"Grados C°");
delay_ms(500);
////////////////////////////////////////////////////////////
if(T<=150&&T>=40){
output_high(COOLER);
output_high(TH);
output_low(TL);
lcd_gotoxy(5,2);
printf(lcd_putc,"Disipando Calor");
delay_ms(350);
}
else{
output_low(COOLER);//
output_low(TH);//
output_high(TL);//
lcd_gotoxy(5,2);
printf(lcd_putc,"Función Normal");
delay_ms(350);
}
}
}
Desde ya muchas gracias a los que comenten.......