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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 09-03-2012, 08:24 AM المشاركة 1   
افتراضي تدريبات وتقنيات متنوعة على البرمجة بلغة السى والمترجم ميكروسى برو : Twitter FaceBook Google+



تدريبات وتقنيات متنوعة على البرمجة بلغة السى والمترجم ميكروسى برو :
التدريب رقم 1 :
ما هو الفرق بين المؤثر "==" والمؤثر "=" ؟
المؤثر "=" للتخصيص أو للتعيين assignment بينما المؤثر "==" يسشتخدم فى عمليات المقارنات للمساواة equality .




التدريب رقم 2 :
ما نتيجة المتغير "a" بالعبارة التالية :

كود:
a = 25 & 12;
الإجابة :
كود:
25 = 000011001 & 12 = 000001100 ________________
00001000
a = 8

اعلانات

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


التدريب رقم 3 :
ما الفرق بين حلقة التكرار باستخدام do-while واستخدام while .
الإجابة :
فى حلقة do-while يتم اختبار الشرط فقط عند نهاية الحلقة أى بعد تنفيذ جميع أوامر الحلقة , وبهذه الطريقة نضمن أن الحلقة سوف يتم تنفيذها مرة واحدة على الأقل فى البرنامج .
فى حلقة while يتم اختبار الشرط فى بداية الحلقة , فإن تحقق الشرط فسوف يتم تنفيذ أوامر الحلقة أما إذا لم يتحقق الشرط يتم إنهاء الحلقة والخروج منها دون تنفيذ أوامرها .

التدريب رقم 4 :
البرنامج التالى يهدف إلى ومبض ليد متصلة بالطرف RB5 كل واحد ثانية . وعندما تم ترجمته لم يعمل البرنامج . ما هو الخطأ مع تصحيحه ؟


كود:
void main ()
{
TRISB = 0;
portb.f5 = 1;
Delay_ms (1000); // 1 second delay
portb.f5 = 0;
Delay_ms (1000); // 1 second delay
}

الإجابة :
الخطأ عدم وجود حلقة تكرار تسبب تكرار البرنامج بصفة مستمرة .

التصحيح :
يتم إضافة عبارة حلقة while الغير منتهية (شرطها دائما صواب true =1 ) كما يلى :


كود:
void main ()
{
TRISB = 0;
while (1) {                   // always true condition
portb.f5 = 1;
Delay_ms (1000);       // 1 second delay
portb.f5 = 0;
Delay_ms (1000);       // 1 second delay
}
}

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 09-03-2012, 08:33 AM المشاركة 3   
افتراضي


تدريب رقم 5 :
أى العبارات التالية صحيح ؟ ولماذا ,


كود:
x = 0;
if (x = 1) portb = 0;


or

x = 1;
if (x == 0) portb = 0;



الإجابة :
عبارة if الأولى (if (x = 1) portb = 0) هى الصحيحة ويتم تنفيذ التعليمة portb = 0 .
لأن شرط الاختبار وهو (x = 1) عبارة عن عبارة تخصيص بمعنى يتم تعيين المتغير x بواحد وهو ما تعنيه علامة التساوى المفردة "=" ومن ثم يصبح الشرط صواب بعد هذا التخصيص (أى يتم التخصيص ثم اختبار الشرط ) .
بينما اختبار شرط العبارة (if (x == 1) portb = 0) غير صواب لأن قيمة المتغير x لا تساوى واحد 1 (وهو ما تدل عليه علامة التساوى المزدوجة == ) بل سبق تخصيص الصفر له قبل عبارة if بعبارة التخصيصx = 1 ومن ثم لا يتم تنفيذ عبارة if .


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 09-03-2012, 10:05 AM المشاركة 4   
افتراضي


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


Imozar
:: مهندس متميز ::
تاريخ التسجيل: Dec 2011
المشاركات: 318
نشاط [ Imozar ]
قوة السمعة:0
قديم 09-03-2012, 10:53 AM المشاركة 5   
افتراضي


مكملات أساسية لسلسلة دروسك القيمة حول MikroC pro .
تابع أخي أكرمك الله ..


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


أخى الكريم

شكرا جزيلا لك

بارك الله فيك

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


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


مكملات أساسية لسلسلة دروسك القيمة حول MikroC pro .
تابع أخي أكرمك الله ..
أخى الكريم

شكرا جزيلا لك

بارك الله فيك

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


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


التدريب رقم 6 : التعامل مع منافذ الدخل والخرج Port I / O
الغرض :
التدريب على قراءة وكتابة البيانات على منافذ محددة للدخل أو للخرج . يتم تعريف أطراف المداخل (قراءة) أو المخارج (كتابة) من خلال سجل التحكم فى الاتجاه TRIS . سجل المنفذ PORT هو مرآة لما يحدث على الأطراف الطبيعية (الحقيقية) , بتغيير حالة بت بسجل المنفذ PORT يتم تلقائيا تغيير حالة الطرف المناظر .
الدائرة الكهربية :
توصيل عدد 8 ليد كمخارج بالمنفذ PORTB .



المطلوب إضاءة الليدات المتصلة بالمنفذ PORTB .
لتحقيق ذلك :
  • يتم تعيين المنفذ PORTB كمخارج بغرض وضع المستوى المنطقى المرتفع 1 على الأطراف من RB0 إلى RB7 لإضاءة الليدات . ولذلك يجب برمجة السجل TRISB والسجل PORTB كما يلى :
TRISB = 0b00000000; // set PORTB as output
PORTB = 0b11111111; // sends value one to all pins of PORTB, illuminating all the LEDs;

يتم وضعها فى برنامج بسيط بالشكل التالى :
void main(){
TRISB = 0b00000000; // set PORTB as output
PORTB = 0b11111111; // sends value one to all pins of PORTB, illuminating all the LEDs;
}


كود:
void main(){ TRISB = 0b00000000; // set PORTB as output PORTB = 0b11111111; // sends value one to all pins of PORTB, illuminating all the LEDs; }


ملاحظة :
فى كل مرة نريد قراءة أو كتابة بيانات معينة على أطراف الميكروكونترولر PICيجب تعريف إتجاه البيانات عن طريق السجل TRIS .
عندما يكون بت بالسجل TRIS بصفر ""0 فسوف يتم برمجة الطرف (البت) بالمنفذ المناظر كمخرج Output .
عندما يكون بت بالسجل TRIS بواحد "1" فسوف يتم برمجة الطرف (البت) بالمنفذ المناظر كمدخل Input .

إضافة رد

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

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

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


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

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