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

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 11-11-2016, 01:10 AM المشاركة 1   
افتراضي برجاء المساعدة فى ..المصفوفات Arrays .. ودمجها مع شاشة 7SEGMENT Twitter FaceBook Google+



السلام عليكم ورحمة الله

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

الموضع بأختصار لقد كتبت العديد من الأكواد اللتى تتعامل مع شاشات ال 7سيجمينت ..

ولكن للأسف لا استطيع فهم كيف يمكن اسناد قيمة مباشرة الى المصفوفه ..

على سبيل المثال

كود:
 int arr[4] = {1,2,3,4};
عندى مصفوفه مكونه من 4 صفوف ... وعندى 4 شاشات 7سيجمنت موصله على" البورت B فى الميكرو 16F877A " كيف لى أن اسند قية المصفوقه الى البورت B لكى تعرض قيم المصفوفه على ال 4 شاشات ..

كيف استطيع تصفح خانات المصفوفه واستخراج القيم الموجودة فيها ..
************************************************** ***

وايضاااا الاجظ فى العدبد من التطبيقات اللتى تتعامل مع المصفوفات وشاشات ال 7SEGMINT أنه يوجد قيم موجودة بالفعل مع المصفوفه .. تم الإعلان عن المصفوفه .. وايضااا تم اسناد قيم لها ..

مثل هذه المصفوفه ...

كود:
 char segment[]={63,6,91,79,102,109,125,7,127,111};

وهذه القيم هى مرتبه من رقم ( 0 ) الى رقم ( 9 ) بنظام ال Decimal >>

رقم ( 0 ) بنظام Decimal = 63 وايضا الى الوصول الى رقم ( 9 ) بنظام Decimal = 111 ..

ياريت بعض التوضيح لماذا تم اسناد هذة الأرقام الى المصفوفه وما هى الفائدة منها ..



وشكرااا مقدمااا للجميع ... بارك الله فيكم

تحياتى لكم

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 11-11-2016, 05:52 AM المشاركة 2   
افتراضي


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

اخى العزيز عبد الله الامر بسيط تصور اننا ربطنا البورت PORTB بارجل السفن كما بالصورة تمام ,



ثم اردنا ان نظهر عليها الرقم صفر 0 , اذن سيكون علينا ان نضيئ الليدات ذات الحروف التالية : a , b, c, d, e, f فقط و بما ان السفن من نوع كاثود مشترك ينبغى لنضئ اى ليد ان نوصل الرجل المقابلة له ب 5 فولت اى (1) و الليد الذى نريد اطفاءه نوصل رجله ب (0) , و عليه :

فاننا اذا اردنا ان نعرض صفر على الشاشة سيكون وضع الارجل كما يلى
:

a=1, b=1, c=1, d=1, e=1, f=1, g=0.
تمام .
و بناءا على توصيل البورت PORTB بهذه الارجل يجب ان تكون قيمة البورت متطابقة كما يلى :
PORTB = 0B 0011 1111
و عند تحويلها الى عشرى سيكون :
PORTB = 63
و هى نفس القيمة الموجودة بالمصفوفة التى كتبتها حضرتك , و بالمثل لبقية الارقام 1و2و3و.... و بالتالى ستكون قيمة البورت هى قيمة المصفوفة على حسب الرقم المطلوب اظهاره :

كود:
 char segment[]={63,6,91,79,102,109,125,7,127,111};


ارجو ان اكون اوضحت الامر
و ربما يفيدك هذا الموقع
http://www.electronics-tutorials.ws/...-tutorial.html

و ما توفيقى الا بالله

و لا حول و لا قوة الا بالله
اللهم صبرك و نصرك



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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 11-11-2016, 09:55 PM المشاركة 3   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


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

اخى العزيز عبد الله الامر بسيط تصور اننا ربطنا البورت PORTB بارجل السفن كما بالصورة تمام ,



ثم اردنا ان نظهر عليها الرقم صفر 0 , اذن سيكون علينا ان نضيئ الليدات ذات الحروف التالية : a , b, c, d, e, f فقط و بما ان السفن من نوع كاثود مشترك ينبغى لنضئ اى ليد ان نوصل الرجل المقابلة له ب 5 فولت اى (1) و الليد الذى نريد اطفاءه نوصل رجله ب (0) , و عليه :

فاننا اذا اردنا ان نعرض صفر على الشاشة سيكون وضع الارجل كما يلى
:

a=1, b=1, c=1, d=1, e=1, f=1, g=0.
تمام .
و بناءا على توصيل البورت PORTB بهذه الارجل يجب ان تكون قيمة البورت متطابقة كما يلى :
PORTB = 0B 0011 1111
و عند تحويلها الى عشرى سيكون :
PORTB = 63
و هى نفس القيمة الموجودة بالمصفوفة التى كتبتها حضرتك , و بالمثل لبقية الارقام 1و2و3و.... و بالتالى ستكون قيمة البورت هى قيمة المصفوفة على حسب الرقم المطلوب اظهاره :

كود:
 char segment[]={63,6,91,79,102,109,125,7,127,111};


ارجو ان اكون اوضحت الامر
و ربما يفيدك هذا الموقع
http://www.electronics-tutorials.ws/...-tutorial.html

و ما توفيقى الا بالله

و لا حول و لا قوة الا بالله
اللهم صبرك و نصرك


السلام عليكم ورحمه الله ..


أخى مشتاق الله...

شكرااا لك على ردك السريع ..

أخى الكريم انا ولله الحمد تعاملت كثيراااا مع شاشات ال 7 سيجمينت .. وااستطيع التحكم بها جيدااا ...

ولكن واضح أنى لم استطيع طرح السؤال بشكل واضح ..

ما اريدة هو كيف التعامل مع المصفوفه واسناد قيمه لها ومن ثم عرضها على 4 شاشات أو اكثر..

وللتوضيح أكثر .. أنا عندى مصفوفه ..

وعندى أربع شاشات 7سيجمينت ..

ما اريدة هو اسناد رقم مباشر للمصفوفه .. ومن ثم عرض الرقم على الأربع شاشات ...

مثال لو تم اسناد رقم .. واحد للمصفوفه .. سيظهر الرقم واحد على الشاشة الأولى من ناحية اليمين وهى خانة الأحاد .. وباقى الخانات اصفار ..

وايضاااا لو تم اسناد رقم 1111 للمصفوفه سيتم عرض الأرقام على الشاشه ..

..

وشكراااا لك


الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 11-11-2016, 11:24 PM المشاركة 4   
افتراضي


السلام عليكم
بكل بساطة تستخرج القيم الموجودة في المصفوفة كالتالي
مثلا تريد اخراج قيمة الخانة الثالثة من المصفوفة الى البور B ستكتب
كود:
PORTB= arr[2];
وهذا في حالتك سيجعل النتيجة 3 عشري..

وان كنت تسأل عن كيفية اسناد كل المصفوفة للشاشات الأربع ممكن
كود:
porta=1;
PORTB=arr[0];
delay();
PORTA= 2;
portb=arr[1];
delay();
porta=4;
portb=arr[2];
delay();
porta=8;
portb=arr[3];
delay();
مع تكرار هذه الحلقة ستعمل الشاشات بال multiplexage
اعتقد فهمت وظيفة البور A ؟ سيتحكم في الاطراف المشتركة للشاشات الاربع
اجعل التأخير في حدود ميلي ثانية على الأكثر.
هذا طبعا كود سهل يمكنك تقليصه أكثر علما ان استخراج قيمة المصفوفة ممكن ان يتم باسناد متغير يحمل رقم الخانة..
كود:
i=3;
PORTB=arr[i];
(هنا النتيجة 4 )


التعديل الأخير تم بواسطة : ياسين الحانوتي بتاريخ 11-11-2016 الساعة 11:31 PM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )

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


السلام عليكم
بكل بساطة تستخرج القيم الموجودة في المصفوفة كالتالي
مثلا تريد اخراج قيمة الخانة الثالثة من المصفوفة الى البور B ستكتب
كود:
PORTB= arr[2];
وهذا في حالتك سيجعل النتيجة 3 عشري..

وان كنت تسأل عن كيفية اسناد كل المصفوفة للشاشات الأربع ممكن
كود:
porta=1;
PORTB=arr[0];
delay();
PORTA= 2;
portb=arr[1];
delay();
porta=4;
portb=arr[2];
delay();
porta=8;
portb=arr[3];
delay();
مع تكرار هذه الحلقة ستعمل الشاشات بال multiplexage
اعتقد فهمت وظيفة البور A ؟ سيتحكم في الاطراف المشتركة للشاشات الاربع
اجعل التأخير في حدود ميلي ثانية على الأكثر.
هذا طبعا كود سهل يمكنك تقليصه أكثر علما ان استخراج قيمة المصفوفة ممكن ان يتم باسناد متغير يحمل رقم الخانة..
كود:
i=3;
PORTB=arr[i];
(هنا النتيجة 4 )



شكراااا أخى الكريم وجزاك الله خيرااا

من الواضح أننى لا استطيع وضع السؤال بشكل صحيح .. على العموم دة كود كنت كاتبة من فطرة ..

ولكن جزئية المصفوفه لا أفهمها ..

اقتبستها من أحد الأكواد واستخدمتها مع باقى الكود بتاعى ولكن للأسق لا افهم طريقه عمل المصفوفه بهذا الشكل ؟؟

لماذا تم اسناد ارقام مبدأيه للمصفوفه .. أنا اعلم أنها ارقام بالنظام العشرى .. وهى تبدأ من ( 0 ) الى (9 ) ...


لاحظ الكود
كود:
 //  ENG /  ABDALLA HEYGAZY   //
       //   DATA  / 2016 / 3 / 17    //


#define enable_1        portb.f0
#define enable_2        portb.f1
#define enable_3        portb.f2
#define enable_4        portb.f3
#define enable_5        portb.f4
#define enable_6        portb.f5

#define DP              portc.f7
////////////////////////////////
#define enable_1_dir    trise.f0
#define enable_2_dir    trise.f1
#define enable_3_dir    trise.f2
#define enable_4_dir    trise.f3
#define enable_5_dir    trise.f4
#define enable_6_dir    trise.f5

#define DP_dir          trisc.f7
////////////////////////////////
#define seg_data         portc
#define seg_data_dir     trisc
#define seg_data1        portd
#define seg_data_dir1    trisd

#define output          0
#define input           1
#define off             0
#define on              1
///////////////////////////////

////////////////////////////////////////////////////////////////////////////////
char segment[]={63,6,91,79,102,109,125,7,127,111};
char segment1[]={63,6,91,79,102,109,125,7,127,111};

unsigned char ch,x;

unsigned int adc_rd;

unsigned int adc_rd1;

char *text;

long tlong;

long tlong1;




///////////////////
void init(){
INTCON = 0;
ADCON1 = 0x02;

seg_data_dir=enable_1_dir=enable_2_dir=enable_3_dir=DP_dir=enable_4_dir=enable_5_dir=enable_6_dir=output;
seg_data_dir=enable_4_dir=enable_5_dir=enable_6_dir=DP_dir=output;

seg_data=0;
seg_data1=0;
enable_1=1;
enable_2=1;
enable_3=1;
enable_4=1;
enable_5=1;
enable_6=1;
TRISB=output;
TRISD=output;
PORTB=off;
PORTD=off;
TRISE=output;
PORTE=off;
TRISA=3;
PORTE=off;



 }
////////////////////////////////////////////////////////////////////////////////
    void show_adc() {
   adc_rd = ADC_Read(0);
   tlong = (long)adc_rd * 5000;
   tlong = tlong / 1023;
   //***********************//
   

  
  
   adc_rd1 = ADC_Read(1);
   tlong1 = (long)adc_rd1 * 5000;
   tlong1 = tlong1 / 1023;

 }

void show_number() {
////////////////////////////////////////////////////////////////////////////////
enable_1=0;enable_2=1;
enable_3=1;DP=1;
seg_data=seg_data&0x80|segment[tlong/1000];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=0;
enable_3=1;
seg_data=seg_data&0x80|segment[tlong%1000/100];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=1;
enable_3=0;
seg_data=seg_data&0x80|segment[tlong%1000%100/10];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=1;
enable_3=1;
seg_data=seg_data&0x80|segment[tlong%1000%100%10];
delay_ms(1);





seg_data=0;


}


 void show_number2() {
////////////////////////////////////////////////////////////////////////////////
enable_4=0;enable_5=1;
enable_6=1;DP=0;
seg_data1=seg_data1&0x80|segment1[tlong1/1000];
delay_ms(1);
seg_data1=0;
////////////////////////////////////////////////////////////////////////////////
enable_4=1;enable_5=0;
enable_6=1;
seg_data1=seg_data1&0x80|segment1[tlong1%1000/100];
delay_ms(1);
seg_data1=0;
////////////////////////////////////////////////////////////////////////////////
enable_4=1;enable_5=1;
enable_6=0;
seg_data1=seg_data1&0x80|segment1[tlong1%1000%100/10];
delay_ms(1);
seg_data1=0;
////////////////////////////////////////////////////////////////////////////////
enable_4=1;enable_5=1;
enable_6=1;
seg_data1=seg_data1&0x80|segment1[tlong1%1000%100%10];
delay_ms(1);
seg_data1=0;
}


  void InitTimer0(){
  OPTION_REG         = 0x88;
  TMR0                 = 56;
  INTCON         = 0xA0;
}


      void Interrupt(){
     if (TMR0IF_bit){
     TMR0IF_bit         = 0;
     TMR0                 = 56;
    //Enter your code here


  }
}




      void main(){
        init();
     InitTimer0();

     loop4:
     while (1)
    {
     show_adc();
     show_number();
     show_number2();
     if(  tlong>=1500  ) {  porta.f3=1;  porte.f2=0;  porte.f1=0;  goto loop  }
     show_adc();
     show_number();
     show_number2();
     }


     loop:
     while (1)
   {
   if( tlong>1700   ) { porte.f2=1;  porta.f3=0;  goto loop1 }
    if(  tlong<1500  ) {  porta.f3=1;  porte.f2=0; goto loop4  }
   show_adc();
   show_number();
  show_number2();
  }


    loop1:
    while (1)
   {

   if( tlong>1800   ) { porte.f1=1;  porte.f0=0; porte.f2=0;goto loop2 }
   if( tlong<1700   ) { porte.f2=1; porte.f1=0; porte.f0=0; porta.f3=0;  goto loop }
   show_adc();
   show_number();
   show_number2();
   }


    loop2:
    while (1)
    {
   if( tlong>1900    ) {  porte.f0=1;  porte.f1=0;  porte.f2=0;  goto loop3 }
    if( tlong<1800   ) {  porte.f1=1;  porte.f0=0;   porte.f2=0;  goto loop1 }
   show_adc();
   show_number();
   show_number2();
 }

    loop3:
    while (1)
    {
   if( tlong>=2010   ) { porta.f5=1;   porte.f0=0;  porte.f1=0;  porte.f2=0; }
   if( tlong<=1900   ) { porte.f0=1;   porte.f1=0;  porta.f5=0;  porte.f2=0; goto loop2 }

   if( tlong>=2450   ) { porta.f2=1;goto loop5 }
   show_adc();
   show_number();
   show_number2();
 }



    loop5:
    while (1)

   {
   if( tlong<2350   ) { porta.f5=1; porta.f2=0;  porte.f0=0;  porte.f1=0;  porte.f2=0; porta.f3=0;goto loop3 }
   show_adc();
   show_number();
   show_number2();

   }


}

الحمد لله كل سطور الكود انا اللى كاتبها وأفهمها جيداااا .. ولكن لا استطيع فهم جزئيه .. أسناد قيم مبدأيه للمصفوفه .. وهى قيم بنظام العشرى وهو "نظام الديسمال "

لاحظ الكود
كود:
 char segment[]={63,6,91,79,102,109,125,7,127,111};
تم اسناد أرقام للمصفوفه ك قيم مبدأية .. وهى تبدأ من ( 0 ) الى ( 9 ) بالنظام العشرى " ديسمال .. بمعنى رقم ( صفر ) بالنظام العشرى = 63

السؤال هنا ما فائدة أن نعطى المصفوفه أرقام تبدأ من ( 0 ) الى ( 9 ) ؟

وأيضااا تلاحظ فى الكود أن بيتم تحويل القرأة القادمه من محول الإشارة ( ADC ) وأسنادها لمتغير أسمة
كود:
adc_rd
وبعدها نجرى عمليه ضرب وقسمة على القيمه المقروأة من محول الإشارة ( ADC ) وبعدها يتم اسناد الناتج الى المصفوفه .. وتعرض النتيجه بكل دقه على أربع شاشات 7سيجمينت ..

السؤال ؟
كيف تتم مجرى الأمور لأن الاحظ أن الشاشات تعرض الأرقام من بداية خانة الأحاد الى خانة اللألاف .. تصاعدى أو تنازلى .. حسب قيمة قرأة محول الإشارة ( ADC )

لاحظ الجزء من الكود وهو الخاص بالقرأة من محول الإشارة ( ADC ) وأجراء بعض الحسابات على القيمه وأسنادها للمصفوفة .. وعرضها على الأربع شاشات 7سيجمينت ..

كود:
 void show_adc() {
   adc_rd = ADC_Read(0);
   tlong = (long)adc_rd * 5000;
   tlong = tlong / 1023;

المهم لدى والخلاصه من الموضوع ...

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


وهنا كود يخأذ باقى القسمه ويضعها فى الخانة التاليه للمصفوفه ..

كود:
 void show_number() {
////////////////////////////////////////////////////////////////////////////////
enable_1=0;enable_2=1;
enable_3=1;DP=1;
seg_data=seg_data&0x80|segment[tlong/1000];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=0;
enable_3=1;
seg_data=seg_data&0x80|segment[tlong%1000/100];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=1;
enable_3=0;
seg_data=seg_data&0x80|segment[tlong%1000%100/10];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=1;
enable_3=1;
seg_data=seg_data&0x80|segment[tlong%1000%100%10];
delay_ms(1);

seg_data=0;

}
وهو ايضاا يعمل بنظام multiplexage لعرض جميع قيم المصفوفه على الأربع شاشات ..

أسف على الإطالة ويارب أكون قدرت أوصل سؤالى بشكل واضح .. وأسف على الإزعاج

شكرااا للجميع ..


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 12-11-2016 الساعة 01:31 AM

batma97
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2012
المشاركات: 60
نشاط [ batma97 ]
قوة السمعة:0
قديم 12-11-2016, 02:23 AM المشاركة 6   
افتراضي


السلام عليكم ان شاء الله تجد ضالتك هنا
https://www.youtube.com/watch?v=Hxg3twEmz_E

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 12-11-2016, 02:37 AM المشاركة 7   
افتراضي


العفو أخي..
لماذا تم اسناد ارقام مبدأيه للمصفوفه .. أنا اعلم أنها ارقام بالنظام العشرى .. وهى تبدأ من ( 0 ) الى (9 ) ...
ما فائدة اعطاء تلك المصفوفة اقام من (0) الى (9) ؟
اعتقد تسأل عن وظيفة هذه المصفوفة اصلا
لأنها تفيدنا عند العرض:
فكرة جميلة ..المصفوفة في هذه الحالة تعمل مثل 'دالة' ان فهمت قصدي
فكرة المصفوفة هنا كل ما تقوم به هو تحويل رقم (من 0 الى 9) الى 8 بتات تناسب البور والشاشة ليتم عرض ذلك الرقم
مثلا في لحظة ما تريد اظهار الرقم 8 في الشاشة:
كود:
portb=segment[8];
لاحظ ان المصفوفة تقوم فقط بالترجمة ان صح التعبير..
-----------
لاحظ كيف يم استخلاص قيم وحدات ومئات والاف العدد tlong عن طريق حساب القسمة والباقي ..
ليكن tlong = 2498
يتم تعيين رقم المئات .. هكذا
كود:
tlong%1000/100
والنتيجة تساوي 4 في حالتنا
هل سنرسل مباشرة القيمة 4 الى البور؟
طبعا لا .. هنا نذخل المصفوفة تتصرف كدالة ، تعود لنا بالقيمة اللازم ارسالها في البور لاظهار (4) في الشاشة
ولاحظت قبل ذلك اجراء عملية and مع القيمة 0x08 لا ادري لماذا ربما لتجنب ثغرة ما ,, المهم اعتبر الكود كما يلي
كود:
seg_data=segment[tlong%1000/100];
اتمنى ان اكون قد اجبتك ,,
واي استفسار لا تتردد ..


التعديل الأخير تم بواسطة : ياسين الحانوتي بتاريخ 12-11-2016 الساعة 02:40 AM
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )
اعجاب عبدالله حجازى ( أعجبته المشاركة )

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 13-11-2016, 10:54 PM المشاركة 8   
افتراضي


جزاك الله خيراا أخى سستم مشاهدة الفيديو ..

بارك الله فيك
تحياتى لك

إضافة رد

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

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

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


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

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