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

   

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 19-07-2014, 09:55 AM المشاركة 17   
افتراضي



السلام عليكم
أخي كريم انا أحاول أبحث عن شفره زر البور ولكن أي ريموت تستعمل هو لتلفاز ام ستلايت ام ...
على العموم اذا افترضنا اننا حصلنا على الكود وكانت شفره مثلا 100
وفي بدايه البرنامج تعرف متغير جديد تسميه مثلا 0 =state_power
يكون اضافه الكود في الاستقبال كتالي
كود:
switch (bouton){
                                                 case 0: Portb.F0 = ~Portb.F0;Delay_ms(150);break;        // button TV '0'
                                                 case 1: Portb.F1 = ~Portb.F1;Delay_ms(150);break;        // button TV '1'
                                                 case 2: Portb.F2 = ~Portb.F2;Delay_ms(150);break;        // button TV '2'
                                                 case 3: Portb.F3 = ~Portb.F3;Delay_ms(150);break;        // button TV '3'
                                                 case 100: state_power= ~state_power;
                                                           if(state_power==255)portb=255;
                                                           else portb=0;
                                                           Delay_ms(150);
                                                           break;
                                                 default:break;
                                                }
جرب هذا الرابط
http://www.qariya.info/vb/showthread...505#post887505

شكرا لك اخي حسن جاري التجربه و اسأخبرك بالنتيجه ان شاء الله تعالى.

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 19-07-2014, 10:08 AM المشاركة 18   
Thumbs up


شكرا لك اخي حسن جاري التجربه و اسأخبرك بالنتيجه ان شاء الله تعالى.
السلام عليكم
أخي تذكر شفره البور هو 21 لذا أستبدل 100 بــ 21

تحياتي

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

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 19-07-2014, 10:28 AM المشاركة 19   
افتراضي


السلام عليكم
أخي تذكر شفره البور هو 21 لذا أستبدل 100 بــ 21

تحياتي
شكرا للتذكره بارك الله فيك اخي حسن
ولكن اخي حسن بالنسبه للتعريف ( switch(bouton
هل اضعه بعد الداله } ()void main ؟؟؟

و اعذرني اخي لاني كما قلت لك انا مبتدئ بالبرمجه


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 19-07-2014, 10:31 AM المشاركة 20   
افتراضي


شكرا للتذكره بارك الله فيك اخي حسن
ولكن اخي حسن بالنسبه للتعريف ( switch(bouton
هل اضعه بعد الداله } ()void main ؟؟؟

و اعذرني اخي لاني كما قلت لك انا مبتدئ بالبرمجه
عفوا التعريف state_power


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 19-07-2014, 11:03 AM المشاركة 21   
افتراضي


state_power هو متغير أضعه في داخل main او خارجه طبعا داخل main يكون معرف فقط ضمن داله main بينما وضع متغير خارج داله main سيكون متغير عام يعني اينما كتبه في داله سيكون معرف


كود:
unsigned char state_power=0;
يعني

في بدايه البرنامج
كود:
sbit ir_in at RA0_bit;                      // Infrared receiver input
sbit ir_in_direction at TRISA0_bit;         // Infrared receiver input
unsigned int retint;                        // general purpose integer
unsigned char ir_byte,COUNT,bouton;
unsigned char ir_result[3] ;
const char dvice_address=1;
unsigned char state_power=0;


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 19-07-2014, 02:14 PM المشاركة 22   
sun


يسلموا ايديك اخي حسن على التوضيح

جاري العمل...............


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 20-07-2014, 09:28 AM المشاركة 23   
x5


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


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 20-07-2014, 11:01 AM المشاركة 24   
افتراضي


السلام عليكم
اخي حسن الكود السابق يعمل على اطفاء و اضائة البورت بالكامل و لكن اخي اعتقد ان هناك خطأ بسيط في الكود ..فمثلا اذا كنت مضيئ 4 ليداد و طغطت على البور ما بينطفو للمره الاولى و لكن يضيئ باقي البورت كله(8 ليدات) ثم ضغطه ثانيه يطفئ جميع البورت(8 ليدات).. ثم بعد ذلك يعمل على الاطفاء و الاضائه بشكل سليم ..يمكن لك ان تتأكد من خلال المحاكاة على بروتس
اوكي أخي العزيز لو ضغطت على البور راح يتغير قيمه state_powe لتصبح 255 وبتالي راح يسبب أضاءه ليدات
الحل بسيط هو اما ان تجعل قيمه state_powe اوليه =255
كود:
sbit ir_in at RA0_bit;                      // Infrared receiver input
sbit ir_in_direction at TRISA0_bit;         // Infrared receiver input
unsigned int retint;                        // general purpose integer
unsigned char ir_byte,COUNT,bouton;
unsigned char ir_result[3] ;
const char dvice_address=1;
unsigned char state_power=255;
او تقول كما في الكود

كود:
case 0: Portb.F0 = ~Portb.F0;Delay_ms(150);break;        // button TV '0'
                                                 case 1: Portb.F1 = ~Portb.F1;Delay_ms(150);break;        // button TV '1'
                                                 case 2: Portb.F2 = ~Portb.F2;Delay_ms(150);break;        // button TV '2'
                                                 case 3: Portb.F3 = ~Portb.F3;Delay_ms(150);break;        // button TV '3'
                                                 case 21: state_power= ~state_power;
                                                           if(state_power==255)portb=0;
                                                           else portb=255;
                                                           Delay_ms(150);
                                                           break;
                                                 default:break;
                                                }



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