الدالة الثالثة : دالة إرسال أمر command مكون من بايت 8-bit على شكل 2 نبل 4-bit .
• فى البداية يتم وضع RS=0 حتى يعلم موديول LCD بأن البيانات القادمة هى بيانات أمر .
• بعد ذلك يتم استخلاص النبل السفلى Low_Nibble والنبل العلوى High_Nibble باستخدام عمليات رياضية بسيطة .
• بعد ذلك يتم إرسال النبل العلوى يليه إرسال النبل السفلى .
• ثم اختبار ما إذا كان الأمر من ضمن أوامر موديول LCD ، عندئذ نستخدم دالة التأخير حتى يستقر الوضع .
الدالة الرابعة : دالة إرسال بيانات حرف LCDChar عند موقع صف row وعامود col محددين :
• فى البداية نستخدم عبارة الاختيار من متعدد switch…case لاختيار واحد من أربعة خيارات ، كل خيار يعطى موديول LCD الأمر المناسب تبعا للصف والعامود المذكورين كبارامترات عند استدعاء هذه الدالة (راجع معلومات موديول LCD) زذلك بغرض وضع المؤشر عند موقع الصف والعامود المحددين .
• بعد ذلك ، يتم إرسال بيانات الحرف : فى البداية يجب وضع RS=1 لأننا سوف نرسل حرف وليس أمر ، وبعد ذلك يتم استخلاص بيانات النبل السفلى والعلوى من بيانات الحرف ، ثم إرسالها إلى LCD عبر مسجل الإزاحة .
كود:
void Serial_LCD_Chr(unsigned int row, unsigned int col, char LCDChar)
{
switch(row){
case 1:
Serial_LCD_Cmd(0x80 + col-1);
break;
case 2:
Serial_LCD_Cmd(0xC0 + col-1);
break;
case 3:
Serial_LCD_Cmd(0x94 + col-1);
break;
case 4:
Serial_LCD_Cmd(0xD4 + col-1);
break;
}
RS = 1; // It is Data, not command
Low_Nibble = LCDChar & 15;//Low_Nibble = LCDChar & 0x0F; //
High_Nibble = LCDChar/16;//High_Nibble = LCDChar>>4;
Write_Nibble(High_Nibble);
Write_Nibble(Low_Nibble);
}
الدالة الخامسة :دالة تهيئة موديول LCD
تستخدم هذه الدالة لنقل موديول LCD من الحالة الافتراضية بنظام 8-bit إلى الحالة المطلوب العمل بها وهى نظام 4-bit .
خطوات التهيئة محددة تماما ومذكورة فى الداتا شيت للموديول ، وتتم بإرسال الأوامر المناسبة وبالترتيب المحدد كما هو مذكور بالتعليقات الجانبية .
الدالة السادسة : دالة إرسال سلسلة نصية عند صف وعامود محددين :
كل ما هنالك هو إرسال حرف تلو الآخر مستخدما الدوال السابقة .
فى البداية نستخدم دالة الميكروسى strlen لإيجاد عدد الأحرف السلسلة ثم نقوم بعمل حلقة for لتكرار إرسال الحرف تلو الآخر .
كود:
void Serial_LCD_Out(unsigned int row, unsigned int col, unsigned char str[20])
{ q = strlen(str);
for (p = 0; p<q; p++){
Serial_LCD_Chr(row,col++,str[p]); // print first character on LCD
}
row = 1;
col = 1;
}
الأستاذ عبد العزيز المحترم
بعد الاطلاع على موضوعك لفت انتباهي علمكم بموضوع الشاشات
ولما كان عندي موضوع يشغل فكري حول هذا الموضوع
لجات اليك علك تستطيع مساعدتي
لدي جهاز مولت ميتر صغير الحجم يحمل في الجيب تعرض
لكسر زجاجة الشاشه
وعندما فتحته لعلي اجلب له شاشه غيرها ضهر لي ان الشاشه لا تحتوي على أي رقم يشير لاسمها او مواصفاتها
ساقوم بارسال صورة الجهاز والشاشه
لعلك تستطيع ان ترشدني الى اسم الشاشة ومواصفاتها لاستطيع البحث عنها
تم تصغير هذه الصورة. إضغط هنا لمشاهدة الصورة كاملة. الصورة الأصلية بأبعاد 923 * 521 و حجم 45KB.
الأستاذ عبد العزيز المحترم
بعد الاطلاع على موضوعك لفت انتباهي علمكم بموضوع الشاشات
ولما كان عندي موضوع يشغل فكري حول هذا الموضوع
لجات اليك علك تستطيع مساعدتي
لدي جهاز مولت ميتر صغير الحجم يحمل في الجيب تعرض
لكسر زجاجة الشاشه
وعندما فتحته لعلي اجلب له شاشه غيرها ضهر لي ان الشاشه لا تحتوي على أي رقم يشير لاسمها او مواصفاتها
ساقوم بارسال صورة الجهاز والشاشه
لعلك تستطيع ان ترشدني الى اسم الشاشة ومواصفاتها لاستطيع البحث عنها
الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:34 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)