أخي العزيز
أولا البرنامج لا يحتاج إلي تنصيب, فكما قلت لك يعمل البرنامج من Command Prompt كما وضحت في الصورة السابقة.
ثانيا أنا أستخدم AVR ولا أستخدم PIC و لذلك طلبت منك تحويل ملف eep, و لكني عرفت بالبحث علي الانترنت أن ملف EEPROM الخاص ب PIC هو .ihex و في مشروعك ستجد اسم الملف هو easy pic_counter_eeprom.ihex, و عموما فقد حولت لك الملف
هنا
بالنسبة لمشروع eeprom_counter, لا أظن أن هذا الكود مكتوب بطريقة صحيحة, أظن أنك ترغب في العد من 0 إلي 99 ثم تكرار هذا إلي الأبد, و يتم تخزين آخر رقم في eeprom بحيث لا يبدأ العد من 0 في المرة القادمة, هل هذا ما تقصده؟ إذا كان نعم, فإن هذا الكود لا يمكن أن يؤدي هذه الوظيفة, أنصحك أن تعدل الكود ليكون كالتالي:
كود:
char y=0, old=0;
int x=0;
char segment[]={63,6,91,79,102,109,125,7,127,111};
void show_number();
void main()
{
ANSELA=0;
ANSELD=0;
trisd=0;
trisa=0;
porta=0;
portd=0;
if( eeprom_read(2)!=255 ) old=eeprom_read(2);
while(1)
{
for( x=old ;x<100;x++)
{
show_number();
//حتي تتمكن من ملاحقة العد, و لتعطي وقتا كافيا للكتابة
delay_ms(500);
eeprom_write(2,x);
}
}
}
void show_number()
{
porta.f0=0; porta.f1=1;porta.f2=1; porta.f3=1;
portd=segment[x/10];
delay_ms(2);
portd=0;
porta.f0=1; porta.f1=0;porta.f2=1; porta.f3=1;
portd=segment[x%10];
delay_ms(2);
portd=0;
}
أرجو مراجعة التعديلات
بالنسبة لمشروع PIC18F45, فهو فعلا يحتاج إلي delay قبل الكتابة, و هذا معني التحذير الذي يعرضه البرنامج:
و قد أضفت delay نصف ثانية, و ذلك لأن عرض الأرقام سيكون سريعا جدا و لن تتمكن أصلا من رؤية الأرقام! و هذا الdelay يفيد أيضا ليعطي eeprom فرصة للكتابة
أرجو أن ينهي هذا مشكلتك