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

   

karabd
:: مهندس متواجد ::
تاريخ التسجيل: Aug 2006
الدولة: المغرب
المشاركات: 83
نشاط [ karabd ]
قوة السمعة:
قديم 01-05-2011, 12:20 PM المشاركة 65   
افتراضي



شكرا أخي صهيب على هذا الموضوع الجميل ، وبارك الله فيك وجعل هذا العمل في ميزان حسناتك . أخي كيف يمكن إضافة منبه موصل بأحد أرجل المتحكم بحيث كلما حان وقت الصلاة إشتغل هذا المنبه.

اعلانات

عبدالله فقيدة
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
المشاركات: 78
نشاط [ عبدالله فقيدة ]
قوة السمعة:
قديم 12-05-2011, 08:04 PM المشاركة 66   
افتراضي


عمل راااااااااااائع ممتااااااااااااز جميل الأخ صهيب ، هكذا يكون الإبداع ، ما شاء الله عليك الى مزيد من النجاح والإبداع.

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

رسام2
:: مهندس ::
تاريخ التسجيل: Jun 2007
المشاركات: 9
نشاط [ رسام2 ]
قوة السمعة:
قديم 02-08-2011, 12:50 PM المشاركة 67   
افتراضي


قليلون من امثالكم في الامة يبدعون لامة شكرا لك وجزاك الله خيرا


عمر خالد مكاوي
:: مهندس ::
تاريخ التسجيل: Jun 2010
الدولة: مصر
المشاركات: 14
نشاط [ عمر خالد مكاوي ]
قوة السمعة:
قديم 31-08-2011, 11:52 PM المشاركة 68   
افتراضي


بارك الله فيك اخي الكريم
وجعله في ميزان حسناتك


الصورة الرمزية Omar Mekkawy
Omar Mekkawy
:: مهندس متميز ::
تاريخ التسجيل: Sep 2011
الدولة: مصر
المشاركات: 1,449
نشاط [ Omar Mekkawy ]
قوة السمعة:
قديم 01-09-2011, 01:11 AM المشاركة 69   
افتراضي


بارك الله فيك ويعطيك الف عافية
وجعله في ميزان حسناتك
وتحياتي لك


الصورة الرمزية mustafa94
mustafa94
:: مهندس ::
تاريخ التسجيل: Aug 2011
المشاركات: 26
نشاط [ mustafa94 ]
قوة السمعة:
قديم 29-09-2011, 03:03 PM المشاركة 70   
Talking


بارك الله فيك


الصورة الرمزية hanash85
hanash85
:: مهندس ::
تاريخ التسجيل: Mar 2010
الدولة: sudan-khartoum
المشاركات: 12
نشاط [ hanash85 ]
قوة السمعة:
قديم 16-12-2011, 09:52 PM المشاركة 71   
افتراضي


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

توضيح إيعازات التعامل مع ds1307 من خلال مايكروبيسك

ذكرت في مشاركات سابقة أن لغة التخاطب بين ds1307 و الـ pic هي بروتوكول I2C وهذا البروتوكول تم شرحه من قبل الاستاذ م.نافذ أبو كشك وهو موجود في المواضيع المميزة فلا حجاة الى إعادة الشرح .
أولا نهيئ الأطراف C3, C4 على أنهما طرفان للتخاطب باستخدام I2C
كالتالي :
كود:
dim Soft_I2C_Scl               as sbit at RC3_bit
dim Soft_I2C_Sda               as sbit at RC4_bit
dim Soft_I2C_Scl_Direction as sbit at TRISC3_bit
dim Soft_I2C_Sda_Direction as sbit at TRISC4_bit
ثم نكتب الدالة التي تستخدم لقراءة سجلات المتكاملة ds1307 ونخز قيمة هذه السجلات في متغيرات ويجب أن ننتبه الى أن قيم هذه السجلات بصيغة BCD
كود:
dim sec, min, hr, week_day, day, mn, year,set1,set2 as byte

sub procedure Read_Time(dim byref sec, min, hr, week_day, day, mn, year as short)

    Soft_I2C_Start()
    Soft_I2C_Write(0xD0)
    Soft_I2C_Write(0)
    Soft_I2C_Start()
    Soft_I2C_Write(0xD1)
    sec =Soft_I2C_Read(1)
    min =Soft_I2C_Read(1)
    hr =Soft_I2C_Read(1)
    week_day =Soft_I2C_Read(1)
    day =Soft_I2C_Read(1)
    mn =Soft_I2C_Read(1)
    year =Soft_I2C_Read(0)
    Soft_I2C_Stop()
end sub
نكتب دالة كتابة القيم الى السجلات ويجب أن تكون القيم المرسلة الى السجلات بصيغة BCD كما ذكرت قبل قليل ... وهذه الدالة سنحتاجها في ضبط الوقت والتاريخ للـ ds1307 إما بإرسال قيم ابتدائية عن طريق الـ Pic أو عن طريق أزرار خارجية كما ذكرت في المشاركة السابقة
كود:
sub procedure Write_Time(dim address1 as short,dim data_wr as short)
    Soft_I2C_Start()
    Soft_I2C_Write(0xD0)
    Soft_I2C_Write(address1)
    Soft_I2C_Write(data_wr)
    Soft_I2C_Stop()
    end sub
الان لكي نرسل قيمة الى ds1307 نقوم بالخطوات التالية
1- نبدأ بروتوكول I2C
2- نحول القيمة المراد ارسالها الى نظام BCD
3- نستدعي دالة Write_Time وهذه الدالة تحتوي على عاملين (القيمة المراد إرسالها , عنوان السجل الذي نريد أن نرسل القيمة إليه )
مع ملاحظة أن عناوين السجلات تبدأ من الصفر الى سبعة
صفر = ثواني
واحد=دقائق
اثنان=ساعات
وهكذا
الكود التالي يرسل رقم 7 الى سجل الثواني
كود:
 Write_Time(0,7)
الآن الكود التالي لضبط الدقائق عن طريق زر خارجي مربوط على الطرف C1
كود:
if Button(PORTC, 1, 1, 1) then
oldstate = 255
end if
if oldstate and Button(PORTC, 1, 1, 0) then
 set1=min+1
 if set1>59 then
  set1=0
  end if
  set1=Dec2Bcd16(set1)
  Write_Time(1,set1)
  oldstate = 0
 end if
وهذا الكود لضبط الساعات عن طريق زر مربوط على الطرف C2
كود:
if Button(PORTC, 2, 1, 1) then
oldstate1 = 255
end if
if oldstate1 and Button(PORTC, 2, 1, 0) then
 set1=hr+1
 if set1>23 then
  set1=0
  end if
  set1=Dec2Bcd16(set1)
  Write_Time(2,set1)
  oldstate1 = 0
 end if
ملاحظة : يجب أن نعرف المتغيرات التالية oldstate1 , oldstate1 , set1

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

والسلام عليكم ورحمة الله وبركاته
أولاً السلام عليكم ...وجزاك الله خيراً باش مهندس صهيب البلال وبارك الله في علمك وزاده...
أتأسف عن إنقطاعي وذلك لملاقاتي مشكلة في الموقع فكان لا يفتح في بلدنا وأواجه مشكلة فيه لحدي الآن فقد حاولت أن أرفع بعض آخر مشاريعي ولكن حاولت مرارا حتى تركت الفكرة لكن بعد توفيق الله بحاول أن أعاود المحاولة ..... بالجد مشروعك أعجبني شديد ...
لكن واجهتني مشاكل في برمجة الأزرار ,,, كيف يكون تعديل الكود إذا أردت إضافة زر (زيادة ونقصان ) للدقائق والساعة اليوم والشهر والسنة ...وجزاك الله خيراً أخي صهيب.


التعديل الأخير تم بواسطة : hanash85 بتاريخ 16-12-2011 الساعة 10:01 PM

B.MORRIER
:: مهندس ::
تاريخ التسجيل: Dec 2006
المشاركات: 14
نشاط [ B.MORRIER ]
قوة السمعة:
قديم 12-07-2012, 04:41 PM المشاركة 72   
افتراضي


وَقُلْ رَبِّي زِدْنِي عِلْماً

جزاك الله خيرا



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