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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 23-05-2017, 10:11 PM المشاركة 17   
افتراضي



العوامل المنطقية Logical Operators :
تستخدم العوامل المنطقية فى العمليات المنطقية والرياضية . الجدول أدناه يبين قائمة بالعوامل المنطقية بالميكروسى برو :



فيما يلى مثال لاستخدام العوامل المنطقية :

كود:
Assume x = 10, y = -2
x > 0 && y < 0 	//Returns TRUE (1)
x > 0 			//Returns TRUE (1)
y < 0 			//Returns TRUE (1)
x > 0 || y < 0 		//Returns TRUE (1)
x < 0 			//Returns FALSE (0)
معاملات العوامل المنطقية إما أن تكون صواب true أو خطأ false ، بعبارة أخرى قيمة "غير الصفر " أو قيمة "الصفر" . نتيجة (راجع أو مردود) العوامل المنطقية دائما تكون “1” أو “0” .
نتيجة (راجع أو مردود) العامل المنطقى AND && يكون بواحد “1” فقط إذا كان تقييم معامليه بقيمة "غير الصفر" . إذا كان تقييم المعامل الأول false فلن يتم تقييم العامل الثانى ، كما فى المثال التالى :

كود:
a > b && c < d;     /* reads as  (a > b) && (c < d) */
/* if (a > b) is false (0), (c < d) will not be evaluated */
نتيجة العامل المنطقى OR || تكون بواحد “1” إذا كان تقييم أى من معامليه بقيمة غير الصفر ، وإلا كانت النتيجة بصفر . إذا كان تقييم المعامل الأول true ، فإن العامل الثانى لن يتم تقييمه ، كما فى المثال التالى :

كود:
a && b || c && d;  /* reads as: (a && b) || (c && d) */
/* if (a && b) is true (1), (c && d) will not be evaluated */

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 23-05-2017, 10:20 PM المشاركة 18   
افتراضي


العوامل المختصة بالبتات Bitwise Operators :
بالإضافة إلى العوامل الرياضية والمنطقية ، فإن العوامل المختصة بالبتات تستخدم فى تعديل بتات المتغير ، كل بت على حدة . الجدول أدناه يبين العوامل المختصة بالبتات فى الميكروسى برو .
هذه العوامل يمكن أن تستخدم فقط مغ المتغيرات من نوع العدد الصحيح .



العامل “&” يقوم بإجراء عملية AND على البتات (كل على حدة) الخاصة بعامليه . كل بت للمعامل الأول يتم عمل AND لها مع البت المناظرة للمعامل الثانى . البت الناتجة تكون واحد “1” فقط إذا كانت كل من البتين المناظرين بواحد “1” ، وإلا كانت النتيجة بصفر “0” ، كما فى المثال التالى :

كود:
int x, y, z;
x = 0xF0E0; 		//x = “1111 0000 1110 0000”
y = 0x0F71; 		//y = “0000 1111 0111 0001”
z = x & y; 		//z = “0000 0000 0110 0000” i.e. 0x0060
العامل “|” يقوم بإجراء عملية OR على بتات معاملية (كل بت على حدة ) . كل بت من المعامل الأول يتم عمل OR لها مع البت المناظرى للمعامل الثانى . البت الناتجة تكون بواحد “1” إذا كان أى من البتات المناظرة بواحد “1” ، وإلا فإن البت الناتجة تكون بصفر ، كما فى المثال التالى :

كود:
int x, y, z;
x = 0xF0E0; 		//x = “1111 0000 1110 0000”
y = 0x0F71; 		//y = “0000 1111 0111 0001”
z = x j y; 		//z = “1111 1111 1111 0001” i.e. 0xFFF1
العامل “^” يقوم بإجراء عملية XOR على بتات معامليه (كل بت على حدة ) ، كل بت من المعامل الأول يتم عمل XOR لها مع البت المناظرة للمعامل الثانى . البت الناتجة تكون بواحد “1” إذا كان أحد البتين فقط بواحد “1” ، وإلا فإن البت الناتجة تكون بصفر ، كما فى المثال التالى :

كود:
int x, y, z;
x = 0xF0E0; 		//x = “1111 0000 1110 0000”
y = 0x0F71; 		//y = “0000 1111 0111 0001”
z = x ^ y; 		//z = “1111 1111 1001 0001”  i.e. 0xFF91
العامل “~” يقوم بإجراء عملية "تكملة" complement لبتات معامله (أحادى المعامل) . كل بت على حدة يتم "تكملتها" أى الصفر “0” يصبح واحد “1” والواحد “1” يصبح صفر “0” ، كما فى المثال التالى :

كود:
int x, y;
x = 0xF0E0; 		//x = “1111 0000 1110 0000”
y = ~x ; 		//y = “0000 1111 0001 1111” i.e. 0x0F1F

العامل “<<” يقوم بإجراء عملية "إزاحة" shift جهة "اليسار" . يتم عمل إزاحة لمعامله (أحادى المعامل) لجهة اليسار بعدد “n” من البتات ، حيث “n” يتم تحديدها بمعرفة المبرمج . يتم ملو بتات الجانب الأيمن للمتغير أى البتات ذات القيمة الأدنى LSB بأصفار ، فى حين يتم فقد البتات الموجودة على الجانب الأيسر للمتغير أى البتات ذات القيمة الأقصى MSB .
إزاحة المتغير إلى جهة اليسار بواحد بت هو نفسه مثل الضرب فى “2” ، وإزاحة المتغير إلى جهة اليسار “2” بت هو نفسه مثل الضرب فى “4” وهكذا ، لكن عملية الإزاحة تكون أسرع بكثير كما فى المثال التالى :

كود:
 int x, y;
x = 3;
y = x << 2; 		//y = 12
الشكل التالى يبين العملية الفعلية للإزاحة جهة اليسار ، المبينة فى المثال السابق :






العامل “>>” يقوم بعملية إزاحة جهة اليمين . يتم عمل إزاحة لجهة اليمين لبتات معامله (أحادى المعامل) “n” من البتات ، حيث “n” يتم تحديدها بمعرفة المبرمج . بتات الجانب الأيسر للمتغير أى البتات ذات القيمة القصوى MSB يتم ملوها بأصفار ، فى حين أن بتات الجانب الأيمن للمتغير أى البتات ذات القيمة الأدنى LSB يتم فقدها .
إزاحة المتغير لجهة اليمين بواحد بت هو نفسه قسمة المتغير على “2” ، وإزاحة المتغير “2” بت هو نفسه قسمة المتغير على “4” وهكذا ، لكن عامل الزحزحة يكون أسرع بكثير، كما فى المثال التالى :
int x, y;
x = 12;
y = x >> 2; //y = 3

الشكل التالى يبين العملية الفعلية للإزاحة جهة اليمين ، المبينة فى المثال السابق :




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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 23-05-2017, 10:25 PM المشاركة 19   
افتراضي


عوامل العلاقة أو المقارتة Relational Operators :
تستخدم عوامل العلاقة فى العمليات "الشرطية" ، اختبار التساوى أو عدم التساوى ، والتى تغير مسار التحكم فى البرنامج .
يكون العائد (النتيجة) بواحد “1” إذا كان تقييم عملية العلاقة "صواب" TRUE ، وإلا فإن العائد يكون بصفر “0” .
الجدول التالى يبين قائمة بعوامل العلاقة بالميكروسى برو .



هذه العوامل شائعة الاستخدام فى جميع لغات البرمجة ، لكن الرموز المستخدمة قد تتغير .
من المهم أن تلاحظ أن عامل "التكافىء" “==” يتكون من علامتى تساوى . الخطأ الشائع هو استخدام علامة تساوى واحدة “=” كعامل علاقة ، والذى سوف يترجم على أنه عامل تخصيص .
فيما يلى بعض الأمثلة لاستخدام عوامل العلاقة :

كود:
x = 20;
x > 10; 		//Returns 1 (TRUE)
x <= 0; 		//Returns 0 (FALSE)
x != 5; 			//Returns 1 (TRUE)



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 23-05-2017, 10:30 PM المشاركة 20   
افتراضي


عامل التخصيص Assignment Operator :
يستخدم عامل التخصيص “=” لتخصيص (تعيين) نتيجة التعبير إلى متغير ، ويسمى التخصيص البسيط . الشكل العام لعملية التخصيص يكون كما يلى :

كود:
variable = expression;
فى المثال التالى ، مجموع المتغيرين a و b يتم تخصيصه إلى المتغير c :

كود:
c = a + b;
المترجم ميكروسى برو يعتمد أيضا عمليات "التخصيص المركب" ، وتستخدم عندما يظهر المتغير على كل من الجانب الأيسر والجانب الأيمن لعامل التخصيص . على سبيل المثال ، اعتبر التعبير أدناه ، حيث يتم إضافة المتغير a إلى المتغير b ويتم تخزين النتيجة مرة أخرى فى المتغير a :

كود:
a = a + b;
باستخدام عامل التخصيص المركب ، يمكننا كتابة العبارة السابقة بالشكل الآتى :

كود:
a += b;
قيما يلى عوامل التخصيص المفيدة الأخرى :

كود:
-= 			subtraction
*= 			multiplication
/= 			division
&= 			AND
|= 			OR
>>= 			right shift
<<= 			left shift
^= 			exclusive OR
ملاحظة : ترك مسافة بين العوامل ، مثل ‘+ =’ يؤدى إلى ظهور خطأ عند الترجمة .


الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 24-05-2017, 12:55 AM المشاركة 21   
افتراضي


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


الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 24-05-2017, 01:02 AM المشاركة 22   
افتراضي


بارك الله بك
بارك الله بك
ارجوك صنف الموضوع لاقسام كما تراه مناسبا وارفعه كما اوصيتك


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


جميل جدا جدا
اللهم وفقه ووفق كل احبائه لما فيه خير العباد.
اخي ( فتح الله ) معذرة على كتابة الاسم بغير ماكتبته انت.
المهم ارجوك اخي الكريم اقسم ماذكرت الى اجزاء وضعها ضمن ملف PDF بحيث احمله واصوره للدراسة .
وانت من يجب ان يحدد القسم يعني لو ان ما سبق وذكرت لم يكتمل بعد اكمله وارفقه اما ان كنت قد بدأت بقسم أخر فارفقه رجاء رجاء رجاء .
انظر كيف يكون الامر وتصرف على اساسه .
جعل الله لك بكل حرف حسنة .
أخى الكريم شكرا جزيلا لك

اعتذر لك ، حاليا لدى مشكلة فى رفع الملفات
مع تمنياتى بدوام التوفيق


الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 24-05-2017, 02:51 PM المشاركة 24   
افتراضي


ما من مشكلة ان لم يكن اليوم .
فغدا او بعد الغد شكرا لك



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