برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الميكروكونترولر PIC والبرجة بلغة السى والمترجم مسكروسى برو :: الميكروكونترولر PIC والبرمجة بلغة السى والمترجم ميكروسى برو
صفحة 1 من اصل 2
صفحة 1 من اصل 2 • 1, 2
برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
قبل أن نبدأ ، قد يتبادر إلى الذهن السؤال التالى :
ما هو مفهوم المصطلحات التى جاءت فى العنوان : برمجة –ميكروكونترلر - لغة السى – مترجم أو كومبيلر ؟
قبل أن نبدأ ، قد يتبادر إلى الذهن السؤال التالى :
ما هو مفهوم المصطلحات التى جاءت فى العنوان : برمجة –ميكروكونترلر - لغة السى – مترجم أو كومبيلر ؟
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
ما هو مفهوم المصطلحات التى جاءت فى العنوان : برمجة –ميكروكونترلر - لغة السى – مترجم أو كومبيلر ؟
البرمجة :
تجدر الإشارة هنا إلى التذكير بمعنى كلمة "لغة" وهي طريقة الاتصال والتفاهم بين الأشخاص وفي حالة الحاسوب (أو الميكروكوترولر) اللغة هى الطريقة التي يفهم بها الحاسوب طلب الإنسان
البرمجة هى حرفة (عملية) كتابة "البرامج" وهى مجموعة من الأوامر أو التعليمات والتى يمكن فيما بعد ترجمتها أو تفسيرها ومن ثم تتحول بطبيعتها للتنفيذ حيث يمكن تنفيذ أو تشغيل حاسب آلى أو ماكينة إلكترونية .
وتكون عملية البرمجة متبعة لقواعد محددة باللغة التي اختارها المبرمج . و كل لغة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج . كما أن للغات البرمجة أيضا خصائص مشتركة و حدود مشتركة بحكم أن كل هذه اللغات مجعولة للتعامل مع الحاسوب .
لغة البرمجة هي بالأساس طريقة تسهل للمبرمج كيفية اعطاء أوامر للحاسوب لكي يقوم بالعمل المطلوب منه . و للقيام باعطاء الأوامر توفر لغة البرمجة المختارة مجموعة من اللبنات الأساسية للاستناد عليها خلال عملية بناء البرنامج و مجموعة من القواعد التي تمكن من التعامل مع معلومات و تنظيم هذه الأسس التي توفرها اللغة لتتكامل و تقوم بعمل مفيد .
البرمجة :
تجدر الإشارة هنا إلى التذكير بمعنى كلمة "لغة" وهي طريقة الاتصال والتفاهم بين الأشخاص وفي حالة الحاسوب (أو الميكروكوترولر) اللغة هى الطريقة التي يفهم بها الحاسوب طلب الإنسان
البرمجة هى حرفة (عملية) كتابة "البرامج" وهى مجموعة من الأوامر أو التعليمات والتى يمكن فيما بعد ترجمتها أو تفسيرها ومن ثم تتحول بطبيعتها للتنفيذ حيث يمكن تنفيذ أو تشغيل حاسب آلى أو ماكينة إلكترونية .
وتكون عملية البرمجة متبعة لقواعد محددة باللغة التي اختارها المبرمج . و كل لغة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج . كما أن للغات البرمجة أيضا خصائص مشتركة و حدود مشتركة بحكم أن كل هذه اللغات مجعولة للتعامل مع الحاسوب .
لغة البرمجة هي بالأساس طريقة تسهل للمبرمج كيفية اعطاء أوامر للحاسوب لكي يقوم بالعمل المطلوب منه . و للقيام باعطاء الأوامر توفر لغة البرمجة المختارة مجموعة من اللبنات الأساسية للاستناد عليها خلال عملية بناء البرنامج و مجموعة من القواعد التي تمكن من التعامل مع معلومات و تنظيم هذه الأسس التي توفرها اللغة لتتكامل و تقوم بعمل مفيد .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الميكروكونترولر (المتحكم الدقيق) Microcontroller :
الميكروكونترولر هو ببساطة كمبيوتر مصغر مدمج على شريحة (رقاقة) chip فى شكل دائرة متكاملة . وهو واحد من أهم التطورات فى مجال الإلكترونيات منذ اختراع الميكروبروسسور (المعالج الدقيق) نفسه .
المكونات الأساسية للميكروكونترولر :
يحتوى الميكروكونترولر على نفس العناصر الرئيسية لأى نظام كمبيوتر (حاسوب) :
• المعالج Processor .
• الذاكرة Memory .
• المداخل / المخارج Input/Output .
فى نظام الكمبيوتر الشخصى يتم توفير هذه العناصر فى شكل رقائق (دوائر متكاملة) منفصلة ، ترتبط ببعضها عبر وصلات "ناقل" bus على اللوحة المطبوعة ، ولكن تحت سيطرة الميكروبروسسور (CPU) . الناقل هو مجموعة من الخطوط التى تحمل البيانات فى شكل متوازى والتى تتشارك عن طريق الأجهزة الطرفية . يمكن تصميم النظام ليناسب تطبيق معين ، بنوع CPU ، وحجم الذاكرة ، واختيار أجهزة الدخل / الخرج المصممة خصيصا لمتطلبات النظام .
أما فى الميكروكونترولر ، تكون كل هذه العناصر على رقاقة واحدة . هذا يعنى أنه من أجل تطبيق معين يجب اختيار الميكروكونترولر من بين المجموعة المتوفرة والذى يتناسب مع المتطلبات . فى أى دائرة لتطبيق معين ، يميل الميكروكونترولر أن يكون له مهمة مخصصة واحدة ( على عكس الكمبيوتر الشخصى) ، هذا النوع من الأنظمة يوصف بأنه "نظام مدمج" embedded .
الميكروكونترولر هو ببساطة كمبيوتر مصغر مدمج على شريحة (رقاقة) chip فى شكل دائرة متكاملة . وهو واحد من أهم التطورات فى مجال الإلكترونيات منذ اختراع الميكروبروسسور (المعالج الدقيق) نفسه .
المكونات الأساسية للميكروكونترولر :
يحتوى الميكروكونترولر على نفس العناصر الرئيسية لأى نظام كمبيوتر (حاسوب) :
• المعالج Processor .
• الذاكرة Memory .
• المداخل / المخارج Input/Output .
فى نظام الكمبيوتر الشخصى يتم توفير هذه العناصر فى شكل رقائق (دوائر متكاملة) منفصلة ، ترتبط ببعضها عبر وصلات "ناقل" bus على اللوحة المطبوعة ، ولكن تحت سيطرة الميكروبروسسور (CPU) . الناقل هو مجموعة من الخطوط التى تحمل البيانات فى شكل متوازى والتى تتشارك عن طريق الأجهزة الطرفية . يمكن تصميم النظام ليناسب تطبيق معين ، بنوع CPU ، وحجم الذاكرة ، واختيار أجهزة الدخل / الخرج المصممة خصيصا لمتطلبات النظام .
أما فى الميكروكونترولر ، تكون كل هذه العناصر على رقاقة واحدة . هذا يعنى أنه من أجل تطبيق معين يجب اختيار الميكروكونترولر من بين المجموعة المتوفرة والذى يتناسب مع المتطلبات . فى أى دائرة لتطبيق معين ، يميل الميكروكونترولر أن يكون له مهمة مخصصة واحدة ( على عكس الكمبيوتر الشخصى) ، هذا النوع من الأنظمة يوصف بأنه "نظام مدمج" embedded .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
المترجم compiler
المترجم compiler هو برنامج(تطبيق) كمبيوتر خاص والذى يقوم بمعالجة التعليمات (الأوامر) المكتوبة بلغة برمجة معينة ، وتحويلها إلى لغة الآلة أو "الشفرة " والتى تستخدم بمعرفة المعالج الدقيق . عادة ، يقوم المبرمج بكتابة تعليمات لغة البرمجة بلغة مثل لغة السى C فى شكل سطر تلو السطر ، وذلك باستخدام محرر editor. الملف الذي يتم إنشاؤه بمعرفة المبرمج يحتوي على ما يسمى كود المصدر source code . بعد ذلك يقوم المبرمج بتشغيل المترجم المناسب للغة البرمجة المستخدمة ، يتم تحديد اسم الملف الذي يحتوي على كود المصدر .
عند بداية تشغيل برنامج المترجم فإنه يقوم بتحليل جميع تعليمات اللغة نحويا واحدة تلو الآخرى وبعد ذلك ، وفي المراحل المتتالية رج ، ولقد اتفق على تسميته باسم object code وهو كود الآلة والذى يمكن للمعالج الدقيق بمعالجته أى تنفيذه تعليمة احدة فى كل مرة .
المترجم compiler هو برنامج(تطبيق) كمبيوتر خاص والذى يقوم بمعالجة التعليمات (الأوامر) المكتوبة بلغة برمجة معينة ، وتحويلها إلى لغة الآلة أو "الشفرة " والتى تستخدم بمعرفة المعالج الدقيق . عادة ، يقوم المبرمج بكتابة تعليمات لغة البرمجة بلغة مثل لغة السى C فى شكل سطر تلو السطر ، وذلك باستخدام محرر editor. الملف الذي يتم إنشاؤه بمعرفة المبرمج يحتوي على ما يسمى كود المصدر source code . بعد ذلك يقوم المبرمج بتشغيل المترجم المناسب للغة البرمجة المستخدمة ، يتم تحديد اسم الملف الذي يحتوي على كود المصدر .
عند بداية تشغيل برنامج المترجم فإنه يقوم بتحليل جميع تعليمات اللغة نحويا واحدة تلو الآخرى وبعد ذلك ، وفي المراحل المتتالية رج ، ولقد اتفق على تسميته باسم object code وهو كود الآلة والذى يمكن للمعالج الدقيق بمعالجته أى تنفيذه تعليمة احدة فى كل مرة .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الدخول إلى عالم الميكروكونترولر
مرحبا بكم في عالم الميكروكنترولر الرائع . يفترض أنك تقرأ هذا النص لأنك تهتم وترغب في تعلم واستكشاف علم الميكروكنترولر. لعلك تعلم أن المعالجات الدقيقة بصفة عامة والمتحكمات الدقيقة على وجه الخصوص قد غيرت الإلكترونيات اليوم إلى حد كبير . الآن الأجهزة الإلكترونية والدوائر لا تصمم كتوصيلات إلكترونية ، ولكن تصمم كبرمجيات تعمل داخل المتحكمات الدقيقة . لذلك فإن الأجهزة الإلكترونية اليوم هى مزيج من الأجهزة (الهاردوير) hardware والبرمجيات (سوفت وير) software .
هذه الدروس سوف تأخذك من خلال جميع الخطوات اللازمة لتعلم واستكشاف الميكروكونترولر PIC ، هذه الأجهزة الصغيرة (الدقيقة) والتى أحدثت ثورة في عالم الالكترونيات . اليوم الميكروكنترولر فى كل مكان ، فكر فى أى جهاز وسوف تجد الميكروكونترولر فى مكان ما به . فجهاز التحكم عن بعد ، أو مكيف الهواء ، أو الميكرويف ، أو مشغل DVD ، أو التلفزيون أو الهاتف الخلوى جميعها بها ميكروكونترولر مستقر بداخلها .
هذه الأجهزة الصغيرة تستطيع أن تفعل الكثير، لدرجة لا يحدها إلا الخيال . وعلاوة على ذلك فهى بسيطة جدا من حيث الاستخدام ، فأنت لا تحتاج أن تكون خبيرا في مجال الالكترونيات لاستخدامها فى المشروع الخاص بك . كل ما هو مطلوب منك ، فى البداية ، فهم أساسيات الإلكترونيات ، والدوائر الرقمية .
مرحبا بكم في عالم الميكروكنترولر الرائع . يفترض أنك تقرأ هذا النص لأنك تهتم وترغب في تعلم واستكشاف علم الميكروكنترولر. لعلك تعلم أن المعالجات الدقيقة بصفة عامة والمتحكمات الدقيقة على وجه الخصوص قد غيرت الإلكترونيات اليوم إلى حد كبير . الآن الأجهزة الإلكترونية والدوائر لا تصمم كتوصيلات إلكترونية ، ولكن تصمم كبرمجيات تعمل داخل المتحكمات الدقيقة . لذلك فإن الأجهزة الإلكترونية اليوم هى مزيج من الأجهزة (الهاردوير) hardware والبرمجيات (سوفت وير) software .
هذه الدروس سوف تأخذك من خلال جميع الخطوات اللازمة لتعلم واستكشاف الميكروكونترولر PIC ، هذه الأجهزة الصغيرة (الدقيقة) والتى أحدثت ثورة في عالم الالكترونيات . اليوم الميكروكنترولر فى كل مكان ، فكر فى أى جهاز وسوف تجد الميكروكونترولر فى مكان ما به . فجهاز التحكم عن بعد ، أو مكيف الهواء ، أو الميكرويف ، أو مشغل DVD ، أو التلفزيون أو الهاتف الخلوى جميعها بها ميكروكونترولر مستقر بداخلها .
هذه الأجهزة الصغيرة تستطيع أن تفعل الكثير، لدرجة لا يحدها إلا الخيال . وعلاوة على ذلك فهى بسيطة جدا من حيث الاستخدام ، فأنت لا تحتاج أن تكون خبيرا في مجال الالكترونيات لاستخدامها فى المشروع الخاص بك . كل ما هو مطلوب منك ، فى البداية ، فهم أساسيات الإلكترونيات ، والدوائر الرقمية .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
ما هو الميكروكونترولر ؟
إذا ، ماهو الميكروكونترولر بالضبط ؟ هذا هو السؤال الذى يحتاج إلى توضيح قبل المضى قدما .
أنت ، كهاوى أو كطالب إالكترونيات لابد أن يكون قد مر عليك عدد من الدوائر المتكاملة . وهى أجهزة صغيرة بها الكثير من الدوائر بداخلها ، ولها قليل من الوصلات للاتصالات الخارجية . ومع ذلك فإن كل هذه الدوائر المتكاملة تختلف عن بعضها البعض ، من حيث الوظيفة . الدائرة داخل الدائرة متكاملة ، قد تكون مصممة للأغراض الرقمية digital أو للأغراض التناظرية analog . فعلى سبيل المثال : الدائرة المتكاملة للمؤقت 555 ، والشائعة الانتشار ، بها كل الدوائر الداخلية التى تلزم فقط لعمل أنواع مختلفة من المذبذبات . بالمثل الدائرة المتكاملة 7447 هى مفسر شفرة من ثنائى إلى سفن سيجمنت ، ولها أطراف دخل لقبول الأعداد الثنائية المشفرة عشرى BCD ، عندئذ ، فإن أطراف الخرج سوف تقوم بالتوصيل أو الفصل وفقا للعدد المطلوب عرضه على وحدة السفن سيجمنت . وبالمثل لمئات بل وآلاف الدوائر المتكاملة بوظائف "محددة" . لعمل تطبيق ، يجب أن تعرف على وجه التحديد وظيفة ومداخل ومخارج الدائرة المتكاملة المطلوبة .
الميكروكنترولر أوالمعالج الدقيق هو دائرة متكاملة ، لكنها تختلف جوهريا عن الدوائر المتكاملة الأخرى . فهى فئة في حد ذاتها ، والتى لا تصنع للقيام بوظيفة معينة . فعند شرائها من السوق ، لا يمكنك تحديد ما هى الوظيفة التى سوف يقوم بها . فمن أجل الحصول على وظيفة مفيدة ، يجب إعداد هذه الدوائر المتكاملة . على سبيل المثال ، يمكن إعداد الميكروكونترولر لاختبار حالة زر ضاغط ، ومن ثم تشغيل أو إيقاف محرك . ونفس الدائرة المتكاملة يمكن إعدادها فى وقت لاحق ، لقراءة حالة حساس الأشعة تحت الحمراء ، وفك شفرة الإشارة وتشغيل أو إيقاف جهاز آخر . إذا تم عمل هذان النوعان من الدوائر باستخدام الدوائر المتكاملة الرقمية التقليدية ، فإن ذلك يتطلب عددا كبيرا من المكونات . وعلاوة على ذلك فإن أى تغيير في المواصفات ، مثل تغيير شفرات الأشعة تحت الحمراء من شأنه أن يؤدى إلى تغيير كلى في التصميم . إن استخدام الدوائر المتكاملة القابلة للإعداد (للبرمجة) هى فكرة عظيمة . ليس فقط يمكن إعادة إعداد نفس الدائرة المتكاملة للقيام بمهام مختلفة ، ولكن يمكن بسهولة تنفيذ التغيير في المواصفات فقط عن طريق تغيير إعدادات الجهاز . وهذا يؤدى إلى تسهيل ، لدرجة كبيرة ، مهمة المهندسين والهواة فى التطوير السريع للأجهزة الإلكترونية الجديدة ، والتحسين المستمر للأجهزة الموجودة ، كما يؤدى أيضا إلى تخفيض متطلبات الأجهزة hardware علاوة على زمن التصميم والتسويق . نتيجة لذلك فقد استولى والميكروكونترولر على السوق . فقد تم تخفيض تصاميم الأجهزة بشكل كبيرة ، واستبدال معظم الدوائر بالإعدادات النصية . اليوم نحن نسمى هذه القدرة على إعداد الميكروكونترولر بالبرمجة programming .
والبرنامج ليس سوى سلسلة من التعليمات instructions ، بطريقة صحيحة ومنطقية لإرشاد المعالج للاستجابة والرد على المدخلات المختلفة . عن طريق تغيير البرنامج ، سوف يتغير سلوك الميكروكونترولر . فكر فيه كما لو كان نظام موسيقى . فالشركة المصنعة لم تصممه لإنتاج أى أصوات معينة بالسماعات . ومع ذلك فلديه كل الدوائر اللازمة للقيام بذلك . ما هى الموسيقى التى سوف ينتجها ، سيتوقف ذلك على الشريط tape ، أو القرص المضغوط CD المدرج . وبالتالى إذا قمت بتغيير القرص المضغوط ، فبنفس الجهاز يتم تشغيل شىء مختلف . لذا يمكننا القول أن نظام الموسيقى، هو جهاز قابل للبرمجة ، والمعلومات المخزنة على الشريط ، أو القرص المضغوط هى البرنامج ، أو التعليمات التى تساعد نظام الموسيقى ، لإنتاج الأصوات .
بالمثل يتم برمجة الميكروكونترولر للقيام بوظيفة . هذه الوظيفة يمكن أن تكون تغيير قناة التلفزيون إلى السيطرة على الحركات المعقدة للروبوت robot . جميع هذه التطبيقات بها ميكروكونترولر يقوم بوظيفتها المحددة . ولا تندهش عندما تجد نفس الميكروكونترولر فى جهاز التحكم عن بعد ، وفى الروبوت . ففى الحالة الأولى يتم تشغيل ليدات الأشعة تحت الحمراء وفى الحالة الثانية يتم تشغيل محركات .
نأخذ مثالا آخر . لنعتبر أن لديك ورقة عادية وقلم رصاص . والآن ، لديك 26 خيار من الحروف الأبجدية الإنجليزية وخيار رقم من الأرقام من 0 إلى 9 خيار ، وأشياء أخرى ، مثل المسافة الفارغة (البيضاء) ، ولا خيارات أكثر من ذلك . ما يمكنك القيام بهم معا ؟ . يمكنك أن تفعل المعجزات : كتابة قصيدة ، رواية ، مقالة أو لا شىء . كل ذلك يعتمد على كيفية تنظيم تلك الحروف ، باستخدام القلم والورقة . وبالتالي فإن نفس الأجهزة تخدم الآلاف من الوظائف المختلفة. اختيار الحروف هى التعليمات التى يمكن أن تعطيها ، والورقة هى الميكروكونترولر الخاص بك ، فى حين أن قلم الرصاص هو الجهاز الذى من خلاله يمكنك تحويل فكرة فى عقلك ، إلى الورقة , و بمجرد نقلها فلن تحتاج إلى قلم الرصاص .
هذا المثال يناسب تماما مع سيناريو الميكروكنترولر . وبالتالى عليك أن تتعلم التعليمات التى يفهمها الميكروكونترولر الخاص بك ، وبطريقة ترتيب تلك التعليمات . ثم يحين دور عقلك ، وأفكارك لكيفية اللعب مع هذه التعليمات للحصول على المهمة المطلوبة . فى الواقع ،هناك المئات من الأساليب للحصول على نفس المهمة ، كما هو الحال في اللغة الإنجليزية ، هناك طرق كثيرة يمكنك ترتيب الحروف الهجائية بها لنقل نفس الرسالة .
إذا ، ماهو الميكروكونترولر بالضبط ؟ هذا هو السؤال الذى يحتاج إلى توضيح قبل المضى قدما .
أنت ، كهاوى أو كطالب إالكترونيات لابد أن يكون قد مر عليك عدد من الدوائر المتكاملة . وهى أجهزة صغيرة بها الكثير من الدوائر بداخلها ، ولها قليل من الوصلات للاتصالات الخارجية . ومع ذلك فإن كل هذه الدوائر المتكاملة تختلف عن بعضها البعض ، من حيث الوظيفة . الدائرة داخل الدائرة متكاملة ، قد تكون مصممة للأغراض الرقمية digital أو للأغراض التناظرية analog . فعلى سبيل المثال : الدائرة المتكاملة للمؤقت 555 ، والشائعة الانتشار ، بها كل الدوائر الداخلية التى تلزم فقط لعمل أنواع مختلفة من المذبذبات . بالمثل الدائرة المتكاملة 7447 هى مفسر شفرة من ثنائى إلى سفن سيجمنت ، ولها أطراف دخل لقبول الأعداد الثنائية المشفرة عشرى BCD ، عندئذ ، فإن أطراف الخرج سوف تقوم بالتوصيل أو الفصل وفقا للعدد المطلوب عرضه على وحدة السفن سيجمنت . وبالمثل لمئات بل وآلاف الدوائر المتكاملة بوظائف "محددة" . لعمل تطبيق ، يجب أن تعرف على وجه التحديد وظيفة ومداخل ومخارج الدائرة المتكاملة المطلوبة .
الميكروكنترولر أوالمعالج الدقيق هو دائرة متكاملة ، لكنها تختلف جوهريا عن الدوائر المتكاملة الأخرى . فهى فئة في حد ذاتها ، والتى لا تصنع للقيام بوظيفة معينة . فعند شرائها من السوق ، لا يمكنك تحديد ما هى الوظيفة التى سوف يقوم بها . فمن أجل الحصول على وظيفة مفيدة ، يجب إعداد هذه الدوائر المتكاملة . على سبيل المثال ، يمكن إعداد الميكروكونترولر لاختبار حالة زر ضاغط ، ومن ثم تشغيل أو إيقاف محرك . ونفس الدائرة المتكاملة يمكن إعدادها فى وقت لاحق ، لقراءة حالة حساس الأشعة تحت الحمراء ، وفك شفرة الإشارة وتشغيل أو إيقاف جهاز آخر . إذا تم عمل هذان النوعان من الدوائر باستخدام الدوائر المتكاملة الرقمية التقليدية ، فإن ذلك يتطلب عددا كبيرا من المكونات . وعلاوة على ذلك فإن أى تغيير في المواصفات ، مثل تغيير شفرات الأشعة تحت الحمراء من شأنه أن يؤدى إلى تغيير كلى في التصميم . إن استخدام الدوائر المتكاملة القابلة للإعداد (للبرمجة) هى فكرة عظيمة . ليس فقط يمكن إعادة إعداد نفس الدائرة المتكاملة للقيام بمهام مختلفة ، ولكن يمكن بسهولة تنفيذ التغيير في المواصفات فقط عن طريق تغيير إعدادات الجهاز . وهذا يؤدى إلى تسهيل ، لدرجة كبيرة ، مهمة المهندسين والهواة فى التطوير السريع للأجهزة الإلكترونية الجديدة ، والتحسين المستمر للأجهزة الموجودة ، كما يؤدى أيضا إلى تخفيض متطلبات الأجهزة hardware علاوة على زمن التصميم والتسويق . نتيجة لذلك فقد استولى والميكروكونترولر على السوق . فقد تم تخفيض تصاميم الأجهزة بشكل كبيرة ، واستبدال معظم الدوائر بالإعدادات النصية . اليوم نحن نسمى هذه القدرة على إعداد الميكروكونترولر بالبرمجة programming .
والبرنامج ليس سوى سلسلة من التعليمات instructions ، بطريقة صحيحة ومنطقية لإرشاد المعالج للاستجابة والرد على المدخلات المختلفة . عن طريق تغيير البرنامج ، سوف يتغير سلوك الميكروكونترولر . فكر فيه كما لو كان نظام موسيقى . فالشركة المصنعة لم تصممه لإنتاج أى أصوات معينة بالسماعات . ومع ذلك فلديه كل الدوائر اللازمة للقيام بذلك . ما هى الموسيقى التى سوف ينتجها ، سيتوقف ذلك على الشريط tape ، أو القرص المضغوط CD المدرج . وبالتالى إذا قمت بتغيير القرص المضغوط ، فبنفس الجهاز يتم تشغيل شىء مختلف . لذا يمكننا القول أن نظام الموسيقى، هو جهاز قابل للبرمجة ، والمعلومات المخزنة على الشريط ، أو القرص المضغوط هى البرنامج ، أو التعليمات التى تساعد نظام الموسيقى ، لإنتاج الأصوات .
بالمثل يتم برمجة الميكروكونترولر للقيام بوظيفة . هذه الوظيفة يمكن أن تكون تغيير قناة التلفزيون إلى السيطرة على الحركات المعقدة للروبوت robot . جميع هذه التطبيقات بها ميكروكونترولر يقوم بوظيفتها المحددة . ولا تندهش عندما تجد نفس الميكروكونترولر فى جهاز التحكم عن بعد ، وفى الروبوت . ففى الحالة الأولى يتم تشغيل ليدات الأشعة تحت الحمراء وفى الحالة الثانية يتم تشغيل محركات .
نأخذ مثالا آخر . لنعتبر أن لديك ورقة عادية وقلم رصاص . والآن ، لديك 26 خيار من الحروف الأبجدية الإنجليزية وخيار رقم من الأرقام من 0 إلى 9 خيار ، وأشياء أخرى ، مثل المسافة الفارغة (البيضاء) ، ولا خيارات أكثر من ذلك . ما يمكنك القيام بهم معا ؟ . يمكنك أن تفعل المعجزات : كتابة قصيدة ، رواية ، مقالة أو لا شىء . كل ذلك يعتمد على كيفية تنظيم تلك الحروف ، باستخدام القلم والورقة . وبالتالي فإن نفس الأجهزة تخدم الآلاف من الوظائف المختلفة. اختيار الحروف هى التعليمات التى يمكن أن تعطيها ، والورقة هى الميكروكونترولر الخاص بك ، فى حين أن قلم الرصاص هو الجهاز الذى من خلاله يمكنك تحويل فكرة فى عقلك ، إلى الورقة , و بمجرد نقلها فلن تحتاج إلى قلم الرصاص .
هذا المثال يناسب تماما مع سيناريو الميكروكنترولر . وبالتالى عليك أن تتعلم التعليمات التى يفهمها الميكروكونترولر الخاص بك ، وبطريقة ترتيب تلك التعليمات . ثم يحين دور عقلك ، وأفكارك لكيفية اللعب مع هذه التعليمات للحصول على المهمة المطلوبة . فى الواقع ،هناك المئات من الأساليب للحصول على نفس المهمة ، كما هو الحال في اللغة الإنجليزية ، هناك طرق كثيرة يمكنك ترتيب الحروف الهجائية بها لنقل نفس الرسالة .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الميكروكونترولر PIC
على الرغم من أنه قد تم تطوير الميكروكنترولر منذ بداية عام 1970 إلا أن الطفرة الحقيقية جاءت فى منتصف عام 1990 . حيث قدمت شركة اسمها ميكروشيب أول ميكروكونترولر بسيط لها ، والذى أسموه PIC .
هناك عدد كبير من تصاميم الميكروكونترولر متاحة من شركة ميكروشيب , وفق التركيب المعمارى ، وتخطيط الذاكرة وقوة المعالجة . وقد تم تصنيفها على أنها : النطاق المنخفض low range ، و النطاق الأوسط mid range ، والنطاق المرتفع high range ، وحاليا ميكروكونترولر معالجة الإشارة الرقمية DSP .
ميزة هذه الأجهزة سهولة توافرها، وانخفاض تكلفتها وسهولة برمجتها والتعامل معها ، وهذا ما جعل الميكروكونترولر PIC هو المفضل للهواة والطلبة .
على الرغم من أنه قد تم تطوير الميكروكنترولر منذ بداية عام 1970 إلا أن الطفرة الحقيقية جاءت فى منتصف عام 1990 . حيث قدمت شركة اسمها ميكروشيب أول ميكروكونترولر بسيط لها ، والذى أسموه PIC .
هناك عدد كبير من تصاميم الميكروكونترولر متاحة من شركة ميكروشيب , وفق التركيب المعمارى ، وتخطيط الذاكرة وقوة المعالجة . وقد تم تصنيفها على أنها : النطاق المنخفض low range ، و النطاق الأوسط mid range ، والنطاق المرتفع high range ، وحاليا ميكروكونترولر معالجة الإشارة الرقمية DSP .
ميزة هذه الأجهزة سهولة توافرها، وانخفاض تكلفتها وسهولة برمجتها والتعامل معها ، وهذا ما جعل الميكروكونترولر PIC هو المفضل للهواة والطلبة .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
نبذة مختصرة عن بعض أنواع الميكروكونترولر PIC
أى ميكروكونترولر PIC تختار ؟ سؤال صعب .
يوجد الكثير من الأنواع المختلفة , كل نوع بخيارات وأسعار مختلفة . معظم التدريبات تتم باستخدام الميكروكونترولر PIC16F877 . من المهم العمل بميكروكونترولر واحد بأكبير قدر مستطاع , حتى تتعرف عليه فعليا . لهذا السبب فأن معظم التدريبات تتم على الميكروكونترولر 16F877 . قد نحتاج لاستخدام ميكروكونترولر آخر لذلك سوف نلقى نظرة على بعض الميكروكونترولر PIC والتى سوف نتناولها خلال هذه الدراسة .
نبذة عن الميكروكونترولر PIC12F675 :
الميكروكونترولر PIC12F675 واحد من سلسلة PIC الصغرى المتاحة , وهو ذات 8 أطراف فقط , لكنه ذات قدرة عالية .
لاحظ الترقيم الشاذ للأطراف والخاص بهذه السلسلة . على سبيل المثال , الطرف رقم 7 AN0 أو GP0 .
الخواص العامة :
قد يكون هذا الميكروكونترولر أقل تميزا عن PIC16F877 ولكنه أيضا أصغر فى الحجم والسعر. على الرغم من صغر حجمه إلا أنه يحتوى فى بنائه على مذبذب داخلى دقيق بتردد 4 MHz ومحول ADC بدقة 10 بت ومؤقت 8 بت ومؤقت 16 بت و...الخ .
يجب توصيل الأطراف التالية :
الطرف 1 : جهد التغذية الموجب +5V
الطرف 4: MCLR/Vpp طرف الإعادة ومدخل جهد البرمجة . يتم توصيل هذا الطرف بمقاومة 10 كيلو أوم بالجهد +5V
الطرف 8 : Vss أرضى مصدر القدرة 0V
عند البرمجة بالدائرة ICSP يتم توصيل الأطراف التالية :
الطرف 4 : MCLR/Vpp جهد البرمجة
الطرف 7 : ICSPDAT البيانات
الطرف 6 : ICSPCLKالساعة
الجهد +5V
الأرضى 0V
أى ميكروكونترولر PIC تختار ؟ سؤال صعب .
يوجد الكثير من الأنواع المختلفة , كل نوع بخيارات وأسعار مختلفة . معظم التدريبات تتم باستخدام الميكروكونترولر PIC16F877 . من المهم العمل بميكروكونترولر واحد بأكبير قدر مستطاع , حتى تتعرف عليه فعليا . لهذا السبب فأن معظم التدريبات تتم على الميكروكونترولر 16F877 . قد نحتاج لاستخدام ميكروكونترولر آخر لذلك سوف نلقى نظرة على بعض الميكروكونترولر PIC والتى سوف نتناولها خلال هذه الدراسة .
نبذة عن الميكروكونترولر PIC12F675 :
الميكروكونترولر PIC12F675 واحد من سلسلة PIC الصغرى المتاحة , وهو ذات 8 أطراف فقط , لكنه ذات قدرة عالية .
لاحظ الترقيم الشاذ للأطراف والخاص بهذه السلسلة . على سبيل المثال , الطرف رقم 7 AN0 أو GP0 .
الخواص العامة :
قد يكون هذا الميكروكونترولر أقل تميزا عن PIC16F877 ولكنه أيضا أصغر فى الحجم والسعر. على الرغم من صغر حجمه إلا أنه يحتوى فى بنائه على مذبذب داخلى دقيق بتردد 4 MHz ومحول ADC بدقة 10 بت ومؤقت 8 بت ومؤقت 16 بت و...الخ .
يجب توصيل الأطراف التالية :
الطرف 1 : جهد التغذية الموجب +5V
الطرف 4: MCLR/Vpp طرف الإعادة ومدخل جهد البرمجة . يتم توصيل هذا الطرف بمقاومة 10 كيلو أوم بالجهد +5V
الطرف 8 : Vss أرضى مصدر القدرة 0V
عند البرمجة بالدائرة ICSP يتم توصيل الأطراف التالية :
الطرف 4 : MCLR/Vpp جهد البرمجة
الطرف 7 : ICSPDAT البيانات
الطرف 6 : ICSPCLKالساعة
الجهد +5V
الأرضى 0V
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
نبذة عن الميكروكونترولر PIC16F84A
• الميكروكونترولر PIC16F84A متحكم 8-bit من انتاج شركة ميكروشيب الامريكية .
• هو بالفعل قديم جدا (1999) وإنما يعتبر مقدمة ومدخل جيد الى عالم الميكروكنترولر. فلايزال يصنع الى الان .
• الميكرومونترولر PIC16F628A هو الاخ الاكبر للميكروكونترولر PIC16F64A فهو يحتوى على ضعف الذاكرة علاوة على كثير من الوظائف الاضافية وسعره أقل !.
• الميكروكونترولر PIC16F84A و PIC16F628A لهما نفس مجموعة التعليمات كما ان أطرافهما متوافقة . بالأضافة الى ذلك يمكننا تغيير أو استبدال الميكروكونترولر PIC16F84A بالميكروكونترولر PIC16F628A ( العكس غير صحيح ) : فقط تتم عملية موائمة بسيطة لكود المصدر .
أطراف الميكروكونترولر PIC16F84A
• الميكروكونترولر PIC16F84A هو دائرة متكاملة 18 طرف (رجل) فى صفين و غلافها بلاستيك وتعرف بأسم PDIP كما فى الشكل .
• يحتوى الميكروكونترولر PIC16F84A على 13 طرف دخل / خرج ( 5 أطراف بالمنفذ A و 8 أطراف بالمنفذ B ) .
• كل دخل/خرج يتم اعداده على حدة اما دخل واما خرج .
• حالة اعداد الطرف RA4 كطرف خرج حالة خاصة ( لاتوجد مشكلة فى اعداده كدخل)
الطرف RA4 داخليا له خرج من نوع يسمى المصب المفتوح open-drain وهذا يعنى عدم قدرته على الامداد بالقدرة ولكن يمكنه ان يستهلك القدرة . فيجب مراعاة ذلك عند اعداد هذا الطرف كخرج كما فى الشكل التالى :
• الميكروكونترولر PIC16F84A متحكم 8-bit من انتاج شركة ميكروشيب الامريكية .
• هو بالفعل قديم جدا (1999) وإنما يعتبر مقدمة ومدخل جيد الى عالم الميكروكنترولر. فلايزال يصنع الى الان .
• الميكرومونترولر PIC16F628A هو الاخ الاكبر للميكروكونترولر PIC16F64A فهو يحتوى على ضعف الذاكرة علاوة على كثير من الوظائف الاضافية وسعره أقل !.
• الميكروكونترولر PIC16F84A و PIC16F628A لهما نفس مجموعة التعليمات كما ان أطرافهما متوافقة . بالأضافة الى ذلك يمكننا تغيير أو استبدال الميكروكونترولر PIC16F84A بالميكروكونترولر PIC16F628A ( العكس غير صحيح ) : فقط تتم عملية موائمة بسيطة لكود المصدر .
أطراف الميكروكونترولر PIC16F84A
• الميكروكونترولر PIC16F84A هو دائرة متكاملة 18 طرف (رجل) فى صفين و غلافها بلاستيك وتعرف بأسم PDIP كما فى الشكل .
• يحتوى الميكروكونترولر PIC16F84A على 13 طرف دخل / خرج ( 5 أطراف بالمنفذ A و 8 أطراف بالمنفذ B ) .
• كل دخل/خرج يتم اعداده على حدة اما دخل واما خرج .
• حالة اعداد الطرف RA4 كطرف خرج حالة خاصة ( لاتوجد مشكلة فى اعداده كدخل)
الطرف RA4 داخليا له خرج من نوع يسمى المصب المفتوح open-drain وهذا يعنى عدم قدرته على الامداد بالقدرة ولكن يمكنه ان يستهلك القدرة . فيجب مراعاة ذلك عند اعداد هذا الطرف كخرج كما فى الشكل التالى :
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الميكروكونترولر PIC16F628 :
هو ميكروكونترولر ذات 18 طرف متوافق فلا الأطراف مع الميكروكونترولر PIC16F84 لكنه ليس تام التوافق برمجيا .
لاحظ الترتيب الشاذ للمنفذ port A . يبدأ المنفذ عند الطرف 17 , ويلف إلى الأطراف 18,1,2,3,4 ثم يعود مرة أخرى إلى الجهة الأخرى للأطراف 15 و 16 .
الخواص العامة :
هذا الميكروكونترولر أقل تميزا عن PIC16F877 ولكنه يظل له إمكانيات للمشاريع الحالية .
الأطراف التى يجب توصيلها :
الطرف 4 : MCLR/Vpp طرف الإعادة ومدخل جهد البرمجة . يتم توصيل هذا الطرف بمقاومة 10 كيلو أوم .
الطرف 5 : Vss أرضى مصدر القدرة 0V
الطرف 14 : Vdd جهد التغذية الموجب +5V
الطرف 15 : OSC1/CLKIN توصيل الكريستال .
الطرف 16 : OSC2/CLKOUT توصيل الكريستال .
أطراف البرمجة التسلسلية بالدائرة ICSP :
الطرف 4 : MCLR/Vpp جهد البرمجة
الطرف 13 : RB7/T1OSI/PGD البيانات
الطرف 12 : RB6/T1OSO/T1CKI/PGC الساعة
الطرف 10 : RB4/PGM طرف دخل البرمجة بالجهد المنخفض
الجهد +5V
الأرضى 0V
هو ميكروكونترولر ذات 18 طرف متوافق فلا الأطراف مع الميكروكونترولر PIC16F84 لكنه ليس تام التوافق برمجيا .
لاحظ الترتيب الشاذ للمنفذ port A . يبدأ المنفذ عند الطرف 17 , ويلف إلى الأطراف 18,1,2,3,4 ثم يعود مرة أخرى إلى الجهة الأخرى للأطراف 15 و 16 .
الخواص العامة :
هذا الميكروكونترولر أقل تميزا عن PIC16F877 ولكنه يظل له إمكانيات للمشاريع الحالية .
الأطراف التى يجب توصيلها :
الطرف 4 : MCLR/Vpp طرف الإعادة ومدخل جهد البرمجة . يتم توصيل هذا الطرف بمقاومة 10 كيلو أوم .
الطرف 5 : Vss أرضى مصدر القدرة 0V
الطرف 14 : Vdd جهد التغذية الموجب +5V
الطرف 15 : OSC1/CLKIN توصيل الكريستال .
الطرف 16 : OSC2/CLKOUT توصيل الكريستال .
أطراف البرمجة التسلسلية بالدائرة ICSP :
الطرف 4 : MCLR/Vpp جهد البرمجة
الطرف 13 : RB7/T1OSI/PGD البيانات
الطرف 12 : RB6/T1OSO/T1CKI/PGC الساعة
الطرف 10 : RB4/PGM طرف دخل البرمجة بالجهد المنخفض
الجهد +5V
الأرضى 0V
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الميكروكونترولر PIC16F876 :
هذا الميكروكونترولر هو الأخ الأصغر للميكروكونترولر PIC16F877 حيث أن به جميع الوظائف ولكن فى شريحة 28 طرف وغياب المنفذ D والمنفذ E وأحد طرفى الجهد الموجب +5V , وهو يقل عنه بعدد 12 طرف ولكنه مازال يصلح للمشاريع الصغيرة .
أهم الخواص :
الأطراف التى يجب توصيلها :
الطرف 1 : MCLR/Vpp طرف الإعادة ومدخل جهد البرمجة . يتم توصيل هذا الطرف بمقاومة 10 كيلو أوم .
الطرف 8 : Vss أرضى مصدر القدرة 0V
الطرف 9 : OSC1/CLKIN توصيل الكريستال .
الطرف 10 : OSC2/CLKOUT توصيل الكريستال .
الطرف 19 : Vss أرضى مصدر القدرة 0V
الطرف 20 : Vdd جهد التغذية الموجب +5V
أطراف البرمجة التسلسلية بالدائرة ICSP:
الطرف 1 : MCLR/Vpp جهد البرمجة
الطرف28: RB7/T1OSI/PGD البيانات
الطرف 27 : RB6/T1OSO/T1CKI/PGC الساعة
الطرف 24 : RB4/PGM طرف دخل البرمجة بالجهد المنخفض
الجهد +5V
الأرضى 0V
هذا الميكروكونترولر هو الأخ الأصغر للميكروكونترولر PIC16F877 حيث أن به جميع الوظائف ولكن فى شريحة 28 طرف وغياب المنفذ D والمنفذ E وأحد طرفى الجهد الموجب +5V , وهو يقل عنه بعدد 12 طرف ولكنه مازال يصلح للمشاريع الصغيرة .
أهم الخواص :
الأطراف التى يجب توصيلها :
الطرف 1 : MCLR/Vpp طرف الإعادة ومدخل جهد البرمجة . يتم توصيل هذا الطرف بمقاومة 10 كيلو أوم .
الطرف 8 : Vss أرضى مصدر القدرة 0V
الطرف 9 : OSC1/CLKIN توصيل الكريستال .
الطرف 10 : OSC2/CLKOUT توصيل الكريستال .
الطرف 19 : Vss أرضى مصدر القدرة 0V
الطرف 20 : Vdd جهد التغذية الموجب +5V
أطراف البرمجة التسلسلية بالدائرة ICSP:
الطرف 1 : MCLR/Vpp جهد البرمجة
الطرف28: RB7/T1OSI/PGD البيانات
الطرف 27 : RB6/T1OSO/T1CKI/PGC الساعة
الطرف 24 : RB4/PGM طرف دخل البرمجة بالجهد المنخفض
الجهد +5V
الأرضى 0V
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الهارد وير الأساسى hardware Basic :
أولا وقبل كل شىء , يجب اختيار نوع الميكروكونترولر PIC . عادة يقع الاختيار على أصغر وأرخص نوع يحقق جميع المطالب . فى حالتنا سوف نختار أسهل ميكروكونترولر والذى يمكن استخدامه فى بناء معظم المشاريع التى سوف نتناولها (حتى المعقد منها ) وهو الميكروكونترولر PIC16F877 .
الميكروكونترولر PIC16F877 له 40 طرف 40 pins . لمعرفة تفاصيل عمل هذه الأطراف يمكن الرجوع للداتا شيت .
أطراف الميكروكونترولر PIC16F877 :
على ما يبدو معقد بشكل مروع , لكن ربما إضافة بعض كلمات للشكل تجعله سهل إلى حد ما .
ماذا يعنى كل ذلك :
• "المداخل التناظرية" Analog inputs تعنى أن هذه الأطراف يمكن أن تقبل أى إشارة تناظرية بين 0V و 5V ( على سبيل المثال 3.56V) .
• "المداخل / المخارج الرقمية" Digital in / out تعنى أن هذه الأطراف يمكن أن تعالج إشارة رقمية إما 0V أو 5V , ولا تعالج أى شىء بينهما . وحيث أنها مخارج أيضا فيمكن جعل هذه الأطراف عند 0V أو 5V عن طريق الميكروكونترولر نفسه .
• أطراف القدرة هى Vss = 0V و Vdd = +5V . يجب التأكد من توصيل جميع أطراف القدرة .
• أطراف "الكريستال" Crystal حيث يجب توصيل مذبذب الكريستال (مع بعض المكثفات) . تعمل الكريستال على الاستقرار الكهربائى للحصول على تحكم دقيق فى سرعة الميكروكونترولر . يسمى هذا المذبذب بالساعة الخارجية clock . جميع PIC يمكن أن تعمل بدون كريستال , لكن السرعة سوف تكون منخفضة وقد تكون غير دقيقة بما فيه الكفاية للاتصال مع الكومبيوتر أو مع PIC آخر .
• "الوصلة التسلسلية" Serial connection تعنى أنه بهذه الأطراف يتم إجراء الاتصال التسلسلى ( أيضا يسمى RS232 ) مع الكومبيوتر أو مع PIC آخر .
• "I2C" هى بروتوكول شبكة والتى يمكن أن يستخدم فى توصيل عدة PIC معا أو توصيل الأجهزة الطرفية مع PIC .
العديد من الأطراف لها تسميات لاصطلاحات متعددة مدونة عليها . هذا يعنى أن لها العديد من الاستخدامات . فى الوقت الراهن نكتفى بالأطراف الرقمية والتناظرية .
أولا وقبل كل شىء , يجب اختيار نوع الميكروكونترولر PIC . عادة يقع الاختيار على أصغر وأرخص نوع يحقق جميع المطالب . فى حالتنا سوف نختار أسهل ميكروكونترولر والذى يمكن استخدامه فى بناء معظم المشاريع التى سوف نتناولها (حتى المعقد منها ) وهو الميكروكونترولر PIC16F877 .
الميكروكونترولر PIC16F877 له 40 طرف 40 pins . لمعرفة تفاصيل عمل هذه الأطراف يمكن الرجوع للداتا شيت .
أطراف الميكروكونترولر PIC16F877 :
على ما يبدو معقد بشكل مروع , لكن ربما إضافة بعض كلمات للشكل تجعله سهل إلى حد ما .
ماذا يعنى كل ذلك :
• "المداخل التناظرية" Analog inputs تعنى أن هذه الأطراف يمكن أن تقبل أى إشارة تناظرية بين 0V و 5V ( على سبيل المثال 3.56V) .
• "المداخل / المخارج الرقمية" Digital in / out تعنى أن هذه الأطراف يمكن أن تعالج إشارة رقمية إما 0V أو 5V , ولا تعالج أى شىء بينهما . وحيث أنها مخارج أيضا فيمكن جعل هذه الأطراف عند 0V أو 5V عن طريق الميكروكونترولر نفسه .
• أطراف القدرة هى Vss = 0V و Vdd = +5V . يجب التأكد من توصيل جميع أطراف القدرة .
• أطراف "الكريستال" Crystal حيث يجب توصيل مذبذب الكريستال (مع بعض المكثفات) . تعمل الكريستال على الاستقرار الكهربائى للحصول على تحكم دقيق فى سرعة الميكروكونترولر . يسمى هذا المذبذب بالساعة الخارجية clock . جميع PIC يمكن أن تعمل بدون كريستال , لكن السرعة سوف تكون منخفضة وقد تكون غير دقيقة بما فيه الكفاية للاتصال مع الكومبيوتر أو مع PIC آخر .
• "الوصلة التسلسلية" Serial connection تعنى أنه بهذه الأطراف يتم إجراء الاتصال التسلسلى ( أيضا يسمى RS232 ) مع الكومبيوتر أو مع PIC آخر .
• "I2C" هى بروتوكول شبكة والتى يمكن أن يستخدم فى توصيل عدة PIC معا أو توصيل الأجهزة الطرفية مع PIC .
العديد من الأطراف لها تسميات لاصطلاحات متعددة مدونة عليها . هذا يعنى أن لها العديد من الاستخدامات . فى الوقت الراهن نكتفى بالأطراف الرقمية والتناظرية .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
سلسلة الميكروكونترولر PIC18F
عرفت سلسلة الميكروكونترولر PIC16 منذ سنين عديدة . على الرغم من أن هذه السلسلة ممتازة لميكروكونترولر الأغراض العامة إلا أن عليها بعض القيود . على سبيل المثال ، مقدرة ذاكرة البرنامج وذاكرة البيانات محدودة .
كما أن سلسلة الميكروكونترولر PIC16 لا توفر الدعم المباشر للواجهات المحيطية المتقدمة مثل USB وغيرها والربط مع مثل هذه الأجهزة ليس سهلا . أيضا مجموعة التعليمات لهذه السلسلة محدودة .
أنتجت شركة ميكروشيب سلسلة الميكروكونترولر PIC18 للاستخدام فى التطبيقات المعقدة والتى تتطلب عدد أطراف مرتفع وتطبيقات متقدمة .
توفر أجهزة PIC18F ذاكرة برنامج وميضية فى الحجم من 8 إلى 128Kbytes و ذاكرة بيانات من 256 إلى 4Kbytes وتعمل على جهد فى المدى من 2.0 إلى 5.0 volts وبسرعة من DC إلى 40MHz .
عرفت سلسلة الميكروكونترولر PIC16 منذ سنين عديدة . على الرغم من أن هذه السلسلة ممتازة لميكروكونترولر الأغراض العامة إلا أن عليها بعض القيود . على سبيل المثال ، مقدرة ذاكرة البرنامج وذاكرة البيانات محدودة .
كما أن سلسلة الميكروكونترولر PIC16 لا توفر الدعم المباشر للواجهات المحيطية المتقدمة مثل USB وغيرها والربط مع مثل هذه الأجهزة ليس سهلا . أيضا مجموعة التعليمات لهذه السلسلة محدودة .
أنتجت شركة ميكروشيب سلسلة الميكروكونترولر PIC18 للاستخدام فى التطبيقات المعقدة والتى تتطلب عدد أطراف مرتفع وتطبيقات متقدمة .
توفر أجهزة PIC18F ذاكرة برنامج وميضية فى الحجم من 8 إلى 128Kbytes و ذاكرة بيانات من 256 إلى 4Kbytes وتعمل على جهد فى المدى من 2.0 إلى 5.0 volts وبسرعة من DC إلى 40MHz .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
البيانات التناظرية والرقمية Analog and Digital Data :
يستخدم الميكروبروسسور البيانات الرقمية لتمثيل كل شيء . حتى الموسيقى والفيديو والصور كلها تكون ممثلة كبيانات رقمية ، والتى هى سلسلة من المنطق صفر (0) والمنطق واحد (1) . ومع ذلك فإن بيانات عالمنا الحقيقي ليست رقمية ، فهى تناظرية إلى حد ما . ويمكن القول وبحق، "نحن نعيش في عالم تناظرى ، ولكن معالجة البيانات تتم في عالم رقمى ". بيانات العالم الحقيقى مثل الضوء ودرجة الحرارة ، والضغط ، والحرارة ، والارتفاع ، والمسافة ، والسرعة ، والقوة و... إلخ ، جميعها بيانات تناظرية . من أجل الاستفادة من هذه البيانات يجب علينا الحصول عليها مع أجهزة استشعار sensorsمعينة أو من محولات transducers ومن ثم تحويلها إلى شكل رقمى للاستخدام داخل العالم الرقمى للميكروبروسسور . العديد من الميكروكنترولر الأخرى تتطلب رقاقة محول من تناظرى لرقمى ADC خارجية لتنفيذ ذلك ، ولكن تم بناء هذه الميزة الكبيرة فى الميكروكونترولر PIC . فعدد القنوات التناظرية تختلف من جهاز لآخر وبعض الأجهزة لا تملك هذه الميزة على متنها . الأطراف المسماة AN0 و AN1 و...إلخ ، تكون للبيانات التناظرية إذا لزم الأمر، إلا أنه يمكن أن تعمل أيضا كأطراف رقمية عادية للعمل مع البيانات الرقمية . يتم هذا الاختيار عن طريق إعدادات سجلات محددة فى الميكروكونترولر
يستخدم الميكروبروسسور البيانات الرقمية لتمثيل كل شيء . حتى الموسيقى والفيديو والصور كلها تكون ممثلة كبيانات رقمية ، والتى هى سلسلة من المنطق صفر (0) والمنطق واحد (1) . ومع ذلك فإن بيانات عالمنا الحقيقي ليست رقمية ، فهى تناظرية إلى حد ما . ويمكن القول وبحق، "نحن نعيش في عالم تناظرى ، ولكن معالجة البيانات تتم في عالم رقمى ". بيانات العالم الحقيقى مثل الضوء ودرجة الحرارة ، والضغط ، والحرارة ، والارتفاع ، والمسافة ، والسرعة ، والقوة و... إلخ ، جميعها بيانات تناظرية . من أجل الاستفادة من هذه البيانات يجب علينا الحصول عليها مع أجهزة استشعار sensorsمعينة أو من محولات transducers ومن ثم تحويلها إلى شكل رقمى للاستخدام داخل العالم الرقمى للميكروبروسسور . العديد من الميكروكنترولر الأخرى تتطلب رقاقة محول من تناظرى لرقمى ADC خارجية لتنفيذ ذلك ، ولكن تم بناء هذه الميزة الكبيرة فى الميكروكونترولر PIC . فعدد القنوات التناظرية تختلف من جهاز لآخر وبعض الأجهزة لا تملك هذه الميزة على متنها . الأطراف المسماة AN0 و AN1 و...إلخ ، تكون للبيانات التناظرية إذا لزم الأمر، إلا أنه يمكن أن تعمل أيضا كأطراف رقمية عادية للعمل مع البيانات الرقمية . يتم هذا الاختيار عن طريق إعدادات سجلات محددة فى الميكروكونترولر
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
المفاهيم الأساسية BASIC CONCEPTS :
هل تعلم أنه يمكن تصنيف الناس إلى مجموعات ، أولئك الذين هم على دراية بالنظام الثنائى للأعداد وأولئك الذين ليسوا على دراية به . أن كنت لا تفهم هذا المعنى ، فهذا يعنى أنك لا تزال تنتمى إلى المجموعة الأخيرة إذا كنت ترغب فى تغيير حالتك فعليك بقراءة هذا الجزء ، الذى يصف بإيجاز بعض المفاهيم الأساسية المستخدمة لاحقا ، حتى تكون على يقين من أننا نسير على نفس الطريق .
عالم الأعداد :
الرياضيات ، هذا العلم الرائع ، فكل شىء منطقى جدا وبسيط ، وحيث يمكن وصف الكون كله بعشرة أرقام فقط. لكن ، هل حقا هو كذلك ؟ هل نحن بحاجة فقط لعشرة أرقام بالضبط ، بالطبع لا ، إنها ليس إلا على سبيل العادة. تذكر الدروس المدرسية ، على سبيل المثال ، ماذا يعنى الرقم 764 : أربعة "آحاد" ، وستة "عشرات" وسبعة "مئات" . إنها على هذا النحو بسيطة . هل يمكن وصفها بطريقة أكثر تعقيدا ، بالطبع :
"4 + 60 + 70" . وحتى أكثر تعقيدا ؟ بالتأكيد : "4*1 + 6*10 + 7*100" . هل يمكن لهذه الأعداد أن تبدو بشكل علمى أكثر ؟ الجواب نعم مرة أخرة : 4*100 + 6*101 + 7*102 أو
4*10^0 + 6*10^1 + 7*10^2 . ماذا يعنى ذلك فى الواقع ؟ لماذا نستخدم بالضبط الأعداد : " 100 و 101 و 102 ؟ لماذا هى دائما حول العدد "10" ؟ الجواب هو : لأننا نستخدم عشرة أرقام مختلفة (0, 1, 2, ... 8, 9) . بعبارة أخرى , نحن نستخدم نظام الأعداد "بالقاعدة" أو "الأساس" "10" base-10 ، أى "النظام العشرى للأعداد " decimal .
من الأسهل العمل مع الأعداد العشرية ، ومع ذلك فإن أجهزة الكمبيوتر لا تستطيع أن تفعل ذلك ، فهى تستخدم رقمين فقط ، الصفر (0) والواحد (1) ويتم تمثيلها بداخل الكومبيوتر عن طريق وجود أو عدم وجود فولت على خط معين .
النظام الثنائى للأعداد Binary number system
هل تعلم أنه يمكن تصنيف الناس إلى مجموعات ، أولئك الذين هم على دراية بالنظام الثنائى للأعداد وأولئك الذين ليسوا على دراية به . أن كنت لا تفهم هذا المعنى ، فهذا يعنى أنك لا تزال تنتمى إلى المجموعة الأخيرة إذا كنت ترغب فى تغيير حالتك فعليك بقراءة هذا الجزء ، الذى يصف بإيجاز بعض المفاهيم الأساسية المستخدمة لاحقا ، حتى تكون على يقين من أننا نسير على نفس الطريق .
عالم الأعداد :
الرياضيات ، هذا العلم الرائع ، فكل شىء منطقى جدا وبسيط ، وحيث يمكن وصف الكون كله بعشرة أرقام فقط. لكن ، هل حقا هو كذلك ؟ هل نحن بحاجة فقط لعشرة أرقام بالضبط ، بالطبع لا ، إنها ليس إلا على سبيل العادة. تذكر الدروس المدرسية ، على سبيل المثال ، ماذا يعنى الرقم 764 : أربعة "آحاد" ، وستة "عشرات" وسبعة "مئات" . إنها على هذا النحو بسيطة . هل يمكن وصفها بطريقة أكثر تعقيدا ، بالطبع :
"4 + 60 + 70" . وحتى أكثر تعقيدا ؟ بالتأكيد : "4*1 + 6*10 + 7*100" . هل يمكن لهذه الأعداد أن تبدو بشكل علمى أكثر ؟ الجواب نعم مرة أخرة : 4*100 + 6*101 + 7*102 أو
4*10^0 + 6*10^1 + 7*10^2 . ماذا يعنى ذلك فى الواقع ؟ لماذا نستخدم بالضبط الأعداد : " 100 و 101 و 102 ؟ لماذا هى دائما حول العدد "10" ؟ الجواب هو : لأننا نستخدم عشرة أرقام مختلفة (0, 1, 2, ... 8, 9) . بعبارة أخرى , نحن نستخدم نظام الأعداد "بالقاعدة" أو "الأساس" "10" base-10 ، أى "النظام العشرى للأعداد " decimal .
من الأسهل العمل مع الأعداد العشرية ، ومع ذلك فإن أجهزة الكمبيوتر لا تستطيع أن تفعل ذلك ، فهى تستخدم رقمين فقط ، الصفر (0) والواحد (1) ويتم تمثيلها بداخل الكومبيوتر عن طريق وجود أو عدم وجود فولت على خط معين .
النظام الثنائى للأعداد Binary number system
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
النظام الثنائى للأعداد Binary number system
ماذا سيحدث لو لم يكن هناك سوى رقمين فقط للاستخدام : الصفر "0" والواحد "1" ؟ أو إذا كنا لا نعرف كيفية تحديد ما إذا كان شىء أكبر من 3 أو 5 مرات من شىء آخر ؟ أو كنا مقيدين عند المقارنة بين حجمين ، أى إذا استعنا فقط بقول أن شىء ما موجود "1" أو غير موجود "0" ؟ الجواب هو : لا شىء خاص ، سوف نبقى على استخدام الأعداد بنفس الطريقة كما فعلنا الآن ، ولكنها سوف تبدو مختلفة بعض الشىء . على سبيل المثال : 11011010 . كم عدد صفحات كتاب يشمل العدد 11011010 ؟ من أجل معرفة ذلك ، عليك مجرد تتبع نفس المنطق فى النظام العشرى السابق ، ولكن بترتيب عكسى . كما ترى هنا ، الجميع مؤسس على رقمين فقط : الصفر "0" والواحد "1" أى نظام الأعداد بالأساس "2" base-2 ( النظام الثنائى للأعداد ) .
من الواضح أن نفس العدد يتم تمثيله فى نظامى الأعداد بطرق مختلفة . الفرق الوحيد بين الصيغتين هو عدد الأرقام التى يتكون منه . رقم واحد (2) يستخدم لكتابة العدد "2" فى النظام العشرى ، فى حين يستخدم رقمين ( 0 و 1 ) لكتابته بالنظام الثنائى .
مرحبا بك فى العالم المنطقى الرقمى . من الأسهل بكثير الإشارة بالصفر "0" إلى عدم وجود جهد والإشارة بالواحد "1" إلى وجود جهد . فمن الأسهل كتابة "0" أو "1" بدلا من جملة كاملة "يوجد جهد " أو "لا يوجد جهد" على الترتيب . بهذا المفهوم فإن المنطق "0" والمنطق "1" يتوائم تماما مع الإليكترونيات ، ويتم بسهولة تنفيذ كل العمليات الرياضية المعقدة إلى حد بعيد ، من الواضح أننا نتحدث عن الإلكترونيات الرقمية .
نظام الأعداد السداسية عشر HEXADECIMAL NUMERIC SYSTEM
ماذا سيحدث لو لم يكن هناك سوى رقمين فقط للاستخدام : الصفر "0" والواحد "1" ؟ أو إذا كنا لا نعرف كيفية تحديد ما إذا كان شىء أكبر من 3 أو 5 مرات من شىء آخر ؟ أو كنا مقيدين عند المقارنة بين حجمين ، أى إذا استعنا فقط بقول أن شىء ما موجود "1" أو غير موجود "0" ؟ الجواب هو : لا شىء خاص ، سوف نبقى على استخدام الأعداد بنفس الطريقة كما فعلنا الآن ، ولكنها سوف تبدو مختلفة بعض الشىء . على سبيل المثال : 11011010 . كم عدد صفحات كتاب يشمل العدد 11011010 ؟ من أجل معرفة ذلك ، عليك مجرد تتبع نفس المنطق فى النظام العشرى السابق ، ولكن بترتيب عكسى . كما ترى هنا ، الجميع مؤسس على رقمين فقط : الصفر "0" والواحد "1" أى نظام الأعداد بالأساس "2" base-2 ( النظام الثنائى للأعداد ) .
من الواضح أن نفس العدد يتم تمثيله فى نظامى الأعداد بطرق مختلفة . الفرق الوحيد بين الصيغتين هو عدد الأرقام التى يتكون منه . رقم واحد (2) يستخدم لكتابة العدد "2" فى النظام العشرى ، فى حين يستخدم رقمين ( 0 و 1 ) لكتابته بالنظام الثنائى .
مرحبا بك فى العالم المنطقى الرقمى . من الأسهل بكثير الإشارة بالصفر "0" إلى عدم وجود جهد والإشارة بالواحد "1" إلى وجود جهد . فمن الأسهل كتابة "0" أو "1" بدلا من جملة كاملة "يوجد جهد " أو "لا يوجد جهد" على الترتيب . بهذا المفهوم فإن المنطق "0" والمنطق "1" يتوائم تماما مع الإليكترونيات ، ويتم بسهولة تنفيذ كل العمليات الرياضية المعقدة إلى حد بعيد ، من الواضح أننا نتحدث عن الإلكترونيات الرقمية .
نظام الأعداد السداسية عشر HEXADECIMAL NUMERIC SYSTEM
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
نظام الأعداد السداسية عشر HEXADECIMAL NUMERIC SYSTEM
فى بداية تطوير الكومبيوتر كانت هناك العديد من المشاكل عند العمل مع الأعداد الثنائية . لهذا السبب ، تم إنشاء نظام عددى جديد باستخدام 16 رمز مختلف وسمى نظام الأعداد السداسية عشر hexadecimal . تتألف هذه الرموز من العشرة أرقام التى تعودنا على استخدامها (0, 1, 2, 3,... 9) و ستة حروف أبجدية
A, B, C, D, E , F . ربما تتساءل ما هو الغرض من هذا المزيج الغريب ؟ فقط انظر كيف أنها تناسب تماما قصة الأعداد الثنائية وسوف تفهم .
أكبر عدد يمكن تمثيله بأربعة أرقام ثنائية هو العدد "1111" . هذا العدد يناظر العدد "15" فى النظام العشرى ، بينما يتم تمثيله بالحرف "F" فى النظلم السداسى عشر . وهذا هو أكبر عدد مكون من رقم واحد فى النظام السداسى عشر . هل ترى كيف تم بمهارة استخدامه ؟ أكبر عدد مكون من ثمانية أرقام ثنائية هو نفسه فى نفس الوقت أكبر عدد مكون من رقمين فى النظام السداسى عشر . تذكر أن الكومبيوتر يستخدم الأعداد الثنائية المكونة من 8 أرقام ثنائية .
الشفرة (الكود) الثنائى المكود عشرى BCD CODE
فى بداية تطوير الكومبيوتر كانت هناك العديد من المشاكل عند العمل مع الأعداد الثنائية . لهذا السبب ، تم إنشاء نظام عددى جديد باستخدام 16 رمز مختلف وسمى نظام الأعداد السداسية عشر hexadecimal . تتألف هذه الرموز من العشرة أرقام التى تعودنا على استخدامها (0, 1, 2, 3,... 9) و ستة حروف أبجدية
A, B, C, D, E , F . ربما تتساءل ما هو الغرض من هذا المزيج الغريب ؟ فقط انظر كيف أنها تناسب تماما قصة الأعداد الثنائية وسوف تفهم .
أكبر عدد يمكن تمثيله بأربعة أرقام ثنائية هو العدد "1111" . هذا العدد يناظر العدد "15" فى النظام العشرى ، بينما يتم تمثيله بالحرف "F" فى النظلم السداسى عشر . وهذا هو أكبر عدد مكون من رقم واحد فى النظام السداسى عشر . هل ترى كيف تم بمهارة استخدامه ؟ أكبر عدد مكون من ثمانية أرقام ثنائية هو نفسه فى نفس الوقت أكبر عدد مكون من رقمين فى النظام السداسى عشر . تذكر أن الكومبيوتر يستخدم الأعداد الثنائية المكونة من 8 أرقام ثنائية .
الشفرة (الكود) الثنائى المكود عشرى BCD CODE
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الشفرة (الكود) الثنائى المكود عشرى BCD CODE
الكود BCD هو كود ثنائى للأعداد العشرية فقط (Binary-Coded Decimal) . وهو يتألف من أربعة أرقام ثنائية ثمثل رقم من الأرقام العشرة الأولى (0, 1, 2, 3 ... 8, 9) . على الرغم من أن أربع بتات يمكن أن تعطى 16 توليفة ممكنة ، إلا أن الكود BCD يستفيد فقط من العشرة الأولى .
الكود BCD هو كود ثنائى للأعداد العشرية فقط (Binary-Coded Decimal) . وهو يتألف من أربعة أرقام ثنائية ثمثل رقم من الأرقام العشرة الأولى (0, 1, 2, 3 ... 8, 9) . على الرغم من أن أربع بتات يمكن أن تعطى 16 توليفة ممكنة ، إلا أن الكود BCD يستفيد فقط من العشرة الأولى .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
وسم (تعليم) الأعداد
نظام الأعداد السداسى عشر ، جنبا إلى جنب مع أنظمة الأعداد الثنائية والأعداد العشرية، يعتبر نظام الأعداد الأكثر أهمية بالنسبة لنا. فمن السهل تحويل أى عدد سداسى عشر إلى عدد ثنائى كما أنه من السهل تذكر ذلك .
مع ذلك ، قد تسبب هذه التحويلات الارتباك . على سبيل المثال ، ماذا تعنى فعليا الجملة " من الضرورى عد 110 منتج فى خط تجميع " ؟
يعتمد ذلك على نظام الأعداد فهذا العدد يعنى 6 بالثنائى و يعنى 110 بالعشرى ويعنى 272 بالسداسى عشر . وبناء عليه من أجل تجنب سوء الفهم ، تضاف مباشرة بادئات prefixes ولواحق suffixes مختلفة إلى الأعداد .
البادئة $ أو 0x لوسم أو تعليم أو تعريف الأعداد فى النظام السداسى عشر. على سبيل المثال العدد السداسى عشر 10AF تكون صيغه :
$10AF
or
0x10AF
بالمثل الأعداد الثنائية عادة تعطى البادئة % أو 0b .
إذا لم يحتوى العدد على بادئة ولا على لاحقة فيعتبر عدد عشرى .
لسوء الحظ هذه الطريقة في وسم الأرقام ليست موحدة وبالتالى تعتمد على التطبيق المحدد .
نظام الأعداد السداسى عشر ، جنبا إلى جنب مع أنظمة الأعداد الثنائية والأعداد العشرية، يعتبر نظام الأعداد الأكثر أهمية بالنسبة لنا. فمن السهل تحويل أى عدد سداسى عشر إلى عدد ثنائى كما أنه من السهل تذكر ذلك .
مع ذلك ، قد تسبب هذه التحويلات الارتباك . على سبيل المثال ، ماذا تعنى فعليا الجملة " من الضرورى عد 110 منتج فى خط تجميع " ؟
يعتمد ذلك على نظام الأعداد فهذا العدد يعنى 6 بالثنائى و يعنى 110 بالعشرى ويعنى 272 بالسداسى عشر . وبناء عليه من أجل تجنب سوء الفهم ، تضاف مباشرة بادئات prefixes ولواحق suffixes مختلفة إلى الأعداد .
البادئة $ أو 0x لوسم أو تعليم أو تعريف الأعداد فى النظام السداسى عشر. على سبيل المثال العدد السداسى عشر 10AF تكون صيغه :
$10AF
or
0x10AF
بالمثل الأعداد الثنائية عادة تعطى البادئة % أو 0b .
إذا لم يحتوى العدد على بادئة ولا على لاحقة فيعتبر عدد عشرى .
لسوء الحظ هذه الطريقة في وسم الأرقام ليست موحدة وبالتالى تعتمد على التطبيق المحدد .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
البت BIT
نظريا تعتبر البت bit هى الوحدة الأساسية للمعلومات... دعونا ننسى ذلك للحظة ونلقى نظرة على الواقع .
البت هى مجرد رقم ثنائى . مثل نظام الأعداد العشرية حيث كل رقم فى العدد ليس له نفس القيمة (على سبيل المثال الأرقام فى العدد العشرى 444 هي نفسها ، ولكن لها قيم مختلفة) ، 'أهمية' ‘significance’ أو قيمة البت تعتمد على موقعها (مكانها) في العدد الثنائي . وعلى خلاف نظام الأعداد العشرى ، فإن الأرقام الثنائية لا يشار إليها كآحاد ، وعشرات و.. ، لكن فى الأعداد الثنائية أرقام العدد الثنائى يشار إليها بالبت رقم صفر bit 0
(بت أقصى اليمين) والبت رقم 1 bit 1( البت الثانية من اليمين ) وهكذا . وحيث أن النظام الثنائى يستخدم رقمين فقط (0 , 1) فإن قيمة البت إما أن تكون 0 أو 1 .
ينبغي عدم الخلط إذا كنت تعبر عن بت لها القيمة 4, 16 , 64 . فهذه مجرد القيم الممثلة فى النظام العشرى . ببساطة ، لقد تعودنا على استخدام الأعداد العشرية وسوف نتعود على استخدام الأعداد الثنائية.
البايت BYTE
يتكون البايت من ثمانى بتات مجمعة معا وموضوعة بجانب بعضها البعض . إذا كانت البت رقم فمن المنطقى أن تمثل البايتات أعداد . يمكن تنفيذ كافة العمليات الحسابية على البايت ، مثلما يتم على الأعداد العشرية الشائعة . مثل أرقام (خانات) أى عدد ، فإن أرقام (خانات) البايت ليس لها نفس الأهمية (القيمة) . أكبر قيمة (أهمية) تعطى للبت الموجودة أقصى اليسار وتسمى " البت ذات الأهمية أو القيمة القصوى"
most significant bit (MSB) . البت الموجودة أقصى اليمين تعطى أقل قيمة وتسمى "البت ذات الأهمية أو القيمة الأدنى " least significant bit (LSB) .
حيث أنه يمكن الحصول من ثمانى أصفار وآحاد لبايت واحدة على عدد 256 مجموعة (تركيبة -توليفة) مختلفة فإن أكبر عدد عشرى يمكن تمثيله ببايت واحد هو 255 ( أحد المجموعات يمثل الصفر) . يشار إلى مصطلح "النبل" nibble على أنه نصف البايت . بناء على أى نصف نتكلم يكون لدينا النصف الأيسر والنصف الأيمن وتعرف بالنبل العلوى‘high’ والنبل السفلى ‘low’ على الترتيب .
نظريا تعتبر البت bit هى الوحدة الأساسية للمعلومات... دعونا ننسى ذلك للحظة ونلقى نظرة على الواقع .
البت هى مجرد رقم ثنائى . مثل نظام الأعداد العشرية حيث كل رقم فى العدد ليس له نفس القيمة (على سبيل المثال الأرقام فى العدد العشرى 444 هي نفسها ، ولكن لها قيم مختلفة) ، 'أهمية' ‘significance’ أو قيمة البت تعتمد على موقعها (مكانها) في العدد الثنائي . وعلى خلاف نظام الأعداد العشرى ، فإن الأرقام الثنائية لا يشار إليها كآحاد ، وعشرات و.. ، لكن فى الأعداد الثنائية أرقام العدد الثنائى يشار إليها بالبت رقم صفر bit 0
(بت أقصى اليمين) والبت رقم 1 bit 1( البت الثانية من اليمين ) وهكذا . وحيث أن النظام الثنائى يستخدم رقمين فقط (0 , 1) فإن قيمة البت إما أن تكون 0 أو 1 .
ينبغي عدم الخلط إذا كنت تعبر عن بت لها القيمة 4, 16 , 64 . فهذه مجرد القيم الممثلة فى النظام العشرى . ببساطة ، لقد تعودنا على استخدام الأعداد العشرية وسوف نتعود على استخدام الأعداد الثنائية.
البايت BYTE
يتكون البايت من ثمانى بتات مجمعة معا وموضوعة بجانب بعضها البعض . إذا كانت البت رقم فمن المنطقى أن تمثل البايتات أعداد . يمكن تنفيذ كافة العمليات الحسابية على البايت ، مثلما يتم على الأعداد العشرية الشائعة . مثل أرقام (خانات) أى عدد ، فإن أرقام (خانات) البايت ليس لها نفس الأهمية (القيمة) . أكبر قيمة (أهمية) تعطى للبت الموجودة أقصى اليسار وتسمى " البت ذات الأهمية أو القيمة القصوى"
most significant bit (MSB) . البت الموجودة أقصى اليمين تعطى أقل قيمة وتسمى "البت ذات الأهمية أو القيمة الأدنى " least significant bit (LSB) .
حيث أنه يمكن الحصول من ثمانى أصفار وآحاد لبايت واحدة على عدد 256 مجموعة (تركيبة -توليفة) مختلفة فإن أكبر عدد عشرى يمكن تمثيله ببايت واحد هو 255 ( أحد المجموعات يمثل الصفر) . يشار إلى مصطلح "النبل" nibble على أنه نصف البايت . بناء على أى نصف نتكلم يكون لدينا النصف الأيسر والنصف الأيمن وتعرف بالنبل العلوى‘high’ والنبل السفلى ‘low’ على الترتيب .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
الدوائر المنطقية Logic circuits
هل تساءلت يوما ما عما تبدو عليه الإلكترونيات داخل الدوائر المتكاملة الرقمية , المتحكمات الدقيقة أو المعالجات ؟ وعن شكل ما تؤديه الدوائر من العمليات الحسابية المعقدة واتخاذ القرارات ؟ هل تعرف أن مظهرها الذى يبدو معقدا إلا أنها لا تضم سوى عدد قليل من المكونات تسمى الدوائر المنطقية أو البوابات المنطقية ؟ .
بعض تعليمات البرنامج تعطى نفس النتائج على نحو البوابات المنطقية . سوف نناقش مبدأ عملها .
البوابة AND :
بوابة المنطق AND لها مدخلين أو أكثر ومخرج واحد . دعونا نفترض أن البوابة المستخدمة فى هذا المثال لها مدخلين فقط . سوف يظهر المنطق "1" على مخرجها فقط إذا كان كل من مدخليها (A AND B) فى الحالة المنطقية المرتفعة "1" . الجدول أعلاة يوضح العلاقة المتبادلة بين مداخل البوابة AND ومخرجها .
مبدأ العمل واحد حتى عندما يكون للبوابة أكثر من مدخلين : سوف يظهر المنطق "واحد" "1" على مخرجها فقط عندما يكون جميع مداخلها فى الحالة المرتفعة "1" . أى نركيبة أخرى من جهود المداخل سوف تنتج المنطق صفر "0" على مخرجها . عند استخدامها فى البرنامج , يتم إجراء المنطق AND بواسطة تعليمة برنامج , سوف نتناولها فيما بعد . فقط تذكر أن المنطق AND فى البرنامج يشير إلى البتات المناظرة من سجلين .
البوابة OR :
هل تساءلت يوما ما عما تبدو عليه الإلكترونيات داخل الدوائر المتكاملة الرقمية , المتحكمات الدقيقة أو المعالجات ؟ وعن شكل ما تؤديه الدوائر من العمليات الحسابية المعقدة واتخاذ القرارات ؟ هل تعرف أن مظهرها الذى يبدو معقدا إلا أنها لا تضم سوى عدد قليل من المكونات تسمى الدوائر المنطقية أو البوابات المنطقية ؟ .
بعض تعليمات البرنامج تعطى نفس النتائج على نحو البوابات المنطقية . سوف نناقش مبدأ عملها .
البوابة AND :
بوابة المنطق AND لها مدخلين أو أكثر ومخرج واحد . دعونا نفترض أن البوابة المستخدمة فى هذا المثال لها مدخلين فقط . سوف يظهر المنطق "1" على مخرجها فقط إذا كان كل من مدخليها (A AND B) فى الحالة المنطقية المرتفعة "1" . الجدول أعلاة يوضح العلاقة المتبادلة بين مداخل البوابة AND ومخرجها .
مبدأ العمل واحد حتى عندما يكون للبوابة أكثر من مدخلين : سوف يظهر المنطق "واحد" "1" على مخرجها فقط عندما يكون جميع مداخلها فى الحالة المرتفعة "1" . أى نركيبة أخرى من جهود المداخل سوف تنتج المنطق صفر "0" على مخرجها . عند استخدامها فى البرنامج , يتم إجراء المنطق AND بواسطة تعليمة برنامج , سوف نتناولها فيما بعد . فقط تذكر أن المنطق AND فى البرنامج يشير إلى البتات المناظرة من سجلين .
البوابة OR :
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
البوابة OR :
بالمثل , بوابات OR أيضا لها مدخلين أو أكثر ومخرج واحد . إذا كانت البوابة لها مدخلين فقط فإنه ينطبق عليها ما يلى : سوف يظهر المنطق "1" على مخرجها إذ كان أى من مدخليها (A OR B) فى الحالة المنطقية المرتفعة "1" . إذا كانت بوابة OR لها أكثر من مدخلين ينطبق عليها ما يلى : سوف يظهر المنطق "1" على مخرجها إذا كان على الأقل أحد مداخلها فى الحالة المرتفعة "1" . إذا كان جميع المداخل عند المنطق المنخفض "0" , فإن المخرج سوف يكون عند المنطق المنخفض "0" كذلك .
فى البرنامج , يتم إجراء المنطق OR بنفس الطريقة كما فى المنطق AND .
البوابة NOT :
بالمثل , بوابات OR أيضا لها مدخلين أو أكثر ومخرج واحد . إذا كانت البوابة لها مدخلين فقط فإنه ينطبق عليها ما يلى : سوف يظهر المنطق "1" على مخرجها إذ كان أى من مدخليها (A OR B) فى الحالة المنطقية المرتفعة "1" . إذا كانت بوابة OR لها أكثر من مدخلين ينطبق عليها ما يلى : سوف يظهر المنطق "1" على مخرجها إذا كان على الأقل أحد مداخلها فى الحالة المرتفعة "1" . إذا كان جميع المداخل عند المنطق المنخفض "0" , فإن المخرج سوف يكون عند المنطق المنخفض "0" كذلك .
فى البرنامج , يتم إجراء المنطق OR بنفس الطريقة كما فى المنطق AND .
البوابة NOT :
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
البوابة NOT :
البوابة المنطقية NOT لها مدخل واحد فقط ومخرج واحد فقط . وهى تعمل بطريقة بسيطة للغاية . عندما يظهر المنطق المنخفض "0" على مدخلها , فإن المنطق المرتفع "1" يظهر على مخرجها والعكس بالعكس . وهو ما يعنى أن هذه البوابة تعكس الإشارة ولذلك فغالبا ما تسمى العاكس .
يتم إجراء عمل البوابة OR فى البرنامج على بايت واحد . والنتيجة تكون بايت مع عكس البتات . إذا اعتبر بتات البايت كعدد , فإن القيمة المعكوسة هى فى الواقع مكملة (متممة) له . مكمل العدد هو القيمة تضاف إلى هذا العدد لتجعله يصل إلى أكبر عدد ثنائى مكون من 8 أرقام . بعبارة أخرى , مجموع العدد المكون من 8 أرقام ومكمله دائما يكون 255 .
بوابة OR الحصرية XOR :
البوابة المنطقية NOT لها مدخل واحد فقط ومخرج واحد فقط . وهى تعمل بطريقة بسيطة للغاية . عندما يظهر المنطق المنخفض "0" على مدخلها , فإن المنطق المرتفع "1" يظهر على مخرجها والعكس بالعكس . وهو ما يعنى أن هذه البوابة تعكس الإشارة ولذلك فغالبا ما تسمى العاكس .
يتم إجراء عمل البوابة OR فى البرنامج على بايت واحد . والنتيجة تكون بايت مع عكس البتات . إذا اعتبر بتات البايت كعدد , فإن القيمة المعكوسة هى فى الواقع مكملة (متممة) له . مكمل العدد هو القيمة تضاف إلى هذا العدد لتجعله يصل إلى أكبر عدد ثنائى مكون من 8 أرقام . بعبارة أخرى , مجموع العدد المكون من 8 أرقام ومكمله دائما يكون 255 .
بوابة OR الحصرية XOR :
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
بوابة OR الحصرية XOR :
البوابة XOR معقدة بعض الشىء بالمقارنة مع البوابات الأخرى . فهى نوع من مزجهما معا . يظهر المنطق المرتفع "1" على مخرجها فقط عندما يكون مداخلها لها حالات منطقية مختلفة .
فى البرنامج , يتم استخدام التعليمة المناسبة عادة لمقارنة بايتين . الطرح له نفس الغرض ( إذا كانت النتيجة بصفر , يكون البايتين متساويين) , لكن ميزة عمل المنطق XOR هو أنه لا يعطى نتائج سالبة أبدا .
البوابة XOR معقدة بعض الشىء بالمقارنة مع البوابات الأخرى . فهى نوع من مزجهما معا . يظهر المنطق المرتفع "1" على مخرجها فقط عندما يكون مداخلها لها حالات منطقية مختلفة .
فى البرنامج , يتم استخدام التعليمة المناسبة عادة لمقارنة بايتين . الطرح له نفس الغرض ( إذا كانت النتيجة بصفر , يكون البايتين متساويين) , لكن ميزة عمل المنطق XOR هو أنه لا يعطى نتائج سالبة أبدا .
رد: برمجة الميكروكونترولر PIC بلغة لسى مع المترجم ميكروسى برو خطوة بخطوة :
السجل REGISTER :
باختصار , السجل أو خلية الذاكرة هى دائرة إلكترونية والتى يمكن أن تتذكر (تحفظ) حالة بايت واحد .
سجلات الوظائف الخاصة SFR REGISTERS :
بالإضافة إلى السجلات التى ليس لها أى وظيفة خاصة ومجددة مسبقا , فإن كل ميكروكونترولر لديه أيضا عدد من سجلات الوظائف الخاصة SFR , والتى تتحدد وظيفتها مسبقا من قبل الشركة المصنعة . بتات هذه السجلات متصلة , بشكل ثابت , إلى الدوائر المتكاملة ضمن الميكروكونترولر مثل المؤقتات , والمحول من تناظرى لرقمى , والمذبذب ..ألخ . وهذا يعنى أنها تعمل مباشرة تحت أمر هذه الدوائر , أى الميكروكونترولر . تخيل ثمانية مفاتيح تتحكم فى تشغيل دائرة صغيرة داخل الميكروكونترولر , سجلات الوظائف الخاصة تفعل ذلك بالضبط .
بعبارة أخرى , يتم تغيير حالة بتات السجل من داخل البرنامج , السجلات تقوم بتشغيل دوائر متكاملة صغيرة داخل الميكروكونترولر , هذه الدوائر وخلال أطراف الميكروكونترولر تتصل بالأجهزة الطرفية التى تستخدم حسب رغبتك .
باختصار , السجل أو خلية الذاكرة هى دائرة إلكترونية والتى يمكن أن تتذكر (تحفظ) حالة بايت واحد .
سجلات الوظائف الخاصة SFR REGISTERS :
بالإضافة إلى السجلات التى ليس لها أى وظيفة خاصة ومجددة مسبقا , فإن كل ميكروكونترولر لديه أيضا عدد من سجلات الوظائف الخاصة SFR , والتى تتحدد وظيفتها مسبقا من قبل الشركة المصنعة . بتات هذه السجلات متصلة , بشكل ثابت , إلى الدوائر المتكاملة ضمن الميكروكونترولر مثل المؤقتات , والمحول من تناظرى لرقمى , والمذبذب ..ألخ . وهذا يعنى أنها تعمل مباشرة تحت أمر هذه الدوائر , أى الميكروكونترولر . تخيل ثمانية مفاتيح تتحكم فى تشغيل دائرة صغيرة داخل الميكروكونترولر , سجلات الوظائف الخاصة تفعل ذلك بالضبط .
بعبارة أخرى , يتم تغيير حالة بتات السجل من داخل البرنامج , السجلات تقوم بتشغيل دوائر متكاملة صغيرة داخل الميكروكونترولر , هذه الدوائر وخلال أطراف الميكروكونترولر تتصل بالأجهزة الطرفية التى تستخدم حسب رغبتك .
صفحة 1 من اصل 2 • 1, 2
مواضيع مماثلة
» ترجمة الفصل الأول والفصل الثانى من كتاب برمجة الميكروكونترولر PIC بلغة السى مع المترجم ميكروسى برو
» مراجعة برمجة الميكروكونترولر PIC من خلال مشاريع الميكروكونترولر PIC16F877A مع الدايودات المشعة للضوء والمترجم ميكروسى برو :
» برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C برنامجك الأول :
» مارس 2014: متعة برمجة الميكروكونترولر PIC بلغة السى والمترجم (الكومبيلر) ميكروسى برو :
» 1-كتاب برمجة الميكروكونترولر PIC بلغة السى والمترجم ميكروسى برو والمحاكاة ببرنامج بروتيس
» مراجعة برمجة الميكروكونترولر PIC من خلال مشاريع الميكروكونترولر PIC16F877A مع الدايودات المشعة للضوء والمترجم ميكروسى برو :
» برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS C برنامجك الأول :
» مارس 2014: متعة برمجة الميكروكونترولر PIC بلغة السى والمترجم (الكومبيلر) ميكروسى برو :
» 1-كتاب برمجة الميكروكونترولر PIC بلغة السى والمترجم ميكروسى برو والمحاكاة ببرنامج بروتيس
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الميكروكونترولر PIC والبرجة بلغة السى والمترجم مسكروسى برو :: الميكروكونترولر PIC والبرمجة بلغة السى والمترجم ميكروسى برو
صفحة 1 من اصل 2
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى