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

   

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



4- أسماء المتغير:

• فى المترجم ميكروسى برو ، أسماء المتغير يمكن أن تبدأ بحرف أو الشرطة السفلية ( _ ) .
• أسماء المتغير يمكن أن تتضمن أى حرف من ( a ) إلى ( z ) ومن ( A ) إلى ( Z ) والأرقام من ( 0 ) إلى ( 9 ) .
• اسم المتغير يمكن أن يكون بطول حتى 31 حرف .
• بعض أمثلة أسماء المتغير الصحيحة :

كود:

كود:
Total 
Sum 
Average 
My_Variable 
username 
MaxTotal
 _Name

• وفيما يلى بعض الأمثلة لأسماء متغير غير صحيحة :

كود:
%name 
?Total 
7Sum 
(Max 
12count

• الأسماء حساسة لحالة الحرف وبالتالى فإن المتغيرات بأسماء بحروف صغيرة تختلف عن المتغيرات بأسماء بحروف كبيرة . وبالتالى فأن المتغيرات التالية جميعها مختلفة :

كود:
Total 
total 
ToTal 
TotaL 
TOTAL 
TOTal
كود:


5- الأسماء المحجوزة :
فى المترجم ميكروسى برو يتم حجز بعض الأسماء من أجل المترجم ، وهذه الأسماء لا يمكن أن تستخدم كأسماء للمتغيرات . الجدول أدناه يعطى قائمة بهذه الأسماء المحجوزة . على سبيل المثال ، أسماء المتغيرات التالية غير قانونية :


كود:
for 
while 
char 
int 
return 
signed 
const



6- أنواع المتغيرات :


اعلانات

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


6- أنواع المتغير:
المترجم ميكروسى برو هو مترجم لغة مكتوبة بدقة ، وهذا يعنى أن كل كائن ، أو تعبير ، أو دالة يجب أن يكون له" نوع معرف" قبل أن يتم ترجمة البرنامج . مترجم الميكروسى برو يدعم العديد من أنواع البيانات "المعرفة مسبقا" و "المعرفة بمعرفة المستخدم" ، بما فى ذلك "البايتات بإشارة أو بدون إشارة" ، و"الأعداد الصحيحة بالاحجام المختلفة" ، و"الأعداد الحقيقية بمختلف الدقة" ، و"المصفوفات" ، و"الهياكل أو الأبنية" ، وهلم جرا . نوع المتغير يعرف "كم عدد مساحات الذاكرة" التى يجب أن تخصص (تعين) من أجل المتغير بالذاكرة ، وكيف يتم "التعامل مع بتات" المتغير .

يمكن تقسيم أنواع المتغير إلى مجموعتين : أنواع "أساسية" ، وأنواع "مشتقة" .
الأنواع الأساسية تمثل الأنواع التى لا يمكن تقسيمها إلى أجزاء أصغر . هذه الأنواع هى : void (خالى) ، وchar (حرف) ، و int (عدد صحيح) و float (عدد حقيقيى أى يحتوى على علامة عشرية متحركة) ، و double ( عدد حقيقى مضاعف ) ، جنبا إلى جنب مع التهيئة المختلفة : short (قصير) و long (طويل) و signed (بإشارة) و unsigned (بدون إشارة) .

الأنواع المشتقة معروفة أيضا بالأنواع المشيدة (المبنية) وهى تتضمن : "المؤشرات" ، و"الأبنية" ، و"المصفوفات" ، و"الاتحادات" .
مترجم الميكروسى برو يدعم الأنواع الأساسية للمتغير المبينة بالجدول التالى :




فيما يلى أمثلة لهذه الأنواع من المتغير :
· المتغيرات :

كود:
unsigned char or unsigned short int
هى متغيرات "بدون إشارة" 8 بت ، تحتل "واحد بايت" فقط من الذاكرة ولها قيم فى المدى من (0) إلى (255) . فى المثال التالى ، المتغير Sum يخصص (يعين) له القيمة (255) :

كود:
unsigned char Sum = 225; or unsigned char Sum; Sum = 225;
· والمتغيرات :
كود:
unsigned int
هى متغيرات "بدون إشارة" 16 بت ، تحتل "2 بايت" من الذاكرة ولها قيم فى المدى من (0) إلى (65 535) . فى المثال التالى ، المتغير Total يخصص له القيمة (64 500) :

كود:
unsigned int Total = 64500;
· والمتغيرات :
كود:
unsigned long int
هى متغيرات بدون إشارة 32 بت ، تحتل 4 بايت من الذاكرة ولها قيم فى المدى من (0) إلى
4 294 967 295 . فى المثال التالى ، المتغير Sum يخصص له القيمة 4 200 000 000 :

كود:
unsigned long int Sum = 4200000000;
· والمتغيرات :

كود:
signed char or signed short int
هى متغيرات "بإشارة" 8 بت ، نحتل واحد بايت فقك من الذاكرة ولها قيم فى المدة من (-128) إلى (+127) . فى المثال التالى المتغير Total يخصص له القيمة (-240) :

كود:
signed char Total = -240;
· والمتغيرات :
كود:
signed int
هى متغيرات بإشارة 16 بت ، تحتل 2 بايت من الذاكرة ولها قيم فى المدى من (-32 768) إلى (+32 767) . فى المثال التالى ، المتغير Sum يخصص له القيمة (-31 500) :

كود:
signed int Sum = -31500;
· والمتغيرات :
كود:
signed long int
هى متغيرات بإشار 32 بت ، تحتل 4 بايت من الذاكرة ولها قيم فى المدى من (-2 147 483 648) إلى
(+2 147 483 647) . فى المثال التالى ، المتغير Sum يخصص له القيمة (2 050 480 000) :

كود:
signed long int Sum = 2050480000;
· أنواع بيانات العدد الحقيقى هى : float, double , long double . فى المثال التالى ، المتغير Volume يخصص له القيمة (23.45) :

كود:
float Volume = 23.45; or float Volume; Volume = 23.45;
7- الثوابت :

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

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


7- الثوابت :

الثوابت مهمة جدا فى برمجة الميكروكونترولر PIC مع المترجم ميكروسى برو ، وخاصة إذا كانت ذاكرة البيانات RAM لها حجم محدود . يتم تخزين المتغيرات الثابتة فى ذاكرة البرنامج (الفلاش) ، وبالتالى تحرير مساحة ذاكرة بيانات RAM قيمة .
فى المترجم ميكروسى برو ، يمكن أن تكون الثوابت : حروف ، أعداد صحيحة ، أعداد حقيقية ، سلاسل نصية ، ومتغيرات التعداد المرتبة .

7-1 الثوابت الحرفية Character Constants :

الثابت الحرفى يحتل بايت واحد من ذاكرة البرنامج . يتم إعلان (تعريف) الثابت عن طريق تحديد الحرف بين علامتى اقتباس فردية 'F'. فى المثال التالى ، يتم إعلان المتغير FirstName كحرف ثابت وتخصيص القيمة ‘D’ له :

كود:
const FirstName; FirstName = ‘D’;


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


7-2 ثوابت العدد الصحيح Integer Constants :

· ثوابت العدد الصحيح تحتل 2 بايت من ذاكرة البرنامج . هذه الثوابت يمكن تحديدها باستخدام الأساس العشرى ، أو السداسى عشر ، أو الثمانى ، أو الثنائى . نوع بيانات الثابت يتم اشتقاقه بواسطة المترجم تلقائيا ، استنادا على قيمة الثابت . على سبيل المثال ، الثابت بالقيمة (130) يتم حفظه كنوع حرفى بدون إشارة unsigned char ، والثابت بالقيمة 12 000 يتم حفظه كعدد صحيح بدون إشارة unsigned int ، والثابت بالقيمة -22 500)) يتم حفظه كعدد صحيح بإشارة signed int .
فى المثال التالى يتم تعريف كل من MIN و MAX كثوابت بالقيمة (0) و (200) على الترتيب :


كود:
const MIN = 0; const MAX = 200;

· الأعداد السداسية عشر لها مدى من (0) إلى (9) ومن (A) إلى (F) . يتم تحديد الثوابت السداسية عشر عن طريق إدراج الحروف (0x) أو (0X) أمام العدد . فى المثال التالى ، يتم تعريف الثابت MAX ليكون له القيمة السداسية عشر (FFF) :

كود:
const MAX = 0xFFF;
· الأعداد الثمانية لها مدى من (0) إلى (7) . يتم تحديد الثوابت الثمانية عن طريق إدراج الرقم صفر (0) أمام العدد . فى المثال التالى ، يتم تعريف الثابت MAX ليكون له القيمة الثمانية (177) :

كود:
const MAX = 0177;
· الأعداد الثنائية يمكن أن تكون (0) أو (1) . يتم تحديد هذه الأعداد عن طريق إدراج الحروف (0b) أو (0B) أمام العدد . فى المثال التالى ، يتم تعريف الثابت MIN ليكون له القيمة الثنائية 01101111

كود:
const MIN = 0b01101111;


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


7-3 ثوابت الأعداد الحقيقية Floating Point Constants :

ثوابت الأعداد الحقيقية هى ثوابت أعداد غير صحيحة لها جزء عشرى ، ونقطة (علامة عشرية) ، وجزء كسرى . بالإضافة إلى ذلك ، من أجل الأعداد الكبيرة جدا أو الأعداد الصغيرة جدا يمكن تحديد الجزء الأسى عن طريق إدراج الحرف ( e ) أو الحرف ( E ) مع قيمة الأس فى نهاية العدد . فى المثال التالى ، المتغير MIN يعطى القيمة 0.15E-2 والمتغير MAX يعطى القيمة 25.5E10 :

كود:
const MIN = 0.15E-2; const MAX = 25.5E10;


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


7-4 ثوابت السلسلة النصية String Constants :

تتكون ثوابت السلسة النصية من مجوعات من الحروف محاطة بعلامتى اقتباس مزدوجة ("..") . فيما يلى مثال لثابت سلسلة نصية :

كود:
"This is a string"
كما سوف نرى لاحقا أن السلاسل النصية تصنع من مصفوفات الحروف .


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



7-5 ثوابت التعداد المرتب Enumerated Constants :

يستخدم نوع بيانات التعداد من أجل تمثيل "ملخص لمجموعة متقطعة من القيم مع الأسماء الرمزية المناسبة". التعداد المرتب يجعل البرنامج أسهل فى المتابعة .
يتم إعلان (تعريف) المتغيرات من النوع enum بنفس طريقة المتغيرات الأخرى . على سبيل المثال ، فيما يلى إعلان لنوع التعداد المرتب :






كود:
enum colours { Black, Red, Green, Blue, Cyan } clr;

فى هذا المثال : Black=0, Red=1, Green=2 وهلم جرا . المعرف (clr) يمكن أن يأخذ أى قيمة من الألوان المحددة ، أو أى قيمة لعدد صحيح :


كود:
clr = Red; //clr = 1 or clr = 1; //same as above
ت
رتيب الثوابت فى نوع التعداد المرتب يمكن أن يكون مصرح به بإعادة الترتيب باستخدام قيم محددة . أى أسماء بدون تهيئة سوف تتزايد بواحد بالنسبة للقيمة السابقة ، كما فى المثال التالى :

كود:
enum colours { Black, //value 0 Red, //value 1 Green = 4, //value 4 Blue, //value 5 Cyan //value 6 } clr;

فيما يلى مثال آخر :


كود:
enum Weekdays { MON = 1; //value 1 TUE, //value 2 WED, //value 3 THU, //value 4 FRI, //value 5 SAT, //value 6 SUN //value 7 }


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


8- تسلسلات (تتابعات) الهروب Escape Sequences :
بعض حروف التحكم فى جدول كود أسكى تكون "غير قابلة للطباعة" وتعرف بتسلسلات الهروب . على سبيل المثال ، الحروف (\n) تمثل حروف "السطر الجديد" ، والتى تتسبب فى انتقال (قفز) المؤشر إلى "السطر التالى" .
الجدول أدناه قائمة بالحروف شائعة الاستخدام فى تسلسلات الهروب . لاحظ أن حروف تسلسلات الهروب يمكن الحصول عليها أيضا عن طريق "تحديد قيمتها" . على سبيل المثال ، العدد السداسى عشر (0x0A) يمكن أن يستخدم لتحديد السطر الجديد .







9- المتغيرات المتطايرة (المتبخرة) Volatile Variables :
الإعلان (التعريف) المتطاير يكون له أهمية خاصة فى التطبيقات التى تستند على "المقاطعة" . التعريف volatile يعنى أن المتغير قد تتغير قيمته أثناء وقت التشغيل ، مستقلا عن البرنامج الرئيسى . استخدام المعدل volatile يشير إلى أن المتغير يمكن أن يتم تغييره بواسطة روتين يعمل فى الخلفية ، مثل روتين المقاطعة . إعلان كائن ليكون volatile يحذر المترجم بأن لا يصنع افتراضات بشأن قيمة الكائن أثناء تقييم التعبيرات التى يحدث فيها ، لأن القيمة يمكن أن تتغير فى أى لحظة . فى المثال التالى ، يتم إعلان المتغير Cnt ليكون " حرفى char بدون إشارة unsigned متطاير volatile " :


كود:
volatile unsigned char Cnt;
10- الوصول إلى بتات المتغير Accessing Bits of a Variable :



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