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

   

النعمي
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
المشاركات: 206
نشاط [ النعمي ]
قوة السمعة:
قديم 07-10-2012, 08:34 AM المشاركة 49   
افتراضي



سؤآل ايضاآ ..

هل بإمكاني زيادة عدد الأزرار بحيث تصبح اكثر وكم يكون اقصآهآ في 16F628A

هل هو 7 ؟!

اعلانات

حازم ابواسماعيل
:: مهندس ::
تاريخ التسجيل: Sep 2012
المشاركات: 18
نشاط [ حازم ابواسماعيل ]
قوة السمعة:
قديم 07-10-2012, 04:21 PM المشاركة 50   
ha


معلش يا funky112233
لو هتعب حضرتك عندي سؤال بسيط خاص بفكرة جديدة نفسي اعرف ينفع تتعمل ولا لأ
بس عملتها في توبيك تاني عشان هي مرتبطة بال
ir
وال rf
مع بعض
قصدي خدتها من ال rf
حطيتها في ال ir
موجودة في التوبيك ده
ياريت حضرتك تساعدني وتقولي السبب ربنا يكرمك اصل نفسي اعملها

http://www.qariya.info/vb/showthread.php?t=116685


التعديل الأخير تم بواسطة : ماجد عباس محمد بتاريخ 28-10-2018 الساعة 06:47 PM السبب: تعديل الرابط للموقع الجديد
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 07-10-2012, 08:15 PM المشاركة 51   
افتراضي


بسم الله الرحمن الرحيم

اخى النعيمى

السؤال الاول اجابتة فى اخر جزئية من الشرح راجعه جيدا

السؤال الثانى فعلا الكود بيشتغل زى مانت ما بتقول بالزبط

السؤال الثالث
نعم هو على حسب المداخل والمخارج
ولكن يمكنك تركيب كيباد سيوفر لك 16 زر باستخدام 8 اطراف فقط

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

اخى حازم ابواسماعيل

ان شاء الله هرد عليك فى موضوعك


النعمي
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
المشاركات: 206
نشاط [ النعمي ]
قوة السمعة:
قديم 09-10-2012, 02:06 PM المشاركة 52   
افتراضي


ثم جعلت معامل القسمة فى التايمر 0 2:1
اى كل 2 ميكرو ثانية سوف يعد التايمر 1 وبعد 2 ميكرو ثانية اخرى سوف يصبح 2
وجعلت التايمر 0 يعد بنبضات داخلية اى نبضات الكريستالة

وفى حالتنا الكريستالة 4 ميجا
ااقسم على 4 كما نعلم من القانون
يبقى التردد 1 ميجا
وهذا يعنى انه يعد بالميكرو ثانية

وهذا من خلال الامر option_reg

اخي funky112233
هل في حالة استخدامي للبيك 16F628A
لا حاجة لإضافة كريساله ؟!


النعمي
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
المشاركات: 206
نشاط [ النعمي ]
قوة السمعة:
قديم 09-10-2012, 02:44 PM المشاركة 53   
افتراضي


كود:
char x;

void main() {
CMCON=0x07;TRISA=255;TRISB=0;portb=0;
PWM1_Init(38000);
PWM1_Set_Duty(255);


  while (1) {
  if (porta.f0==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<7;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600); }

      PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }

        if (porta.f1==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(1200);PWM1_Stop();      //1
      delay_us(600);
      for(x=0;x<6;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        delay_ms(250);
        }
        if (porta.f2==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(600);PWM1_Stop();      //1
      delay_us(600);
        PWM1_Start();delay_us(1200);PWM1_Stop();     //2
        delay_us(600);
      for(x=0;x<5;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
        PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
       if (porta.f3==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<2;x++){
      PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);  }
       for(x=0;x<5;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
       PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
       if (porta.f4==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<2;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      PWM1_Start();delay_us(1200);PWM1_Stop();      //1
      delay_us(600);
       for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
       PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
       if (porta.f5==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(1200);PWM1_Stop();      //1
      delay_us(600);
       PWM1_Start();delay_us(600);PWM1_Stop();      //1
      delay_us(600);
      PWM1_Start();delay_us(1200);PWM1_Stop();      //1
      delay_us(600);
           for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
         PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);
          for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
        if (porta.f6==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      PWM1_Start();delay_us(600);PWM1_Stop();      //1
      delay_us(600);
       for(x=0;x<2;x++){
      PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);  }
                for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
         PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);
          for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
        if (porta.f7==0){
      PWM1_Start();delay_us(2400);PWM1_Stop();
      delay_us(600);
      for(x=0;x<3;x++){
      PWM1_Start();delay_us(1200);PWM1_Stop();delay_us(600);  }
       for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
       PWM1_Start();delay_us(1200);PWM1_Stop();
        delay_us(600);
         for(x=0;x<4;x++){
      PWM1_Start();delay_us(600);PWM1_Stop();delay_us(600);  }
      delay_ms(250);
        }
      }


  }
ما رايك في هذا الكود والذي يحتوي على 7 ازرار ..
اي من رجل RA0 الى RA7

+
مالذي اختاره في المايكرو c .. في رقم 4 .. وياليت تشرح لماذا ؟!



وآسف اذا تعبتك معي يا استاذ ..


islamyhayati
:: مهندس ::
تاريخ التسجيل: Mar 2010
المشاركات: 15
نشاط [ islamyhayati ]
قوة السمعة:
قديم 10-10-2012, 03:43 PM المشاركة 54   
افتراضي


الحمد لله لقد عملت معى الدائرة بنجاح مع ريموت سونى

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


النعمي
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
المشاركات: 206
نشاط [ النعمي ]
قوة السمعة:
قديم 12-10-2012, 11:33 PM المشاركة 55   
افتراضي


funky112233 اخوي بارك الله فيك ..

يآليت تشوف الكود الي فوق ما رايك به ..
ولك جزيل الشكر


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 13-10-2012, 12:13 AM المشاركة 56   
افتراضي


بسم الله الرحمن الرحيم

اخى النعيمى اسف على التاخير

بالنسبة للبك 16f628a فنعم يمكن استخدامة بدون تركيب كريستالة خارجية
وهذا لانة يحتوى على كريستالة داخلية داخل تكوينة يمكن استخدامها

بالنسبة للكود بتاعك مشاء الله تمام ماعدا جزئية

كود:
PWM1_Set_Duty(255);
يجب ان تكون

كود:
PWM1_Set_Duty(35);
وهذا ما تم شرحة فى جزء المرسل راجع الشروحات لتعلم لماذا

ولكن الطريقة الى كتبت بيها الكود زى الى انا عامل الكود بيها
لكن انا كنت عامل الطريقة دى للتوضيح فقط علشان ميبقاش الكود معقد شوية

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

http://www.qariya.info/vb/showthread...=112123&page=4

وبدون تعقيد وفى سطور قليلة

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

او تراجع دورة البشمهندس احمد سمير فايد

اخى عمرو

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

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

بالتوفيق ان شاء الله


التعديل الأخير تم بواسطة : ماجد عباس محمد بتاريخ 28-10-2018 الساعة 06:44 PM السبب: تعديل الرابط للموقع الجديد


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