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

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 18-01-2015, 06:03 AM المشاركة 9   
افتراضي



هل تقصد هذا
http://www.qariya.info/vb/showthread.php?t=112840

هذا المشروع يستخدم البرتوكول NEC
http://up.top4top.net/downloadf-top4...14ed1-rar.html


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 18-01-2015 الساعة 06:15 AM
اعلانات

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


السلام عليكم
هذا نفس مثال ولكن سهلت عليك الكود
ملاحظه الكود بلون أحمر هو كود ثابت لمستقبله IR _NEC
http://up.top4top.net/downloadf-top4...19a61-rar.html

التردد هو 4mhz
اما كود بلون الاخضر فهو متاح لك لتعديل عليه
كود:
sbit ir_in        at RA0_bit;
sbit ir_in_dir    at TRISA0_bit;
sbit led1        at RB0_bit;
sbit led2        at RB1_bit;
sbit led3        at RB2_bit;
sbit led4        at RB3_bit;


//************************** Code IR_Reciver *******************************//

const char address_advice=10;
unsigned char IR_Received_byte[4];
unsigned char IR_state=0 , IR_Timer_Count = 0 , IR_Received_Flag;
unsigned char IR_Bit_Count = 0 , IR_Byte_Count=0 ;
unsigned int retint,count=0;

//Timer0

void InitTimer0()
{
 option_reg=0b10000000;
 intcon=0b10100000;
 tmr0=0;
}

//*********************************************//
void Interrupt()
{
  if (TMR0IF_bit){
     TMR0IF_bit         = 0;
    TMR0                 = 0;
    count++;
  }
}
//***************************************************//
unsigned int get_space()
{
      TMR0= 0; count=0;
      for(;!ir_in;);
      retint=2*(TMR0+(count*256));
      return retint;
}
//*/********************************************************//
 unsigned int get_mark(){
                        count=0;
                        TMR0= 0;
                        while(ir_in);
                        retint=2*(TMR0+(count*256));
                        return retint;
                       }
//*************************************************************//
unsigned int get_mark1(){
                        count=0;
                        TMR0= 0;
                        while(!ir_in);
                        retint=2*(TMR0+(count*256));
                        return retint;
                       }
//////////////////////////************************************///////////////
unsigned char get_remote_byte()
{
 char remote;
 unsigned char ir_byte;
 unsigned int temp_ir;
 ir_byte = 0;                                  // initialise
 for(remote=0 ; remote<8 ; remote++)
          {
            temp_ir = get_space();
            if ((temp_ir > 430)&&(temp_ir < 600))
                      {
                        temp_ir = get_mark();
                        ir_byte >>= 1;  // 650uS = 0, 1680uS = 1
                        if ((temp_ir > 700)&&(temp_ir < 1900))
                                           {
                                            ir_byte += 0x80;
                                           }
                     }
            else break;
          }


return ir_byte;
}

//*****************************************************************************************//
unsigned char remote_read(const char device_address)
{
  unsigned int temp_ir;
  ir_in_dir =1;
  IR_Received_byte[0]=0;
  IR_Received_byte[1]=0;
  IR_Received_byte[2]=0;
  IR_Received_byte[3]=0;
  while(ir_in);// wait for IR to go low
  temp_ir = get_mark1();
  if((temp_ir>7000)&&(temp_ir<11000))
                 {   // expect 4.5mS mark
                  temp_ir = get_mark();// wait for repeat messages to clear
                   if((temp_ir>3700)&&(temp_ir<5300))
                                {
                                   IR_Received_byte[0] = get_remote_byte();// 7 bit command
                                   IR_Received_byte[1] = get_remote_byte();// 5 bit address
                                   IR_Received_byte[2] = get_remote_byte();// 7 bit command
                                   IR_Received_byte[3] = get_remote_byte();// 5 bit address
                                   temp_ir = get_space();
                                   if ((temp_ir > 430)&&(temp_ir < 600))
                                                    {
                                                      if ((IR_Received_byte[0] == ~IR_Received_byte[1]) && (IR_Received_byte[2] == ~IR_Received_byte[3]))
                                                                      {
                                                                        if(IR_Received_byte[0]==device_address)IR_Received_Flag =1;
                                                                       }

                                                    }


                                }
                 }

}

//**** main********************************************
void main()
{
 cmcon=7;// OFF comparator

  ir_in_dir =1;
 InitTimer0();
  trisb=0;
  portb=0;


  while(1)
        {
         remote_read(address_advice);
         if (IR_Received_Flag == 1)
                           {
                              GIE_bit=0;

                             switch (IR_Received_byte[2])// data store in IR_Received_byte[2]
                                               {
                                                 case 0xAA :{ led1=~led1;delay_ms(150); break;}
                                                 case 0xBB :{ led2=~led2;delay_ms(150) ;break;}
                                                 case 0xCC :{ led3=~led3;delay_ms(150); break;}
                                                 case 0xDD :{ led4=~led4;delay_ms(150);break;}
                                                 case 0xFF :{ portb=~portb;delay_ms(150);break;}
                                                 default : break;
                                               }

                              IR_Received_Flag = 0;
                              GIE_bit=1;

                          }
                          

                               
         }
}


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 18-01-2015 الساعة 07:46 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 18-01-2015, 10:07 PM المشاركة 11   
x6 بوركت وطاب مسعاك


بارك الله لك اخي الحبيب حسن
هل يمكن ان ترفع الملفات علي موقع اخر
جزاكم الله بكل خير


الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 19-01-2015, 04:31 AM المشاركة 12   
افتراضي


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

http://www.mediafire.com/download/gk...C+protocol.rar



وما توفيقي إلا بالله العلي العظيم


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 19-01-2015, 05:58 AM المشاركة 13   
افتراضي


السلام عليكم
هذا نفس مثال ولكن سهلت عليك الكود
ملاحظه الكود بلون أحمر هو كود ثابت لمستقبله IR _NEC
http://up.top4top.net/downloadf-top4...19a61-rar.html

التردد هو 4mhz
اما كود بلون الاخضر فهو متاح لك لتعديل عليه
كود:
sbit ir_in        at RA0_bit;
sbit ir_in_dir    at TRISA0_bit;
sbit led1        at RB0_bit;
sbit led2        at RB1_bit;
sbit led3        at RB2_bit;
sbit led4        at RB3_bit;


//************************** Code IR_Reciver *******************************//

const char address_advice=10;
unsigned char IR_Received_byte[4];
unsigned char IR_state=0 , IR_Timer_Count = 0 , IR_Received_Flag;
unsigned char IR_Bit_Count = 0 , IR_Byte_Count=0 ;
unsigned int retint,count=0;

//Timer0

void InitTimer0()
{
 option_reg=0b10000000;
 intcon=0b10100000;
 tmr0=0;
}

//*********************************************//
void Interrupt()
{
  if (TMR0IF_bit){
     TMR0IF_bit         = 0;
    TMR0                 = 0;
    count++;
  }
}
//***************************************************//
unsigned int get_space()
{
      TMR0= 0; count=0;
      for(;!ir_in;);
      retint=2*(TMR0+(count*256));
      return retint;
}
//*/********************************************************//
 unsigned int get_mark(){
                        count=0;
                        TMR0= 0;
                        while(ir_in);
                        retint=2*(TMR0+(count*256));
                        return retint;
                       }
//*************************************************************//
unsigned int get_mark1(){
                        count=0;
                        TMR0= 0;
                        while(!ir_in);
                        retint=2*(TMR0+(count*256));
                        return retint;
                       }
//////////////////////////************************************///////////////
unsigned char get_remote_byte()
{
 char remote;
 unsigned char ir_byte;
 unsigned int temp_ir;
 ir_byte = 0;                                  // initialise
 for(remote=0 ; remote<8 ; remote++)
          {
            temp_ir = get_space();
            if ((temp_ir > 430)&&(temp_ir < 600))
                      {
                        temp_ir = get_mark();
                        ir_byte >>= 1;  // 650uS = 0, 1680uS = 1
                        if ((temp_ir > 700)&&(temp_ir < 1900))
                                           {
                                            ir_byte += 0x80;
                                           }
                     }
            else break;
          }


return ir_byte;
}

//*****************************************************************************************//
unsigned char remote_read(const char device_address)
{
  unsigned int temp_ir;
  ir_in_dir =1;
  IR_Received_byte[0]=0;
  IR_Received_byte[1]=0;
  IR_Received_byte[2]=0;
  IR_Received_byte[3]=0;
  while(ir_in);// wait for IR to go low
  temp_ir = get_mark1();
  if((temp_ir>7000)&&(temp_ir<11000))
                 {   // expect 4.5mS mark
                  temp_ir = get_mark();// wait for repeat messages to clear
                   if((temp_ir>3700)&&(temp_ir<5300))
                                {
                                   IR_Received_byte[0] = get_remote_byte();// 7 bit command
                                   IR_Received_byte[1] = get_remote_byte();// 5 bit address
                                   IR_Received_byte[2] = get_remote_byte();// 7 bit command
                                   IR_Received_byte[3] = get_remote_byte();// 5 bit address
                                   temp_ir = get_space();
                                   if ((temp_ir > 430)&&(temp_ir < 600))
                                                    {
                                                      if ((IR_Received_byte[0] == ~IR_Received_byte[1]) && (IR_Received_byte[2] == ~IR_Received_byte[3]))
                                                                      {
                                                                        if(IR_Received_byte[0]==device_address)IR_Received_Flag =1;
                                                                       }

                                                    }


                                }
                 }

}

//**** main********************************************
void main()
{
 cmcon=7;// OFF comparator

  ir_in_dir =1;
 InitTimer0();
  trisb=0;
  portb=0;


  while(1)
        {
         remote_read(address_advice);
         if (IR_Received_Flag == 1)
                           {
                              GIE_bit=0;

                             switch (IR_Received_byte[2])// data store in IR_Received_byte[2]
                                               {
                                                 case 0xAA :{ led1=~led1;delay_ms(150); break;}
                                                 case 0xBB :{ led2=~led2;delay_ms(150) ;break;}
                                                 case 0xCC :{ led3=~led3;delay_ms(150); break;}
                                                 case 0xDD :{ led4=~led4;delay_ms(150);break;}
                                                 case 0xFF :{ portb=~portb;delay_ms(150);break;}
                                                 default : break;
                                               }

                              IR_Received_Flag = 0;
                              GIE_bit=1;

                          }
                          

                               
         }
}
السلام عليكم
تم تحميل ملف على ميديا فاير
https://www.mediafire.com/?v36jvrc8w61zvpe
تحياتي


hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 20-01-2015, 12:34 PM المشاركة 14   
x6 بوركت وطاب مسعاك


السلام عليكم
اخي الحبيب حسن
وجدت هذا الريموت يباع عند تجار قطع الغيار ويسمي remote mp3 واعجبني حجمة الصغير ولكن....



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


الصورة الرمزية mounir.rouabah
mounir.rouabah
:: عضو فضي ::
تاريخ التسجيل: Feb 2007
الدولة: الجـزائـــر
المشاركات: 561
نشاط [ mounir.rouabah ]
قوة السمعة:
قديم 20-01-2015, 03:22 PM المشاركة 15   
افتراضي


هذا أحسن ريموت موجود يعمل ببرتكولRC6 فتقريبا كل الريموتات هي تشتغل عل البروتوكول الذي اخترعته PHILIPS __ RC5 ثم طورته مؤخرا الل6 RC فهي تقريبا كلها متشابهة ولكن هنا جزء في بداية الكود يعين به نوع المرسل سواءا كان تلفاز او فيديو او شي آخر
ثم كود آخر يعين نوع الجهاز -- SONY - PHILPS - JVC - AKAI
فقط في البرمجو اقراهم على انهم اصفار وبذلك تصنع مستقبل لكل الريموتات ...
هذا ما اراه ان لم اكن مخطأ


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 20-01-2015, 03:44 PM المشاركة 16   
افتراضي


السلام عليكم
اخي الحبيب حسن
وجدت هذا الريموت يباع عند تجار قطع الغيار ويسمي remote mp3 واعجبني حجمة الصغير ولكن....



ولكن... لا توجد عليه اي بيانات توضح عملة
كيف يمكنني معرفة بروتوكول تشغيله لأصنع مستقبل له
بارك الله لك اخي الحبيب
السلام عليكم
كل معلومات تجدها في هذا الرابط
http://www.qariya.info/vb/showthread.php?t=112840

وكود مستقبله تجدها في الرابط الي ارفقته لك على ميديا فاير
تحياتي



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