Ana içeriğe git
elektronikprojeler
Konu: Sayısal kumbara sorunnnn (192 Kez okunmuş)

Sayısal kumbara sorunnnn

Herkese merhaba,
Geçenlerde bir projeye rastladım sayısal kumbara diye. Pic16f628a, cny70, 74hc14 ve lcd ile yapılıyordu. Atılan paraları lcd (2×16) ekranda gosteriyor. Şimdi aynen yaptım ama çalıştıramadım.  Aşağıda vereceğim kodlar galiba hi-tech c ile yazılmış. Acaba bu kodları microC pro koduna cevirebilecek olan güzel bir insan var mıdır? Çok müteşekkir olurum çevirene.

Kod
#include <pic.h>
#include <delay.c>
#include <lcd.c>
#include <stdio.h>

// Konfigurasyon ayarlari
__CONFIG(WDTDIS&PWRTEN&LVPDIS&INTIO);

#define alici1 RA0
#define alici2 RA1
#define alici3 RB4
#define alici4 RB5
#define alici5 RB6
#define alici6 RB7

// Degisken tanimlamalari
float sayac;
unsigned char lira,kurus;
unsigned char miktar[]="                ";

//LCD alt programi
void LCD_yaz(void){
lcd_clear();   
lira=(int)(sayac/100);
kurus=(int)(sayac-lira*100);
lcd_goto(0x00); lcd_puts("Dijital Kumbara");
sprintf(miktar,"%dLira %dKurus",lira,kurus);
lcd_goto(0x40); lcd_puts(miktar);
EEPROM_WRITE(1,lira);
EEPROM_WRITE(2,kurus);
}   

// Ana Program
main(void)
{

// Port ayarlari
TRISA=0x13;
TRISB=0xF0;
CMCON=0x07;
PORTA=0;
PORTB=0;
DelayMs(250);
lcd_init();
lcd_clear();
   
// Sifirla butonuna basili mi?
if(RA4==0){
   EEPROM_WRITE(1,0);
   EEPROM_WRITE(2,0);
}
//EEPROM islemleri
if(EEPROM_READ(0)=='Y'){
    lira=EEPROM_READ(1);
   kurus=EEPROM_READ(2);
   sayac=lira*100+kurus;
   }
else{
   EEPROM_WRITE(0,'Y');
   sayac=0;
   }
LCD_yaz();

// 6 adet CNY70 sensorunu kontrol et   
for(;;  ){
   if(alici1==1){while(alici1==1); sayac+=1;  LCD_yaz();}
   if(alici2==1){while(alici2==1); sayac+=5;  LCD_yaz();}
   if(alici3==1){while(alici3==1); sayac+=10; LCD_yaz();}
   if(alici4==1){while(alici4==1); sayac+=25; LCD_yaz();}
   if(alici5==1){while(alici5==1); sayac+=50; LCD_yaz();}
   if(alici6==1){while(alici6==1); sayac+=100;LCD_yaz();}
   DelayMs(100);
   }
}// Program sonu

Ynt: Sayısal kumbara sorunnnn

Yanıt #1
eskiden bunu XC8 derleyicisine göre dönüştürmüştüm. istersen vereyim ama orjinali ile aynı olmaz.
ayrıca, devreyi çalıştıramadıysan sorun donanımdan kaynaklı olabilir. eğer öyleyse farklı programlarda yazılması bişey değiştirmez.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

Ynt: Sayısal kumbara sorunnnn

Yanıt #2
eskiden bunu XC8 derleyicisine göre dönüştürmüştüm. istersen vereyim ama orjinali ile aynı olmaz.
ayrıca, devreyi çalıştıramadıysan sorun donanımdan kaynaklı olabilir. eğer öyleyse farklı progralarda yazılması bişey değiştirmez.
ilginize çok teşekkür ederim. Çalıştırdım sonunda evet donanımsal imiş sorun. Bir şey rica edebilir miyim? bu kodlar hangi program ile yazılmış acaba?
MicroC pro plus
mplab ide
mplam x ide
pic c compiler
hi-tech bunları denedim.
kodları kopyaladım. Ama derlerken hata veriyor. Sorun neden kaynaklı acaba? yoksa ben mi yanlış yapıyorum? İlginize çok teşekkür ediyorum. (amacım oradaki "dijital kumbara" yerine başka birşey yazdırmak ama bir türlü derleyemedim.

Ynt: Sayısal kumbara sorunnnn

Yanıt #3
kodlar eski HI-TECH C derleyicisine ait.
Microchip firması bunu satın aldı ve bir süre sonra XC8 derleyicilerini çıkardıktan sonra hi-tech c desteğini kesti. bu ikisi hemen hemen aynı gibi.
Derleme sorunu yaşıyorsanız muhtemelen ayarları doğru yapamamış olmalısınız. ayrıca "lcd" ve "delay" kütüphanelerini proje dosyasına ilave etmeniz gerekiyor.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

Ynt: Sayısal kumbara sorunnnn

Yanıt #4
kodlar eski HI-TECH C derleyicisine ait.
Microchip firması bunu satın aldı ve bir süre sonra XC8 derleyicilerini çıkardıktan sonra hi-tech c desteğini kesti. bu ikisi hemen hemen aynı gibi.
Derleme sorunu yaşıyorsanız muhtemelen ayarları doğru yapamamış olmalısınız. ayrıca "lcd" ve "delay" kütüphanelerini proje dosyasına ilave etmeniz gerekiyor.
peki çok teşekkür ederim. rica etsem xc8 için derlediğinizi verebilir misiniz?


Ynt: Sayısal kumbara sorunnnn

Yanıt #6
Çok teşekkür ederim. Ilginize ve yardımlarınıza çok teşekkür ederim.