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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 15-03-2011, 04:14 PM المشاركة 1   
افتراضي التدريب الشامل على استخدام وحدات العرض LCD فى قياس الجهد أودرجة الحرارة أو أى كمية Twitter FaceBook Google+



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






هذا التدريب يوضح استخدام المحول من تناظرى لرقمى ADC ووحدة العرض LCD .
توجد عدة تقنيات لكتابة هذا البرنامج وسوف اتبع التقنية الأوسع انتشارا .
دوال المكتبات تسهل هذا البرنامج وهو ما يعني أن الجهود المبذولة لإنشاء برمجيات تؤتي ثمارها في النهاية.

ملخص لبرنامج التدريب :
  • فى البداية يتم عرض رسالة إفتتاحية مكونة من سطرين ( يمكنك تغييرهما ):
ENG.F.ABD ELAZIZ


LCD example
  • بعد ثانيتين تتغير الرسالة الافتتاحية المعروضة فى السطر الثانى ليتم عرض الجهد الموجود على مدخل المحول A/D بالطرف RA2 أى على سبيل المثال :
ENG.F.ABD ELAZIZ
voltage:2.497V
  • فى الأجهزة الفعلية يمكن عرض درجة الحرارة الحالية أو أى قيمة فيزيائية أخرى بدلا من الجهد .
من أجل أن يعمل البرنامج بشكل صحيح يجب جلب المكتبات الآتية لمدير المكتبة قبل الترجمة :

· ADC
· LCD

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


اعلانات

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


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

1- المقدمة

/*Header******************************************* ***********/

2- التعريف بتوصيلات وحدة العرض LCD :

يستخدم التعبير :
sbit LCD_RS at RB4_bit ;








3- الإعلان عن المتغيرات :
  • المتغير unsigned char ch ( 1 بايت – المدى 0 - 255) .
  • المتغير unsigned int adc_rd (2 بايت – المدى 0 - 65535 )
  • المتغير char *text مؤشر إلى النص المطلوب كتابته وهو من نوع char .




1- الدالة الرئيسية :


أ- إعداد المنافذ
  • إعداد القناة الثانية AN2 بالطرف RA2 كمدخل تناظرى وباقى الأطراف كمداخل / مخارج رقمية .







ب‌- تهيئة وحدة العرض LCD
  • التهيئة بالدالة Lcd_Init( ) ; وعدم إظهار المؤشر بالأمر Lcd_Cmd(_LCD_CURSOR_OFF) ; ومسح الشاشة بالأمر Lcd_Cmd(_LCD_CURSOR_OFF) ; .





ت‌- كتابة الافتتاحية :

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

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


كتابة الافتتاحية :
  • السطر الأول ENG.F.ABD ELAZIZ والسطر الثانى LCD example حيث يتم إسناد نص للمتغير text الذى تم الإشارة إلية text = "ENG.F.ABD ELAZIZ" ; واستخدام الدالة Lcd_Out(1,1,text) ; ) فى إرساله إلى وحدة العرض وتحديد بدايته بالصف الأول والعامود الأول .
  • بينما النص text = "LCD example" ; فيتم تحديد بدايته بالصف الثانى والعامود الأول .
  • ونستخدم دالة التأخير Delay_ms(2000) ; ) فى الانتظار المدة الكافية للعرض قبل الانتقال للعرض القادم وهى هنا 2 ثانية .






بداية العرض الثانى والدائم :


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


ب‌- بداية العرض الثانى والدائم :
  • سوف نترك السطر الأول الأول كما هو (بالطبع يمكن تغييره) ونغير فى الصف الثانى بحيث يظهر على الصور voltage:2.497V . وهو مكون من عدة أجزاء وسوف يتم معالجة جزء جزء .
· الجزء الأول هو كلمة (النص) voltage: " " ويتم كتابتة بالطريقة المعتادة حيث يعرف أولا بالصيغة text = "voltage:" ; لحين كتابته بالدالة Lcd_Out .

ت‌- ننشأ حلقة غير منتهية while (1) {….} تحتوى على :
  • قراءة الجهد التناظرى من على دخل القناة التناظرية الثانية وتحويله إلى قيمة رقمية ذو عشر خانات ونسخها إلى المتغير adc_rd بالدالة adc_rd = ADC_Read(2); .
  • كتابة النص "voltage:" من بدايةالصف الثانى والعاكود الأول بالدالة Lcd_Out(2,1,text) ;





  • تحويل نتيجة التحول وهى عدد يقع بين 0 و 1023 إلى قيمة إخرى تمثل جهد يقع بين 0 و 5000mV . بمعنى أن نفس العدد الداخلى 1023 يجب إظهاره خارجيا على الشاشة فى شكل العدد 5000 فإذا ضرب العدد 1023 فى 5000 وقسمنا النتيجة على 1023 لكانت النتيجة 5000 فقط أى تم تحوي المدى من 0 إلى 1023 لكى يظهر على صورة مدى من 0 إلى 5000 وهو ما يعرف بموائمة التدريج scale , وهذا ما يحدث مع أى عدد يمثل النتيجة التناظرية الحالية adc_rd حيث يجب ضربه فى 5000 ثم قسمة الناتج على 1023 وحفظ الناتج فى المتغير tlong مع ملاحظة الآتى :
أ‌- أن الضرب أولا ثم القسمة .
ب‌- وعند ضرب محتويات المتغيرadc_rd فى 5000 سوف تخرج عن المدى المعلن عنه فى البداية وهو unsigned int adc_rd (2 بايت – المدى 0 - 65535 ) لذلك يجب توسعته بكتابة (long) قبله حتى تكون سعته 4 بايت .





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


  • أصبح لدينا قيمة مكونة من أربع أرقام تبدأ بالعدد صفر 0000 وتنتهى بالعدد 5000 أى تتكون من اليسار من : رقم للآلاف - ورقم للمئات – ورقم للعشرات – ورقم للآحاد .
  • للحصول على رقم الآلاف نقسم النتيجة على 1000 والعدد الصحيح هو الرقم المطلوب ويحفظ فى المتغير ch والكسر لن يظهر ولن يؤثر لأن النتيجة المطلوبة هى صحيح خارج القسمة وهى خاصية عملية القسمة باستخدام المؤثر " / " كما يلى :





  • بالطبع هذا الرقم يقع بين 0 و 9 وكى يظهر فى هذا الشكل على وحدة العرض LCD يجب تحويله من خريطة أسكى أو باختصار يضاف إليه العدد 48 ليكون 48+ch . من ثم نكتب هذا الرقم باستخدام دالة كتابة "حرف" Lcd_chr فى الصف الثانى والعمود التاسع ( يلى الثمانى أحرف voltage: مباشرة )
  • نكتب العلامة العشرية كحرف فى الموقع الحالى للمؤشر أى بعد رقم الآلاف بالدالة Lcd_Chr_CP :



  • الحصول على رقم المئات : بقسمة محتويات المتغير tiong ( بالملى فولت) أولا على 100 لايجاد آخر رقمين من على اليسار ثم نوجد باقى قسمة الناتج على الرقم 10 بالموثر "% " فينتج الرقم الموجود فى خانة المئات فيتم حفظه بالمتغير ch أى ch = (tlong / 100) % 10 ;.
  • ثم كتابته (بعد تحويله بإضافة العدد 48) فى مكان المؤشر الحالى أى بعد العلامة العشرية بالدالة Lcd_Chr_CP(48+ch) ; .




  • كرر لعدد العشرات :




  • كرر لعدد الآحاد :





وأخيرا كتابة حرف V ثم تأخير زمنى وتكرار الحلقة إلى مالانهاية :



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


البرنامج :







النتيجة :



الصورة الرمزية عوني73
عوني73
:: عضو فضي ::
تاريخ التسجيل: Sep 2009
الدولة: سوريا دمشق
المشاركات: 1,173
نشاط [ عوني73 ]
قوة السمعة:101
قديم 15-03-2011, 07:27 PM المشاركة 7   
افتراضي


السلام عليكم ورحمة الله استاذ فتح الله
هل من الممكن ان نقيس جهود صناعية يعني 220 و 380 فولت بهكذا تطبيقات مثل أجهزة القياس الموجودة في الأسواق
ولما لم تكتب البرنامج بلغة المخطط السلمي
وهل يمكن عمل تطبيق قياس جهد 220 فولت او 400 فولت بتطبيق المخطط السلمي ولماذا لم يوسع موضوع المخطط السلمي
بارك الله فيك استاذ فتح الله لدي سؤال ثاني مهم جداً اريد ان اتعلم على المعالجات الصغرية بهدف التطبيقات الصناعية من تحكم وقياس
اي لغة تنصحني مع العلم اني لا اتقن اي لغة الا لغات المتحكمات المنطقية البي ال سي
اي لغة اقدر اتعلمها وتفيدني في تطبيقاتي بشكل اسرع بحكم خبرتك دام فضلك استاذنا الكريم


التعديل الأخير تم بواسطة : عوني73 بتاريخ 15-03-2011 الساعة 07:41 PM

e-obsessed
:: عضو .. ::
تاريخ التسجيل: Feb 2010
الدولة: alger
المشاركات: 126
نشاط [ e-obsessed ]
قوة السمعة:0
قديم 15-03-2011, 07:40 PM المشاركة 8   
افتراضي


مشكووووووور اخي والله ابهرتبا بمواضيعك

إضافة رد

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

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

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


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

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