#include <16f877.h>
#device ADC=10
#fuses XT, NOWDT , NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=4000000)
#use fast_io(a)
#define use_PORTB_lcd TRUE
#include <lcd.c>
unsigned long int bilgi;
float voltaj, sicaklik;
void main ()
{
setup_psp(PSP_DISABLED) ; // FSP birimi devre dışı
setup_timer_1 (T1_DISABLED) ; // Tl zamanlayıcısı devre dışı
setup_timer_2 (T2_DISABLED,0,1) ; // T2 zamanlayıcısı devre dışı
setup_CCP1 (CCP_OFF) ; // CCP1 birimi devre dışı
setup_CCP2 (CCP_OFF) ; // CCP2 birimi devre dışı
set_tris_a(0x01) ; // RAO Giriş olarak yönlendiriliyor
setup_adc(adc_clock_div_32) ; // ADC clock frekansı fosc/32
setup_adc_ports(AN0); //RA0/AN0 girişi analog
lcd_init() ; // LCD hazır hale getiriliyor
set_adc_channel (0) ;
a delay_us (20) ;
printf (lcd_putc, "\fSicaklik=") ; // LCD'ye yazı yazdırılıyor
while(1)
{
bilgi=read_adc() ;
voltaj=(0.0048828125*bilgi)*1000;
sicaklik=(voltaj/10)+2;
lcd_gotoxy(10,1);
printf(lcd_putc,"%5.1f'C",sicaklik);
delay_ms(100);
}
}
böyle bir programımız var ancak portb yerine portd'den geliyor bilgi. hata nerededir?
lm35 ile sıcaklık ölçümü devresi
#device ADC=10
#fuses XT, NOWDT , NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=4000000)
#use fast_io(a)
#define use_PORTB_lcd TRUE
#include <lcd.c>
unsigned long int bilgi;
float voltaj, sicaklik;
void main ()
{
setup_psp(PSP_DISABLED) ; // FSP birimi devre dışı
setup_timer_1 (T1_DISABLED) ; // Tl zamanlayıcısı devre dışı
setup_timer_2 (T2_DISABLED,0,1) ; // T2 zamanlayıcısı devre dışı
setup_CCP1 (CCP_OFF) ; // CCP1 birimi devre dışı
setup_CCP2 (CCP_OFF) ; // CCP2 birimi devre dışı
set_tris_a(0x01) ; // RAO Giriş olarak yönlendiriliyor
setup_adc(adc_clock_div_32) ; // ADC clock frekansı fosc/32
setup_adc_ports(AN0); //RA0/AN0 girişi analog
lcd_init() ; // LCD hazır hale getiriliyor
set_adc_channel (0) ;
a delay_us (20) ;
printf (lcd_putc, "\fSicaklik=") ; // LCD'ye yazı yazdırılıyor
while(1)
{
bilgi=read_adc() ;
voltaj=(0.0048828125*bilgi)*1000;
sicaklik=(voltaj/10)+2;
lcd_gotoxy(10,1);
printf(lcd_putc,"%5.1f'C",sicaklik);
delay_ms(100);
}
}
böyle bir programımız var ancak portb yerine portd'den geliyor bilgi. hata nerededir?
lm35 ile sıcaklık ölçümü devresi
lcd.c dosyasının içine gidip portd olan kısımları portb yapın.
#define use_PORTB_lcd TRUE satırı library içinde hiçbirşeyi tanımlamıyor olabilir.
orpheus
1