ما هو برنامج C المضمن وهيكله للمبتدئين

جرب أداة القضاء على المشاكل





في وقت سابق ، تم تطوير العديد من التطبيقات المضمنة باستخدام البرمجة على مستوى التجميع. ومع ذلك ، فإنها لم توفر إمكانية النقل. تم التغلب على هذا العيب من خلال ظهور العديد من اللغات عالية المستوى مثل C و Pascal و COBOL. ومع ذلك ، كانت لغة C هي التي حظيت بقبول واسع النطاق للأنظمة المضمنة ، وما زالت تفعل ذلك. كود C المكتوب أكثر موثوقية وقابلية للتطوير وقابلية للحمل وفي الواقع أسهل في الفهم. البرمجة C المضمنة هي روح المعالج الذي يعمل داخل كل منهما نظام مضمن نصادفنا في حياتنا اليومية ، مثل الهواتف المحمولة والغسالات والكاميرات الرقمية. يرتبط كل معالج ببرنامج مدمج. الشيء الأول والأهم هو البرنامج المضمن الذي يقرر عمل النظام المضمن. غالبًا ما يتم استخدام لغة C المضمنة برمجة الميكروكونترولر .

ما هي لغة سي؟

تم تطوير لغة C بواسطة Dennis Ritchie في عام 1969. وهي عبارة عن مجموعة من وظيفة واحدة أو أكثر ، وكل وظيفة عبارة عن مجموعة من العبارات التي تؤدي مهمة محددة.
لغة C هي لغة متوسطة المستوى لأنها تدعم التطبيقات عالية المستوى والتطبيقات منخفضة المستوى. قبل الدخول في تفاصيل برمجة C المدمجة ، يجب أن نعرف عن تنظيم ذاكرة RAM.




تشمل الميزات الرئيسية للغة C ما يلي.

  • لغة C عبارة عن برنامج مصمم بكلمات رئيسية مختلفة وأنواع بيانات ومتغيرات وثوابت وما إلى ذلك.
  • المضمن C هو مصطلح عام يُعطى للغة برمجة مكتوبة بلغة C ، والتي ترتبط ببنية أجهزة معينة.
  • يعد Embedded C امتدادًا للغة C مع بعض ملفات الرأس الإضافية. قد تتغير ملفات الرأس هذه من وحدة تحكم إلى وحدة تحكم.
  • ال متحكم 8051 # تضمين.

ما هي البرمجة سي المضمنة

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



البرمجة C المدمجة

البرمجة C المدمجة

تُبنى برمجة C المضمنة مع مجموعة من الوظائف حيث تكون كل وظيفة عبارة عن مجموعة من العبارات التي يتم استخدامها لتنفيذ بعض المهام المحددة. كل من لغتي C و C المضمنة هي نفسها ويتم تنفيذها من خلال بعض العناصر الأساسية مثل المتغير ومجموعة الأحرف والكلمات الرئيسية وأنواع البيانات وإعلان المتغيرات والتعبيرات والعبارات. تلعب كل هذه العناصر دورًا رئيسيًا أثناء كتابة برنامج C مضمن.

يجب أن يعرف مصممو الأنظمة المضمنة بنية الأجهزة لكتابة البرامج. تلعب هذه البرامج دورًا بارزًا في مراقبة الأجهزة الخارجية والتحكم فيها. كما أنها تعمل بشكل مباشر وتستخدم البنية الداخلية لوحدة التحكم الدقيقة ، مثل معالجة المقاطعة ، وأجهزة ضبط الوقت ، والاتصال التسلسلي ، وغيرها من الميزات المتاحة.


برمجة النظام المضمن

كما ناقشنا سابقًا ، يمكن تصميم نظام مضمن باستخدام الأجهزة والبرامج. على سبيل المثال ، في نظام مضمن بسيط ، يكون المعالج هو الوحدة الرئيسية التي تعمل مثل قلب النظام. هنا المعالج ليس سوى معالج دقيق ، DSP ، متحكم ، CPLD & FPGA. كل هذه المعالجات قابلة للبرمجة بحيث تحدد عمل الجهاز.

يسمح برنامج النظام المضمن للأجهزة بفحص المدخلات والتحكم في المخرجات وفقًا لذلك. في هذا الإجراء ، قد يتعين على البرنامج المضمن التحكم في البنية الداخلية للمعالج مباشرةً مثل Timers ، و Interrupt Handling ، و I / O Ports ، وواجهة الاتصالات التسلسلية ، وما إلى ذلك.

لذا فإن برمجة النظام المدمجة مهمة جدًا للمعالج. هناك لغات برمجة مختلفة متاحة للأنظمة المضمنة مثل C و C ++ ولغة التجميع و JAVA و JAVA النصي و Visual Basic وما إلى ذلك. لذلك تلعب لغة البرمجة هذه دورًا رئيسيًا أثناء إنشاء نظام مضمن ولكن اختيار اللغة ضروري للغاية

خطوات بناء برنامج سي مضمن

هناك خطوات مختلفة متضمنة في تصميم برنامج c مضمن مثل ما يلي.

  • تعليقات
  • توجيهات المعالج
  • تكوين المنفذ
  • المتغيرات العالمية
  • الوظيفة الأساسية / الوظيفة الرئيسية
  • إعلان المتغير
  • منطق البرنامج

تعليقات

في لغات البرمجة ، تعتبر التعليقات ضرورية جدًا لوصف وظيفة البرنامج. رمز التعليقات غير قابل للتنفيذ ولكنه يستخدم لتوفير وثائق البرنامج. لفهم وظيفة البرنامج ، هذا سيجعل طريقة بسيطة لفهم وظيفة البرنامج. في لغة C المضمنة ، تتوفر التعليقات في نوعين هما تعليق سطر واحد وتعليق رئيسي.

في لغة برمجة C المضمنة ، يمكننا وضع تعليقات في الكود الخاص بنا مما يساعد القارئ على فهم الكود بسهولة.

C = a + b / * أضف متغيرين يتم تخزين قيمتهما في متغير آخر C * /

تعليق ذو سطر واحد

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

تعليق متعدد الأسطر

تبدأ التعليقات متعددة الأسطر بشرطة مائلة واحدة (/) وعلامة النجمة (/ *) في لغات البرمجة التي تشرح كتلة من التعليمات البرمجية. يمكن ترتيب هذه الأنواع من التعليقات في أي مكان داخل لغة البرمجة وتستخدم بشكل أساسي لتجاهل كتلة كاملة من التعليمات البرمجية داخل البرنامج.

توجيهات المعالج

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

مثل ما يلي.

#يشمل
#يشمل
Sbit LED = P2 ^ 3
رئيسي()
{
LED = 0x0ff
تأخير()
الصمام = 0x00
}
#حدد
#يشمل
#define LED P0
رئيسي()
{
LED = 0x0ff
تأخير()
الصمام = 0x00
}

في البرنامج أعلاه ، يتم استخدام التوجيه #include بشكل عام لتشمل مكتبات قياسية مثل study و. h للسماح بوظائف الإدخال / الإخراج باستخدام مكتبة 'C'. يستخدم التوجيه #define عادةً لوصف سلسلة المتغيرات ويخصص القيم من خلال تنفيذ العملية ضمن تعليمات معينة مثل وحدات الماكرو.

تكوين المنفذ

يشتمل الميكروكونترولر على عدة منافذ حيث يكون لكل منفذ دبابيس مختلفة. يمكن استخدام هذه المسامير للتحكم في أجهزة التوصيل. يمكن أن يتم إعلان هذه الدبابيس داخل برنامج بمساعدة الكلمات الرئيسية. الكلمات الرئيسية في برنامج c المضمن معيارية ومحددة مسبقًا مثل bit ، sbit ، SFR والتي تُستخدم لتوضيح البتات والدبوس الفردي داخل البرنامج.

هناك كلمات معينة مخصصة للقيام بمهام محددة. تُعرف هذه الكلمات بالكلمات الرئيسية. هي قياسية ومحددة مسبقًا في Embedded C. تتم دائمًا كتابة الكلمات الرئيسية بأحرف صغيرة. يجب تحديد هذه الكلمات الرئيسية قبل كتابة البرنامج الرئيسي. تشمل الوظائف الرئيسية للكلمات الرئيسية ما يلي.

#يشمل
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
بت ج
رئيسي()
{
…………… ..
…………… ..
}

sbit

هذا نوع واحد من أنواع البيانات ، يستخدم للوصول إلى بت واحد ضمن سجل SFR.

صيغة هذا النوع من البيانات هي: اسم متغير sbit = بت SFR

مثال: sbit a = P2 ^ 1

إذا قمنا بتعيين p2.1 كمتغير 'a' ، فيمكننا استخدام 'a' بدلاً من p2.1 في أي مكان في البرنامج ، مما يقلل من تعقيد البرنامج.

قليلا

يستخدم هذا النوع من البيانات بشكل أساسي للسماح بذاكرة البت القابلة للتوجيه لذاكرة الوصول العشوائي مثل 20h إلى 2fh.

صيغة هذا النوع من البيانات هي: اسم متغير بت

مثال: بت ج

إنه إعداد سلسلة بت داخل منطقة بيانات صغيرة يتم استخدامه بشكل أساسي بمساعدة برنامج لحفظ شيء ما.

SFR

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

صيغة هذا النوع من البيانات هي: اسم متغير SFR = عنوان SFR لسجل SFR

مثال: منفذ SFR0 = 0 × 80

إذا خصصنا 0 × 80 مثل 'port0' ، فيمكننا بعد ذلك استخدام 0 × 80 بدلاً من port0 في أي مكان في لغة البرمجة لتقليل صعوبة البرنامج.

سجل SFR

يرمز SFR إلى سجل الوظائف الخاصة. في متحكم 8051 ، يتضمن ذاكرة RAM بسعة 256 بايت ، والتي تنقسم إلى عنصرين رئيسيين: العنصر الأول 128 بايت يستخدم بشكل أساسي لتخزين البيانات بينما يتم استخدام العنصر الآخر البالغ 128 بايت بشكل أساسي في سجلات SFR. يتم تخزين جميع الأجهزة الطرفية مثل المؤقتات والعدادات ومنافذ الإدخال / الإخراج داخل سجل SFR وكل عنصر يتضمن عنوانًا واحدًا.

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

عندما يتم الإعلان عن المتغير قبل أن تُعرف وظيفة المفتاح باسم المتغير الشامل. يمكن السماح بهذا المتغير في أي وظيفة داخل البرنامج. تعتمد فترة حياة المتغير العالمي بشكل أساسي على البرمجة حتى تصل إلى نهايتها.

#يشمل
غير موقعة int a، c = 10
رئيسي()
{
………………
………… ..
}

الوظيفة الأساسية / الوظيفة الرئيسية

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

#يشمل
رئيسي()
{
………………
………… ..
}

إعلان المتغير

يستخدم الاسم مثل المتغير لتخزين القيم ولكن يجب الإعلان عن هذا المتغير أولاً قبل استخدامه داخل البرنامج. يوضح إعلان المتغير اسمه بالإضافة إلى نوع البيانات. هنا ، نوع البيانات ليس سوى تمثيل لبيانات التخزين. في برمجة C المدمجة ، تستخدم أربعة أنواع أساسية من البيانات مثل عدد صحيح ، عدد عشري ، حرف لتخزين البيانات داخل الذاكرة. يمكن تحديد حجم نوع البيانات ، وكذلك النطاق ، اعتمادًا على المترجم.

يشير نوع البيانات إلى نظام شامل للإعلان عن متغيرات من أنواع مختلفة مثل عدد صحيح ، وحرف ، وعائم ، وما إلى ذلك. يستخدم برنامج C المضمن أربعة أنواع بيانات تُستخدم لتخزين البيانات في الذاكرة.

يتم استخدام 'char' لتخزين أي حرف مفرد 'int' لتخزين قيمة عدد صحيح ، ويتم استخدام 'float' لتخزين أي قيمة دقيقة للفاصلة العائمة. يوضح الجدول التالي حجم ونطاق أنواع البيانات المختلفة على جهاز 32 بت. قد يختلف الحجم والنطاق على الأجهزة ذات أحجام الكلمات المختلفة.

  • حجم نوع البيانات char / الموقعة هو 1 بايت ومداها من -128 إلى +128
  • حجم نوع البيانات char غير الموقعة هو 1 بايت ومداها من 0 إلى 255
  • حجم نوع البيانات Int / الموقعة هو 2 بايت ومداها من -32768 إلى 32767
  • حجم نوع البيانات int غير الموقعة هو 2 بايت ومداها من 0 إلى 65535

رئيسي()
{
غير موقعة int a، b، c
}

يتم عرض هيكل برنامج C المضمن أدناه.

  • تعليقات
  • توجيهات المعالج
  • المتغيرات العالمية
  • الوظيفة الأساسية

{

  • المتغيرات المحلية
  • صياغات
  • ………… ..
  • ………… ..

}

  • متعة (1)

{

  • المتغيرات المحلية
  • صياغات
  • ………… ..
  • ………… ..

}

منطق البرنامج

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

رئيسي
{
الصمام = 0x0f
تأخير (100)
الصمام = 0x00
تأخير (100)
}

العوامل الرئيسية لبرنامج سي المدمج

تتضمن العوامل الرئيسية التي يجب مراعاتها أثناء اختيار لغة البرمجة لتطوير نظام مضمن ما يلي.

حجم البرنامج

تحتل كل لغة برمجة بعض الذاكرة حيث يشتمل المعالج المدمج مثل وحدة التحكم الدقيقة على قدر أقل من ذاكرة الوصول العشوائي.

سرعة البرنامج

يجب أن تكون لغة البرمجة سريعة جدًا ، لذا يجب تشغيلها في أسرع وقت ممكن. لا ينبغي تقليل سرعة الأجهزة المضمنة بسبب بطء تشغيل البرنامج.

قابلية التنقل

بالنسبة للمعالجات المدمجة المختلفة ، يمكن تجميع برامج مماثلة.

  • تنفيذ بسيط
  • صيانة بسيطة
  • مقروئية

الاختلافات بين C Program و Embedded C Program

الفرق بين برمجة C و C المضمنة لا يختلف كثيرًا عن بيئة التشغيل وبعض الامتدادات. لغات البرمجة هذه هي معايير ISO ولديها أيضًا بنية متشابهة تقريبًا ووظائف وأنواع بيانات وما إلى ذلك. تشمل الاختلافات الرئيسية بين برمجة C وبرمجة c المضمنة ما يلي.

لغة سي

لغة سي المضمنة

بشكل عام ، تُستخدم هذه اللغة لتطوير التطبيقات المستندة إلى سطح المكتب

تُستخدم لغة C المدمجة لتطوير التطبيقات القائمة على المتحكم الدقيق.
لغة C ليست امتدادًا لأي لغة برمجة ، ولكنها لغة برمجة للأغراض العامةيعد Embedded C امتدادًا للغة برمجة C بما في ذلك ميزات مختلفة مثل معالجة الإدخال / الإخراج ، وحساب النقاط الثابتة ، والعنونة متعددة الذاكرة ، إلخ.

يعالج التنمية المحلية في الطبيعةيعالج التطور المتقاطع في الطبيعة
إنه مستقل عن هندسة الأجهزةيعتمد ذلك على بنية الأجهزة الخاصة بالمتحكم الدقيق والأجهزة الأخرى
تعتمد برامج التحويل البرمجي للغة C على نظام التشغيلالمترجمات C المضمنة مستقلة عن نظام التشغيل
في لغة C ، تُستخدم المجمعات القياسية لتنفيذ برنامجفي لغة سي المضمنة ، يتم استخدام مترجمين معينين.
المجمعات الشائعة المستخدمة في هذه اللغة هي GCC و Borland turbo C و Intel C ++ ، إلخالمترجمات الشائعة المستخدمة في هذه اللغة هي Keil و BiPOM Electronics و Green Hill
صيغة لغة سي هي صيغة حرةيعتمد شكله بشكل أساسي على نوع المعالج الدقيق المستخدم.
تحسين هذه اللغة أمر طبيعيتحسين هذه اللغة على مستوى عال
من السهل جدًا تعديلها وقراءتهاليس من السهل تعديلها وقراءتها
إصلاح الخلل سهلإصلاح الخلل في هذه اللغة معقد

أمثلة على برنامج C المضمّن

فيما يلي بعض برامج C المضمنة البسيطة المستخدمة المشاريع القائمة على متحكم .

مثال 1

مثال 1

مثال 2

مثال 2

مثال 3

مثال 3

مثال 4

مثال 4

مزايا

ال مزايا برنامج c embedded ز تشمل ما يلي.

  • إنه سهل الفهم.
  • يقوم بتنفيذ مهمة مماثلة باستمرار لذلك لا توجد حاجة لتغيير الأجهزة مثل الذاكرة الإضافية أو مساحة التخزين.
  • يقوم ببساطة بتنفيذ مهمة واحدة في وقت واحد
  • عادةً ما تكون تكلفة الأجهزة المستخدمة في c المضمنة منخفضة جدًا.
  • التطبيقات المدمجة مناسبة للغاية في الصناعات.
  • يستغرق تطوير برنامج التطبيق وقتًا أقل.
  • يقلل من تعقيد البرنامج.
  • من السهل التحقق والفهم.
  • إنه محمول من وحدة تحكم إلى أخرى.

سلبيات

ال عيوب البرمجة c المدمجة تشمل ما يلي.

  • في كل مرة ، ينفذ مهمة واحدة فقط ولكن لا يمكنه تنفيذ المهام المتعددة
  • إذا قمنا بتغيير البرنامج ، فحينئذٍ نحتاج إلى تغيير الأجهزة أيضًا
  • إنه يدعم نظام الأجهزة فقط.
  • لديها مشكلة قابلية التوسع
  • لديها قيود مثل الذاكرة المحدودة وإلا توافق الكمبيوتر.

تطبيقات برنامج سي المدمج

ال تطبيقات البرمجة c المدمجة تشمل ما يلي.

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

نأمل أن نكون قد نجحنا في توفير طريقة سهلة ودودة للمبتدئين البرمجة C المدمجة . يعد فهم برمجة C المضمنة هو الشرط الأساسي الأكثر أهمية لتصميم المشاريع القائمة على المضمنة. بالإضافة إلى ذلك ، فإن الفهم الأفضل والمعرفة المناسبة ببرمجة C المدمجة يساعد الطلاب بشكل كبير في اختيار مهنة مجزية.

نحن نشجع ونرحب بالاستفسارات والاقتراحات والتعليقات من قرائنا. لذلك ، يمكنك نشر استفساراتك وملاحظاتك حول هذه المقالة في قسم التعليقات أدناه. اتبع الرابط أدناه ل مشاريع لحام