منتديات الالكترونيات العصرية  
yoursite.com page title .

استرجاع كلمة المرور طلب كود تفعيل العضوية تفعيل العضوية
العودة   منتديات الالكترونيات العصرية > منتدى الحاكمات الدقيقة Microcontroller > منتدى المتحكمات ميكرو بلغة السي MikroC

  #1  
قديم 08-08-2012, 02:24 AM
funky112233 funky112233 غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Sep 2009
المشاركات: 116
معدل تقييم المستوى: 10
funky112233 has a spectacular aura aboutfunky112233 has a spectacular aura about
افتراضي تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))


بسم الله الرحمن الرحيم

فى هذا الجزء ان شاء الله هنبدء مع اول نوع وهو Character LCD
وازاى نتحكم فية من خلال الميكروسى

وللاطلاع على اول جزء اتفضل ادخل على الرابط التالى
http://www.dbaasco.com/vb/showthread.php?t=7601

_____________________________________________________________

اولا
مما يتكون هذا النوع وكيف يعمل ؟؟

هذا النوع عبارة عن مربعات موضوعه على شكل اعمدة وصفوف
وكل مربع مكون من عدد من البكسل
فية 7*5 وفى 5*10 دة عدد البكسل لمربع واحد بس

والصورة دى تبين الكلام




زى مانت شايف كدة البكسل عبارة عن نقطة وبيتم التحكم فى نقطة نقطة
لاظهار كل شىء على الشاشة

((من المعروف ان مخ الانسان له القدرة
على تجميع الكثير من النقط فى صورة واحدة )) سبحان الله الخالق العظيم

وهذه صورة اخرى تبين المربعات وازاى بتتشكل عليها الحروف والكلمات



وتقاس بعدد هذه المربعات
وهذا ما يقال علية ان الشاشة مثلا 2*16 هذا يعنى ان هناك صفان
فى كل صف 16 مربع
اى الشاشة كاملة تحتوى على 32 مربع
اى 32 حرف او رمز او رقم يمكن عرضهم مرة واحدة


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

احب اقلك ان الشركات المصنعه مش نايمة على ودنها
هههههههههههههه

الشركات المصنعة قامت بكل هذا بالنيابة عنك
وقامت بوضع ICs خاصة للتعامل مع الشاشة والتحكم فيها

فقط كل ما عليك انك هتتخاطب مع الشاشة ببروتوكول محدد
ومن خلال البروتوكول دة ((وهو ما يحدد الكتابة بما يسمى الاسكى كود))
ال IC الى فى الشاشة هيعرف انت بعت انهى حرف ولا انهى رمز ولا انهى رقم
وهيكتبهولك على الشاشة وكل دة مخزن على الذاكرة بتاعته الداخلية

مثلا لو الحرف" A "
هو عارف هيشغل انهى بكسل وهيطفى انهى بكسل فى المربع
الى انت اخترتة علشان يظهرلك الى انت بعتة
وطبعا الطريقة دى بتسهل علينا شغل كتيرررر اوى

ودة شكل الشاشة وشكل ال IC الى بيقوم بالوظيفة دى



النقطة السوداء الى على ظهر الشاشة هو دة ال IC

تمام نفهم من كدة ان الكتابة على الشاشة دى محدودة نوعا ما
لاننا لو كتبنا اى حاجة غير المتسجل على ذاكرة ال IC
مش هيظهر حاجة لان الشاشة متعرفتش علية

وفعلا دة صحيح لو جبت شاشة من دول وكتبت عليها حرف عربى مش هيتعرض والشاشة هتخرف
لية لان الشاشة متعرفش الشكل دة
ودلوقتى بدئوا ينتجوا شاشات تقرا الحروف العربى وتظهرها

ولكن الشركات قامت بشىء جميل جدا
وهو انك تقدر تامر ال IC دة يكتب الى انت بتدهولة بالزبط
يعنى انت نفسك تقدر تكتب وتشغل البكسلات بكسل بكسل
وتتحكم فيها

علشان تقدر تعمل الشكل او الرمز الى انت عايزة
وهذا شىء رائع
اى ليس شرطا قطعيا ان يكون ال IC يعرف نفس الشكل الذى ترسلة له
______________________________________________________________

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

قبل البدء احب ااقولكم ان الامر فى غاية السهولة والبساطة ان شاء الله
......................................................................................................

اوامر الكتابة على هذا النوع من الشاشات
عبارة عن 6 دوال فقط اى 6 اوامر

وهم

كود:
Lcd_Init 
Lcd_Out 
Lcd_Out_Cp 
Lcd_Chr 
Lcd_Chr_Cp 
Lcd_Cmd
اول امر هو
كود:
Lcd_Init();
هذا الامر عبارة عن داله التعريف
اى الامر الذى يخبر البك بان هناك شاشة سوف تركب علية
وان هناك بروتوكول يجب اتباعه مع هذه الشاشة فى العمل

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

ثانى امر هو
كود:
Lcd_Out
هذا الامر يخرج البيانات على الشاشة بمكان انت تحددة
يعنى لو عايز تخرج كلمة او عدد فى مكان محدد مثلا الصف الثانى
وبداية اظهار هذه الكلمة تكون فى المربع الخامس
هذا الامر هو ما يفعل ذلك لك

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

مثلا اذا اردنا اظهار كلمة Hello فى الصف الاول العمود السابع
تكون هكذا
كود:
Lcd_Out(1, 7, "Hello");
هنا الرقم الاول هو رقم الصف وهنا هو 1 والرقم الثانى هو رقم المربع وهو هنا 7
ثم الكلمة بين هذا الرمز ""
وهنا حرف ال H سيكون فى المربع السابع اى بداية الكلمة
اما الحرف e فسيكون فى المربع الثامن وهكذا بالتتابع
_______________________________________________________________

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

اى انه مثل الامر السابق بالزبط
اذا ما الفرق بينهم

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

اى اذا كنت كتبت كلمة Go على المربع الاول فى الصف الثانى
هذا يعنى ان المربع الاول تم كتابة حرف G علية ثم المربع الثانى تم كتابة الحرف O علية
اذن المؤشر يقف على المربع الثانى وهو اخر ما تم الكتابة علية

اذن قم بكتابة الكلمة Mohamed على الشاشة من خلال هذا الامر الان
اى هكذا
كود:
Lcd_Out_Cp("Mohamed");
كما ترى بدون تحديد لماكن الصف او المربع
اين سوف يبدء اى اين سوف يكون حرف ال M وهو الحرف الاول من الكلمة
يكون بعد اخر مربع تم الكتابة علية
او بعد المربع الذى يوجد علية المؤشر
وهنا هو المربع الثالث
اى الشاشة سوف تظهر الكلمات كلها هكذا
GoMohamed

اظن هذا مفهوم
ويمكنك وضح فاصل بالمسطرة بتاعت الكيبورد قبل كلمة Mohamed
داخل الرموز "Mohamed " لتظهر فاضل بين الكلمتين
كما ترى الفراغ الصغير بجانب الكلمة
_______________________________________________________________

الامر الرابع هو
كود:
Lcd_Chr
هذا الامر يقوم باظهار حرف واحد فقط او رقم واحد فقط فى مكان تحددة انت
واذا كتبت علية اكثر من ذلك فى المرة الواحدة فلن يظهر شى
ويجب وضع الحرف او الرقم داخل هذا الرمز ' هنا تضع الحرف او الرقم '

وهو الافضل فى اظهار رقم او حرف واحد فى المرة الواحدة

واذا اردنا اظهار الحرف R فى الصف الاول المربع الخامس
يكون هكذا
كود:
Lcd_Chr(1, 5, 'R');
فالصف هو الرقم الاول وهو 1 اما المربع فالرقم الثانى وهو 5
ثم الحرف بين هذا الرمز ' '
_______________________________________________________________

الامر الخامس هو
كود:
Lcd_Chr_Cp
وهو لاظهار رقم او حرف واحد فقط فى كل مرة
واذا كتبت علية اكثر من ذلك فى المرة الواحدة فلن يظهر شى
ويجب وضع الحرف او الرقم داخل هذا الرمز ' هنا تضع الحرف او الرقم '

وهو الادق لاظهار حرف او رقم فى المرة الواحدة
ولكن انت لا تحدد مكان العرض
بل بمكان المؤشر او اخر مربع تم الكتابه علية
واظن الحتة دى فهمناها
واذا اردت كتابة الحرف W على اخر مكان للمؤشر
يكون هكذا
كود:
Lcd_Chr_Cp('W');
..............................................................................................................

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

اما رابع وخامس امر
فيظهر حرف حرف او رقم رقم
الامر الرابع يظهر الحرف او الرقم فى مكان تحددة انت
اما الخامس فيظهرة على حسب مكان المؤشر
..............................................................................................................
الامر السادس هو
كود:
Lcd_Cmd
هذا الامر رائع وجميل
وانا مغرم بة هههههههههههههههه

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

وهذه الصورة بها الاوامر التى تستخدم للشاشة



وكل امر بجانبة شرحة
واذا لم يعرف احد ما يفعلة الامر يمكنك كتابتة فى مشاركة
وان شاء الله هرد عليك

ولكتابة امر مسح الشاشة مثلا
يكتب هكذا

كود:
Lcd_Cmd(_LCD_CLEAR);
ولكتابة امر قفل المؤشر وعدم اظهارة
يكتب هكذا

كود:
Lcd_Cmd(_LCD_CURSOR_OFF);
اما الاستخدام الاخر لهذا الامر فا فيما بعد ان شاء الله
بعد فهم هذا الجزء اولا

الى هنا انتهى شرح الاوامر وكيفية الكتابة على شاشة LCD من النوع Character
........................................................................................................
يوجد امر اخير وهو التابع للامر الاول
وهو تعرف الارجل التى سوف يربط عليها ال LCD Character
مع البك

وهذه الاوامر ثابتة وما يتغير فيها هو الارجل التى سوف تربط بها البك بالشاشة
وهى

كود:
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
هنا ستجد ان كل طرف من الشاشة مكتوب بجوارة اسم الرجل التى سوف يربط معها من الميكرو
مثلا
كود:
LCD_RS at RB4_bit
هنا طرف الشاشة وهو
LCD_RS
سوف يربط مع الطرف
RB4
اى الطرف رقم 4 فى البورت B فى الميكرو
وهكذا
واذا اردت مثلا تغير مكان تركيب الاطراف فغير فى الجزء الخاص بالبورت
مثلا مكان RB4
يكون RA4
وهكذا

وهذه الاوامر يجب كتابتها فى بداية الكود
اى قبل ال
كود:
void main()
وداخل ال
كود:
void main()
نكتب الامر الاول
............................................انتهى.........................................................

هذا رابط كود للكتابة واظهار كلمات على شاشة من نفس النوع 16*2
مع المحاكاة وكل شىء
وهو فقط مجرد مثال
وكل امر سوف تجد بجانبة رقم وهو للدالاله على ترتيبة فى الشرح

http://www.4shared.com/rar/hi1rSnBc/LCD_Character.html

وان شاء الله هيكون فى اكواد تانية توضح اكثر واكثر
ولكن نفهم الاساس الاول _
______________________________________________________________

اما عن التوصيل فى الحقيقة فهو كما فى المحاكاة

وايضا هذه صورة من الداتا شيت لاحدى الشاشات
تبين كل رجل وما فائدتها




الرجل رقم 1 فهى للارضى
الرجل رقم 2 فهى للموجب
الرجل رقم 3 فهى لتحديد مستوى التباين للشاشة وصلة لل موجب على طول
الرجل رقم 4 فهى لتحديد سجلات داخل الشاشة
الرجل رقم 5 فهى لاختيار هل تسكتب على الشاشة ام ستقراء منها
الرجل رقم 6 فهى طرف تفعيل البيانات
الرجل رقم 7 الى الرجل رقم 14 فهم اطراف الداتا التى سوف تتناقل بين البك والشاشة
الرجل رقم 15 فهى طرف تشغيل الاضاءة الخلفية الطرف الموجب
الرجل رقم 16 فهى طرف تشغيل الاضاءة الخلفية الطرف السالب
_______________________________________________________________

ومن فهم هذا الشرح وينظر بعد ذلك الى اى كود LCD Character
سوف يفهم جيدا ان شاء الله ويعلم كل امر لماذا وضع
وهذا الشرح من اجتهادى الخاص اذا كان هناك خطا ارجوا توضيحة

واذا احتاج احد لشىء انا تحت امرة ان شاء الله

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

رد مع اقتباس
  #2  
قديم 08-09-2012, 12:49 AM
alolo alolo غير متواجد حالياً
عضو نشيط
 
تاريخ التسجيل: Mar 2011
المشاركات: 50
معدل تقييم المستوى: 7
alolo is on a distinguished road
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

ماشاء الله شرح مميز وجميل جدا
بارك الله فيك
بالنسبة أستاد Funky
للشاشات الأخرى مثل بعض شاشات النوكيا الموجودة في مكتبة البروتيس
شاشات Color LCD
كيف يكون التعامل معها من جهة العرض والكتابة عليها
بمعنى
ماهي الاكواد التي يمكننا أستخدامها في تعريفها للبرمجة بالميكروسي
رد مع اقتباس
  #3  
قديم 08-09-2012, 02:55 AM
funky112233 funky112233 غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Sep 2009
المشاركات: 116
معدل تقييم المستوى: 10
funky112233 has a spectacular aura aboutfunky112233 has a spectacular aura about
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

بسم الله الرحمن الرحيم

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

تقبل الله صيامك وقيامك
رد مع اقتباس
  #4  
قديم 08-09-2012, 03:04 AM
alolo alolo غير متواجد حالياً
عضو نشيط
 
تاريخ التسجيل: Mar 2011
المشاركات: 50
معدل تقييم المستوى: 7
alolo is on a distinguished road
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

تمام أخي شكرا جزيلا لك
وفي أنتظار دروسك القادمة أن شاء الله
على أحر من الجمر
أعانك الله أستاد Funky

رد مع اقتباس
  #5  
قديم 08-09-2012, 04:36 AM
الصورة الرمزية عمرو عبد الرحمن
عمرو عبد الرحمن عمرو عبد الرحمن غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Jul 2011
الدولة: مصر - المنوفية
المشاركات: 354
معدل تقييم المستوى: 13
عمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to allعمرو عبد الرحمن is a name known to all
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

راااااااااااااااائع يا باشمهندس
وفى انتظار دروسك الجديدة
رد مع اقتباس
  #6  
قديم 08-09-2012, 08:24 AM
funky112233 funky112233 غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Sep 2009
المشاركات: 116
معدل تقييم المستوى: 10
funky112233 has a spectacular aura aboutfunky112233 has a spectacular aura about
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

بسم الله الرحمن الرحيم

شكرا جزيلا لك يا بشمهندس عمرو ان شاء الله قريبا

تقبل الله صيامك وقيامك
رد مع اقتباس
  #7  
قديم 08-09-2012, 09:57 AM
funky112233 funky112233 غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Sep 2009
المشاركات: 116
معدل تقييم المستوى: 10
funky112233 has a spectacular aura aboutfunky112233 has a spectacular aura about
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))


بسم الله الرحمن الرحيم

هنبدء النهاردة ان شاء الله مع الكود رقم 2
وان شاء الله هنوضح فية ازاى نستخدم الاوامر الى شرحتها فى بداية الموضوع
ونظهر الى احنا عايزينة على الشاشة من خلال ال 6 اوامر دول ان شاء الله

___________________________________________________________
اولا
فديو بسيط لتوضيح عمل الكود رقم 2

LCD Character 2 - YouTube



وبعد ما اتفرجنا على الفديو

نشرح اية الى تم عرضة على الفديو وهو كالاتى

1 - اظهار كلمة (Besm Allah Elrhman Elrahem)
ولكن تم اظهارها حرف حرف ورا بعض .

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


2 - مسح الشاشة ثم اظهار كلمة ( AllaH Akbar ) فى الصف الاول ثم انتظار ثم
اظهار كلمة ( AllaH A3zam ) ثم انتظار ثم مسح الشاشة وتكرار نفس الخطوة .

فائدة هذه الخطوة هى اظهار امكانية عمل حركات مختلفة فى اظهار الكلمات على الشاشة من خلال استخدام الاوامر
وايضا امكانية عمل ذلك من خلال اظهار كلمات كاملة مرة واحدة ..


3 - مسح الشاشة ثم اظهار قيمة متغير كل مرة يزيد بمقدار 1 ويتم جمعه مع متغير اخر .

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


دة رابط الكود رقم 2 والمحاكاة وكل شىء


http://www.4shared.com/rar/lvKBC0zU/...aracter_2.html

وفى ارقام بجانب كل امر من اوامر الشاشة يدل على ترتيبة فى الشرح
علشان لو مش فاهمينة نقدر نرجع للشرح الاساسى ونشوف فائدتة اية ##
___________________________________________________________

نيجى بقى لشرح الكود وازاى عرضت الكلمات بالشكل دة
.............................

اولا دة الكود

كود:
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;


///////////////////////////////////////////////////////////////////
char text1[] ="( Besm AllaH El Rhman Elrahem )";
char text2[] ="( AllaH Akbar )";
char text3[] ="( AllaH A3zam )";
char text4;

char y,x,d=0,e=0;
char txt[4];

void main() {
Lcd_Init(); // 1
Lcd_Cmd(_LCD_CLEAR); // 6
Lcd_Cmd(_LCD_CURSOR_OFF); // 6

while(1){

x=1;
for(y=0;y<15;y++){
Lcd_Chr(1,x,text1[y]);    // 4
delay_ms(200); x++;
                      }
x=1;
for(y=16;y<32;y++){
Lcd_Chr(2,x,text1[y]);    // 4
delay_ms(200); x++;
                      }
                      
delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);   //6
delay_ms(500);

for(y=0;y<5;y++){
Lcd_Out(1,1,text2);   //2
delay_ms(1000);
Lcd_Out(2,1,text3);  //2
delay_ms(500);
Lcd_Cmd(_LCD_CLEAR);   //6
delay_ms(500);
                    }
delay_ms(250);
d++;
text4=d+e;
ByteToStr(text4, txt);
Lcd_Out_Cp(txt);
delay_ms(3000);
Lcd_Cmd(_LCD_CLEAR);


         }
}

اولا
قمت بتعريف الشاشة وتعريف الاطراف واين سوف تربط
.....................................................................................................
ثم
قمت بتعريف مصفوفات بداخل كل مصفوفة كلمات واسميت المصفوفات باسم text1,2,3 ..

كود:
char text1[] ="( Besm AllaH El Rhman Elrahem )";
char text2[] ="( AllaH Akbar )";
char text3[] ="( AllaH A3zam )";
......................................................................................................
ثم متغير باسم text4 لحفظ ناتج الجمع علية ..

ثم متغيرات اخرى تستخدم داخل الكود ..
......................................................................................................

ثم قمت بامر التعريفات ثم امر مسح الشاشة وامر وقف المؤشر عن العمل

كود:
Lcd_Init(); // 1
Lcd_Cmd(_LCD_CLEAR); // 6
Lcd_Cmd(_LCD_CURSOR_OFF); // 6
ثم عمل حلقة تكرارية الى الابد
كود:
while(1){
........................................................................................................

ثم قمت بعمل الكود الخاص باظهار اول جزء من كلمة ( Besm AllaH El Rhman Elrahem )

وهو كالاتى

كود:
x=1;
for(y=0;y<15;y++){
Lcd_Chr(1,x,text1[y]);    // 4
delay_ms(200); x++;
                      }
اولا جعلت قيمة المتغير x=1 وسنعلم لماذا فيما بعد
ثم جملة تكرارية بقيمة 15 مرة ((اى ان تكرار الاوامر بداخل الجملة سيتم 15 مرة))
ثم قمت بكتابة الامر Lcd_Chr
وكما نعلم من الشرح ان فائدتة اظهار الحروف حرف حرف او العدد رقم رقم
وهذا ما تم فعلا فى بداية التجربة

وكما نعلم ايضا ان اول رقم داخل هذا الامر يدل على رقم الصف وهو هنا الصف الاول 1
ثم ثانى رقم هو رقم المربع وهنا هو يساوى قيمة المتغير x ولهذا جعلته يساوى 1
فى بداية البرنامج حتى يعرض على اول مربع فى الصف

((يمكن جعل القيم المعبرة عن الصفوف والمربعات فى الاوامر تساوى متغيرات))

ونعلم ان ثالث شى فى الامر هو ما يراد اظهارة وهنا سوف يتم العرض من خلال المصفوفة text1

وكما نعلم ان هذا الامر يظهر حرف حرف
اذن يجب جلب حرف حرف من هذه المصفوفة
وهذا دور هذا الامر
كود:
text1[y]
كما نرى فى بداية الجملة التكرارية ان قيمة y تساوى 0
واذا وضعنا y داخل مربعات المصفوفة كما نرى
هذا يعنى ان قيمة text1 الان هى نفس قيمة الخانة التى تساوى ترتيب y
بمعنى

فى البداية قيمة y تساوى 0 كما نعلم
اذا ما هو الحرف الموجود فى هذه الخانة من المصفوفة text1
هنا هو )

اذا هذا ما سوف يتم اظهارة

ثم ينتظر البك 250 مللى ثانية ((هذا الانتظار يمكنك تقليلة او زيادتة للتحكم فى سرعه اظهار الاحرف))
ثم زيادة قيمة المتغير x بقيمة 1 وهذا للكتابة على المربع الذى يلى المربع الاول وهكذاااااا
وهنا اصبحت قيمة x تساوى 2 اى المربع الثانى

ثم يعود مرة اخرى للتكرار اذن سوف تصبح قيمة y تساوى 1
وهذا يعنى ان الحرف الذى سوف يعرض هو الحرف الذى ترتيبة فى المصفوفة text1
2 اى الفراغ ويتم تكرار ذلك 15 مرة

وكل هذا فى الصف الاول وبما ان التكرار سوف يبدء العد من 0 الى 15 اذن تم التكرار 16 مرة
وهذا هو عدد مربعات الصف الواحد فى هذه الشاشة
ولذلك سوف يخرج البك من هذه الجملة وينتقل الى الجملة الاخرى

وهى

كود:
x=1;
for(y=16;y<32;y++){
Lcd_Chr(2,x,text1[y]);    // 4
delay_ms(200); x++;
                      }
وهى هى نفس الجملة ولكن الاختلاف فى حجتين
الاول هو ارقام التكرار اتغيرت
وان العرض هيتم على الصف الثانى

وللعلم قيمة التكرار هو هو 16 مرة ولكن تقدمت فى الارقام
لاننا نعلم ان قيمة y هى ترتيب الاحرف فى المصفوفة text1

وكان اخر ترتيب هو 14 اذان نحن نحتاج الى البدء فى الصف الثانى من الخانة 15
ولكنى كتبتها 16 لان الخانة 15 هى فاصل وانا لم ارد اظهارة وهكذا تكتمل الكلمة على السطر الثانى حتى تنتهى الكلمة

ثم قمت بالانتظار لمدة ثانيتان وبعد ذلك مسحت الشاشة لكتبة كلمات اخرى ..
كود:
delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);   //6
delay_ms(500);
................................................انتهى الجزء الاول من الكود............................................

ثم الجزء الثانى من الكود وهو

كود:
for(y=0;y<5;y++){
Lcd_Out(1,1,text2);   //2
delay_ms(1000);
Lcd_Out(2,1,text3);  //2
delay_ms(500);
Lcd_Cmd(_LCD_CLEAR);   //6
delay_ms(500);
                    }
اولا قمت بعمل جملة تكرارية بقيمة 5 مرات
واول امر هو

كود:
Lcd_Out(1,1,text2);   //2
اظهار الكلمة المكتوبة داخل المصفوفة text2 فى الصف الاول وبداية من المربع الاول لة مرة واحدة اى ليس حرف حرف او رقم رقم ((اذا كنت لا تعرف هذا الامر فارجع للشرح الاساسى))
ثم انتظار لمدة ثانية

ثم
كود:
Lcd_Out(2,1,text3);  //2
اظهار الكلمة المكتوبة داخل المصفوفة text3 فى الصف الثانى وبداية من المربع الاول لة مرة واحدة ايضا

ثم انتظار لمدة 500 مللى ثانية
ثم
امر مسح الشاشة
كود:
Lcd_Cmd(_LCD_CLEAR);   //6
ثم انتظار 500 مللى ثانية
ثم العودة وتكرار الاوامر 5 مرات ..
............................انتهى الجزء الثانى من الكود ............................................................

ثم الجزء الثالث من الكود
((هذا الجزء هاااام جدا ارجوا التركيز فية))

وهو جزء اظهار ناتج حسابى ويمكن اظهار اى ناتج لقراءة حساس او اى شىء اخر بنفس الطريقة

وهو

كود:
d++;
text4=d+e;
ByteToStr(text4, txt);
Lcd_Out_Cp(txt);
delay_ms(3000);
Lcd_Cmd(_LCD_CLEAR);
فى البداية
كود:
d++
وهذا يزيد من قيمة المتغير d كل مرة بمقدار 1

وهذا الامر هنا يعبر عن التغيرات الحسابية
اى يمكن ان يكون مكانة قراءة لحساس او ما شابة من العمليات

ثم
اجراء عملية الحساب
كود:
text4=d+e;
وجعل قيمة المتغير text4 تساوى الناتج

ثم ((وهذا هو الامر الجديد (هاااااام) ))

كود:
ByteToStr(text4, txt);
هذا الامر يقوم بتحويل قيم الاعداد العادية الى اسكى كود
حتى يتوافق مع بروتوكول الشاشة ويتم عرض الارقام او الاحرف

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

هناك اكثر من طريقة
ولكن اسهلها هو ما قدمته الميكروسى نفسها
وهو هذا الامر
كود:
ByteToStr
وهو يقوم بالتحويل من ارقام عادية الى اسكى كود
ولكن فى حدود خانتين فقط اى لا يزيد الرقم عن 99

ولتحويل رقم اكبر هناك اوامر اخرى مشابه
مثل
كود:
IntToStr
وهذا الامر يقوم بتحويل الارقام حتى 6 خانات من الارقام
وهناك اوامر بقدارات اعلى

((يمكنك الحصول على هذه الاوامر من خلال المساعدات فى الميكروسى قم بالاطلاع على هذا الرابط))
http://www.dbaasco.com/vb/showthread.php?t=7605

والتحويل يكون كالاتى
اولا كتابة المتغير الذى تريد تحويلة
ثم المصفوفة التى سوف تكون كل خانة فيها تساوى عدد فى المتغير الذى تريد تحويلة

وهذا كلة تعطيك الميكروسى مثال علية

وهذه الصورة توضح ذلك
انظر



كما ترى داخل المربع الاصفر
يتجد انه فى البداية قال لك انة يجب تعرف متغير ويكون مساوى لقيمة
وهنا هو t
وبعد ذلك تقوم بتعريف مصفوفة مكونة من 4 خانات
وهنا هى تسمى txt

وبعد ذلك ...... وهى تعنى انك يجب ان تعرف هذه المتغيرات فى بداية الكود قبل
الداله الرئيسية
كود:
void main()
ثم يقول لك كيف يكون شكل الامر
ثم تعليق // ويقول لك ان قيمة txt اصبحت تساوى قيمة المتغير وهى هنا 24 ولكن بالاسكى كود " 24"
وبعد التحويل
لا يتبقى الا العرض على الشاشة

كود:
Lcd_Out_Cp(txt);
والذى يعرض طبعا هو المصفوفة التى تم التحويل اليها

ثم انتظار 3 ثوانى ثم مسح الشاشة
ثم العودة لتكرار البرنامج من البداية ..
..................................انتهى الكود بحمد الله ..................................................................
_______________________________________________________________

اذا احتاج احد الى توضيح شىء اخر انا تحت امرة ان شاء الله

ياريت لو حد جرب الكود او فهم الشرح كويس
يعرفنى علشان ننتقل للمرحلة الاخيرة ان شاء الله
وهى التعامل مع الشاشة من خلال الاوامر المباشرة
Lcd_Cmd

والسلام عليكم ورحمه الله وبركاته
رد مع اقتباس
  #8  
قديم 08-11-2012, 09:47 AM
funky112233 funky112233 غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Sep 2009
المشاركات: 116
معدل تقييم المستوى: 10
funky112233 has a spectacular aura aboutfunky112233 has a spectacular aura about
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))


بسم الله الرحمن الرحيم

الكود الثالث والاخير
وهو عن استخدام امر Lcd_Cmd
وصنع اشكال كما نريد وطباعتها على الشاشة
وايضا تحريك الكلام على الشاشة كما نريد ان شاء الله

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

Custom character (( LCD Character 3 )) - YouTube


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

وقمت ايضا بتحريك كلمات على الشاشة

..............................................................................................................

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

وهذا ما ستتعرف علية ان شاء الله داخل الكود

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

اولا
الكلام هنا سوف يكون عن الشاشات الغير ملونة

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

وهذه الصور خير من الف كلمة



كما ترى هكذا تكون الصور وهكذا تطبع

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

ننتقل لمرحلة العملية
______________________

فى الشاشات ال LCD Character
يتكون كل مربع من 7*5 بكسل او 10*5 بكسل
وال5 بكسل بيكونوا هما عرض المربع
اما ال 7 او 10 بكسل هما طول المربع ((للعلم مربع هذا مجرد تسمية وليس الشكل الفعلى))

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

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

وهذا البرنامج يسمى
mikroelektronika lcd character Custom generator
وللحصول علية اتبع الخطوات الاتية
Tools >> lcd character Custom

ودى صورتة



الجزء الى متعلم علية بالون الاخضر دة
هو المكان الى بتشكل فية الشكل الى انت عايزة

اما الجزء الى بالون الاحمر فدة الكود الى من خلالة بتعرض الشكل على الشاشة

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

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

وهو يعمل كالاتى
ترسم الشكل الى انت عايزة وبعد كدة تدوس على Generator code
الى موجود تحت

هتلاقية كتبلك كود داله العرض وكتبلك مصفوفة الشكل

وانا قمت باخذ داله العرض كما هى وقمت بتغير بعض التغيرات عليها
والمصفوفة قمت بتغير اسمها حتى يتناسب مع عرض 8 اشكال
وهى من character0 الى character7

ولكن هناك مشكلة مع اظهار الاشكال على الشاشة
وهى
ان ال IC لا يقبل اظهار اكثر من 8 ثمان اشكال فقط
ومن المشاكل الاخرى هى ان الاشكال لها بروتوكول فى كتابتها
اولا
قبل ارسال اى شكل او قيم من مصفوفة الشكل المراد اظهارة
يجب اولا ارسال امر مثل
كود:
Lcd_Cmd(64);
وكما ترى مكتوب بداخلة 64 وكل امر لشكل مختلف يجب كتابة رقم مختلف داخل هذا الامر
وهو يزيد عنة ب 8 ارقام
وهو يبدء من 64 الى 120
فمثلا 64 هذا شكل
واذا اردنا كتابة شكل اخر مختلف عنة نكتب 72 واذا اردنا اخر نكتب 80 وهكذا
حتى نصل الى 120

ونزيد 8 ارقام لان هذا هو عدد البكسلات بالطول

واذا تركنا شكلين مختلفيين بنفس الامر فسوف يظهر شكل واحد فقط منهم

وايضا
يجب كتابة ارقام من 0 الى 7 فى اخر دالة العرض فى هذا الجزء
كود:
Lcd_Chr(pos_row, pos_char, 0 to 7);
وايضا اذا لم تكتبة فسوف يعرض شكل واحد فقط للمكرر

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

ننتقل الى مرحلة الكود
__________________

اولا حمل الكود والمحاكاة وكل شىء من هنا
http://www.4shared.com/rar/ioGStI0l/...aracter_3.html
_________________________________________
ملحوظة
انا عملت الكود بشكل مختصر بعض الشى للتوفير فى المساحة
وبطريقة جميلة وسهلا
ولكن هى احدى الطرق هناك الكثير من الطرق للاختصار
وهذه احداها وابسطها على ما اظن
واذا اراد احد طريقة اخرى للاختصار انا تحت امرة ان شاء الله
_________________________________________

نيجى للشرح

فى البداية تعريفات الشاشة

ثم مصفوفات بداخلها الكلمات التى سوف تعرض

كود:
char text0[] ="(Besm Allah Elrhman Elrahem)";
char text1[] ="(AllaH Akbar AllaH A3zem)";
ثم متغيرات ومصفوفة للاستخدام داخل الكود

كود:
char text2[8];
char y,x,x1;
ثم 8 مصفوفات لل8 اشكال الى عملتهم وكل مصفوفة تعبر عن شكل

كود:
const char character0[] = {1,3,7,31,31,7,3,1};
const char character1[] = {0,0,0,10,0,17,14,0};
const char character2[] = {1,3,5,9,11,27,24,0};
const char character3[] = {0,0,10,0,0,14,17,0};
const char character4[] = {0,0,10,21,17,10,4,0};
const char character5[] = {14,14,4,14,21,4,10,0};
const char character6[] = {14,31,17,17,17,31,31,31};
const char character7[] = {0,0,10,0,31,17,14,0};
ثم
داله العرض التى سوف تقوم بعرض الاشكال على الشاشة

كود:
void CustomChar(char pos_row, char pos_char) {
  char i;
    Lcd_Cmd(x);
    for (i = 0; i<=7; i++) Lcd_Chr_CP(text2[i]);
    Lcd_Cmd(_LCD_RETURN_HOME);
    Lcd_Chr(pos_row, pos_char, x1);
}
زى ما احنا شايفين هنا الامر
كود:
Lcd_Cmd(x);
قمت بكاتبة متغير اسمة x بداخلة
وفى كل مرة اغير فيها الشكل اغير معه قيمة x
وهكذا مع الامر الثانى
كود:
Lcd_Chr(pos_row, pos_char, x1);
اظن الامر اصبح مفهوم الان

وايضا جعلت المصفوفة التى سوف يتم عرضها هى
كود:
text2[]
وعند كتابة الشكل المراد انقل خانات مصفوفة اى شكل الى هذه المصفوفة ليتم عرض الشكل

الان ساقوم بشرح طريقة عرض شكل واحد فقط للتوضيح والباقى بالمثل

وهو اول شكل

كود:
for(y=0;y<7;y++){text2[y]=character0[y];}
x=64;x1=0;
CustomChar(1,1);
delay_ms(500);
اولا
يجب نقل خانات مصفوفة الشكل الذى اريد نقلة الى المصفوفة
كود:
text2[]
ولذلك قمت بعمل جملة تكرارية بقيمة 7 مرات
ثم جعلت المتغير y الذى يزيد كل مرة من مرات التكرار بقيمة 1
هو الذى يقوم بالتبديل للمصفوفتان
فا فى البداية تكون قيمتة 0
وعندما اضعه داخل مربعات المصفوفة هذا يعنى ان ابدل الخانة رقم صفر اى بقيمة y
وهكذا الخانة رقم 0 من مصفوفة الشكل character0 سوف تنقل الى الخانة رقم صفر من المصفوفة text2

وهكذا 7 مرات لنقل 7 خانات

ثم
جعلت قيمة x و x1 تساوى قيم لاول شكل
وهى هنا
كود:
x=64;x1=0;
لكى يتم عرض شكل واحد ولا يحدث تداخل بين الاشكال

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

كود:
CustomChar(1,1);
وهو يعنى الذهاب الى داله العرض
وعرض الشكل فى الصف الاول والمربع الاول ايضا
فالرقم الاول يعنى الصف والرقم الثانى يعنى المربع

ثم قمت بالانتظار لمدة 500 مللى ثانية ..
.................................................انتهى............................................................

نيجى لجزء تحريك الكلمات وهو بسيط وسهل جدا

كود:
Lcd_Out(1, 13, text0); //2
for(y=0;y<40;y++){delay_ms(300);Lcd_Cmd(_LCD_SHIFT_RIGHT);}   //6
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(2, 16, text1); //2
for(y=0;y<40;y++){delay_ms(300);Lcd_Cmd(_LCD_SHIFT_RIGHT);}   //6
Lcd_Cmd(_LCD_CLEAR);  //6
اولا
قمت بعرض اول مصفوفة وبداخلة كلمات وهى (Besm Allah Elrhman Elrahem)

وقمت بعرضها فى اواخر المربعات بحيث تظهر فى البدء وكانها مختفية

ثم
قمت بكتابة امر التحريك او الازاحة الى اليمين ولكن مكرر 40 مرة
ورقم التكرار انت الذى تحددة على حسب ما تشاء
وعلى حسب عدد حروف الكلمات ايضا

كود:
for(y=0;y<40;y++){delay_ms(300);Lcd_Cmd(_LCD_SHIFT_RIGHT);}
وهناك امر انتظار 300 مللى ثانية حتى لا تجرى الكلمة بسرعه عالية

ثم قمت بمسح الشاشة
كود:
Lcd_Cmd(_LCD_CLEAR);
ثم تكرار نفس الاوامر السابقة
ولكن لعرض كلمات اخرى وهى (AllaH Akbar AllaH A3zem)

الى هنا انتهى الكود ولله الحمد وانتهى الجزء الثانى الذى يخص الشاشة LCD Character

اى حد لية سؤال انا تحت امرة ان شاء الله فى حدود علمى
___________________________________________________________________________________
___________________________________________________________________________________

تابع للشرح

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

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

1 -
ADC Value Display in Graphical Format on a 16x2 Character LCD using FireBird V P89V51RD2 Robot - YouTube

2 -
Animation on a 16x2 Character LCD using FireBird V P89V51RD2 Robot - YouTube

3 -
Animaçمo display LCD / Microgenios - YouTube

4 -
Arduino LCD Super Mario Game - YouTube

5 -
Visualizacion Caracter de Doble Line - LCD 16x2 - Modelo 1 - Desarrollos Tecnologicos - YouTube


رد مع اقتباس
  #9  
قديم 08-12-2012, 06:27 PM
red_stone red_stone غير متواجد حالياً
عضو نشيط
 
تاريخ التسجيل: Apr 2012
الدولة: LIBYA
المشاركات: 53
معدل تقييم المستوى: 6
red_stone is on a distinguished road
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

بارك الله فيك
رد مع اقتباس
  #10  
قديم 08-12-2012, 10:36 PM
funky112233 funky112233 غير متواجد حالياً
استاذ الكترونيات
 
تاريخ التسجيل: Sep 2009
المشاركات: 116
معدل تقييم المستوى: 10
funky112233 has a spectacular aura aboutfunky112233 has a spectacular aura about
افتراضي رد: تعلم كيفية التعامل مع الlcd وما انواعها وكيفية التحكم بها بالميكروسى ((الجزء الثانى))

بسم الله الرحمن الرحيم

شكرا جزيلا يا اخى red_stone
تقبل الله صيامك وقيامك
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

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

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 12:06 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
الحقوق محفوظة لمنتديات الاليكترونيات العصرية

Security team

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77