Picproje Elektronik Sitesi

DERLEYİCİLER => Microchip MPLAB C serisi => Konuyu başlatan: hoiman - 15 Kasım 2015, 17:05:37

Başlık: c den hexe dönüştürme
Gönderen: hoiman - 15 Kasım 2015, 17:05:37
merhaba arkadaşlar,

2 gündür denemediğim program yapmadığım bi iş kalmadı buna rağmen hala c dosyamı proteus da simülasyon yapmak için hex dosyasına çeviremedim hi tech lite ı indirdim. mplabx hi tech c mplite hepsini denedim bi türlü çeviremedim. pic16f877a kullanıyorum. rica etsem benim için çevirip yollayabilir misiniz?
#inlude <pic.h>
#inlude <delay.c>
#inlude <lcd.c>
#inlude <stdio.h>
#inlude <math.h>

/*1sn gecikme*/

void bir_saniye(void)

{
unsigned char j:
for(j=0;j<4;j++)DelayMs(250);
}

/*ses db cevir spl hesapla*/

double ses_db(double p)

{
const double Pref=-93.98; //yükseltici kazanc
conts double gain= 150.0; //mikrofon 19.6mv/pa
conts double elektret= 19.6;
float Pa,spl;


if(p<1.0)spl=0;
else

{
Pa=p/(gain*elektret);
spl=20.0*log10(Pa)-Pref; //ses db olarak

}
return(spl);

}


/*ana program*/

main(void)

{

conts double lsb= 5000.0/1024.0; //lsb değeri
double yuksek,dusuk,volt,ses,mv;
unsigned int dB;
unsigned char goster[]=\"SES(dB)=\";
TRISB=0; //portb cıkış
TRISA=1; //ra2 ra3 cıkış
//ra0 giriş an0
//ad çeviriciyi tanımla

ADCON1=0x8E;
ADCON0=0x41;

lcd_init(); //lcd tanımla
lcd_clear(); //lcd temizle

for(;;) //sonsoz döngü

{

ADCON0=0x8E; //ad çeviriciyi başlat
while((ADCON0&4) !=0); //ad çeviriciyi bekle
yuksek=ADI.ESH; //yüksek bayt oku
dusuk=ADRESL; //düsük bayt oku
volt=256.0*yuksek+dusuk; //okunan sayısal sayı
mv=volt*lsb; //mv olarak gerilim
ses=ses_db(mv) //ses şiddeti db olarak
dB=(int)(ses); //db tam sayı olarak
sprintf(goster+10,\"%d\",dB);
lcd_clear(); //lcd temizle
lcd_puts(goster); //lcdde göster
bir_saniye(); //1 sn bekle

}

}