ercanatnr
Üye
- Katılım
- 19 Ara 2010
- Mesajlar
- 290
- Puanları
- 1
Merhaba,
PIC 16f88 ve LM35 ile sıcaklık ölçmek ve ölçtüğüm bu sıcaklığı 7 Segment Display de göstermek istiyorum. Aşağıdaki gibi kodlar yazdım ancak CCS C programı derlemiyor 2 tane hata veriyor ilk hata setup_adc_ports(AN0); satırındaki AN0 ı gösteriyor. Diğer hata birler basamğını bulmak için yaptığım kalanlı bölme işleminde yardımlarınızı bekliyorum.
PIC 16f88 ve LM35 ile sıcaklık ölçmek ve ölçtüğüm bu sıcaklığı 7 Segment Display de göstermek istiyorum. Aşağıdaki gibi kodlar yazdım ancak CCS C programı derlemiyor 2 tane hata veriyor ilk hata setup_adc_ports(AN0); satırındaki AN0 ı gösteriyor. Diğer hata birler basamğını bulmak için yaptığım kalanlı bölme işleminde yardımlarınızı bekliyorum.
Kod:
#include <16F88.h>
#device ADC=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(internal=4000000)
#use fast_io(a)
#use fast_io(b)
#define display_1 pin_a3
#define display_2 pin_a4
const int digit[10]={192,249,164,176,153,146,130,248,128,144}; //Anot Display
// [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
int16 dijital;
float voltaj,sicaklik;
char birler,onlar;
void main()
{
set_tris_a(0x01);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
setup_adc(adc_clock_div_32);
setup_adc_ports(AN0); //İlk hata burada
set_adc_channel(0);
delay_us(20);
output_low(display_1);
output_low(display_2);
while(TRUE)
{
dijital=read_adc;
voltaj=(0.0048828125*dijital)*1000;
sicaklik=(voltaj/10)+2;
birler=sicaklik%10; //ikinci hata burada
onlar=sicaklik/10;
output_high(display_2); // 2. display aktif durumda
output_b(digit[birler]); // displaye bilgi gönderiliyor
delay_ms(5); // gecikme veriliyor
output_low(display_2); // 2. display pasif durumda
output_high(display_1); // 1. display aktif durumda
output_b(digit[onlar]); // displaye bilgi gönderiliyor
delay_ms(5); // gecikme veriliyor
output_low(display_1); // 1. display pasif durumda
}
}