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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 13-03-2011, 01:01 PM المشاركة 1   
افتراضي التدريب رقم 4 Tutorial 4: برمجة المحول ADC مع mikroC PRO تتم بدون أدنى عناء . Twitter FaceBook Google+



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





النتائج أو العائدات Returns :
قيمة ذات 10 خانات يتم قراءتها من قناة تناظرية محددة .
الوصف :
يتم بدأ عمل موديول ADC بنبضات الساعة الداخلية بمذبذب RC . نبضات الساعة تحدد الفترة الزمنية اللازمة لإجراء التحويل من تنماظرى لرقمى .
البارامتر channel يمثل القناة التى منها يتم التحصل (اكتساب) على القيمة التناظرية .
مثال للصيغة :





تعليق :

تقوم هذه الدالة بكل ما هو مطلوب فى إتمام تتابع عملية التحويل من تناظرى لرقمى دون دخول المبرمج تفاصيل فلقد وفرت أفضل ظروف مناسبة للعملية , مثل جعل الجهد المرجعى السالب متصل داخليا بالأرضى أى Vref-=0 والجهد المرجعى الموجب متصل داخليا بالجهد 5V أى أن Vref+ = 5V حتى نحصل على أكبر دقة ويكون 5V = 1024 ، كما جعلت محازاة النتيجة لليمين حتى يسهل معالجتها ووفرت أفضل تردد لمذبذب المحول والفترة الزمنية للتحويل كما تولت تتابع عملية التحويل نفسها .
لم تترك الدالة للمبرمج سوى خيار واحد هو اختيار قناة أو قنوات الدخل التناظرى والذى يتم عن طريق سجلات الاختيار ANSEL و ANSELH كما سوف يتضح من البرنامج التالى .


البرنامج الشائع للتعامل مع ADC :

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







البرنامج :










اعلانات

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


التعليق على البرنامج

1- مقدمة البرنامج : التعليقات : /*………*/
· اسم البرنامج : ADC_on LEDs لعرض نتائج التحويل ADC على ليدات
· الوصف : مثال بسيط لاستخدام مكتوبة المحول ADC .
· الميكروكونترولر : PIC16F887 .
· تردد المذبذب : HS, 08.0000 MHz
· المترجم mikroC PRO for PIC
· ملاحظات : المدخل التناظرى : القناة الثانية AN2 ويتم محاكاته بمقاومة متغيرة .والليدات متصلة بالمنفذ PORTC والمنفذ PORTD .
2- قبل الدخول إلى الدالة الرئيسية يتم تعريف متغير نوع unsigned int ( بسعة 2 بايت أى 16 خانة ليتسع لنتيجة التحويل ADC ذات العشر خانات ) بالاسم temp_res (أو أى اسم يناسب البرنامج الفعلى ) .


unsigned int temp_res;
3- بداية الدالة الرئيسية

void main() {
4- أعدادات سجلات التحكم والمنافذ :
أ‌- إعداد : اختيار القناة (أو القنوات) المطلوب أن تكون كمدخل تناظرى وجعل باقى القنوات كمداخل ومخارج رقمية للاستفادة منها وذلك عن طريق سجل اختيار القنوات السفلية ANSELوسجل اختيار القنوات العلوية (يعتمد على عدد القنوات بالميكروكونترولر ).
· إعداد القناة الثانية أى الطرف AN2 كمدخل تناظرى والخانة المتحكمة فيه هى الخانة الثالثة بالسجل ANSEL لذلك يجب وضع القيمة 0x04 = 0b00000100 بهذا السجل .
ANSEL = 0x04; // Configure AN2 pin as analog
· لا توجد أى قنوات تناظرية مطلوبة فى سجل التحكم ANSELH ولذلك يتم وضع القيمة صفر به حتى يمكن الاستفادة منه كمداخل / مخارج رقمية وهى الوظائف العامة .
ANSELH = 0; // Configure other AN pins as digital I/O
· إعداد جميع أطراف السجل PORTA كمداخل لأن به المدخل التناظرى .
· إعداد جميع أطراف السجل PORTC كمخارج لتوصيل ليدات بها .
· إعداد جميع أطراف المنفذ PORTD كمخارج لتوصيل ليدات بها .

TRISA = 0xFF; // PORTA is input
TRISB = 0; // PORTB is output
TRISC = 0; // PORTC is output
5- إنشاء حلقة غير منتهية باستخدام do { ……} while (1) وفيها يتم :
do {
· قراءة القيمة الناظرية من على القناة رقم (2) باستخدام الدالة ADC_Read(2) للحصول على نتيجة التحويل ذات العشر خانات ونسخها إلى المتغير ذات الستة عشر خانة temp_res .
temp_res = ADC_Read(2); // Get 10-bit results of AD conversion
· إرسال الثمانى خانات المنخفضة بالمتغير temp_res إلى الثمانى خانات الخاصة بالمنفذ PORTB .
PORTB = temp_res; // Send lower 8 bits to PORTB
· عمل إزاحة لمحتويات المتغير ذات الستة عشر خانة بمقدار بايت أى 8 خانات جهة اليمين وتكون النتيجة أن تزاح الخانتان الأولى والثانية فى البايت العلوى للمتغير (وهما باقى النتيجة التناظرية) إلى الخانتان الأولى والثانية فى البايت السفلى للمتغير , عندئذ يتم نسخ محتويات المتغير إلى المنفذ PORTC فيتم نقل الخانتان المتبقيتان من نتيجة التحويل إلى الخانة RC1 و RC0 لعرض النتيجة كاملة على PORTB + (RC0+RC1)
PORTC = temp_res >> 8; // Send 2 most significant bits to RC1, RC0
· تكرار الحلقة إلى مالا نهاية
} while(1);
6- نهاية الدالة الرئيسية والبرنامج .

}

المحاكاة :





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

abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 384
نشاط [ abnidal ]
قوة السمعة:0
قديم 13-03-2011, 05:09 PM المشاركة 3   
افتراضي السلام عليكم ورحمه الله وبركاته


ايضا وايضا ماشاء الله عليك
وزادك من فضله


جزاك الله خيراً


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


ايضا وايضا ماشاء الله عليك
وزادك من فضله


جزاك الله خيراً
اخى الكريم

شكرا جزيلا لك

بارك الله فيك

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


الصورة الرمزية احمدمعاطى
احمدمعاطى
:: مهندس جيد ::
تاريخ التسجيل: Apr 2009
الدولة: مدينة الاسكندريه
المشاركات: 271
نشاط [ احمدمعاطى ]
قوة السمعة:0
قديم 13-03-2011, 08:51 PM المشاركة 5   
افتراضي


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


شرح ولا اجمل نشكرك جدا


وتقبل مرورى




ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 586
نشاط [ ahmad abdullah ]
قوة السمعة:0
قديم 13-03-2011, 09:02 PM المشاركة 6   
افتراضي


استاذنا العزيز ما شاء الله ... والله استاذنا ما عم بنلحّق مواضيعك الفوق رائعة ... الف شكر اخي ... بمواضيعك منتدانا يرتقي اكثر و اكثر ..


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


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


شرح ولا اجمل نشكرك جدا


وتقبل مرورى



اخى الكريم

شكرا جزيلا لك


بارك الله فيك

لقد تشرفت بمرورك


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


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


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

شكرا جزيلا لك

بارك الله فيك

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

إضافة رد

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

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

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


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

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