Hola amigos pss soy un poco nuevo en esto de la programacion de pic´s pero le ee picado un poco el caso es que hice un programa en el MPLAB que es el control de encendido y apagado
de un ventilador por medio de un Lm35 pero lo programe para el pic18f4550 pero resulta que me pidieron ahora el mismo funcionamiento pero con un pic12f683 y no se
como hacer la conversion logia para que funcione o haga lo mismo que el programa que ya hice alguien puede ayudarme?????????
se lo agradeceria mucho..!! y aclaro solo conoscoo el lenguaje que maneja el MPLAB asi que estoy muy corto en conocimiento de programacion ojala que alguien pueda ayudarme :S
aqui les pongo el programa ojala que alguien pueda ayudarme..

#include <18f4550.h>
#device adc=10 //Usa resolución de 10 bits
#fuses HS,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT,PLL1,CPUDIV1
#use delay (clock=20000000)
#include <STDLIB.H>
#include <lcd.c>
#use standard_io (D)
void main (void)
{
float temper=0,medicion=0,vent=0;
lcd_init(); //Inicia LCD
lcd_putc(" Termometro\n"); //Saca texto
lcd_putc(" con LM35"); //Saca texto
delay_ms(2000);
lcd_putc("\f"); //Limpia pantalla
lcd_putc("Temperatura\n"); //Saca texto
lcd_putc("actual"); //Saca texto
delay_ms(1000);
lcd_gotoxy(13,2); //Acomoda cursor LCD
lcd_putc("oC");
while (1)
{
lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" "); //Limpia ese sector de pantalla
lcd_gotoxy(8,2); //Acomoda cursor LCD
setup_adc (adc_clock_internal);
setup_adc_ports (all_analog);
set_adc_channel (0); //Elige canal a medir RA0
delay_us (20);
medicion=read_adc (); //Hace conversión AD
setup_adc (adc_off); //Apaga ADC
vent=temper; //esto es para encender el ventilador si la temperatura pasa de 35º grados
if(vent>=35)
output_high(pin_a2);
if(vent<=30) //esto es para apagar el ventilador si la temperatura es 30º grados
output_low(pin_a2);
//temper=((medicion*0.0048875855327468))*100; //lectura del adc de la temperatura
temper=medicion*(0.488); //Pasa binario a °C
//////////////////////////////////////////////////////////////////////////////////
// el "0.48875" sale de dividir 5/1023 y el resultado de eso multiplicarlo por 100
// el 5 sale de los 5 voltios aplicado a el voltage de referencia, los 1023 salen
// de los 10 bit de resolucion del conversor analogico digital que seleccionamos.
// Si utlizaramos la resolucion de 8 bist del conversor analogico digital, la
// formula fuera (5/255)*100 ya que con 8 bits el numero maximo posible es de 0-255
//////////////////////////////////////////////////////////////////////////////////
printf(lcd_putc,"%02.1f",temper); //xxx.x °C
delay_ms (1000);
}
}