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

   

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



6- أضف إلى البرنامج الرئيسى رمز الماكرو المسمى 'initialisedisplay' .





اعلانات

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


1- ثم أضف رمز مقاطعة آخر . لأستعراض إمكانية استخدام أكثر من نوع من المقاطعات فى برنامج واحد فسوف نستخدم المقاطعة بالمؤقت فى استدعاء الماكرو المسمى 'updatedisplay' .غير خواص 'Interrupt on:' إلى 'TMR0' .إنقر على الزر properties واضبط
'Clock Source Select' على 'Internal clock (CLKO)' واضبط 'Prescaler Rate' على 1:256 لجعل المؤقت يعمل عند تردد 75Hz بكريستال نبضات الساعة 19.6608MHz .انقر على OK ثم غير الخاصية 'Will call macro:' إلى 'updatedisplay' ثم انقر على OK مرة أخرى .















الآن يصبح البرنامج الرئيسى كما فى الشكل التالى :










2- قم بإجراء المحاكاة للبرنامج . لاحظ محاكاة كل من المقاطعة نتيجة التغيير فى المنفذ port B وكذلك المقاطعة بالمؤقت . يجب أن تنتظر بعض الوقت إثناء المحاكاة قبل بدء المقاطعة بالمؤقت . معدل المقاطعة هو 75Hz وفى هذا الزمن يستطيع الميكروكونترولر تنفيذ مئات التعليمات .

التعامل مع (استخدام) المحول من تناظرى إلى رقمى ADC :

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

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


التعامل مع (استخدام) المحول من تناظرى إلى رقمى ADC :
حتى الآن قمت بضبط نوعين من المقاطعات وثلاثة ماكروهات والتى يتم استدعائها من البرنامج الرئيسى . فى هذا الجزء من المشروع سوف نقوم بضبط ماكرو آخر والذى سوف يقوم بقياس إشارة على مدخل تناظرى .
تتبع الخطوات التالية :

1- أضف المكون ADC إلى لوحة التحكم بالمشروع .غير توصيله ليكون ADC1 .













الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-05-2011, 12:27 PM المشاركة 20   
افتراضي


2- أضف ماكرو جديد باسم 'ADCmeasure' .


















الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-05-2011, 12:29 PM المشاركة 21   
افتراضي


3- أضف ماكرو لمكون 'ADCmeasure' واضبطه على ReadAsInt لكى يقرأ قيمة المحول من تناظرى إلى رقمى إلى المتغير adcreading والذى تم إنشاءه مسبقا .





الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-05-2011, 12:31 PM المشاركة 22   
افتراضي


4- إسحب رمز الحساب إلى الماكرو وأدخل 'volume = ADCreading / 10' فى حقل الحسابات .





الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 28-05-2011, 12:33 PM المشاركة 23   
افتراضي


1- سوف يصبح الشكل كما يلى :







عملية التحويل ADC تتم على مرحلتين : أولا أخذ عينة للقيمة ثم قراءة القيمة إلى المتغير .الميكروكونترولر المستخدم يمتلك 8 أطراف كمداخل ADC . ومع ذلك فأن الميكروكونترولر لا يمتلك داخليا إلا موديول واحد للتحويل . يمكن تحويل أى من أطراف المداخل الثمانية لاستخدام موديول المحول الداخلى عن طريق مفاتيح تناظرية داخلية . وهذا يعطيك فكرة عن السبب فى أن عملية الحصول على الدخل التناظرى إلى البرنامج هى عملية ذات مرحلتين : داخليا تقوم برمجيات Flowcode بضبط المفاتيح التناظرية لتوصيل المدخل ذات الصلة ثم يتم أخذ القراءة .
موديول المحولالموجود بداخل الميكروكونترولر له قدرة على التحليل (دقة) بقيمة 10 bits . هذا يعنى أنه لاستخدام المدى الكامل للمحول ADC فإنك تحتاج إلى أن تستخدم متغير من النوع Int أى متغير بعرض
16 bit .القيمة التى سوف يتم قراءتها سوف تتغير من 0 إلى 1023 . ومع ذلك فإننا نرغب فى مشاهدة Volume ممثلا بقيمة تتغير من 0 إلى 10 أو من 0 إلى 100 . ولهذا السبب يمكننا قسمة قراءة ADC على 10 للحصول على المدى من 0 إلى 102 وفقا لتحديد volume . يجب عليك من الآن أن تفكر فى تقنية برمجية لتحديد القيمة عند 100 !!

اللمسات الأخيرة :


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


اللمسات الأخيرة :
الآن البرنامج قد انتهى تقريبا .
فى البرنامج الرئيسى أسحب رمز ماكرو إلى الحلقة . فى هذا الرمز استدعى الماكروADCmeasure .









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

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










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



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