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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-02-2012, 07:41 PM المشاركة 1   
افتراضي معلومات هامةعند التعامل مع المداخل التناظرية للميكروكونترولر PIC16F876 و PIC16F877 : Twitter FaceBook Google+



معلومات هامةعند التعامل مع المداخل التناظرية للميكروكونترولر PIC16F876 و PIC16F877 :







يحتوى كل من الميكروكونترولر 16F876 و 16F877 على محولات من تناظرى إلى رقمى "بسعة 10 بت" 10-bit . يمكن أن يوفر الميكروكونترولر 16F876 خمسة مداخل ثناظرية بينما الميكروكونترولر 16F877 يمكن أن يوفر ثمانية مداخل تناظرية , فى كلتا الحالتين " يوجد فعليا محول واحد فقط " يتم تحويله إلى كل طرف pin على النحو المطلوب عن طريق تحديد سجل .





عادة يوجد لغط كثير حول استخدام مداخل المحولات من تناظرى لرقمى ADC , لكنها فى واقع الأمر بسيطة للغاية . إنها مجرد مسألة استخراج المعلومات التى تحتاجها من الداتا شيت . الارتباك الرئيسى ينشأ من التحديد الفعلى لها .

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-02-2012, 07:44 PM المشاركة 2   
افتراضي


يوجد "أربعة سجلات" رئيسية مرتبطة باستخدام المداخل التناظرية , وهى مبينة بالجدول التالى :

السجل ADRESH و السجل ADRESL تفسر نفسها , فهى السجلات التى ترجعreturn نتيجة التحويل من تناظرى لرقمى .




تفاصيل السجل ADCON0 :

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-02-2012, 07:47 PM المشاركة 3   
افتراضي


تفاصيل السجل ADCON0 :
يتم تقسيم السجل ADCON0 إلى أربعة أجزاء منفصلة :
الجزء الأول :
يتكون من البتين العلويين ADCS1 و ADCS0 (bit7 & bit6 )وهما يحددان تردد الساعة المستخدمة فى المحول من تناظرى لرقمى وهو ناتج من تقسيم ساعة النظام ( أو يمكن استخدام مذبذب RC داخلى ) .
مثال :
إذا استخدمنا ساعة بتردد 20MHz و فيجب علينا استخدام القيمة Fosc/32 (كما هو موضح بالجدول التالى ) . أى أن هناك قرار إعداد واحد للحل .




الجزء الثانى من السجل ADCON0 :
يتكون من البتات الثلاثة التالية CHS2,CHS1 , CHS0(bit5,bit4,bit3) , وهى بتات اختيار القناة channel وتحدد (تعين) إى طرف من المداخل يتجه إلى المحول من تناظرى لرقمى .
ملحوظة :
لاحظ أن :الميكروكونترولر 16F876 متاح به الخمس قنوات الأولى فقط (AN0-AN4) , بينما الميكروكونترولر 16F877 متاح به الثمانى قنوات (AN0-AN7) .
لاحظ أيضا : أن القناة AN4 تستخدم الطرف الرقمى RA5 وليس RA4 كما كنت تتوقع .
مثال :
إعداد مدخلين تناظريين فقط وتوصيلهما بالقناة AN0 و AN1 , وهذا يقلل إتخاذ القرار إلى احتمالين وهما : إما 000 للقناة AN0 أو 001 للقناة AN1 , ونحن ببساطة نبدل بينهما كلما تم التحويل بين المدخلين .





الجزء الثالث :
هو بت مفرد GO/DONE(bit2) , هذه البت لها وظيفتان , الأولى : عن طريق تعيين هذه البت بواحد يتم تهيئة بداية التحويل من تناظرى لرقمى , والثانية : يتم مسح هذه البت عند النتهاء من اكتمال التحويل . لذلك يمكننا التحقق من هذا البت للانتظار حتى الانتهاء من التحويل (فى لغة السى توجد دوال جاهزة للقيام بكل هذه الأعمل نيابة عنك ) .
الجزء الرابع :
هو بت مفرد أيضا ADON(bit 0) , هذا البت ببساطة يقوم بتوصيل ON وفصل OFF المحول ADC , بتحديد البت بواحد يتم توصيل المحول وبمسح البت ستم فصل المحول ومن ثم توفير الطاقة التى يستهلكها .




تفاصيل السجل ADCON1 :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-02-2012, 07:50 PM المشاركة 4   
افتراضي


تفاصيل السجل ADCON1 :
السجل ADCON1 فى الحقيقة أكثر تعقيدا بعض الشىء , على الرغم من أنه ينقسم إلى قسمين .
القسم الأول :
هو بت مفرد ADFM وهو " بت اختيار تنسيق النتيجة . عند تحديده بواحد يتم محازاة النتيجة جهة اليمين وعند مسحه يتم محازاة النتيجة جهة اليسار .

الجزء الثانى :
البتات PCFG3-0 هى على الأرجح الجزء الأكثر تعقيدا فى قسم تحديد المحول ADC , حيث أن لها الكثير من الخيارات المختلفة وأيضا تحدد أى الأطراف يمكن أن تكون تناظرية وأيها يكون رقمية .





كما ذكرت أعلاه , هذا الجزء يبدو معقدا , ولكن إذا قسمناه إلى أجزاء أصغر فسوف يبدأ فى الظهور أكثر منطقيا. فى الواقع هناك أربعة خيارات مختلفة للتحديد كما يلى :
1- تحديد (تعيين) طرف كمدخل تناظرى.
2- تحديد (تعيين) طرف كمدخل رقمى .
3- تحديد (تعيين) الجهد المرجعى الموجب للمحول (Vref+) .
4- (تعيين) الجهد المرجعى السالب للمحول(Vref-) .
فى البداية نحن فى حاجة إلى أن نقرر , ما هى الإعدادات الفعلية التى نحن بحاجة إليها .
مثال :
نحتاج لاستخدام مدخلين تناظريين فقط هما AN0 و AN1 , على سبيل المثال .
إذا نظرنا أسفل الأعمدة فسوف نزيل أربع احتمالات ( المظللة باللون الأزرق (0110, 0111, 1110 and 1111 . بعد ذلك يتم استخدام الجهد المرجعى السالب VRef- بجهد الأرضى Vss , ومن ثم يتم إزالة أربعة إحتمالات أخرى ( المظللة باللون الأصفر (1000, 1011, 1100 and 1101 . الآن لم يتبقى لدينا سوى ثمانى اختيارات . بعد ذلك بفرض أننا سوف نستخدم جهد مرجعى موجب VRef+ خارجى , عندئذ فنحن نحتاج لتخصيص الطرف RA3 لهذا الجهد, وهذا يزيل أربعة احتمالات أخرى (المظللة باللون الأخضر (0000, 0010, 0100 and 1001 . وهذا يقودنا إلى أربعة خيارات ممكنة , وللإنصاف فإن أى من هذه الخيارات سوف يعمل . ومع ذلك فإن أحد مطالبنا كان "مدخلين تناظريين" وهو ما يزيل ثلاثة إحتمالات أخرى ( المظللة باللون الأحمر (0001, 0011 and 1010 , الأمر الذى يترك الخيار الوحيد الذى يناسب جميع طلباتنا وهو '0101' , لذلك فإن هذه القيم هى التى نحتاج لكتابتها بالبتات PCFG3:PCFG0 .
لذلك , الآن قررنا ما نحتاجه لتحديد (تعيين) السجل ADCON1 , الرقم الثنائى '10000101' , مع وضع أصفار أماكن البتات الغير مستخدمة , وهذ يعطى لنا " مدخلان تناظريان , وتحديد Vref+ بالطرف RA3 وتحديد Vref- بالأرضى Vss .






الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-02-2012, 07:52 PM المشاركة 5   
افتراضي


الآن وبعد أن تعرفنا على تفاصيل التحديد (الضبط) , يحين وقت الشرح ببعض الاستفاضة حول ما الذى يعنيه كل ذلك . لقد ذكرنا سابقا أن المحول ADC ذات دقة بسعة 10 بت , وهذا يعنى أن خرج المحول يمكن أن يتغير من القيمة الصفر ( جميع البتات العشرة بأصفار'0') إلى القيمة 1023 (جميع البتات العشرة بآحاد '1') . العدد 1023 قد يكون غير مفيد جدا لأنك لا تعرف ما الذى يمثله . وهنا يأتى دور كل من جهد المرج الموجب Vref+ وجهد المرجع السالب Vref-. "عندما يكون خرج المحول ADC مساويا القيمة 1023ADC=1023) ) يكون الدخل التناظرى مساوى لجهد المرجع الموجب Vref+ " و "عندما يكون خرج المحول بصفر (ADC=0) عندئذ يكون الدخل التماظرى مساوى لجهد المرجع السالب Vref- " .
مثال :
إذا استخدمنا الجهاز TL341 كمصدر لجهد المرجع الموجب وتوصيله بالطرف RA3 فإن " القيمة 1023 تمثل حوالى 2.5V ومع استخدام جهد المرجع السالب Vref- من الأرضى Vss (جهد الصفر) فإن " القيمة صفر فى خرج المحول ADC تمثل جهد 0V عند المدخل التناظرى .
الخلاصة : "القيمة 1023 تمثل 2.5V , والقيمة 0 تمثل 0V " . قيم الأعداد التى بين القيمتين تمثل جهد دخل تناظرى بين الجهدين , لمعرفة ما تمثلة هذه الأعداد فى الواقع نحتاج إلى قليل من الرياضيات .
قسمة 2.5V على القيمة 1023 تعطى 0.00244 , وهذه القيمة هى "دقة الجهد لخرج المحول ADC "
( أقل قيمة يمكن قراءتها أو الإحساس بها) . لذلك فإن "قراءة القيمة واحد '1' تمثل جهد دخل تناظرى قيمته 0.00244V (أو 2.44mV ) " و "قراءة القيمة '2' تمثل جهد دخل تناظرى قيمته 0.00488V (أو4.88mV ) " , وهكذا .
ملحوظة :
عندما ذكرنا أن "دقة الجهد" حوالى 0.00244 وقد تم تقريب نتيجة القسمة والقيمة الحقيقية بالآلة الحاسبة هى :
0.00244379276637341153470185728250244 وإذا ضربنا 1023 فى 0.00244 فقط نحصل على 2.49612V وليس 2.5V كما مفروض أن تكون . على الرغم من أن هذا التقريب يسبب خطأ بقيمة 0.388% إلا أنه لا يبدو حسنا ! إذا ما هو الحل ؟
الحل :
استخدام مكبر عمليات فى المداخل والتحكم فى قيمة "الكسب الشامل " gainoverall بحيث يمكن الحصول فى خرجه (وهو نفسه جهد المدخل التناظرى) على جهد فى المدى 0-10.23V (معامل الكسب بحوالى 4 والدخل 2.5V فيكون الخرج حوالى 10 فولت ) والذى يسمح لنا بالحصول على قراءة من المحول ADC فى المدى 0-1023 بدقة 10mV وهى نظريا بدقة حوالى 0.1% ( لاحظ أن النظام نفسه ليس له هذه الدقة كما لا توجد أجهزة قياس لمعايرتها ) .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-02-2012, 07:55 PM المشاركة 6   
افتراضي


برجاء متابعة التطبيقات فى المكتبة الشاملة للأكواد

الرابط

http://www.qariya.com/vb/showthread.php?t=103368


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 20-02-2012, 08:19 PM المشاركة 7   
افتراضي


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


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


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

شكرا جزيلا لك

بارك الله فيك

تقدير أعتز به


إن شاء الله سوف أضع البرمجة مع بعض التعديلات البسيطة المفيدة والتى تؤدى إلى تسهيل البرمجة مع استخدام PIC16F877A بشكل واضح

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

إضافة رد

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

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

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


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

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