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

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

شعاع الحرية
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: فلسطين المحتلة
المشاركات: 64
نشاط [ شعاع الحرية ]
قوة السمعة:0
قديم 25-02-2009, 08:26 PM المشاركة 1   
افتراضي ارجو المساعدة من الاخوة Twitter FaceBook Google+



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

لدي pic16f84a عدد 2 ،، ما هي الطريقة المثلى للتوصيل بينهم وتبادل المعلومات بينهم ..
البرنامج الذي أود عمله ،، البيك الاولى موصولة ب keybad والثانية موصولة ب Lcd ..
أريد ارسال الارقام من البيك الأولى الى الثانية وتخزينها في eeprom ثم اظهارها على lcd

اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 25-02-2009, 08:59 PM المشاركة 2   
افتراضي


اخي الكريم / شعاع الحرية .. أهلا وسهلا بك في منتدى القرية وأتمنى أن يوفقك الله في مشروعك هذا وأن يرزقنا وإياكم العلم النافع

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

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع

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

شعاع الحرية
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: فلسطين المحتلة
المشاركات: 64
نشاط [ شعاع الحرية ]
قوة السمعة:0
قديم 26-02-2009, 08:14 AM المشاركة 3   
افتراضي


بارك الله فيك أخي احمد

انا اجيد لغة microc و أسيمبلى

ولكن كما هو متعارف عليه أن لغة الميكرو سي اسهل من الاسمبلى ..

فأنا لايوجد عندي مشكلة في أي من هاتين اللغتين ..


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 26-02-2009, 10:08 AM المشاركة 4   
افتراضي


بارك الله فيك أخي احمد

انا اجيد لغة microc و أسيمبلى

ولكن كما هو متعارف عليه أن لغة الميكرو سي اسهل من الاسمبلى ..

فأنا لايوجد عندي مشكلة في أي من هاتين اللغتين ..
كلام جميل جدا ...

والآن يمكن تقسم مشروعك لعدة أشياء (عدة مهارات أساسية )
1- استخدام KEYPAD
2- استخدام EEPROM
3- استخدام LCD
4- ارسال البيانات بين المتحكمين

الأهم في الموضوع هو الجزء الرابع (ارسال البيانات بين المتحكمين) .. ولكن قبل الشروع فيه هل تستطيع استخدام kEYPAD و EEPROM و LCD . ؟؟ أم لا ؟؟

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

==========================================

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع


شعاع الحرية
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: فلسطين المحتلة
المشاركات: 64
نشاط [ شعاع الحرية ]
قوة السمعة:0
قديم 27-02-2009, 12:19 AM المشاركة 5   
افتراضي


كلام جميل جدا ...

والآن يمكن تقسم مشروعك لعدة أشياء (عدة مهارات أساسية )
1- استخدام KEYPAD
2- استخدام EEPROM
3- استخدام LCD
4- ارسال البيانات بين المتحكمين

الأهم في الموضوع هو الجزء الرابع (ارسال البيانات بين المتحكمين) .. ولكن قبل الشروع فيه هل تستطيع استخدام kEYPAD و EEPROM و LCD . ؟؟ أم لا ؟؟

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

==========================================

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع
اخي انا بالضبط اجيد استخدام keypad وlcd وeeprom
وماينقصنى بالضبط هو النقطة الرابعة ..
لذلك أفضل أن نبدأ بها..


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 3,062
نشاط [ زكي شاكر ]
قوة السمعة:183
قديم 27-02-2009, 10:45 AM المشاركة 6   
افتراضي


السلام عليكم
أعتقد أن هذه طريقة ممكنة عمليا:
في البيك المرسل :
تنشئ متغيرا (variable)، نفترض VE_1 وتخزن فيه البيانات التي تنوي إرسالها ثم ترسلها متسلسلة بوثيرة زمنية محددة.
الطريقة:
1- تضع الرقم الناتج عن الادخال بالكيباد في VE_1
2- تجعل VE_1 يعد تنازليا مع ادخال توقيت للعد ومع اختباره باستمرار لتوقيفه عندما يبلغ 0 ..
و بالتزامن ، كل نبضة تقدح بها المتغير VE_1 تخرجها من احد مخارج البيك، نفترض RA0 .
مثال :
العدد 15 :
سيعد المتغير 15 مرة تنازليا ويتوقف عندما يصبح صفرا وتكون النبضات قد خرجت بتسلسل من RA0 15 مرة بالوثيرة الزمنية المحددة.
في البيك المستقبل :
1- تنشئ متغيرا نفرض VR_1 ، وتدخل له البيانات القادمة بشكل تسلسلي على شكل نبضات متتابعة انت في الواقع ستجعله كعداد تصاعدي هذه المرة يحسب تلك النبضات القادمة بنفس الطريقة عند الارسال. وبعد نهاية الارسال (انقضاء زمن معين تحدده) :
2- تنقل مخزون العداد VR_1الى الذاكرة ايبروم والى الشاشة العارضة او تفعل به ما تشاء.
من اين ستدخل البيانات القادمة؟
هنا عندك خياران:
- اذا كان كل ما سيفعله البيك الثاني هو هذه المهمة : استقبال الببانات وتخزينها ثم عرضها: يمكنك ادخالها من اي منفذ تريد من PORTA او PORTBبحسب ضرورات برنامجك ..
- اذا كان البيك الثاني يقوم بتنفيذ برنامج آخر ، هنا الأفضل اللجوء الى استعمال مقاطعة interuption وادخال البيانات من RB0
هذه ابسط طريقة ولا أظن استعمال بروتوكول معين ضروري لان التواصل مؤمن طالما هو بسلكين ..


شعاع الحرية
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: فلسطين المحتلة
المشاركات: 64
نشاط [ شعاع الحرية ]
قوة السمعة:0
قديم 27-02-2009, 10:52 AM المشاركة 7   
افتراضي


السلام عليكم
أعتقد أن هذه طريقة ممكنة عمليا:
في البيك المرسل :
تنشئ متغيرا (variable)، نفترض VE_1 وتخزن فيه البيانات التي تنوي إرسالها ثم ترسلها متسلسلة بوثيرة زمنية محددة.
الطريقة:
1- تضع الرقم الناتج عن الادخال بالكيباد في VE_1
2- تجعل VE_1 يعد تنازليا مع ادخال توقيت للعد ومع اختباره باستمرار لتوقيفه عندما يبلغ 0 ..
و بالتزامن ، كل نبضة تقدح بها المتغير VE_1 تخرجها من احد مخارج البيك، نفترض RA0 .
مثال :
العدد 15 :
سيعد المتغير 15 مرة تنازليا ويتوقف عندما يصبح صفرا وتكون النبضات قد خرجت بتسلسل من RA0 15 مرة بالوثيرة الزمنية المحددة.
في البيك المستقبل :
1- تنشئ متغيرا نفرض VR_1 ، وتدخل له البيانات القادمة بشكل تسلسلي على شكل نبضات متتابعة انت في الواقع ستجعله كعداد تصاعدي هذه المرة يحسب تلك النبضات القادمة بنفس الطريقة عند الارسال. وبعد نهاية الارسال (انقضاء زمن معين تحدده) :
2- تنقل مخزون العداد VR_1الى الذاكرة ايبروم والى الشاشة العارضة او تفعل به ما تشاء.
من اين ستدخل البيانات القادمة؟
هنا عندك خياران:
- اذا كان كل ما سيفعله البيك الثاني هو هذه المهمة : استقبال الببانات وتخزينها ثم عرضها: يمكنك ادخالها من اي منفذ تريد من PORTA او PORTBبحسب ضرورات برنامجك ..
- اذا كان البيك الثاني يقوم بتنفيذ برنامج آخر ، هنا الأفضل اللجوء الى استعمال مقاطعة interuption وادخال البيانات من RB0
هذه ابسط طريقة ولا أظن استعمال بروتوكول معين ضروري لان التواصل مؤمن طالما هو بسلكين ..
أخي زكي بارك الله فيك على الافادة ..
لكن لى سؤال ،، كما نعرف أن register في pic مكون من 8 bit اي أقصى عدد ممكن أن ارسله هو 255 .. هل كلامى صحيح أم ممكن ارسل أكثر بطريقة معينة ..

النقطة الثانية .. لا أعرف وقتك هل هو في سعة أم لا ..
اذا في امكانية أن تضع الى الsimulation و الكود ..

وبارك الله فيك ..


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 3,062
نشاط [ زكي شاكر ]
قوة السمعة:183
قديم 27-02-2009, 10:58 AM المشاركة 8   
افتراضي


طول الرقم ليس مشكلة :
تنشئ العد الذي تحب من المسجلات وعندما ينتهي الاول يقدح الثاني فالثالث ..الى الاخير.

إضافة رد

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

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

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


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

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