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

   

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 22-04-2012, 08:17 PM المشاركة 9   
افتراضي



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

كود:
if(portd==8) portd=4;
else if (portd==2) portd=10;
 else if(portd==3) portd=15;
  else if (portd==1) portd++;

اعلانات

Imozar
:: مهندس متميز ::
تاريخ التسجيل: Dec 2011
المشاركات: 315
نشاط [ Imozar ]
قوة السمعة:
قديم 22-04-2012, 09:15 PM المشاركة 10   
افتراضي


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

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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 22-04-2012, 11:00 PM المشاركة 11   
افتراضي


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


zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 23-04-2012, 10:45 AM المشاركة 12   
افتراضي


شكرا على التفاعل

اشتغل الكود تمام لكن فقط في الداله الرئيسية
لكن عندما يعمل عبر دوال لايعمل


فكيف اجعل اجعلة جنرال حيث عند التغير في قيمة البورت دي يمكن ان افحصة عبر اي دالة ..


zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 23-04-2012, 10:58 AM المشاركة 13   
افتراضي


او على الاقل التاكد من فحص البورت دي

لمعرفة اي رجل فيها واحد منطقي على الاقل


الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 316
نشاط [ باسم ماجد ]
قوة السمعة:
قديم 23-04-2012, 10:59 AM المشاركة 14   
افتراضي


أخي العزيز Imozar
دعنا نستخدم البك PIC16F84A
لكي نتوصل لنتيجة دعنا نناقش سويةً :
عند الضغط على f0 من البورت A يضيئ الليد المتصل مع البت f3 من البورت B
if(porta.f0==0)iiiiiiiiiiiiiiiiiiiiiiiiiiii
portb.f3=1iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
و 1000 0000 بالنظام الثنائي و هي 8 بالنظام العشري
حسنا" إذا أردت إظهار الرقم 2 إي البت f1 من البورت B
نكتب بدل السطر الثاني من الكود :
portb.f1=1iiiiiiiiiiiiiiiiiiiiiiiiiiiii
إذن تحدد البت الذي تريد كدخل و تحدد القيمة التي تريدها كخرج

ملف المحاكاه و الكود


الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 316
نشاط [ باسم ماجد ]
قوة السمعة:
قديم 23-04-2012, 11:11 AM المشاركة 15   
افتراضي


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

كود:
if(portd==8) portd=4;
else if (portd==2) portd=10;
 else if(portd==3) portd=15;
  else if (portd==1) portd++;
---------------------------------------------
أرجو قبول مداخلتي الكود غير صحيح :
القيمة بعد == 0 أو 1
القيمة portd=0-9 و بعد ذلك تستخدم A B C D E F و طبعاً تسبقها 0X ليتم تمييزها بالنظام السادس عشري
بمعنى نستخدم 0-9 بالنظام العشري و بعد ذلك بالسادس عشري فقط للسرعة

http://www.mediafire.com/?9e7ri9f0z769bg7


التعديل الأخير تم بواسطة : باسم ماجد بتاريخ 23-04-2012 الساعة 11:31 AM

الصورة الرمزية باسم ماجد
باسم ماجد
:: مهندس متميز ::
تاريخ التسجيل: Jan 2009
الدولة: Amman-Jordan
المشاركات: 316
نشاط [ باسم ماجد ]
قوة السمعة:
قديم 23-04-2012, 11:34 AM المشاركة 16   
افتراضي


[
IMG][/IMG
]



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