الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل بالإمكان برمجة Microcontoler بواسطة لغة C++ ؟

مغلق
بدأه الإلكترونية في 25 أكتوبر 2006 · 28 رد · 3,589 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كل عام وأنتم بخير

لقد تعلمت لغة C++ وبعض أساسياتها ككورس ومادة من موادي الدراسية في الجامعة ولكن لم نتعلمها كلغة برمجة هاردوير.. ولدي هذا العام بحث عن المتحكمات ( الميكروكونترولر Microcontroler )

سؤالي هو :

هل بالإمكان برمجة المتحكم بواسطة لغة C++ ؟

اللغة الشائعة في برمجة الميكرو هي لغة الأسمبلي ( لغة التجميع ) ولكني للأسف لا أتقنها ولم أستطع فهمها جيداً . فأريد أن أستغل لغة السي ++ لأني أعرفها ,في برمجة الميكرو

هل هذا ممكن ؟ وأين أستطيع الحصول على شرح لطريقة أو أوامر برمجة الميكرو كونترولر بواسطة لغة C++

أتمنى أن أجد لديكم ضالتي

أشكركم جزيل الشكر

#2

السلام عليكم و رحمة الله و بركاته

أختي الكريمة ما أعلمه أن مترجمات ال c هي ما تدعم برمجة ال Microcontroler و ما أعرفه منها هو SDCC

عمرو عيسي

#3

بحث google

#4

انا حسب ما بعرف انه ممكن بس في كم امر زيادة بدك تعرفيهم اضافة الى انه في برنامج خاص

اسمه micro c بحول الكود الى hexa وبعدها بتحمليه على المايكروكنترولر او على برنامج simulation

انا اشتغلت على هادا البرنامج بس ما بعرف اذا اني فهمت صح شو اللي بدك اياه

على كل حال شوفي قسم الميكروكنترولر و ان شاء الله بتلاقي اللي بدك اياه

وكل عام وانتوا بالف خير

اختكم

white soul

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#5

الاخت الالكترونية ،،

بكل تأكيد يمكن برمجة المتحكمات بلغات اعلي من الاسيبملي ، هناك مثلاً المتحكم 8051 استخدمته من قبل عن طريق المترجم Keil C و هناك المتحكم PIC ايضا هناك له مترجم للغة البيسك PIC Basic .

كل عام و انتم بخير .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#6

شكراً لكم :

عمرو عيسى

white soul

أحمد الصالح

أختي white soul كل عام وإنتي بخير

شكراً لك أختي وأنا أعرف إن أنا لما أشتغل على C++ أحتاج إلى برنامج تحويل أو بالأصح ( مترجم ) لكي يحول لي البرمجة إللي كتبتها إلى نظام الأعداد الثنائية ..

ولكن ما يهمني الآن هو كيفية البرمجة بلغة C++ لأن المترجم أو برنامج التحويل مقدور عليه

أخي أحمد الصالح .. كل عام وأنت بخير

أنا أشتغل على التشيب PIC16F84A

هل ينفع إستخدام C++ في برمجته ؟

ماهي الأوامر التي يجب أن أتعلمها لكي أتمكن من البرمجة ؟!

شكراً لكم جميعاً

#7

طبعا يتقدري اكيد انك تبرمجي الpic

لو تقولي شو البرنامج اللي بدك تكتيبه متلا مشان اقولك شو الأوامر اللي بتلزمك

تاني شي بتقدري تقرئي من help للبرنامج وتتعلمي منه ( كتييير سهل) و بسيط

سلام

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#8

شكراً أختي ..

بس أنا لسه مبتدئة يعني المفروض أتعلم بدايات البرمجة من الأول :D

ولكن مثلاً لنقل إني أريد برنامج يقوم بتحريك الومضات الضوئية في مجموعة خطية من لمبات LED من اليسار إلى اليمين

كيف ذلك ؟

وشكراً لتعاونك معي أختي والله يوفقك إن شاء الله

#9

طبعا انت المفروض انك بتعرفي ال pic منيح ...(ports,....Rgs)

شوفي المثال التالي

void main(){
trisc=255;
trisd=0;
while(1){
int i=0;
 for(i=0;i<7;i++)
  portc=i;

  }   }

هدا البرنامج عبارة عن عداد من 0-7

ان شاء الله يكون متال واضح

صح برجع بذكر انك تقرأي من ال help تبعت البرنامج

ok

;)

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#10

صح نسيت

trisc=255

تجعل كل ال pins في port c هي output

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#11

شكراً أختي ..

واضح المثال .. بس هل أنهي البرنامج بـ End وإلا أخليه مفتوح loop علشان يعد من أول وجديد ؟

طيب فيه شي مو فاهمته .. أنا أعرف البورتات تبع الميكرو هي A و B ونخلي واحد منهم output والثاني intput طيب من وين أجو بورت C و بورت D ؟ :D

وإن شاء الله ببحث عن برنامج simulation من شان أقرا الـ help :D

شكراً جزيلاً لك أختي على مساعداتك والله يوفقك ويجعل لك في كل خطوة سلامة :)

تم تعديل هذه المشاركة بواسطة الإلكترونية في 27 أكتوبر 2006 في 20:16

#12

انت حسب نوع ال pic اللي عم تشتغلي عليه

اذا ما عندك port c استخدمي اي من a ,b

البرنامج السابق يبقى مستمر طول الوقت واذا بدك لياه لفترة

ازيلي جملة ال while

صح بدك برنامج اول micro c متلا or mblab بعدها بتوديه على ال simulator

bye

;)

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#13

شكراً أختي ..

أتمنى أن تتحملوني شوي ( حبتين بس :D ) لأن عندي كم سؤال إلى أن أعرف كل شي

أسئلتي الحالية هي :

عندما قرأت عن برمجة الميكرو بلغة التجميع (الأسمبلي ) كان لا بد من تعريف الأطراف أولاً وتعريف الهزاز ( الكرستالة - المذبذب ) المتصل بالميكرو

كما أننا في لغة السي ++ أيضاً لابد من تعريف المتغيرات أولاً ..

ممكن أحد يشرح لي ترتيب وكتابة المتغيرات في السي ++ قبل كتابة البرنامج ؟

بالنسبة لبرنامج MbLab فتلت سبع فتلات ومالقيت البرنامج .. لأني كنت محتاجته قبل ذلك ( على أيام الأسمبلي :D )

الله يعين

وشكراً لتعاونك معي أختي والله أنا محرجة جداً منك من كثر أسئلتي وطلباتي

دمتي بخير

#14

سلام :lol:

اول شي هادا المنتدى للمساعدة فأكيد انت ما بتزعجينا لانه احنا بنستفيد و بنعمل refresh للمعلومات عنا :D

هلا اول شي اي برنامج بدك اياه سواء micro c or mblab هو موجود في موقع www.microchip.com

بتقدري تنزليه وانا سبق ونزلتهم من هناك B)

انا عندي ال setup بس المشكلة خطي dial up مشان هيك صعب ابعتلك اياهم :(

هلا انا حطيت ملف فيه كل اوامر الأسمبلي pic هي على فكرة بس كأنه 38 تعليمة سهلين كتيييير :D

يعني شوفيه بلكي بتستفيدي منه

بعدين اذا بدك تشتغلي على السي وهو أسهل بكتييييييييير هي نفس اوامر الأسمبلي بس بدل ما تكتيب لووب بالأسمبلي مثلا يطلع طول البرنامج عشرين ألف سطر بتختصريه بجمله for :o :o

انصحك تنزلي ال mico c مش ال mblab

الشغل عليه روعه وسهل كتتير فوق ما تتصوري وكمان ال help واضح جدا وفيه بعض الأمثله التوضيحية

سلام

white soul

;)

sheet.doc

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#15

شكراً جزيلاً أختي ..

أنا تعلمت أوامر الأسمبلي وفهمتها بس المشكلة إني تعلمتها ذاتياً وما أقدر أكتب برنامج بنفسي ==> ضروري يكون أحد معي :D:d

وأنا تعبت كثير وأنا أتعلم الأسمبلي بدون نتائج مرضية للأسف .!

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

* على فكرة , أوامر الأسمبلي 38 أمر طيب وأوامر السي ++ كم ؟ :D

أيضاً مثل ما ذكرتي أختي , البرمجة بالأسمبلي متعبة جداً لأني رح أستهلك مليونين سطر وفي إمكاني إني أختصرهم بكم سطر في السي ++ صح ؟!

هلأ أنا رايحة الجامعة إذا رجعت البيت بحمل البرامج بقرأ الـ Help :D

سلااااام

#16

السلام عليكم,

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

نعم توجد مترجمات و منصات برمجة للغات عالية المستوى (غالبا ما تكون لغات لا تعتمد على البرمجة الشيئية) مثل basic و c أو ما تسمى ب embended C.

هناك مواضيع في قسم المايكركنترولر في المنتدى نوقشت فيها لغات و منصات البرمجة الأكثر إستعمالا عدى لغة التجميع.

http://www.htsoft.com/products/PICClite.php

http://www.microchipc.com/sourcecode/

http://www.htsoft.com/products/hitide3.php

لائحة أهم المترجمات:

http://www.testech-elect.com/compiler.htm

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#17

انا اوافقك اخ ikossan

بالتوفيق

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#18

شكراً لكما ..

سمعت مرة من المرات إن بالإمكان عمل البرنامج على السي ++ ثم تحويله إلى الأسمبلي عن طريق برنامج ( مترجم ) هل ما سمعته صحيح ؟

أنا الآن على وشك العمل بلغة السي ++ ولم يتبقى الكثير

هل بالإمكان مساعدتي في ذلك عن طريق كتابة برنامج (كامل. يعني من طقطق للسلام :D ) بلغة السي ++ لأي مشروع كان .. طبعاً ليس لشيء إنما لكي أدرس جيداً مالذي يجب وضعه وتعريفه وطريقة ترتيب البرنامج

وكيف يتم تعريف المذبذب ( الكرستاله ) والميكرو نفسه وكيف يتم تعريف الأطراف حتى تتضح لدي الرؤية وأبدأ بالعمل بشكل جيد

أشكركم جميعاً والله يوفقكم دنيا وآخره

#19

طبعا على استعداد :lol:

صح في برنامج مش اسمه مترجم هوه نفسه ال micro c بعمل build

للبرنامج compile بعطيك اكتر من ملف واحد بال hexa وآخر بلغة الأسمبلي و....

طبعا المكتوب بالأسمبلي تماما متل ما تكتبي البرنامج انت وواضح كتيير حلو تلقي نظرة عليه

على كل حال ابدي انت واحنا معك ان شاء الله

white soul

;)

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#20

شكراً أختي

طيب بس مكن تساعدوني في البداية بس ؟ أنا رح أحاول أكتب برنامج ( مشروع ) بس مو عارفة كيف أبدأ

يعني أنا تعودت في كتابة البرنامج هكذا :

#include <iostream.h>

# include<conio.n<

()mai

}

ثم أبدأ بتعريف المتغيرات بعبارة ( int)

int_x,y,z

ثم أكتب البرنامج متستخدمة cout و cin وبعض الدوال الأخرى ثم أنهي البرنامج بعبارة

()getch

{

الآن .. كيف أعرف المتغيرات في برمجة الميكرو مثل ما عرفت x,y,z بعد عبارة int أعلاه ؟

طبعاً من خلال بحثي عن الميكر أتضح لي أنه يجب تعريف موديل الميكرو ( وليكن ميكروشيت 16f84A

وتعريف الرستالة أيضاً ( ولتكن ذات ذبذبة 4 ميغاهيتز مثلاً )

أريد كيفية تعريف هذه المتغيرات في بداية البرنامج لكي أستطيع إكمال الباقي

شكراً لكم

#21

اذا عم تسنخدمي برنامج micro c ما بتعرفيهم في ضمن البرنامج بل لما تنشئي الملف بتحددي اللي بدك اياه من ال options و هو اسهل

لكن في برنامج ال mblab لازم ضمن البرنامج في البداية على ما اتوقع

cin , cout بدك تنسيهم هون لأنه ما عندنا اخراج او ادخال من console

الأخراج يكون على بورتات ال pic

الأن انا رايجة عل الجامعة يس ارجع بكمل

سلام

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#22

أختي ..

ممكن تعطيني إسم البرنامج micro c كاملاً ؟ لأني لقيت برنامجين لهم نفس الأسم Microsoft C ++

شكراُ

#23

افتحي موقع www.microchip.com

هدا موقع خاص بال mico controller

على فكرة هو مالو دخل ب microsoft c++

هادا شي تاني

تم تعديل هذه المشاركة بواسطة white soul في 2 نوفمبر 2006 في 22:07

Computer Engineer

2007

"اللهم يا مثبت القلوب ثبت قلبي على دينك "

ولدتك امك باكيا والناس حولك يضحكون سرورا

فافعل لنفسك ان تكون اذا بكوا في يوم موتك ضاحكا مسرورا

#24

"

أيضاً مثل ما ذكرتي أختي , البرمجة بالأسمبلي متعبة جداً لأني رح أستهلك مليونين سطر وفي إمكاني إني أختصرهم بكم سطر في السي ++ صح

"

نعم صحيح لكن لا تنسي ان الاسمبلي برامجها اسرع واقل حجما...ونحن هنا نتكلم عن ميكروكنترولر ذاكرته محدودة...

#25

شكراً لكما

أنا عارفة إن الأسمبلي أفضل بكثير .. ولكن أنا لدي خلفية عن السي ++ ولا يمكنني في الوقت الحاضر إتقان الأسمبلي .. لذا سأبدأ بالسي ++

أختي ...

ما شفت البرنامج في الموقع . شفت برنامج الإم بي لاب فقط ..!!

ممكن تعطيني إسمه الكامل لو تفضلتي ؟! أو إذا بدك تريحيني عطيني وصلة التحميل مباشرة :D: d: d: d

من جد تعبت وأنا أدور على البرنامج في الموقع ما لقيته ..!!

جزاك الله كل خير عذبتك معي .

هذا الموضوع مغلق.

مواضيع مشابهة