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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 24-09-2011, 01:04 PM المشاركة 1   
افتراضي مشاريع الميكروكونترولر PIC18 البسيطة Simple PIC18 Projects Twitter FaceBook Google+



ترجمة وإعداد كتاب
Advanced PIC Microcontroller Projects in C
الفصل السادس
مشاريع الميكروكونترولر PIC18 البسيطة Simple PIC18 Projects
فى هذا الفصل سوف نلقى نظرة على تصميم المشاريع البسيطة المؤسسة على الميكروكونترولر PIC18 , مع توضيح الفكرة حتى تصبح مألوفة وتناول التقنيات الأساسية للربط والتوصيل interfacing وتعلم كيفية استخدام السجلات الطرفية (المحيطية) peripheral المختلفة للميكروكونترولر . سوف نتناول تصميم المشاريع باستخدام الليدات LEDs و مفاتيح الأزرار الضاغطةpush-button switchesولوحات المفاتيح keyboards ومصفوفات الليد LED arrays وأجهزة الصوت sound devices وهلم جرا وسوف نقوم بإنشاء البرامج بلغة السى وباستخدام المترجم الميكروسى mikroC compiler . سنبدأ بمشاريع بسيطة جدا ونتقدم لمشاريع أكثر تعقيدا . من المستحسن للقارىء التنقل خلال المشاريع بترتيبها المعطى .فى كل مشروع سوف يتم توفير الآتى :
  • وصف للبرنامج program.
  • وصف للأجهزة hardware .
  • مخطط الدائرة الكهربية Circuit diagram .
  • خوارزمية الوصف "بلغة وصف البرنامج" Algorithm description (PDL) .
  • قائمة البرنامج Program listing.
  • إقتراحات للتطوير development.
يمكن وصف "خوارزمية البرنامج" (تسلسل خطوات البرنامج) بطرق متنوعة من الأساليب التى تعتمد على "الرسم"graphic أو "النص" text , من الطرق الشائعة " مخطط المسار أو التدفق" flow diagram و "خريطة البناء" structure chart و "لغة وصف البرنامج" . فى هذا الكتاب سوف نستخدم لغة وصف البرنامج PDL .

6-1 لغة وصف البرنامج Program Description Language (PDL)
لغة وصف البرنامج هى لغة "نصية" مثل الإنجليزية والتى تصف مسار التحكم فى البرنامج . هذه اللغة ليست لغة برمجة بل هى "أداة" tool تساعد المبرمج ليفكر حول منطق البرنامج قبل إنشاءه .
فيما يلى وصف للكلمات الشائعة بلغة PDL .

6-1-1 START-END (البداية – النهاية)
كل برنامج (أو برنامج فرعى) بلغة PDL يجب أن يبدأ بكلمة START وينتهى بكلمة END . تسليط الضوء على كلمات PDL بجعلها بخط مميز يؤدى إلى جعل الكود أكثر وضوحا . أيضا تنظيم المسافات بين كلمات PDL يؤدى إلى سهولة قراءة الكود .
مثال :
START
. . . . . .
. . . . . .
END




6-1-2 التتابع(التسلسل) Sequencing
فى التسلسل العادى (الطبيعى) للبرنامج , يتم كتابة العبارات كنص إنجليزى قصير كما لو كنت تصف البرنامج .
مثال :
Turn on the LED
Wait 1 second
Turn off the LED

6-1-3 الكلمات IF-THEN-ELSE-ENDIF
تستخدم هذه الكلمات لوصف التحكم فى سريان البرنامج .
مثال :

IF switch = 1 THEN
Turn on LED 1
ELSE
Turn on LED 2
Start the motor
ENDIF




6-1-4 الكلمات DO-ENDDO

اعلانات

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


6-1-4 الكلمات DO-ENDDO
تستخدم هذه الكلمات لبيان التكرار فى كود PLD .
مثال:
لإنشاء حلقة تكرار غير مشروط فى البرنامج يمكننا كتابة :
Turn on LED
DO 10 times
Set clock to 1
Wait for 10ms
Set clock to 0
ENDDO








وبشكل مختلف عن تركيب DO-ENDDO يمكن استخدام كلمات أخرى مثل DO-FOREVER
و DO-UNTIL ..ألخ كما فى المثال التالى :

مثال :
لإنشاء حلقة شرطية فى البرنامج يمكننا كتابة :

Turn off buzzer
IF switch = 1 THEN
DO UNTIL Port 1 = 1
Turn on LED
Wait for 10ms
Read Port 1
ENDDO
ENDIF




لإنشاء حلقة لا نهاية لها يمكن استخدام التركيب التالى :

DO FOREVER
Read data from Port 1
Send data to PORT 2
Wait for 1 second
ENDDO








6-1-5 الكلمات REPEAT-UNTIL
هذه الكلمات هى تركيب تحكم آخر يستخدم فى أكواد PDL . فى المثال التالى ينتظر البرنامج حتى تصبح قيمة المفتاح switch بواحد 1 .
مثال :

REPEAT
Turn on buzzer
Read switch value
UNTIL switch = 1






لاحظ أن حلقة REPEAT-UNTIL يتم تنفيذها دائما مرو واحدة على الأقل وأكثر من مرة إذا كان الشرط فى نهاية الحلقة "غير متحقق" .


المشروع 6-1 أضواء الليدات المتحركة Chasing LEDs

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

الصورة الرمزية free_matrex2010
free_matrex2010
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 181
نشاط [ free_matrex2010 ]
قوة السمعة:0
قديم 24-09-2011, 06:35 PM المشاركة 3   
افتراضي


رائع جدا وفقك الله وسدد خطاك


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 24-09-2011, 08:03 PM المشاركة 4   
افتراضي


المشروع 6-1 أضواء الليدات المتحركة Chasing LEDs
وصف المشروع
فى هذا المشروع يتم توصيل 8 ليدات بالمنفذ PORTC للميكروكونترولر PIC18F452 , واذى يعمل بدائرة رنين 4MHz resonator .
عند توصيل القدرة للميكروكونترولر (أو عند إعادة reset الميكروكونترولر ) يتم توصيل on (إضاءة) الليدات بالتناوب فى اتجاه عكس عقارب الساعة حيث يضىء ليد واحد فقط فى أى وقت . يوجد تأخير زمنى بواحد ثانية بين المخارج بحيث يمكن مشاهدة الليدات فى حالة التوصيل (الإضاءة) on وفى حالة الفصل (إطفاء) off .
يمكن توصيل الليدات بمنفذ خرج الميكروكونترولر بنظامين مختلفين :
"مصب " التيار current sinking و " منبع " التيار current sourcing .

نظام مصب التيار Current Sinking Mode
كما هو مبين بالشكل 6-1 . فى نظام مصب التيار يتم توصيل طرف أنود الليد بالمصدر 5V ويتصل طرف المهبط بمنفذ خرج الميكروكونترولر من خلال مقاومة تحديد التيار .






فرق الجهد بين طرفى الليد يتراوح بين 1.4V و 2.5V والقيمة النموذجية 2V . تعتمد شدة إضاءة الليد على التيار المار خلاله وهذا التيار يتراوح بين 8 و 16mA والقيمة النموذجية 10mA .
يتم توصيل الليد عندما يكون خرج الميكروكونترولر عند المنطق 0 حيث يمر التيار خلال الليد . نفترض أن جهد خرج الميكروكونترولر حوالى 0.4V عندما يكون الخرج منخفض low , يمكننا حساب قيمة المقاومة المطلوبة كما يلى :


حيث :
VS هو جهد المصدر (5V) .
VLED هو فرق الجهد بين طرفى الليد (2V) .
VL هو أقصى جهد خرج عندما يكون منفذ الخرج فى الحالة المنخفضة (0.4V) .
ILED هو التيار المار خلال الليد (10mA) .
بالتعويض بالقيم فى المعادلة 6-1 نحصل على :
أقرب مقاومة طبيعية هى 270 ohms .

نظام منبع (مصدر) التيار Current Sourcing Mode
كما هو مبين بالشكل 6-2 , فى نظام منبع التيار يتصل طرف أنود الليد بمنفذ خرج الميكروكونترولر ويتصل طرف الكاثود بالأرضى من خلال مقاومة تحديد التيار .



فى هذا النظام يتم توصيل الليد عندما يكون منفذ خرج الميكروكونترولر عند المنطق 1 (أى 5V) . عمليا يكون جهد الخرج حوالى 4.85V ويمكن تحديد قيمة المقاومة كما يلى :




حيث :
VO هو جهد خرج منفذ الميكروكونترولر عندما يكون عند المنطق 1(أى 4.85V) . وبالتالى تكون قيمة المقاومة المطلوبة :


أقرب مقاومة طبيعية هى 290 ohm .

أجهزة المشروع Project Hardware


somood
:: مهندس جيد ::
تاريخ التسجيل: Jan 2011
الدولة: نابلس
المشاركات: 222
نشاط [ somood ]
قوة السمعة:0
قديم 24-09-2011, 08:04 PM المشاركة 5   
افتراضي


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


الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:128
قديم 24-09-2011, 09:16 PM المشاركة 6   
افتراضي


السلام عليكم
بارك الله فيك ولله انك كبير .....اني عجزت عن شكرى لك

ولكن لى سؤال انت قلت

حيث :
VO هو جهد خرج منفذ الميكروكونترولر عندما يكون عند المنطق 1(أى 4.85V) . وبالتالى تكون قيمة المقاومة المطلوبة :






Read more: http://www.qariya.com/vb/newreply.ph...#ixzz1YtoZ9ukj


ولكن سؤالى هو ما علاقه المقاومه بفرق الجهد نحن فى الاول تكلمنا على 270 اوم تمام

ولكن ما هى علاقه الرقم الاخر للمقامه (لم افهمها وهى 285 وهى قريبه من الرقم الاول

لان على حسب فهمى ان فرق الجهد لا يتاثر بالمقاومه


الرجاء اشرحلي باختصار حتى لا اتوه

واستمر الله يرحم واليك وادخلكما الجنه


somood
:: مهندس جيد ::
تاريخ التسجيل: Jan 2011
الدولة: نابلس
المشاركات: 222
نشاط [ somood ]
قوة السمعة:0
قديم 24-09-2011, 10:20 PM المشاركة 7   
افتراضي


ملاحظة : رقم 10 في المقام هو بالملي يعني يساوي 0.01
اما بالنسبة لسؤالك اخي lovevb6 .... في البداية اريد ان اقول لك صحح معلوماتك فالجهد يقسم على المقاومات والاحمال اذاكنت موصولة مع مصدر هذا الجهد على التوالي
اما بالنسبة للقوانين التي بالاعلى سواء بالحالة الاولى ام الثانية فالموضوع ببساطة انه يوجد ليد ومصدر جهد ...الليد يحتاج ل 2 فولت وجهد المصدر دعنا نعتبره حاليا 5 فولت وبما ان الجهد يقسم على الاحمال المشبوكة على التوالي كل حمل يأخذ فولت حسب مقاومته فإننا سنقوم بتوصيل حمل على التوالي مع الليد وهذا الحمل هو المقاومة ونختار قيمة هذه المقاومة بحيث تأخذ 3 فولت وبذلك فإنه يتبقى لليد 2 فولت ...طيب ومن اين نأتي بقيمة هذه المقاومة ... انا اقول لك ... حسب قانون اوم والذي يقول ان المقاومة تساوي الجهد مقسوما على التيار فالجهد هنا هو الجهد الذي نريد ان تستهلكه المقاومة او بمعنى اخر ان تحجزه وهو هنا 3 فولت اما التيار فهو نفسه التيار المار بالليد لأن الليد موصول على التوالي مع المقاومة
نعود للقانون الاول فهنا يوجد R وهي قيمة المقاومة التي يجب ان تحجز الفولتات الزائدة عن حاجة الليد ...ويوجد في المقام قيمة التيار المار بالليد .... اذا ماذا تبقى لكي نستطيع حساب المقاومة ...بالطبع تبقى قيمة الفولتات الزائدة عن حاجة الليد ...طيب كيف نحسبها ...بسيطة فرق الجهد الموجود ناقص جهد الليد ....جميل ...واما فرق الجهد فهو الفرق بين طرفي التغذية وهما هنا الطرف الاول 5 فولت والطرف الثاني هو الخارج من البك وهو هنا 0.4 فولت
اذا ماذا يوجد لدينا بالبسط ...Vs ناقص VL ..(وهذا هو فرق الجهد) ناقص جهد الليد


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 24-09-2011, 10:36 PM المشاركة 8   
افتراضي


أجهزة المشروع Project Hardware
الدائرة الكهربائية للمشروع موضحة بالشكل 6-3 . الليدات متصلة بالمفذ PORTC بنظام منبع التيار مع 8 مقاومات 290 أوم . دائرة الرنين بتردد 4 ميجا هرتز متصلة بين الأطراف OSC1 و OSC2 . وأيضا يوجد مفتاح زر ضاغط متصل بالمدخل MCLR لإعادة reset الميكروكونترولر خارجيا عند الطلب .



وصف المشروع بلغة الوصف PDL

وصف هذا المشروع بلغة الوصف بسيط للغاية كما فى الشكل 6-4 .



برنامج المشروع

إضافة رد

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

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

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


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

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