منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 13-05-2016, 10:31 PM المشاركة 9   
افتراضي



الدالة الثالثة : دالة إرسال أمر command مكون من بايت 8-bit على شكل 2 نبل 4-bit .
• فى البداية يتم وضع RS=0 حتى يعلم موديول LCD بأن البيانات القادمة هى بيانات أمر .
• بعد ذلك يتم استخلاص النبل السفلى Low_Nibble والنبل العلوى High_Nibble باستخدام عمليات رياضية بسيطة .
• بعد ذلك يتم إرسال النبل العلوى يليه إرسال النبل السفلى .
• ثم اختبار ما إذا كان الأمر من ضمن أوامر موديول LCD ، عندئذ نستخدم دالة التأخير حتى يستقر الوضع .


كود:
void Serial_LCD_Cmd(unsigned char Command)
{
      RS = 0; // It is command, not data
      Low_Nibble = Command & 15; // AS : Low_Nibble = Command & 0x0F;  
High_Nibble = Command/16; // AS : High_Nibble = Command>>4;  Write_Nibble(High_Nibble);
      Write_Nibble(Low_Nibble);
      if((Command == 0x0C) || (Command == 0x01) || (Command == 0x0E) || (Command == 0x0F) || (Command == 0x10)
                   || (Command == 0x1E) || (Command == 0x18) || (Command == 0x08) || (Command == 0x14)
                   || (Command == 0x02))
      Delay_50ms();
}

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 13-05-2016, 10:46 PM المشاركة 10   
افتراضي


الدالة الرابعة : دالة إرسال بيانات حرف 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);

}

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 13-05-2016, 10:55 PM المشاركة 11   
افتراضي


الدالة الخامسة :دالة تهيئة موديول LCD
تستخدم هذه الدالة لنقل موديول LCD من الحالة الافتراضية بنظام 8-bit إلى الحالة المطلوب العمل بها وهى نظام 4-bit .
خطوات التهيئة محددة تماما ومذكورة فى الداتا شيت للموديول ، وتتم بإرسال الأوامر المناسبة وبالترتيب المحدد كما هو مذكور بالتعليقات الجانبية .


كود:
void Serial_LCD_Init(){
        Delay_50ms();
        Serial_LCD_Cmd(0x03); // Wake-Up Sequence
        Delay_50ms();
        Serial_LCD_Cmd(0x03);
        Delay_50ms();
        Serial_LCD_Cmd(0x03);
        Delay_50ms();
        Serial_LCD_Cmd(0x02);
        Delay_50ms();
        Serial_LCD_Cmd(0x28); // 4-bits, 2 lines, 5x7 font
        Delay_50ms();
        Serial_LCD_Cmd(0x06); // Entry mode- Auto-increment, No Display shifting
        Delay_50ms();
}


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 13-05-2016, 11:02 PM المشاركة 12   
افتراضي


الدالة السادسة : دالة إرسال سلسلة نصية عند صف وعامود محددين :
كل ما هنالك هو إرسال حرف تلو الآخر مستخدما الدوال السابقة .
فى البداية نستخدم دالة الميكروسى 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;
}


حميد كريم
:: مهندس جيد ::
تاريخ التسجيل: Nov 2006
المشاركات: 202
نشاط [ حميد كريم ]
قوة السمعة:
قديم 17-05-2016, 02:49 PM المشاركة 13   
افتراضي


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

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

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

تم تصغير هذه الصورة. إضغط هنا لمشاهدة الصورة كاملة. الصورة الأصلية بأبعاد 923 * 521 و حجم 45KB.




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 17-05-2016, 03:37 PM المشاركة 14   
افتراضي


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

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

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

أعتذر لك لعدم إمكانيتى تقديم المساعدة

ربما يستطيع أحد الأخوة تقديم المساعدة

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



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