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

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-12-2013, 09:59 PM المشاركة 17   
افتراضي



اخ حسن في مشكلة في البرنامج اثناء تشغيلها على برنامج البترونس
عندما اشغل الدائرة ويكون d2 او d3 مضغوط واضغط d1 لفترة قصيرة
اي مجرد غلق وفتح يقف البرنامج ولايعمل
السلام عليكم
اخي كريم
قم بتعديل الكود في داله (void function(char sw

الكود الاصلي
كود:
if(back==1){
              back=0; return;
              }

الكود الجديد
كود:
if(back==1){
              back=0;
              source1=0;
              source2=0;
              source3=0;
              return;
              }

اعلانات

الصورة الرمزية ابو عبدالله77
ابو عبدالله77
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
المشاركات: 69
نشاط [ ابو عبدالله77 ]
قوة السمعة:
قديم 28-12-2013, 10:46 PM المشاركة 18   
افتراضي


السلام عليكم
اخي كريم
قم بتعديل الكود في داله (void function(char sw

الكود الاصلي
كود:
if(back==1){
              back=0; return;
              }

الكود الجديد
كود:
if(back==1){
              back=0;
              source1=0;
              source2=0;
              source3=0;
              return;
              }
اخي الكريم حسن والله يعجز اللسان بالشكر والتقدير لك ولجهودك
الكبيره وفقك الله ودام عليك الصحة وزادك علما

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

الصورة الرمزية ابو عبدالله77
ابو عبدالله77
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
المشاركات: 69
نشاط [ ابو عبدالله77 ]
قوة السمعة:
قديم 07-02-2014, 09:43 PM المشاركة 19   
افتراضي


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


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


السلام عليكم
اخ حسن بعد تنفيذ الدائرة
يعمل button مرة واحد فقط وعند ضغط مره اخرى
على نفس button لايعمل
نرجو المساعدة
السلام عليكم
شكرا جزيلا على هذه ملاجظه وحلها بسيط ان شالله
عليك باضافه هذه الكود الى الداله main
كود:
if(d1 ==0)source1=0;
         if(d2 ==0)source2=0;
         if(d3 ==0)source3=0;
اي يصبح الكود الكلي
كود:
#define s1        portb=1
#define s2        portb=2
#define s3        portb=4
#define off_relay portb=0
sbit  d1 at RA0_bit ;
sbit  d2 at RA1_bit ;
sbit  d3 at RA2_bit ;
sbit  buzzer  at RB3_bit ;
char source1=0,source2=0,source3=0, x=0;
char back=0;
//*************************//
void function(char sw);
void  delay_15_sec(char sw1);
void buzzer_function();
//****************************//
void main() 
{ 
 cmcon=7;
 TRISB=0; 
 TRISA=0xFF;
 off_relay;
 while(1)
        {
         if(d1==1 && source1==0)
                  {
                   delay_15_sec(1);// wait 15 sec
                   function(1);
                  }

         else if(d2==1 && d1==0 && source2==0)
                  {
                   delay_15_sec(2);// wait 15 sec
                   function(2);
                  }
         else if(d3==1 && d1==0 && d2==0 && source3==0)
                  {
                   delay_15_sec(3);// wait 15 sec
                   function(3);
                  }
         else if(d1==0 && d2==0 && d3==0)
                  {
                   off_relay;
                  }
         if(d1 ==0)source1=0;
         if(d2 ==0)source2=0;
         if(d3 ==0)source3=0;
        }

}
//**************************************************//
void function(char sw)
{
 if(back==1){
              back=0;
              source1=0;
              source2=0;
              source3=0;
              return;
             }
 if(sw==1)
          { 
           s1;
           source1=1;
           source2=0;
           source3=0;
          }
 else if(sw==2)
               {
                s2;
                source1=0;
                source2=1;
                source3=0;
               }
 else if(sw==3)
               {
                 s3;
                 source1=0;
                 source2=0;
                 source3=1;
               }
}


//*********************************************
void  delay_15_sec(char sw1)
{
 off_relay;
 for(x=0;x<30;x++)// total time =15sec (( 500ms * 30 =15sec))
                  {
                    if(sw1 ==1)
                              {
                               if(d1==0){back=1;return;}
                               buzzer_function();
                              }
                    else if(sw1 ==2)
                              {
                               if(d2==0 || d1==1){back=1;return;}
                               buzzer_function();
                              }
                    else if(sw1 ==3)
                              {
                               if(d3==0 || d1==1 ||d2==1){back=1;return;}
                               buzzer_function();
                              }
                   }
buzzer=0;// for check the buzzer is stop
}
//**********************************************
void buzzer_function()
{ // total delay=100+100+150+150=500ms
 buzzer=1;
 delay_ms(100);
 buzzer=0;
 delay_ms(100);
  buzzer=1;
 delay_ms(150);
 buzzer=0;
 delay_ms(150);

}
تحياتي الطيبه لك اخي كريم


الصورة الرمزية ابو عبدالله77
ابو عبدالله77
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
المشاركات: 69
نشاط [ ابو عبدالله77 ]
قوة السمعة:
قديم 08-02-2014, 10:00 AM المشاركة 21   
افتراضي


شكرا اخي الكريم وبارك الله فيك



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