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

مشاهدة نتائج الإستفتاء: هل ترى أنه من الأفضل عمل قسم جديد في المنتدى للغات الحديثة مثل لغة MikroC ؟؟
نعم 53 92.98%
لا 4 7.02%
المصوتون: 57. أنت لم تصوت في هذا الإستفتاء

   

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 19-02-2009, 02:13 PM المشاركة 57   
افتراضي



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



شكراً لك مرة أخرى أخي الفاضل أ. حيدر لتنبيهك لي لهذا الأمر .

يبدو أنني بحاجة إلى مزيد من الراحة ... لزيادة التركيز . ...

----------------------------------------------
في إنتظار أي سؤال أو استفسار عن الدرس ....

----------------------------------------------
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع

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

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 19-02-2009, 06:32 PM المشاركة 58   
افتراضي


السلام عليكم ورحمه الله وبركاته
استاذى الفاضل احمد
جعل الله هذا العمل فى ميزان حسناتك
شرح ممتاز بكل المقاييس
لاكن عندى بعض الاستفسارات
منها
لماذا كتبنا فى تعريف المنفذ a
TRISA=0B00011111; ولم نكتب بهذا الشكل TRISA=1;

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

الاستفسار الاخير
هل يمكن ان اجعل المتحكم ينفذ امر معبن بعدد معين والانتقال الى امر اخر وتنفيذه بنفس العدد وهكذا بمتغير واحد
ارجو ان يتسع صدركم لى
شكرا جزيلا
وجزاك الله كل خير
السلام عليكم اخي احمد ارجو ان تسمح لي بالاجابه المتواضعة على بعض اسئلتك القيمة
السؤال الاول لا اعتقد ان هناك فرق بين الجملتين لكن المنفذ a يتكون من خمس ارجل وعليه فان الاصفار الزائدة هي تكملة رقمية ليس الا

اما السؤال الثاني فيمكنك الرجوع الى عبارتي IF وELSE في ملف PDF وهما يعملان كالاتي
اذا تحقق الشرط الاول فنفذ الامر ( )
والا
فنفذ الامر ( )
والا
فنفذ الامر ( )
.
.
.
وهكذا بحسب عدد الشروط التي تريد تنفيذها
حيث كلمة *والا* هي تقابل ELSE
السؤال الثالث ربما تقصد انشاء حلقتين تكراريتين بأستخدام نفس المتغير .فهذا ممكن
ارجو ان اكون قد اصبت

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

الصورة الرمزية ahmad72
ahmad72
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2004
المشاركات: 723
نشاط [ ahmad72 ]
قوة السمعة:
قديم 19-02-2009, 06:44 PM المشاركة 59   
sun


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

شكرا على ردك


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 19-02-2009, 08:46 PM المشاركة 60   
افتراضي


لماذا كتبنا فى تعريف المنفذ a
TRISA=0B00011111; ولم نكتب بهذا الشكل TRISA=1;
كما ذكر أخي حيدر .. لا يوجد فرق . فما يهمنا هو أول بت فقط بأن يكون واحد أما الباقي فلن تفرق معنا إن كانت قيمتهم واحد أو صفر فليس لهم استخدام في المشروع . . .

===============================================

وكيف لى ان اجعل المتحكم يتحقق من شرطين وليس شرط واحد او مجموعه شروط
يوجد عدة حلول .. سأذكر الآن الحل الذي يعتبر قريب جدا مما ذكرناه ..
الآن ومن فهنا لجملة IF نعلم أنه إذا تحقق الشرط سيفذ البك ما بداخل القوسين .
أليس كذلك . . ولكن ماذا يحدث لو كتبت داخل القوسين جملة IF أخرى لها قوسين خاصين بها هي أيضا .. كما بالشكل التالي .
كود:
if( الشرط الأول ) { if ( الشرط الثاني ) { هذه الأوامر ستنفذ في حال تحقق الشرطين السابقين } }
سيختبر البك الشرط الأول وفي حالة تحققه ينفذ الأوامر التي بين القوسين والتي أول أمر فيها هو اختبار لشرط ثاني فإذا تحقق هذا الشرط أيضا سينفذ الأوامر التي بين القوسين الخاصة بجملة if الثانية ..

وبنفس الطريقة لو أردت إختبار ثلاثة شروط .
كود:
if( الشرط الأول ) { if( الشرط الثاني) { if ( الشرط الثالث) { هذه الأوامر ستنفذ في حال تحقق الثلاث شروط} } }
هناك طريقة أخرى أفضل من هذه سنذكرها بالتفصيل إن شاء الله في التمارين والتي تعتبر درس جديد مستقل ..

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

أما إذا أردت أن أنفذ أمر معين في حالة تحقق شرط معين وأنفذ أمر آخر في حالة تحقق شرط آخر وأنفذ أمر ثالث في حالة تحقق أمر ثالث .. وهكذا فكل ما أفعله هو أن أستخدم عدد معين من جمل if كما يلي :
كود:
if( الشرط الأول ) { نفذ هذه الأوامر في حالة تحقق الشرط الأول } if( الشرط الثاني) { نفذ هذه الأوامر في حالة تحقق الشرط الثاني} if( الشرط الثالث) { نفذ هذه الأوامر في حالة تحقق الشرط الثالث}
أرجو أن تكونوا فهمتم ما أقصد ...
===============================================

هل يمكن ان اجعل المتحكم ينفذ امر معبن بعدد معين والانتقال الى امر اخر وتنفيذه بنفس العدد وهكذا بمتغير واحد
إذا كان عندي أمرين مختلفين وأردت أن أكرر تنفيذ الأمرين حيث ينفذ البك الأمر الأول ثم الثاني ثم يعيد هذه العملية عدد معين من المرات فإني أكتبهم داخل جملة for واحدة كما بالشكل التالي .
كود:
for(x=0;x<9;x++) { الأمر الأول الأمر الثاني }
في المثال السابق سينفد البك الأمر الأول ثم الأمر الثاني ويعيد تنفيذهم بهذا الترتيب 9 مرات .

ولكن إذا أردت أن ينفذ البك أمر معين عدد معين من المرات ثم ينتقل إلى أمر آخر وينفذه أيضا عدة مرات فيمكنني فعل ذلك كما يلي
كود:
for(x=0;x<15;x++) { الأمر الأول } for(x=0;x<15;x++) { الأمر الثاني }
هنا سينفذ البك الأمر الأول 15 مرة ثم ينتقل للأمر الثاني وينفذه 15 مرة أيضا.
وكما يمكنني أن أجعل البك ينفذ الأمر الأول عدد معين وينفذ الأمر الثاني عدد آخر كما يلي .
كود:
for(x=0;x<5;x++) { الأمر الأول } for(x=0;x<10;x++) { الأمر الثاني }
هنا سينفذ البك الأمر الأول خمس مرات ثم ينتقل للأمر الثاني وينفذه 10 مرات .

وبهذه الطريقة يمكنني أن أجعل البك ينفذ أي أمر بعدد معين من المرات .
بنفس المتغير ؟؟ نعم بنفس المتغير .. كما يحق لي أن أستخدم متغير آخر كما أريد وعلى حسب الحاجة .

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

===============================================
وفقك الله أخي ahmad72 وأشكرك على هذه الأسئلة الرائعة جدا .
وشكرا لك أخي حيدر علاج حسن على إجاباتك الموفقة .
===============================================

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع

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


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 24-02-2009 الساعة 09:24 PM

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 19-02-2009, 09:58 PM المشاركة 61   
افتراضي


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


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 19-02-2009, 10:16 PM المشاركة 62   
افتراضي


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

ألف مبرووووووووووك ... تمنياتي لك وللجميع بمزيد من النجاح والتوفيق .


فالشكر قليل بحقك
لا داعي للشكر فكلنا إخوة ... ولكن هناك أفضل من ذلك وهي دعوة في ظهر الغيب
-----------------------------------------------------------------
ملحوظة نحوية وعقيدية نوعا ما (خارج موضوعنا) ...

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


الصورة الرمزية waseemahmmad
waseemahmmad
:: مهندس ::
تاريخ التسجيل: Feb 2007
المشاركات: 37
نشاط [ waseemahmmad ]
قوة السمعة:
قديم 20-02-2009, 12:30 AM المشاركة 63   
افتراضي


بسم الله الرحمن الرحيم
و الصلاة و السلام على سيد المرسلين
سيدنا محمد و على آل بيته الطيبين الطاهرين و صحبه المنتجبين

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

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

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

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

في لغة المايكروسي نلاحظ في أسفل الواجهة مستطيل و هو الذي يحتوي الآلة الحاسبة للتحويل بين نظم الأرقام و في التبويب الأول منه ( messeges ) نلاحظ بعد القيام بعملية بناء المشروع ( Build Project ) العبارات التالية كما في الصورة التالية :





- الصورة تظهر صغيرة جداً لا أعرف السبب -

أرجو توضيح هذه الرسائل هل المقصود بها المستخدم من إجمالي ذاكرة المايكرو مثلاً ؟ إذا كان الجواب نعم فلدي سؤال آخر و هو أنني قمت بكتابة برنامج مؤلف من 130 سطر و يظهر لي أن المستخدم من ذاكرة روم هو 52 بالمائة و المتبقي 48 و هنا ألاحظ أن حجم ذاكرة الروم للمايكرو صغير جداً فيما لو أنني رغبت بكتابة برنامج يحتوي العديد من الأوامر و جمل الشرط و خلافه أي هل يجب على أن أتقيد بهذا الحجم بحيث لا يتجاوز برنامجي قيمة 100% من روم أم لا مشكلة في ذلك ؟

سؤالي الثاني من فضلك : هل يمكنني إستخدام العطف في الجمل الشرطية باستخدام كلمة And أو إشارة And كما في لغات أخرى كأن أكتب مثلاً :

كود:
if ( ..... ) & if ( ..... ) { } أو if ( ..... ) And if ( ..... ) { }

سؤال ثالث :

توجد بعض الجمل مثل Until مثلاً أي أن يقوم البرنامج بتكرار مجموعة عمليات حتى يتحقق شرط معين مثلاً ( عد من واحد لعشرة حتى يصبح صاد يساوي 15 ) فهل يوجد شيء مماثل في المايكروسي ؟

سؤال رابع :

سؤال هام لم أستطع فهمه و هو أنني كتبت برنامج مؤلف من 100 سطر على سبيل المثال فهل المايكرو سيطبق البرنامج ثم ينام مثلاً ؟ أي ماذا سيفعل بعد تطبيق البرنامج حتى السطر الأخير ؟ هل يجب علي قصراً إستخدام جمل مثل Loop مثلاً حتى يبقى المايكرو متيقظاً ؟ مثال قمت بكتابة برنامج للمايكرو ليقوم بالرد على المكالمة الهاتفية بعد فترة معينه من الرنين لم يتم الرد خلالها من قبل صاحب الهاتف ... كيف سأجعل المايكرو يبدأ بتطبيق البرنامج من السطر الأول مع بداية الرنين ؟ هل يجب أن أستخدم تعليمة مثل loop أم أن هنالك طريقة أخرى ؟

سؤال أخير من فضلك :

أشرت إلى طريقة أخرى بديلة عن طريقة Loop و هي while (1) ما المقصود بالرقم 1 و هل يمكنني كتابة شرط ما بين القوسين بدل الرقم واحد ؟

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

أكرر إعتذاري و إمتناني لك أستاذ أحمد و لك مني تحية إجلال و إحترام .


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 20-02-2009, 12:38 AM المشاركة 64   
افتراضي


السلام عليكم
هذا رابط يحوي الملفات الخاصة بمشروع اشارات المرور اهديه اليكم

اشارات المرور.rar - 12.7 Kb
في بداية البرنامج اضطررت الى جعل porta=0 لانه بدون ذلك يأخذ 1 تلقائيا بدون ان اعرف السبب حيث اني استخدمت portA لليدات الصفراء وبذلك يبدأ الليد الاصفر بالاشتغال في بداية التشغيل دون تصفير البورت.ارجو من الاستاذ احمد ملاحظة ذلك

وفقكم الله جميعا والاستاذ احمد لكل عمل يرضاه


التعديل الأخير تم بواسطة : حيدر علاج حسن بتاريخ 20-02-2009 الساعة 12:59 AM


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