قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 23-05-2017, 08:58 AM المشاركة 1   
افتراضي برجاء المساعده في التعامل مع ذاكرة ايبروم الداخليه للميكروكنترولر



السلام عليكم ورحمه الله وبركاته ..

اخواني .. كل عام وانتم بخير ..


برجاء المساعده في التعامل مع ذاكرة ايبروم الداخليه للميكروكنترولر PIC 16F84A


كتب هذا البرنامج وهو يعمل جيدااا علي المكاه وايضااا يعمل جيدااا علي أرض الواقع ..

ولكن عند المحكاه ذاكرة الإبروم تعمل بشكل جيد وعند تنفيذ المشروع علي التيست بورد الاحظ ان البرنامج يعمل بشكل جيد ولكن ذاكرة الإبروم لا تعمل ....

وللعمل ذاكرة الإبروم تعمل في المحكاه وعلي ارض الواقع لا تعمل ...


أرجو الحل ... اعتقد انه يوجد طريقه ما لتفعيل ذاكرة الإبروم ولكن صراحه انا أول مره اتعامل مع هذا الميكرو ..

اليكم صوره للدائرة ..





واليكم الكود ..


كود:
   
      #define pazer  porta.f4=1; Delay_ms(150); porta.f4=0; Delay_ms(100); porta.f4=1; Delay_ms(150); porta.f4=0; Delay_ms(100);

      #define WAET  Delay_ms(1000);

      unsigned short number,i,Continue=0,X=0;
      void WriteNumber(unsigned char number)
     {
      switch(number)
    {
     case 0: number = 0xC0; break;  // number 0
     case 1: number = 0xF9; break ; // number 1
     case 2: number = 0xA4; break;  // number 2
     case 3: number = 0xB0; break;  // number 3
     case 4: number = 0x99; break;  // number 4
     case 5: number = 0x92; break;  // number 5
     case 6: number = 0x82; break;  // number 6
     case 7: number = 0xF8; break;  // number 7
     case 8: number = 0x80; break;  // number 8
     case 9: number = 0x90; break;  // number 9
    }

    PORTB = number ;   // show value number on 7 _segment

    }


       void main() {
     TRISB=0;  PORTB=0;
     TRISA=7;  PORTA=0;

      i = EEPROM_Read(0); Delay_ms(250);       //   and display data on PORTD
      while(1){

      if(porta.f0==1)
      { i++;   eeprom_write(0, i);     Delay_ms(250); }

      if(i==10)
      {i=0;  eeprom_write(0, i);  Delay_ms(250);}

      if(porta.f1==1)
      {i--;  eeprom_write(0, i); Delay_ms(250); }

      if(i==0)
      {i=1;   eeprom_write(0, i);  Delay_ms(250);}
     //****************************************************//


     number = i;

     WriteNumber(i);



  }
 }




وملف المحكاه + الكود ..

https://drive.google.com/open?id=0Bx...jdjUmJJMThjZWc



ارجو الأهتمام ..

وشاكر للجميع تحياتي

اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 24-05-2017, 03:51 AM المشاركة 2   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


السلام عليكم ورحمه الله

ارجو الرد من من لديه خبره في التعامل مع هذا البك ...

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 24-05-2017, 01:48 PM المشاركة 3   
افتراضي


السلام عليكم ورحمه الله

ارجو الرد من من لديه خبره في التعامل مع هذا البك ...
وعليكم السلام ورحمة الله وبركاته
برجاء كتابة المطلوب من البرنامج أى طريقة سير البرنامج والغرض من كل مفتاح حتى نتمكن من المساعدة .
مع تمنياتى بدوام التوفيق


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 25-05-2017, 03:45 AM المشاركة 4   
افتراضي


وعليكم السلام ورحمة الله وبركاته
برجاء كتابة المطلوب من البرنامج أى طريقة سير البرنامج والغرض من كل مفتاح حتى نتمكن من المساعدة .
مع تمنياتى بدوام التوفيق

السلام عليكم ورحمه الله


شكراااا جزيلا مهندسنا القدير " F.Abdelaziz " علي الإهتمام ..

أخي ومعلمي العزيز ...


هذا البرنامج هو لتايمر عداد انارة درج سلم ... ومرفق الدائرة اإلكترونيه اعلاه ...


المطلوب من البرنامج هو """


في بدايه البرنامج يوجد " 3 مفاتيح "" مفتاحين لذياده ونقصان الشاشه 7 سيجمينت .. ومفتاح للتحكم في تشغيل الراليه ..



"" المفتاح "" UP "" الموصل علي porta.f0 هو لذيادة عدد الشاشه بواحد ... عند كل ضغطه .. والمفتاح "" DOWN "" الموصل علي porta.f1 هو لنقصان عدد الشاشه بواحد عند كل ضغطه ...



والمفتاح "" START "" الموصل علي porta.f2 هو للتحكم في تشغيل الراليه لزمن محدد ولكن يوجد عدد "" 9 "" أوامر شرطيه ... تختبر قيمه المتغير "" i "" وحاله المفتاح "" START "" الموصل علي porta.f2 ..



المطلوب هنا من هذا البرنامج هو تخزين قيمه المتغير "" i "" في ذاكرة الإبروم الداخليه للميكرو .. وحاله التخزين هذه هتم في حاله الضغط علي المفتاح "" UP "" أو المفتاح "" DOWN ""


مثال صغير ... لوم تم الضغط عل المفتاح "" UP "" سوف تزيد قيمه المتغير "" i "" بواحد ... واريد تخزين التغيرات اللتي حدثت للمتغير في ذاكرة الإبروم ..

وايضاااا لو تم الضغط عي المفتاح "" DOWN "" سيتم تناقص قيمه المتغير "" i "" بواحد وهنا ايضااا اريد تخزين التغيرات اللتي حدثت للمتغير "" i "" ..في ذاكرة الإبروم ...



شكرااا جزيلا لك .. مهندسنا القدير "" F.Abdelaziz ""

جزاك الله خيرااا وكل عام وانت بخير ...
..


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,682
نشاط [ عبدالله حجازى ]
قوة السمعة:
قديم 25-05-2017, 03:59 AM المشاركة 5   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


السلام عليكم ورحمه الله وبركاته ....


أخي الكريم ... فتح الله عبد العزيز ... اليك البرنامج كامل ..



وما اريده هنا هو حفظ قيمه الشاشه 7 سيجمنت في ذاكرة الإبروم ... عند فصل التيار عن الدائرو واعادته تستعيد قيمتها من ذاكره الإبروم ...

لقد تعاملت مع المتحكم pic16f877a وتعاملت مع ذاكرو الإبروم الخاصه به و عملت بشكل جيد ..

ولكن المتحكم pic1684a أجد صعوبه في الكتابه والقرأه من ذاكرة الإبروم الخاصه به ...


شكراااا جزيلا


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 25-05-2017, 02:20 PM المشاركة 6   
افتراضي


السلام عليكم ورحمه الله وبركاته ....


أخي الكريم ... فتح الله عبد العزيز ... اليك البرنامج كامل ..



وما اريده هنا هو حفظ قيمه الشاشه 7 سيجمنت في ذاكرة الإبروم ... عند فصل التيار عن الدائرو واعادته تستعيد قيمتها من ذاكره الإبروم ...

لقد تعاملت مع المتحكم pic16f877a وتعاملت مع ذاكرو الإبروم الخاصه به و عملت بشكل جيد ..

ولكن المتحكم pic1684a أجد صعوبه في الكتابه والقرأه من ذاكرة الإبروم الخاصه به ...


شكراااا جزيلا
أخى الكريم شكرا جزيلا لك
شكرا للشرح
التعامل مع الميكروكونترولر PIC16F877A لا يختلف إطلاقا عن التعامل مع الميكروكونترولر PIC16F84A .
المشكلة ربما تكون محصورة فى الهاردوير ، أو فى صبط الإعدادات (الفيوزات) Configuration أثناء حرق (تحميل) البرنامج على الميكروكونترولر .
مع تمنياتى بدوام التوفيق


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 25-05-2017 الساعة 02:29 PM

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 25-05-2017, 03:50 PM المشاركة 7   
افتراضي


أخى
و انتم بالصحة و السلامة
مادام البرنامج يعمل فى المحاكاة فتأكد من أن البرنامج يولد أيضا ملف منفصل لبيانات EEPROM (ويبدو انه حادث بدليل العمل فى المحاكاة) و ان المبرمجة أيضا تقرأه و تبرمجة فى الميكرو فقد وقعت فى هذا الإشكال سابقا و اكتشفت ان ليست كل المبرمجات تفعل كل المطلوب منها


الصورة الرمزية assed
assed
:: عضو فضي ::
تاريخ التسجيل: Jul 2014
الدولة: العراق - بغداد
المشاركات: 1,034
نشاط [ assed ]
قوة السمعة:
قديم 25-05-2017, 07:33 PM المشاركة 8   
افتراضي


السلام عليكم
أنا لا اجيد لغة micro c ولاكن الرجستريات الخاصة بذاكرة الاييبروم
EECON1
EEDATA
EEADR
اليس من الاصح ان تكتب في البرنامج من حيث مكان التخزين والقراءة والكتابة . ام انها تهيء في اعدادات البرنامج الاولية . ام ان البيك سوف يتخذ مادوون من اوامر ...
ام انها ليس لها حاجة !!



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:52 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)