c den hexe dönüştürme

Başlatan hoiman, 15 Kasım 2015, 17:05:37

hoiman

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
	
}

}