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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-02-2012, 02:11 AM المشاركة 65   
افتراضي



3- استخدام الموجه #define لتعريف أطراف المخارج بأسماء تسهل كتابة وفهم وتتبع البرنامج .

4- إعلان المتغيرات :


اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-02-2012, 02:14 AM المشاركة 66   
افتراضي


5- الدالة الرئيسية والبداية إعداد وتهيئة أطراف المنافذ
6- يليها إعداد وتهيئة وحدة العرض لبدء العمل , وكتابة السلاسل النصية المحددة مسبقا .



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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-02-2012, 02:16 AM المشاركة 67   
افتراضي


7- الدخول إلى الحلقة الغير منتهية , حيث نبدأ بقراءة المداخل الرقمية , ثما معالجتها حسابيا بغرض الحصول على عدد يمثل تماما قيمة درجات الحرارة , بعد ذلك يتم تحويل هذا العدد إلى سلسلة نصية حتى نتمكن من عرضها على وحدة العرض LCD , ثم إضافة رمز الدرجة المئوية وحرف "C" .




8- إجراء بعض عمليات التحكم المختلفة :



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-02-2012, 02:19 AM المشاركة 68   
افتراضي











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


مشروع عد وعرض ومعالجة عدد الأشياء تصاعديا وتنازليا باستخدام PIC16F877A وLCDمتعدد



يتم أستلام وعد النبضات من مدخلين حيث يخصص المدخل الأول RC0 لتزايد العداد والمدخل الثانى RC1 لتناقص العداد ويتم عرض الفرق بينهما على وحدة العرض LCD كعدد من 0000 إلى 9999 .
يتم توصيل وحدة العرض كما فى الشكل .

الدائرة الكهربية :






البرنامج :


















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


التعليق على البرنامج :
1- مقدمة (رأس) البرنامج (التعليقات)

2- تحديد أطراف توصيل وحدة العرض لزوم استخدام مكتبة LCD .

3- تعريف (إعلان) المتغيرات والرسائل :
# الرسالة الثابتة التى سوف تعرض فى الصف الأول حسب الرغبة وهى باسم Message1[] وهى عبارة عن مصفوفة صف من الحروف المعرفة بين القوسين "…" .
# تعريف (إعلان- حجز) سجل لمتغير نوع unsigned int باسم number وإسناد قيمة ابتدائية له هى الصفر وهذا السجل سوف يحتوى على العدد المطلوب عرضه (قبل تحويله إلى كود أسكى) .
#الإعلان عن حجز سجل متغير بالإشارة إليه بالطريقة *digit وهو عبارة عن نص مكون من أربعة خانات وإسناد قيمة أصفار كقيمة ابتدائية وهو عبارة عن مصفوفة صف به 4 عناصر .

# تعريف (إعلان) عن خانتين لحفظ الحالة القديمة (الابتدائية) لكل مفتاح

4- إنشاء دالة باسم Display_init تحتوى على تقسيم محتويات السجل numberإلى أربعة خانات وتحويل كل خانة إلى كود أسكى المناسب ااعرض على وحدة العرض LCD حيث يتم :
# استخلاص قيمة خانة الآلاف بقمة العدد على1000 ويضاف إلى النتيجة الرقم 48 لتحويله إلى كود أسكى وحفظ النتيجة كأول عنصر من عناصر المصفوفة digit[0] .
# استخلاص قيمة خانة المئات بالقسمة على 100 ثم إيجاد باقى خارج قسمة الناتج على 10 والنتيجة النهائية يتم تحويلها إلى كود أسكى بإضافة وحفظ النتيجة كثانى عنصر من عناصر المصفوفة digit[1] .
48.
# استخلاص قيمة خانة العشرات بالقسمة على 10 ثم إيجاد باقى خارج قسمة الناتج على 10 والنتيجة النهائية يتم تحويلها إلى كود أسكى بإضافة وحفظ النتيجة كثالث عنصر من عناصر المصفوفة digit[2] .
48 .
# استخلاص قيمة خانة الآحاد بإيجاد باقى خارج القسمة على 10 والنتيجة يتم تحويلها إلى كود أسكى بإضافة 48 وحفظ النتيجة كرابع عنصر من عناصر المصفوفة digit[3] .
# وأخير عرض هذه المصفوفة فى الصف الثانى بدءا من العامود السابع

5- بداية الدالة الرئيسية :
# إعدادات المنافذ .
# تهيئة وحدة العرض للبدء العمل وتصفيرها ومنع ظهور المؤشر وعرض الرسالة الثابتة فى أول صف بدءا من العامود الثانى .

6- الدخول إلى حلقة while(1) الغير منتهية وفيها :
# اختبار حالة المفتاح المتصل بالطرف RC0 بعبارة if وداخلها شرط دالة الضغط على المفتاح بداية نتأكد أن طرف توصيل المفتاح فى الحالة المرتفعة (الوضع الابتدائى) ونسخ هذه الحالة (الحالة القديمة) فى خانة تذكر باسم oldstate1 بعد ذلك أختبار تحول طرف توصيل المفتاح إلى الحالة المنخفضة إى تم الضغط على المفتاح ويتم ذلك بإجراء عملية AND &&بين هذه الحالة والحالة القديمة فإذا كانت النتيجة حقيقية يتم التأخبر لمدة 200 ملى ثانية للاستقرار ثم تزايد محتويات سجل المتغير "number" بواحد وتصفير خانة الحالة القديمة للتجهيز للضغطة التالية .

# تكرار العمل للدخل الآخر مع تناقص المتغير "number"بواحد "number" .

#و إذا تعدت محتويات السجل number العدد 9999 (حرف u ليؤكد أنه من النوع unsigned) يتم تصفيره


# إستدعاء دالة استخلاص وتحويل محتويات السجل number لكود أسكى بغرض عرض نتيجة العد .

إجراء أى عمليات رياضية أو منطقية على محتوى سجل المتغير number على سبيل المثال تشغيل خرج RD2 عندما يزداد العدد عن 10 (كمثال) وأيضا تشغيل مخرج آخر عندما يزداد العدد عن 20 وهكذا

تكرار العملية بصفة دائمة .






NIZAR100
:: مهندس ::
تاريخ التسجيل: Mar 2012
المشاركات: 13
نشاط [ NIZAR100 ]
قوة السمعة:
قديم 09-03-2012, 09:37 PM المشاركة 71   
افتراضي PIC16F877A


السلام عليكم،
بداية أود أن أشكركم على هذا الشرح الرائع وأتمنى من الله أن يجعله في ميزان حسناتكم

أنا أشتغل على موضوع يحتاج لشاشتي عرض LCD ومدون أرقام keypad وثلاث مداخل AN هل يمكن لمكروكونترلر واحد أن يفي بالغرض و كيف ذلك

وشكرا


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 09-03-2012, 09:46 PM المشاركة 72   
افتراضي


السلام عليكم،
بداية أود أن أشكركم على هذا الشرح الرائع وأتمنى من الله أن يجعله في ميزان حسناتكم

أنا أشتغل على موضوع يحتاج لشاشتي عرض LCD ومدون أرقام keypad وثلاث مداخل AN هل يمكن لمكروكونترلر واحد أن يفي بالغرض و كيف ذلك

وشكرا
أخى الكريم

شكرا جزيلا لك

بارك الله فيك

2 وحدة عرض وكل وحدة عرض تحتاج إلى 6 أطراف على الأقل = 12 طرف .
لوحة المفاتيح ولتكن 4x4 تحتاج إلى 8 طرف .
حتى الآن 20 طرف .

باقى الثلاثة مداخل AN .

إذا يمكن استخدام PIC16F877A بحرية تامة مع الأخذ فى الاعتبار تطوير وتوسعة المشروع .


مع تمنياتى بدوام التوفيق



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