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

أدوات الموضوع

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 26-12-2017, 04:36 PM المشاركة 1   
ha السلام عليكم .. لو سمحتم كود بسيط و اربع ليدات Twitter FaceBook Google+



اريد استخدام البك 16f628 و اربع مفاتيح بش بتن
عند الضغط على المفتاح الاول يضيئ الليد الاول و عند الضغط عليه مره اخرى يطفئ نفس الليد :
و هكذا مع باقي الليدات ولكن هناك ملاحظه مع المفتاح الرابع .. بحيث لو قمت بالضغط عليه ضغطه عاديه (قصيره)يقوم بتشغيل الليد الرابع و اذا قمت بالضغط مره اخرى يطفئ نفس الليد .. اما اذا قمت بالضغط عليه ( المفتاح الرابع) لمدة 3 ثواني مثلا يقوم بتشغيل كل الليداد الاربعه و اذا ضغطت عليه مره اخرى لمدة ايضا ثلاث ثواني يطفئ جميع الليدات الاربعه .....

ولكم الشكر مقدما ..

اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 28-12-2017, 12:49 AM المشاركة 2   
افتراضي


اريد استخدام البك 16f628 و اربع مفاتيح بش بتن
عند الضغط على المفتاح الاول يضيئ الليد الاول و عند الضغط عليه مره اخرى يطفئ نفس الليد :
و هكذا مع باقي الليدات ولكن هناك ملاحظه مع المفتاح الرابع .. بحيث لو قمت بالضغط عليه ضغطه عاديه (قصيره)يقوم بتشغيل الليد الرابع و اذا قمت بالضغط مره اخرى يطفئ نفس الليد .. اما اذا قمت بالضغط عليه ( المفتاح الرابع) لمدة 3 ثواني مثلا يقوم بتشغيل كل الليداد الاربعه و اذا ضغطت عليه مره اخرى لمدة ايضا ثلاث ثواني يطفئ جميع الليدات الاربعه .....

ولكم الشكر مقدما ..
السلام عليكم ورحمه الله وبركاته


تفضل أخي اليك طلبك ...


كود:
 
    // ENG/ ABDALLA HEGAZY
  //  DATA / 2017 / 12 28

     #define LED_1   PORTB.F0
     #define LED_2   PORTB.F1
     #define LED_3   PORTB.F2
     #define LED_4   PORTB.F3

       void main() {
       TRISB=240; PORTB=0;

       while(1){
      

       if (Button(&PORTB, 4, 100, 1)) {LED_1 =~ LED_1;}

       if (Button(&PORTB, 5, 100, 1)) {LED_2 =~ LED_2;}

       if (Button(&PORTB, 6, 100, 1)) {LED_3 =~ LED_3;}

       if (PORTB.f7==1){ delay_ms(250); 
       if (PORTB.f7==0){  LED_4 =~ LED_4;}
       if (PORTB.f7==1)
       {

          LED_1 =~ LED_1;
          LED_2 =~ LED_2;
          LED_3 =~ LED_3;
          LED_4 =~ LED_4;
           delay_ms(1000);
      }
      }

      
    }
 }




احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً رسول العراق, اوشة محمود ( شكر العضو على هذه المشاركة )
اعجاب اوشة محمود ( أعجبته المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:0
قديم 28-12-2017, 05:42 PM المشاركة 3   
افتراضي


السلام عليكم استاذ عبدالله ارسلت لك رسالة ارجو الاجابة وشكرا على المساعدة


اوشة محمود
:: مهندس ::
تاريخ التسجيل: Feb 2015
المشاركات: 38
نشاط [ اوشة محمود ]
قوة السمعة:0
قديم 28-12-2017, 09:49 PM المشاركة 4   
افتراضي


السلام عليكم
ياريت يابشمهندس عبد الله لتكتمل الفائدة برجاء شرح كل سطر من البرنامج


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 28-12-2017, 11:36 PM المشاركة 5   
افتراضي


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

أخي الكريم للأسف لا ادري لماذا لا تعمل الرسائل الخاصه بي ...


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 29-12-2017, 12:00 AM المشاركة 6   
افتراضي


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


أخي الكريم ..

نبدأ من أو سطر في الكود ..

كود:
  
    // ENG/ ABDALLA HEGAZY
  //  DATA / 2017 / 12 28
     #define LED_1   PORTB.F0
     #define LED_2   PORTB.F1
     #define LED_3   PORTB.F2
     #define LED_4   PORTB.F3

هذا الأمر ينفذ الأوامر اللتي تكون امامه ويمكننا تسميته بأي اسم ولا يجوز تسميته بأسم متغيرات أو دوال موجوده في الكود ..

لاحظ الكود
كود:
  #define LED_1   PORTB.F0
كود:
  #define
هذا الأمر نخبرالميكرو انه تم حجز عنوان جديد ..
كود:
 LED_1
وهذا اسم العنوان في العاده نسمي العنوان بصفه عمله وهنا سمينا اسم العنوان بأسم
كود:
  LED_1
وهنا لو تم وضع هذا العنوان في أي مكان في الكود سيتم تنفيذ الأمر اللذي امامه وهو
كود:
  PORTB.F0
وهكذا مع باقي العناوين الثلاثه ..


وهنا تم تعريف الداله الأساسيه للبرنامج وتم تعريف وتهيئه البورت المستخدم اربع مداخل واربع مخارج
كود:
   void main() {
       TRISB=240; PORTB=0;
وهنا تم وضع حلقه تكراريه لا نهايه لها ..
كود:
   while(1){

وهذا الكود يختبر حاله المفتاح ايذا كان مضغوط عليه أم لا ... ؟؟
كود:
   if (Button(&PORTB, 4, 100, 1)) {LED_1 =~ LED_1;}
أمر
كود:
 if
يعبر عن ( لو تم الضغط علي مفتاح
كود:
 Button
من البورت
كود:
 PORTB, 4, 100, 1)
والرجل رقم 4 هل بتساوي واحد ايذااا تم تحقق الشرط وينطظر الميكرو 100 ميلي سانيه وينفذ الأمر
كود:
  {LED_1 =~ LED_1;}
وهو عنوان اليد الأول يختبر البورت B الرجل رقم 0 لو بتساوي صفر يجعلها تساوي واحد
كود:
 =~
وهذا الأمر يقلب حاله البن رقم صفر لو تساو واحد يجعلها تساوي صفر والعكس لو تساوي صفر يجه يجعلها تساوي واحد .. )

وهكذا مع باقي اوامر الأختبار ..

ولكن يوجد اختلاف في أمر الشرط المسؤل عن الليد الرابع لأنه يوجد أمر شرط مركب بمعني يوجد أمرين شرط في حلقه واحده .. الأمر الأول يختب ايذا تم الضغط علي المفتاح ضغطه واحد يدخل يغير حاله البن رقم 4 في البورت B لو كانت بصفر يجعلها بواحد والعكس ..

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

وازرني لأني لا اعرف مهاره الشرح ..

تحياتي


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 01-01-2018, 09:41 AM المشاركة 7   
افتراضي


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


تفضل أخي اليك طلبك ...


كود:
 
    // ENG/ ABDALLA HEGAZY
  //  DATA / 2017 / 12 28

     #define LED_1   PORTB.F0
     #define LED_2   PORTB.F1
     #define LED_3   PORTB.F2
     #define LED_4   PORTB.F3

       void main() {
       TRISB=240; PORTB=0;

       while(1){
      

       if (Button(&PORTB, 4, 100, 1)) {LED_1 =~ LED_1;}

       if (Button(&PORTB, 5, 100, 1)) {LED_2 =~ LED_2;}

       if (Button(&PORTB, 6, 100, 1)) {LED_3 =~ LED_3;}

       if (PORTB.f7==1){ delay_ms(250); 
       if (PORTB.f7==0){  LED_4 =~ LED_4;}
       if (PORTB.f7==1)
       {

          LED_1 =~ LED_1;
          LED_2 =~ LED_2;
          LED_3 =~ LED_3;
          LED_4 =~ LED_4;
           delay_ms(1000);
      }
      }

      
    }
 }




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


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:0
قديم 02-01-2018, 02:01 PM المشاركة 8   
افتراضي


السلام عليكم و رحمة الله :
استاذ عبد الله بالنسبه للكود اللي حضرتك كتبته قمت بتشغيله عمليا و هو يعمي بشكل ممتاز بارك الله فيك ( طبعا بعد ما اضفتله COCON=7 و لكن لي بعد اذنك ملاحظه صغيره على المفتاح الرابع بعد الضغط عليه (ضغطه طويله) ,,,فانه يقوم بعكس البورت B وليس اطفائه و تشغيله ... بمعنى اخر لو كان ليدين مضائات و ضغطت عليه فانه يعكس الحاله ولا يضفئ او يضيئ البورت بالكامل كما اردت .. حاولت اعدل عليه بتبديل الامر ّ الى ! ولكن دون نتيجه ... هل لك ان تحل تلك المشكله ؟؟//ان شاء الله اكون قدرت اوصل لحضرتك المعلومه

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025