hola Amigos me llamo roberto y esta es mi primera vez en este foro la verdad que se me hizo demasiado interesante ya que yo e empezado a programar en CCS y e visto que haca tratan sobre ese lenguaje de programación y con muchas dudas y con mucha gente que sabe de este lenguaje quisiera ver si me pueden apoyar ya que estoy haciendo un pequeño proyecto que lee la temperatura pero despues de sierta condicion tiene que activar un motor, ya que en la simulacion si lo hace pero al momento de pasarlo a las pruebas fisicas pues no me funciona quisiera que me apoyaran por favor y gracias
"UTILIZO UN SENSOR LM35 Y UNA ETAPA DE POTENCIA PARA EL MOTOR L293"
ESTE ES MI PROGRAMA
#include <16F877A.h>
#device *=16
#device adc=10
#fuses NOWDT,XT, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, CPD, NOWRT
#use delay(clock=4000000)
#define use_portD_LCD TRUE
#include <LCD.c>
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#BYTE TRISB =0x86
#BYTE PORTB =0x06
#BYTE OPTION_REG =0x81
float CEL;
void Giro_Motor1(void)
{
bit_clear(portb,4);
if(bit_test(portB,0)==1)
bit_set(portB,4);
}
void Giro_Motor2(void)
{
bit_clear(portb,5);
if(bit_test(portB,1)==1)
bit_set(portB,5);
else
bit_clear(portb,5);
}
void main()
{
lcd_init();
setup_adc_ports(RA0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
set_adc_channel(0);
bit_clear(OPTION_REG,7);
bit_set(TRISB,0);
bit_set(TRISB,1);
bit_clear(TRISB,4);
bit_clear(PORTB,4);
bit_clear(TRISB,5);
bit_clear(PORTB,5);
printf(LCD_PUTC,"\f");
Lcd_gotoxy(1,1);
printf(LCD_PUTC,"3 IEC");
delay_ms(200);
Lcd_gotoxy(2,3);
printf(LCD_PUTC,"BIENVENIDO");
delay_ms(200);
printf(LCD_PUTC,"\f");
while(true)
{
printf(lcd_putc,"\fTEMPERATURA");
CEL=(float)read_adc()/2;
printf(lcd_putc,"\n%f",CEL);
delay_ms(800);
if(CEL>29 && CEL<34)
Giro_Motor1();
else
bit_clear(portB,4);
if(CEL>35 && CEL<39)
Giro_Motor2();
else
bit_clear(portB,5);
}
}