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

   

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 11-08-2012, 08:51 AM المشاركة 17   
افتراضي



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

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

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


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

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

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

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

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

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

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

للتحكم فى البكسل نحتاج الى استخدام قيمتى الديجتال
وهما ال 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 -
2 -
3 -
4 -
5 -


اعلانات

الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 11-08-2012, 12:22 PM المشاركة 18   
افتراضي


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

الكود الثالث والاخير
وهو عن استخدام امر 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

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

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

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 11-08-2012, 11:07 PM المشاركة 19   
افتراضي


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

شكرا جزيلا لك جزاك الله كل خير على تعليقك
وكل عام وانت بخير
تقبل الله صيامك وقيامك


الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 12-08-2012, 01:12 AM المشاركة 20   
ha


السلام عليكم أخي لدي سؤال حول الكود حيث من خلال المحاكاة في برنامج protousيظهر لي هذا المشكل أفيدوني و هدا عند كتابة الكود الآتي:
// Lcd pinout settings
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
void main() { PCON.F3=0;

و هده هي النتيحة التي تظهر لي
http://upload.qariya.info/images/qar...028992f94b.png


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 12-08-2012, 01:48 AM المشاركة 21   
افتراضي


بعض الاكواد المكتوبة بالميكروسي برو Mikroc Pro لا تعمل على نسخ MikroC العادية (الاصدارات 8)


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 12-08-2012, 02:09 AM المشاركة 22   
افتراضي


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

هو يقول لك فى الصورة ان السطر

كود:
sbit LCD_RS at RB2_bit;
وهو اول سطر

لا يوجد بها علامة ;

وهذه هى المشكلة ولكن
كما قال لك اخى Tico

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

واسمة هور ميكرو سى برو

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


الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 144
نشاط [ kaoutar11 ]
قوة السمعة:
قديم 13-08-2012, 01:15 AM المشاركة 23   
ha


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

هو يقول لك فى الصورة ان السطر

كود:
sbit LCD_RS at RB2_bit;
وهو اول سطر

لا يوجد بها علامة ;

وهذه هى المشكلة ولكن
كما قال لك اخى Tico

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

واسمة هور ميكرو سى برو

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


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 13-08-2012, 01:49 AM المشاركة 24   
افتراضي


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

تفضل هذه اخر نسخة
http://www.mikroe.com/eng/downloads/..._2011_v561.zip



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