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

   

رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 05-12-2009, 09:47 PM المشاركة 1217   
افتراضي



الاخوة الاعزاء :
المطلوب كما يلي:
اذا تحقق الشرط الاول يبقى كما هو اي المخرج RB0=1 حتى يتم تغيير المداخل فينتقل الا الشرط الاخر الذي تنطبق عليه ففي الحالة الاولى
فقط المخرج الاول =1 وفي الحالة الثانية فقط المخرج الثاني=1 وفي الحالة الثالثة المخرج الاول والثاني =1
وفي حالة عدم تحقق اي شرط المخارج جميعها =0
ارجو ان تكون الفكرة قد توضحت.
if(porta.f1==0&&porta.f2==1&&porta.f3==0)
portb.f0=1;


if(porta.f1==1&&porta.f2==0&&porta.f3==0)
portb.f1=1;

if(porta.f1==0&&porta.f2==0&&porta.f3==1
portb=0b00000011;





اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 05-12-2009, 11:33 PM المشاركة 1218   
افتراضي


أن وضع delay ضروري اذا كنا نستعمل boutton poussoir وهذا راجع الى:
لاحظ مايلي :
لتكن لدينا كرة من المطاط فعند رميها على الارض فهي لاتستقر مباشرة بل تبقى ترتد و يقل ارتفاعها الى ان تستقر
نفس الشيء بالنسبة الى ال boutton فمهما كانت قوة الضغط عليه فهو يرتد عدة
مرات وبما أن ال pic سريع جدا فهو يقرؤها عدة ضغطات لذلك لابد من وضع ال delay
حتى يتجنب ال pic هذه الحالة
في حالة الاخت رانية فلا تحتاج الى delay


شكرا لك اخى الغالى:

لى ملاحظة بسيطة فقط على هذا الكلام ..................


_____________________________

ذكرت فى ردك ان امر delay
يكون فقط فى حالة استخدام button

اوك::


ماهو عمل البوتون

طبعا عملة انة يقوم بفتح دارة او غلقها ............


___________________

ومعنى هذا الكلام انة اذا كان يوجد جهاز متصل عن طريق ريلاى

وفى حالة عمل الجهاز _____________ فانة يعمل على اتصال الدارة _______

واذا كان مغلق _____________فانة يعمل على اغلاق الدارة ___________

_________________
ومعنى هذا كلة
ان الجهاز يعمل عمل ال button

صح ام لا؟؟؟؟

_____________________________
نعود لموضوع الاخت رانية

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

___________________________

فكيف سيتم هذا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

__________________________

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

سواء (H) او (L)

وهذا معناه انة قد وجد button
_____________________

وفى هذة الحالة

يكون وجود الامر delay مهم


اما بالنسبة للتوقيت الموضوع

فهذا يتحدد حسب استخدام البرنامج


____________________________


واخيرا
لك منى كل الاحترام
على ماتبذلة لمساعدتنا ومساعدة جميع الاعضاء

فعلا مجهودك واضح وذادك الله من علمة وبارك الله فيك ولك


التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 05-12-2009 الساعة 11:44 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 05-12-2009, 11:36 PM المشاركة 1219   
افتراضي


الاخوة الاعزاء :
المطلوب كما يلي:
اذا تحقق الشرط الاول يبقى كما هو اي المخرج RB0=1 حتى يتم تغيير المداخل فينتقل الا الشرط الاخر الذي تنطبق عليه ففي الحالة الاولى
فقط المخرج الاول =1 وفي الحالة الثانية فقط المخرج الثاني=1 وفي الحالة الثالثة المخرج الاول والثاني =1
وفي حالة عدم تحقق اي شرط المخارج جميعها =0
ارجو ان تكون الفكرة قد توضحت.
if(porta.f1==0&&porta.f2==1&&porta.f3==0)
portb.f0=1;

if(porta.f1==1&&porta.f2==0&&porta.f3==0)
portb.f1=1;

if(porta.f1==0&&porta.f2==0&&porta.f3==1
portb=0b00000011;


السلام عليكم

لا اعرف ما المطلوب من البرنامج ..ولكن هناك ما يمكن التعديل عليه بحيث عند تحقق الشروط المطلوبة يحافظ على حالة محددة الى حين تغيير البرنامج..ارجو التاكد من البرنامج وعمله ...

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

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

كود:
void main () { char m; trisa=0xff; trisb=0x00; portb=0; while(1) { if(porta.f1==0&&porta.f2==1&&porta.f3==0) m=1; if(porta.f1==1&&porta.f2==0&&porta.f3==0) m=2; if(porta.f1==0&&porta.f2==0&&porta.f3==1) m=3; switch(m) { case 1 : portb.f0=1 ; break ; case 2 : portb.f1=1 ; break ; case 3 :portb=0b00000011; break ; }
}
}

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

واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم...


رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 06-12-2009, 12:12 PM المشاركة 1220   
x4


الاخوة الاعزاء:
يبدوا ان الفكرة لم تصل بالشكل المطلوب
ساوضحها كالاتي:
يوجد عندي 3 مفاتيح كدخل للpic
في حالة عدم ضغط اي مفتاح المخارج علىRB0و RB1 = صفر
وفي الحالة الاولى PORTA.F3==1 && PORTA.F1==0 && PORTA.F2==0
الناتج RB0,RB1=1
وفي الحالة الثانية PORTA.F3==0 && PORTA.F1==1 && PORTA.F2==0
الناتج RB1=1
وفي الحالة الثالثة PORTA.F3==0 && PORTA.F1==0 && PORTA.F2==&
الناتج RB0=1
واي حالة لا تنطبق على الثلاث حالات السابقة المخارج = صفر
مع العلم ان الحالة قد تبقى مدة اسبوع او اكثر ولا تتغير فعليه يبقى المخرج مساو للحالة الخاصة به .


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


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

أتمنى ان تستفيدوا ... ومفقين دائما بإذن الله


lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 06-12-2009, 04:01 PM المشاركة 1222   
افتراضي


الاخوة الاعزاء:
يبدوا ان الفكرة لم تصل بالشكل المطلوب
ساوضحها كالاتي:
يوجد عندي 3 مفاتيح كدخل للpic
في حالة عدم ضغط اي مفتاح المخارج علىRB0و RB1 = صفر
وفي الحالة الاولى PORTA.F3==1 && PORTA.F1==0 && PORTA.F2==0
الناتج RB0,RB1=1
وفي الحالة الثانية PORTA.F3==0 && PORTA.F1==1 && PORTA.F2==0
الناتج RB1=1
وفي الحالة الثالثة PORTA.F3==0 && PORTA.F1==0 && PORTA.F2==&
الناتج RB0=1
واي حالة لا تنطبق على الثلاث حالات السابقة المخارج = صفر
مع العلم ان الحالة قد تبقى مدة اسبوع او اكثر ولا تتغير فعليه يبقى المخرج مساو للحالة الخاصة به .

void main()-------------------------------------------------------------------------------------0
{-------------------------------------------------------------------------------------0
trisa=0xff;---------------------------------------------------------------------------0
trisb=0;-------------------------------------------------------------------------------0
portb=0;-----------------------------------------------------------------------------0
rania : while(1)-------------------------------------------------------------------------0
{-----------------------------------------------------------------------------------0
if(porta.f1==0&&porta.f2==0&&porta.f3==1){----------------------0
portb=3;-----------------------------------------------------0
goto rania;}-------------------------------------------------0
if(porta.f1==1&&porta.f2==0&&porta.f3==0){-----------------------0
portb=2;------------------------------------------------------0
goto rania;}--------------------------------------------------0
if(porta.f1==0&&porta.f2==1&&porta.f3==0){-----------------------0
portb=1;------------------------------------------------------0
goto rania;}--------------------------------------------------0
portb=0;}}---------------------------------------------------0


التعديل الأخير تم بواسطة : lahoioui بتاريخ 07-12-2009 الساعة 02:51 PM

lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 06-12-2009, 04:36 PM المشاركة 1223   
افتراضي


شكرا لك اخى الغالى:

لى ملاحظة بسيطة فقط على هذا الكلام ..................


_____________________________

ذكرت فى ردك ان امر delay
يكون فقط فى حالة استخدام button

اوك::


ماهو عمل البوتون

طبعا عملة انة يقوم بفتح دارة او غلقها ............


___________________

ومعنى هذا الكلام انة اذا كان يوجد جهاز متصل عن طريق ريلاى

وفى حالة عمل الجهاز _____________ فانة يعمل على اتصال الدارة _______

واذا كان مغلق _____________فانة يعمل على اغلاق الدارة ___________

_________________
ومعنى هذا كلة
ان الجهاز يعمل عمل ال button

صح ام لا؟؟؟؟

_____________________________
نعود لموضوع الاخت رانية

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

___________________________

فكيف سيتم هذا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

__________________________

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

سواء (H) او (L)

وهذا معناه انة قد وجد button
_____________________

وفى هذة الحالة

يكون وجود الامر delay مهم


اما بالنسبة للتوقيت الموضوع

فهذا يتحدد حسب استخدام البرنامج


____________________________


واخيرا
لك منى كل الاحترام
على ماتبذلة لمساعدتنا ومساعدة جميع الاعضاء

فعلا مجهودك واضح وذادك الله من علمة وبارك الله فيك ولك
نعم هما يؤديان نفس الوظيفة لكن الاختلاف هنا في طبيعة العمل
ال push boutton مصنوع من المطاط وأقصد الجزء السفلي الذي نضع عليه الكاربون
والمطاط بطبيعته يرتد عدة مرات قبل أن يستقر
فلو قمنا بتصغير أنفسنا الى مستوى المعالج ال pic فاننا سوف نلاحظ أن ال boutton عبارة عن شيء ضخم من المطاط عند الضغط عليه يعمل نفس ماتعمله
كرة المطاط عند القائها على جسم صلب يرتد بمستويات مختلفة الى أن يستقر
وهذا يعطي لل pic عدة ضغطات وليس ضغطة واحدة
طبعا لنجعل ال pic لا يعود ليقرأ ال boutton الا بعد أن يستقر نجعل ال pic
ينتظر 250ms حتى يميز ال pic بين ضغطة ثانية و ارتداد
هنا ننتضر 250ms حتى نعمل حساب نوعية ال boutton فمنها الرديء
أما الرلي أو القاطعات بشكل عام فهي معدن نحاس أو حديد أو فضة أو......
والمعدن لا يرتد بل بالعكس فهو يلتصق التصاقا (ناتج حقل مغناطيسي)
وبالتالي الاخت رانية لاتحتاج ل delay250ms
لانها لا تستعمل push boutton


lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 06-12-2009, 06:50 PM المشاركة 1224   
افتراضي


السلام عليكم

لا اعرف ما المطلوب من البرنامج ..ولكن هناك ما يمكن التعديل عليه بحيث عند تحقق الشروط المطلوبة يحافظ على حالة محددة الى حين تغيير البرنامج..ارجو التاكد من البرنامج وعمله ...

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

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

كود:
void main () { char m; trisa=0xff; trisb=0x00; portb=0; while(1) { if(porta.f1==0&&porta.f2==1&&porta.f3==0) m=1; if(porta.f1==1&&porta.f2==0&&porta.f3==0) m=2; if(porta.f1==0&&porta.f2==0&&porta.f3==1) m=3; switch(m) { case 1 : portb.f0=1 ; break ; case 2 : portb.f1=1 ; break ; case 3 :portb=0b00000011; break ; }
}
}

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

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



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