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

   

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



برمجة المحول ADC مع mikroC PRO تتم بدون أدنى عناء .
إمكانيات المترجم mikroC PRO فى التعامل مع المحول من تناظرى لرقمى ADC


مكتبة التحويل من تناظرى لرقمى ADC Library
  • موديول (وحدة) المحول ADC متوفر فى عدد من الميكروكونترولر .
  • مكتبة الدالة ADC_Read يجب ضمها لتوفير العمل المريح مع هذا الموديول .
الدالة ADC_Read :
نموذج الصيغة :






  • نبدأ باسم الدالة وهو ADC_Read "قراءة مدخل تناظرى وتحويله إلى رقمى " , وهى دالة عائدها (نتيجتها) قيمة ذات 10 بت وتمثل متغير من نوع unsigned وبقصد بها unsigned (int) أى عدد صحيح بدون إشارة مداه0 .. 65535 .
  • ثم بين قوسين نكتب البارامتر أو الدليل الوحيد لهذه الدالة وهو القناة التناظرية المراد قراءتها إى التحصل (اكتساب) على القيمة التناظرية منها .
مثال:





تعليق :

تقوم هذه الدالة بكل ما هو مطلوب فى إتمام تتابع عملية التحويل من تناظرى لرقمى دون دخول المبرمج فى التفاصيل , فلقد وفرت أفضل ظروف مناسبة للعملية , مثل:
  • جعل الجهد المرجعى السالب متصل داخليا بالأرضى أى Vref- = 0 .
  • والجهد المرجعى الموجب متصل داخليا بالجهد 5V أى أن Vref+ = 5V .
حتى نحصل على أكبر دقة ويكون 5V = 1024 .
  • كما جعلت محازاة النتيجة لليمين .
حتى يسهل معالجتها .
  • ووفرت أفضل تردد لمذبذب المحول والفترة الزمنية للتحويل كما تولت تتابع عملية التحويل نفسها .
لم تترك الدالة للمبرمج سوى خيار واحد هو اختيار قناة الدخل التناظرى والذى يتم عن طريق سجلات التحكم فى المحول ADC .
وحتى هذه : فى الميكروكونترولر PIC16F877A تكون الأوضاع الافتراضية لبتات سجلات التحكم فى المحول ADC وهى ADCON0 و ADSCON1 بأصفار وهو ما يعنى اختيار جميع القنوات التناظرية المتاحة وهى خمس قنوات بالمنفذ PORTA وثلاثة قنوات بالمنفذ PORTE , وهذا يعنى أننا إذا قررنا استخدام هذه المنافذ كمداخل تناظرية فلم نتعرض لإعدادات سجلات التحكم على الأقل فى الوقت الراهن كم ما سوف يتضح من البرنامج التالى .

برنامج لتوضيح مبدأ التحويل من تناظرى لرقمى ADC :

اعلانات

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


برنامج لتوضيح مبدأ التحويل من تناظرى لرقمى ADC :

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





البرنامج :




شرح البرنامج :

1- قبل الدخول إلى الدالة الرئيسية يتم تعريف متغير نوع unsigned int ( بسعة 2 بايت أى 16 خانة ليتسع لنتيجة التحويل ADC ذات العشر خانات ) بالاسم temp_res (أو أى اسم يناسب البرنامج الفعلى ) وذلك لنسخ نتيجة التحويل إليه وعلاجه فيما بعد وفقا لطلبات البرنامج .
2- بداية الدالة الرئيسية : وتحتوى على
أ‌- أعدادات سجلات التحكم والمنافذ :
· إعداد جميع أطراف السجل PORTA كمداخل لأن به المدخل التناظرى TRISA = 0xFF.
· إعداد جميع أطراف السجل PORTB كمخارج لتوصيل ليدات بها TRISB = 0.
· إعداد جميع أطراف المنفذ PORTD كمخارج لتوصيل ليدات بها TRISD = 0.
· إنشاء حلقة غير منتهية باستخدام do { ……} while (1) وفيها يتم :
do {
# قراءة القيمة الناظرية من على القناة رقم (0) باستخدام الدالة ADC_Read(0) للحصول على نتيجة التحويل ذات العشر خانات ونسخها إلى المتغير ذات الستة عشر خانة temp_res .
# إرسال الثمانى خانات المنخفضة بالمتغير temp_res إلى الثمانى خانات الخاصة بالمنفذ PORTB مباشرة PORTB = temp_res ( محتويات المتغير بالبايت الأعلى لن تؤثر أو تتأثر ) .
PORTB = temp_res; // Send lower 8 bits to PORTB
# عمل إزاحة لمحتويات المتغير ذات الستة عشر خانة بمقدار بايت أى 8 خانات جهة اليمين وتكون النتيجة أن تزاح الخانتان الأولى والثانية فى البايت العلوى للمتغير (وهما باقى النتيجة التناظرية) إلى الخانتان الأولى والثانية فى البايت السفلى للمتغير , عندئذ يتم نسخ محتويات المتغير إلى المنفذ PORTD فيتم نقل الخانتان المتبقيتان من نتيجة التحويل إلى الخانة RD0 و RD1 لعرض النتيجة كاملة على
PORTB + (RD0+RD1)
# تكرار الحلقة إلى مالا نهاية
3- نهاية الدالة الرئيسية والبرنامج .

المحاكاة :

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

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


المحاكاة :















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


كود البرنامج

كود:
unsigned int temp_res;
void main() {
  
  TRISA  = 0xFF;               // PORTA is input
  TRISB  = 0;                  // PORTC is output
  TRISD  = 0;                  // PORTB is output
  do {
    temp_res = ADC_Read(0);    // Get 10-bit results of AD conversion
    
    PORTB = temp_res;          // Send lower 8 bits to PORTB
    PORTD = temp_res >> 8;    // Send 2 most significant bits to PORTD
       } while(1);
}


الصورة الرمزية fathi-mohmed
fathi-mohmed
:: مهندس متميز ::
تاريخ التسجيل: Aug 2010
الدولة: القاهرة
المشاركات: 513
نشاط [ fathi-mohmed ]
قوة السمعة:
قديم 21-02-2012, 02:13 AM المشاركة 13   
افتراضي


اكرمك الله بخير ما كرم بة خلقة وهو العلم


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


اكرمك الله بخير ما كرم بة خلقة وهو العلم
أخى الكريم

شكرا جزيلا لك

أكرمنى الله وإياك

اللهم آمين


بارك الله فيك

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


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 22-02-2012, 08:48 PM المشاركة 15   
افتراضي


اخي م . فتح الله هل هذا الشرح يختلف من microC Pro الى microC ؟
انا في الحقيقة افضل الثانية في العمل ..


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


اخي م . فتح الله هل هذا الشرح يختلف من microC Pro الى microC ؟
انا في الحقيقة افضل الثانية في العمل ..

أخى الكريم

شكرا جزيلا لك

الحديث هنا عن هذا البرنامج فقط :

لا يوجد أى اختلاف بين الميكرو سى أو الميكروسى برو فكلاهما يعتمد العبارات المذكورة , حتى أن هذا المثال وبنفس النص موجود فى "المساعدة" help لكليهما كما فى الشكل . والشكل الآخر يبين نجاح الترجمة على الميكروسى أيضا .






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



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