duelmaster
Üye
- Katılım
- 4 May 2010
- Mesajlar
- 27
- Puanları
- 1
- Yaş
- 35
#include "delay.h" // Gecikme kütüphanesi tanımlanıyor
#include "lcd.h" // LCD kütüphanesi tanımlanıyor
int voltaj_1;
int voltaj_2;
char i=1;
void main(void) // Ana fonksiyon alanı
{
TRISA=0x03; // Analog giriş için
TRISB=0x00; // LCD için çıkış
TRISC=0x00;
PORTB=0x00;
PORTC=0x00;
PCFG3=0; // AN0 ve AN1 analog
PCFG2=1;
PCFG1=0;
PCFG0=0;
ADFM=1; // Sağa dayalı yazılıyor
ADON=1; // ADC açılıyor
ADIF=0; // ADC bayrağı temizleniyor
ADIE=1; // ADC kesmesi izni veriliyor
PEIE=1; // Genel ve yardımcı kesme izinleri veriliyor
GIE=1;
lcd_init(); // LCD ilk ayarları yapılıyor
lcd_yaz("1.Voltaj=");
lcd_gotoxy(2,1);
lcd_yaz("2.Voltaj=");
for(;
{
CHS2=0; // AN0 seçiliyor
CHS1=0;
CHS0=0;
DelayUs(25);
ADGO=1; // Çevrim başlatılıyor
while(!ADGO);
voltaj_1=(int)((ADRESH*256+ADRESL)/2); // Hesaplama yapılıyor
lcd_gotoxy(1,10); // Okunan değer LCD'ye yazılıyor
veri_yolla(voltaj_1/1000+48);
veri_yolla((voltaj_1%1000)/100+48);
veri_yolla('.');
veri_yolla((voltaj_1%100)/10+48);
veri_yolla(voltaj_1%10+48);
veri_yolla('V');
CHS2=0; // AN1 seçiliyor
CHS1=0;
CHS0=1;
DelayUs(25);
ADGO=1; // Çevrim başlatılıyor
while(!ADGO);
voltaj_2=(int)((ADRESH*256+ADRESL)/2); // Hesaplama yapılıyor
lcd_gotoxy(2,10); // Okunan değer LCD'ye yazılıyor
veri_yolla(voltaj_2/1000+48);
veri_yolla((voltaj_2%1000)/100+48);
veri_yolla('.');
veri_yolla((voltaj_2%100)/10+48);
veri_yolla(voltaj_2%10+48);
veri_yolla('V');
}
}
static void interrupt
led_yaz_son(void)
{
if(ADIF) // Çevrim bitiş kesmesi bekleniyor
{
GIE=0; // Başka kesme gelmesi engelleniyor
i=!i; // Her kesme de değili alınıyor
RC5=i; // Değer RC5'e aktarılıyor
ADIF=0; // Kesme bayrağı sıfırlanıyor
GIE=1; // Genel kesme alımı açılıyor
}
}
#include "lcd.h" // LCD kütüphanesi tanımlanıyor
int voltaj_1;
int voltaj_2;
char i=1;
void main(void) // Ana fonksiyon alanı
{
TRISA=0x03; // Analog giriş için
TRISB=0x00; // LCD için çıkış
TRISC=0x00;
PORTB=0x00;
PORTC=0x00;
PCFG3=0; // AN0 ve AN1 analog
PCFG2=1;
PCFG1=0;
PCFG0=0;
ADFM=1; // Sağa dayalı yazılıyor
ADON=1; // ADC açılıyor
ADIF=0; // ADC bayrağı temizleniyor
ADIE=1; // ADC kesmesi izni veriliyor
PEIE=1; // Genel ve yardımcı kesme izinleri veriliyor
GIE=1;
lcd_init(); // LCD ilk ayarları yapılıyor
lcd_yaz("1.Voltaj=");
lcd_gotoxy(2,1);
lcd_yaz("2.Voltaj=");
for(;
{
CHS2=0; // AN0 seçiliyor
CHS1=0;
CHS0=0;
DelayUs(25);
ADGO=1; // Çevrim başlatılıyor
while(!ADGO);
voltaj_1=(int)((ADRESH*256+ADRESL)/2); // Hesaplama yapılıyor
lcd_gotoxy(1,10); // Okunan değer LCD'ye yazılıyor
veri_yolla(voltaj_1/1000+48);
veri_yolla((voltaj_1%1000)/100+48);
veri_yolla('.');
veri_yolla((voltaj_1%100)/10+48);
veri_yolla(voltaj_1%10+48);
veri_yolla('V');
CHS2=0; // AN1 seçiliyor
CHS1=0;
CHS0=1;
DelayUs(25);
ADGO=1; // Çevrim başlatılıyor
while(!ADGO);
voltaj_2=(int)((ADRESH*256+ADRESL)/2); // Hesaplama yapılıyor
lcd_gotoxy(2,10); // Okunan değer LCD'ye yazılıyor
veri_yolla(voltaj_2/1000+48);
veri_yolla((voltaj_2%1000)/100+48);
veri_yolla('.');
veri_yolla((voltaj_2%100)/10+48);
veri_yolla(voltaj_2%10+48);
veri_yolla('V');
}
}
static void interrupt
led_yaz_son(void)
{
if(ADIF) // Çevrim bitiş kesmesi bekleniyor
{
GIE=0; // Başka kesme gelmesi engelleniyor
i=!i; // Her kesme de değili alınıyor
RC5=i; // Değer RC5'e aktarılıyor
ADIF=0; // Kesme bayrağı sıfırlanıyor
GIE=1; // Genel kesme alımı açılıyor
}
}