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

   

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



بارك الله فيك اخي الفاضل
ممكن اخي سؤال؟
اريد ان اتحكم في ديود ليد الموجود في سيلفر2 من ماستر ثم من سيلفر 1
لم اعرف كيف اضيفها في الكود الدي صححته الاخ العزيز وشكرا
تقبل مروري
السلام عليكم
سأرتب الكود بمشيئه الله ومن ثم اعطيك ملفات
تحياتي

اعلانات

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 10-08-2014, 08:39 PM المشاركة 18   
افتراضي


شكرا اخي وفقك الله لما يحب ويرضى

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

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


شكرا اخي وفقك الله لما يحب ويرضى
السلام عليكم
تفضل أخي هذه ملفات
http://up.top4top.net/downloadf-top4...e0351-rar.html

ملاحظه ليد مربوط على RB0_bit له عده مهام
1- عند بدايه التشغيل يضيئ لمده 1 ثانيه ثم ينطفئ لدلاله على لكتمال عمليه التهيئه بنجاح
2- عند الارسال البيانات او استقبالها يضي وينطفئ لدلاله على انتهاء من ارسال البيانات او انتهاء من قراءه البيانات

هذا ليد فقط لتحديد مشاكل ولايؤثر على عمل البرنامج

ملاحظه// لكي يتحكم اي slave بأخر يجب ان يرسل بيانات الى ماستر ومن ثم يقوم ماستر بأرسال البيانات الى slave يعني ماستر هو واسطه بين slave واخر
لذا تجد بالكود في slave1 انه اذا تم الضغط على سويج سوف يرسل البيانات طبعا أخبرته ارسل 0x11 الى ماستر ومن ثم يقوم ماستر بتفحص البيانات فاذا كانت = 0x11 يعني يريد slave1 مخاطبه slave2 فيقوم ماستر بأرسال شفره الى slave2 وطبعا شفره التحكم ب ليد هي 0x55

تحياتي الطيبه لكم

كود ماستر
كود:
sbit  rs485_rxtx_pin  at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;

sbit  sw1  at RA1_bit;
sbit  sw1_dir at TRISA1_bit;

sbit  led_init  at RB0_bit;
sbit led_init_dir at TRISB0_bit;

char valeur_RS[10];
void interrupt()
{
  RS485Master_Receive(valeur_RS);

}
//*******************************************************//
void main()
{
  ADCON1=6;
 sw1_dir=1;
 led_init_dir=0;
 led_init=0;
 UART1_Init(19200);
 Delay_ms(100) ;
 RS485Master_Init();
 Delay_ms(100) ;

  valeur_RS[0] = 0;
  valeur_RS[1] = 0;
  valeur_RS[2] = 0;
  valeur_RS[4] = 0;
  valeur_RS[5] = 0;
  valeur_RS[6] = 0;
  valeur_RS[7] = 0;

  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;

  Delay_ms(100) ;
  led_init=1;
  delay_ms(1000);
  led_init=0;
  
  GIE_bit = 1;
    while(1){
             if(sw1 ==0)
                       {
                         led_init=1;
                         valeur_RS[0] = 0x55; // this random code can be change

                        RS485Master_Send(valeur_RS,1,161);
                        Delay_ms(250) ;
                         led_init=0;
                       }
                       
             if(valeur_RS[4]==255)
                             {
                               led_init=1;
                              valeur_RS[4]=0;
                              if( valeur_RS[0]==0x11)
                                           {
                                            valeur_RS[0]=0x55;
                                            RS485Master_Send(valeur_RS,1,161);
                                           }
                               Delay_ms(250) ;
                                led_init=0;
                             }

            }


}

كود slave1

كود:
sbit  rs485_rxtx_pin at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;

sbit  sw1  at RA1_bit;
sbit  sw1_dir at TRISA1_bit;

sbit  led_init  at RB0_bit;
sbit led_init_dir at TRISB0_bit;
char valeur_RS_2[9];

void interrupt() {
 RS485Slave_Receive(valeur_RS_2);
}
void main() {

  adcon1=6;
  sw1_dir=1;
 led_init_dir=0;
 led_init=0;
  UART1_Init(19200);
  Delay_ms(100);
  RS485Slave_Init(160);

   valeur_RS_2[4] = 0;
   valeur_RS_2[5] = 0;
   valeur_RS_2[6] = 0;

  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  GIE_bit = 1;
   led_init=1;
  delay_ms(1000);
  led_init=0;

 while(1)
         {
         if(sw1==0)
              {
                led_init=1;
               valeur_RS_2[0]=0x11;
               RS485Slave_Send( valeur_RS_2,1);
               delay_ms(250);
               led_init=0;
             }

        }
}
كود slave2
كود:
sbit  rs485_rxtx_pin at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;

sbit led1 at RB1_bit;
sbit led1_dir at TRISB1_bit;

sbit led_init at RB0_bit;
sbit led_init_dir at TRISB0_bit;
char valeur_RS_2[9] , data_flag=0;
//*******************************************************************//
void interrupt() {
 RS485Slave_Receive(valeur_RS_2);
}
//********************************************************************//
void main() 
{
 adcon1=6;
 led1_dir=0;
 led_init_dir=0;
 led1=0;
 led_init=0;


  UART1_Init(19200);
  Delay_ms(100);
  RS485Slave_Init(161);

   valeur_RS_2[4] = 0;
   valeur_RS_2[5] = 0;
   valeur_RS_2[6] = 0;

  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  led_init=1;
  delay_ms(1000);
  led_init=0;
  GIE_bit = 1;


  while(1)
   {
      if(valeur_RS_2[4]==255)
                             {
                               led_init=1;
                              valeur_RS_2[4]=0;
                              if(valeur_RS_2[0]==0x55)data_flag=1;
                              if (data_flag==1)
                                              {
                                               led1=~led1;
                                               data_flag=0;
                                               }
                              delay_ms(250);
                               led_init=0;
                             }
    }
    
}


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 11-08-2014 الساعة 11:15 AM

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 11-08-2014, 08:36 PM المشاركة 20   
افتراضي


شكرا اخي الفاضل



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