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

أدوات الموضوع

ناريمان محمد
:: مهندس ::
تاريخ التسجيل: Apr 2016
المشاركات: 27
نشاط [ ناريمان محمد ]
قوة السمعة:0
قديم 17-12-2016, 10:31 AM المشاركة 1   
افتراضي سؤال حول برمجة ds1307 Twitter FaceBook Google+



سلام عليكم اخواني
بدي مساعدتكم في مشروع للعمل في الوقت الحقيقي بأستخدام البيك و ds1307 ,, انا عارفه كيف اخزن عليه بيانات وعارفه كيف اتعامل معه بس لما جيت اعرض البيانات ع السيكرن بدأ يخرف , ولما بحثت عالنت قالو يجب تحويل البيانات الى نظام تشفير الكود ومن ثم فك التشفير ,,, كيف بدي اعمل هيك

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 17-12-2016, 11:20 AM المشاركة 2   
x4


سلام عليكم اخواني
بدي مساعدتكم في مشروع للعمل في الوقت الحقيقي بأستخدام البيك و ds1307 ,, انا عارفه كيف اخزن عليه بيانات وعارفه كيف اتعامل معه بس لما جيت اعرض البيانات ع السيكرن بدأ يخرف , ولما بحثت عالنت قالو يجب تحويل البيانات الى نظام تشفير الكود ومن ثم فك التشفير ,,, كيف بدي اعمل هيك

لو حضرتك تستخدمى الميكروسي هناك دالة للتحويل من BCD الى العشري تسمى BCD2DEC , و العكس فى التحويل دالة DEC2BCD .

و فى حالة DS1307 ممكن تقرأى البيانات و تحويليهم مباشرة كمثال قراءة الثوانى :

كود:
seconds = Bcd2Dec(Soft_I2C_Read(1));
اذا لم يكن واضح المثال ممكن ترفعى نسخة من البرنامج لديك .



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

ناريمان محمد
:: مهندس ::
تاريخ التسجيل: Apr 2016
المشاركات: 27
نشاط [ ناريمان محمد ]
قوة السمعة:0
قديم 17-12-2016, 11:31 AM المشاركة 3   
افتراضي


كيفك اخي مشتاق ..
ايوه انابستخدم ميكروسي ..
انا عاوزه مثال افهم منه مش بعدل ع كود ياريت تساعندي .. لنفترض انا اريد ضبط الدقائق . كيف بدي اعدل ع القيمة الموجودة وارسلها لل ds1307


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 17-12-2016, 05:46 PM المشاركة 4   
x4


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

هذا مثال للكتابة داخل الشريحة باستخدام soft_i2c و بالطبع يمكن استخدام hardware i2c ان كان موجود بالميكرو , عفوا لانى نادرا ما استخدم ال pic .
كود:

Soft_I2C_Init();         // initialize full master mode
     Soft_I2C_Start();        // issue start signal
    Soft_I2C_Write(0xD0);    // address DS1307
    Soft_I2C_Write(0);       // start from word at address (REG0)
    Soft_I2C_Write(0x80);    // write $80 to REG0. (pause counter +write 0 to sec)
    Soft_I2C_Write(dec2bcd(55));       // write 55 to minutes word to (REG1)
    Soft_I2C_Write(dec2bcd(17));       // write 17 to hours word (24-hours mode)(REG2)
    Soft_I2C_Write(dec2bcd(2));    // write 2 - Monday (REG3)
    Soft_I2C_Write(dec2bcd(4));    // write 4 to date word (REG4)
    Soft_I2C_Write(dec2bcd(5));    // write 5 (May) to month word (REG5)
    Soft_I2C_Write(dec2bcd(9));    // write 09 to year word (REG6)
    Soft_I2C_Stop();         // issue stop signal

    Soft_I2C_Start();        // issue start signal
    Soft_I2C_Write(0xD0);    // address DS1307
    Soft_I2C_Write(0);       // start from word at address 0
    Soft_I2C_Write(0);       // write 0 to REG0 (enable counting + 0 sec)
    Soft_I2C_Stop();         // issue stop signal
 
لو احتجت مثال لاكواد القراءة ممكن ارفعها ان شاء الله

نصرك و صبرك
يا رب




احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً ناريمان محمد ( شكر العضو على هذه المشاركة )

ناريمان محمد
:: مهندس ::
تاريخ التسجيل: Apr 2016
المشاركات: 27
نشاط [ ناريمان محمد ]
قوة السمعة:0
قديم 17-12-2016, 06:53 PM المشاركة 5   
افتراضي


انا متشكره جداً ليك اخ مشتاق واتمنى لو تكمل فضلك بكود القراءه


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 18-12-2016, 05:00 PM المشاركة 6   
x4


بسم الله الرحمن الرحيم

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

مثال للقراءة ثم يتم تحويل القيم من BCD الى DEC لكن بدون استخدام الدالة الجاهزة BCD2DEC :
كود:
// --------------- READING DATE AND TIMES
  Soft_I2C_Start();               // Issue start signal
  Soft_I2C_Write(0xD0);           // Address DS1307, see DS1307 datasheet
  Soft_I2C_Write(0);              // Start from address 0
  Soft_I2C_Start();               // Issue repeated start signal
  Soft_I2C_Write(0xD1);           // Address DS1307 for reading R/W=1

  seconds = Soft_I2C_Read(1);     // Read seconds byte
  minutes = Soft_I2C_Read(1);     // Read minutes byte
  hours = Soft_I2C_Read(1);       // Read hours byte
  day = Soft_I2C_Read(1);         // Read year/day byte
  date = Soft_I2C_Read(1);
  month = Soft_I2C_Read(1);       // Read weekday/month byte
  year = Soft_I2C_Read(0);
  Soft_I2C_Stop();                // Issue stop signal
  
  //-------------change Formats from BCD TO DECIMAL date and time

  seconds  =  (seconds >> 4)*10 + (seconds & 0x0F);  // Transform seconds
  minutes  =  (minutes >> 4)*10 + (minutes & 0x0F);  // Transform months
  hours    =  (hours >> 4)*10  + (hours & 0x0F);    // Transform hours
  day      =  ((day & 0x30) >> 4)*10    + (day & 0x0F);       // Transform day
  date     =  ((date & 0x30) >> 4)*10    + (date & 0x0F);       // Transform day
  month    =  ((month & 0x10)  >> 4)*10 + (month & 0x0F);     // Transform month
  year     =  (year >> 4)*10 + (year & 0x0F);     // Transform year
نصرك و صبرك و عفوك
يا رب




ناريمان محمد
:: مهندس ::
تاريخ التسجيل: Apr 2016
المشاركات: 27
نشاط [ ناريمان محمد ]
قوة السمعة:0
قديم 20-12-2016, 01:07 PM المشاركة 7   
افتراضي


متشكره جداً اخ مشتاق .. انا هحاول اطبق ماتفضلت به ولو احتاجيت مساعده هرجع لحضراتكم

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025