You are on page 1of 7

‫جامعة حلب في المناطق ال ُمحررة‬

‫كلية هندسة الميكاترونيك‬


‫السنة الرابعة‬
‫مادة المعالجات والمتحكمات‬
‫الجلسة العملية الرابعة‬

‫فكرة الجلسة‬
‫تعلّم ّالطالب ّماهية ّتقنية ّالكريستال ّالسائل ّوأنواعهّ‬
‫ومعالجاته ّووصل ّالشاشة ّالمحرفية ّمع ّالمتحكمّ‬
‫‪ATMega 2560‬‬

‫التحكم بشاشات الكريستال‬


‫السائل المحرفية‬

‫إشراف‬ ‫إعداد‬
‫د‪.‬م‪ .‬مصطفى حاج ديبو‬ ‫م‪ .‬مازن عبد السالم‬
‫مقدمة‬
‫تعدّشاشةّالعرض ّ"‪ّ"LCD‬مصفوفة ّنقطية ّتستخدمّلعرضّالمعلوماتّوالنتائجّحيثّيمكنّمنّخاللهاّ‬
‫عرضّجميعّرموزّشيفرةّاألسكيّكماّأنهاّتحويّعلىّذواكر ّ‪ّ DD-RAM‬لتخزينّالمعطياتّوذاكرةّ‬
‫‪ّCG-RAM‬لتوليدّالرموزّحيثّتقومّبحفظّالرموزّالمرادّإظهارها‪ّ .‬‬
‫ّ‬
‫أنواع شاشة الكريستال السائل حسب البنية ّ‬
‫‪ّ:"LCD_ّ Alphanumeric"ّ.1‬تقومّبعرضّالرموزّّ ّ‬
‫ّّّّوالحروفّواألرقامّوبعضّاألشكالّ(سنقومّبدراستها)‪ّ .‬‬
‫‪ّ:"LCD Graphics"ّ.2‬تستطيعّعرضّالصورّباإلضافةّ ّ‬
‫ّّّّ ّ‬
‫ّّّّللرموزّواألرقامّ(شاشاتّالموبايل)ّ‪.‬‬

‫ميزات الشاشة "‪:"LCD_Alphanumeric‬‬


‫جهدّالتغذيةّبينّ(‪ّ)4.5-5.5v‬وأيّارتفاعّفوقّهذاّالمجالّيؤديّ‬ ‫‪.1‬‬
‫الرتفاعّدرجةّالحرارة‪.‬‬
‫يمكنّالتعاملّمعهاّبأقطابّالبياناتّكلهاّ(‪ّ)8‬أوّنصفهاّ ّ(‪.ّ)4‬‬ ‫‪.2‬‬
‫لهاّأشكالّعديدةّ(حسبّعددّالصفوفّواألعمدة)ّ‪.‬‬ ‫‪.3‬‬
‫تحتويّعلىّليدّلإلنارةّمعّإمكانيةّالعملّبدونّتشغيلهّ‪.‬‬ ‫‪.4‬‬
‫تيارّ‪ّ1mA‬تستهلكّعندّاإلظهارّبدونّتشغيلّليدّاإلنارة‪.‬‬ ‫‪.5‬‬
‫الشكل (‪ )1‬توزع أقطاب شاشة ‪LCD‬‬
‫متوفرةّبلونّأزرقّوأخضر‪.‬‬ ‫‪.6‬‬
‫التالّية‪:‬‬ ‫القياساتّ‬ ‫تأخذّ‬ ‫‪.7‬‬
‫ّ(‪.ّ)1x8,2x12,3x12,1x16,2x16,2x20,4x20,2x24,2x40‬‬
‫ّ‬

‫الجدولّ(‪ّ)1‬يبينّوظائفّأقطابّالشاشةّذاتّال(‪ّ .)8bit‬‬
‫اسم‬ ‫رقم‬
‫الوظيفة‬ ‫القطب القطب‬
‫يّ‬
‫القطبّاألرض ّ‬ ‫‪VSS‬‬ ‫‪1‬‬
‫قطبّالتغذيةّ‪5v‬‬ ‫‪VDD‬‬ ‫‪2‬‬
‫قطبّالتباينّ(أعظمّتباينّعّندّقصرّهذاّالقطبّلألرض) ّ‬ ‫‪VE‬‬ ‫‪3‬‬
‫مسجلّاختيارّالدخلّوعندّتطبيق"‪ّ"0‬يمكنّإرسالّأمرّللتحكمّأماّ ّ"‪ّ"1‬للسماحّبإرسالّ‬
‫تّ‬‫المعطيا ّ‬
‫‪RS‬‬ ‫‪4‬‬
‫اختيارّوظيفةّالقراءةّمنّالشاشةّ"‪ّ"1‬أوّالكتابةّعليهّا"‪ّ "0‬‬ ‫‪R/W‬‬ ‫‪5‬‬
‫بّ(التفعيلّ‬
‫قطبّتمكينّالشاشةّكلّمعلومةّيتمّكتابتهاّأوّقراءتهاّتتمّبعدّتفعيلّهذاّالقط ّ‬
‫يكونّعبرّالجبهةّالهابطة ّ) ّ‬
‫‪E‬‬ ‫‪6‬‬
‫‪DP0-‬‬
‫بّ‬
‫يتمّكتابةّالمعطياتّوأوامرّالتحكمّمنّخاللّهذهّاألقطا ّ‬ ‫‪7‬‬
‫‪DP7‬‬
‫مصعدّليدّاإلضاءةّالمستخدمّإلضاءةّالشاشةّ(‪ّ5v‬للتفعيلّمعّمقاومةّ‪ّ )300Ω‬‬ ‫‪A‬‬ ‫‪8‬‬
‫مهبطّليدّاإلضاءةّالمستخدمّإلضاءةّالشاشةّ(‪ّ0v‬للتفعيل)ّ ّ‬ ‫‪K‬‬ ‫‪9‬‬
‫الجدول (‪ )1‬أقطاب شاشة ‪ LCD‬مع شرح الوظيفة‬ ‫ّ‬

‫‪1‬‬
‫ّ‬
‫ّ‬
‫ّّ‬ ‫ويكونّتوزعّأقطابّالشاشةّحسبّالشكلّ(‪ّ.)1‬‬
‫برمجة الشاشة باستخدام ال‪CodeVision AVR‬‬
‫يتضمنّبرنامجّالّ"‪ّ"CodeVision AVR‬عدةّتوابعّتضمنّالتحكمّبالشاشةّوإظهارّالرموزّواألرقامّ‬
‫المطلوبةّبشكلّسلسّحيثّيقسمّالكودّالبرمجيّإلىّتعليماتّتتعلقّبالتهيئة‪ّ،‬التحكمّ ّوتعليماتّخاصةّبكتابةّ‬
‫المعطياتّعلىّالشاشة‪ّ،‬وننوهّأنهّقبلّكتابةّأيّمنّهذهّالتوابع‪ّ،‬يجبّعليناّإدراجّمكتبةّ‪ّLCD‬الحاويةّ‬
‫علىّهذهّالتوابعّوفقّالتعليمةّ‪ّ :‬‬
‫‪#include‬‬ ‫>‪<alcd.h‬‬

‫توضيح‬ ‫األمر (‪)Order‬‬ ‫الرقم‬


‫محرفا ّ‬
‫ّ‬ ‫تهيئةّالشاشةّذاتّ‪ّ16‬‬ ‫)‪lcd_init (16‬‬ ‫‪1‬‬
‫مسحّكاملّللشاش ّة ّ‬ ‫()‪lcd_clear‬‬ ‫‪ّ2‬‬
‫عودةّالمؤشرّإلىّبدايةّ‬ ‫(سطر‪,‬عمود) ‪lcd_gotoxy‬‬ ‫‪ّ3‬‬
‫السطرّاألو ّل ّ‬ ‫مثال‪lcd_gotoxy (0,0) :‬‬
‫عرضّالمصفوفةّالمحرفيةّ‬
‫‪ّstr‬عادةّتحويّقيمّمتغيراتّ‬
‫)][ ‪Lcd_puts (unsigned char str‬‬ ‫‪4‬‬
‫أوّجملّنصيةّويمكنّتغييرهاّ‬
‫ج‬
‫خاللّتشغيلّالبرنام ّ‬
‫عرضّالمحرفّ‪ّ a‬‬ ‫)‪Lcd_putchar (unsigned char a‬‬ ‫‪5‬‬
‫عرضّعبارةّنصيةّوغيرّ‬
‫)‪Lcd_putsf (unsigned char b‬‬ ‫‪6‬‬
‫قابلةّللتغييرّأثناءّالتشغيلّ‪ّ .‬‬
‫الجدول (‪ )2‬أوامر العرض على شاشة ‪LCD‬‬ ‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫ّ‬

‫‪2‬‬
‫ّ‬

‫ّ‬
‫✓ كيف نبدأ بمعايرة الشاشة قبل البرمجة؟‬
‫نفتحّالبرنامجّونضغطّعلىّ"مشروعّجديد"ّونسمحّالمساعدّبالعملّ‪ّCodeWithardAVR‬ونقومّ‬
‫بالضبطّعلىّاألزرارّالتالي ّةّ(الشكلّ(‪ّ .))2‬‬

‫الشكل (‪ )2‬الدراة المطلوبة‬

‫ّ‬
‫الشكل (‪ )2‬لوحة ضبط إعدادات ‪Alphanumeric LCD‬‬ ‫ّ‬
‫ّ‬
‫حيثّالشرحّحسبّاألرقامّ‪ّ :‬‬
‫‪ .1‬نختارّأيقونةّ‪ّAlphanumeric LCD‬منّأجلّالدخولّوتفعيلهاّ‪.‬‬
‫‪ .2‬نختارّنوعّمعالجّالشاشةّوهناّنميزّثالثّأنواعّمنّالمعالجاتّ‪:‬‬
‫‪ّ HD44780 .a‬هوّالمعالجّشائعّاالستخدامّبكثرةّبالنسبةّللشاشاتّالمحرفيةّويوجدّعادةّفيّشاشاتّ‬
‫ب‪ّ16‬محرفاّولكنّيتميزّبأنّالشاشةّالتيّتحويّهذاّالمعالجّ‬ ‫التيّتدعمّإظهارّسطرّواحدّوسطرينّ ّ‬
‫يمكنّبرمجتهاّمنّخاللّ‪ّ4‬أقطابّبياناتّفقط‪.‬‬
‫‪ّKS0073 .b‬يحويّنفسّميزاتّالمعالجّالسابقّولكنّيمتازّعنهّبأنهّيدعمّاإلظهارّعلىّ‪ّ4‬أسطرّولكنّ‬
‫التكلفةّاعلىّمنّالمعالجّالسابق‪.‬‬
‫‪ّSSD1803 .c‬يُخصصّهذاّالمعالجّمنّأجلّاإلظهارّالمرئيّ(الصور)ّويتميزّبخياراتّع ّديدةّويدعمّ‬
‫دقةّعرضّتصلّحتىّ‪ّ128x64‬بيكسلّ‪.‬‬
‫‪ .3‬نضبطّعددّالمحارفّالتيّسيتمّاستخدامهاّضمنّالشاشةّوهناّنختارّ‪ّ16‬كونّالشاشةّمحرفيهّبسطرينّ‪.‬‬
‫‪ .4‬نضبطّتوصيلّأقطابّتحكمّالشاشةّمعّأقطابّتحكمّالمتحكمّ‪.ّATMega2560‬‬
‫ّ‬
‫ّ‬

‫‪3‬‬
‫ّ‬
‫ّ‬

‫مثال‬
‫ّّّّّقُمّبكتابةّبرنامجّيقومّعلىّإظهارّ‬
‫العبارةّ"‪ّ"Welcome To US‬فيّ‬
‫السطرّاألولّمنّالشاشةّالمحرفيةّثمّ‬
‫تختفيّهذهّالعبارةّليتمّعرضّعددّ‬
‫نبضاتّالكباسّوفقّالدارةّالموضحةّ‬
‫بالشكلّ(‪ّ .ّ)3‬‬

‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫ّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّ ّ‬
‫ّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّّ ّ‬
‫ّ‬
‫ّ‬
‫ّ‬
‫✓ الحل‬
‫يتمّكتابةّالكودّالتاليّ(الشك ّلّ(‪ّ :ّ)ّ )4‬‬

‫ّ‬
‫ّ‬
‫الشكل (‪ )4.a‬الجزء األول من الكود‬

‫‪4‬‬
‫ّ‬
‫ّ‬
‫ّ‬

‫الشكل (‪ )4.a‬الجزء األول من الكود‬


‫ّ‬
‫ّ‬
‫✓ لنشرحّالكودّالسابقّحسبّرقمّالسطرّ‪ّ :‬‬
‫‪ّ.1‬إدراجّمكتبةّالمتحكمّ‪ّ ّ.ATMega2560‬‬
‫‪ّ.3‬إدراجّمكتبةّالتعاملّمعّ‪ّ ّ.LCD‬‬
‫‪ّ.4‬إدراجّمكتبةّالتحويالتّالنوعيةّللبياناتّ(انظرّالسطرّ‪ّ ّ .ّ)18‬‬
‫‪ّ.5‬التابعّالرئيسيّ‪ّ ّ.‬‬
‫ت‪ّ،‬حيث ّ‪ّ a‬للقفلّالمفتاحي‪ّ iّ ،‬لعد ّمراتّضغطّالزر‪ّ،‬المصفوفةّالمحرفية ّ‪ّ ّstr‬‬ ‫‪ّ.7‬التصريحّعنّالمتحوال ّ‬
‫ّّّّهيّ مصفوفةّ منّّمحارفّّتستخدمّ منّ أجلّ تخزينّ القيمةّ التيّ نريدّ عرضهاّ علىّ الشاشة‪ّ .‬‬
‫ّ‪ ّ.a‬النوعّّ‪ّّchar‬مساحةّ منّ ال ّذاكرةّ يُستخدمّ لتمثيلّ البياناتّ بطولّ بايتّ واحدّ وبالتاليّ يمكنّ استخدامهّ ّ‬
‫ّّّّّلتمثيلّ األرقامّ ّبطولّ ّ‪ّ ّ256‬ويأخذّ المجالّ منّ األرقامّ منّ ( ّ‪ّ ّ127-‬حتىّ ّ‪ّ .ّ)128‬‬
‫‪ّ.b‬بإضافةّكلمةّ‪ّunsigned‬إلىّ‪ّchar‬يُصبحّمجالّالقيمّللمتغيرّ‪ّi‬ضمنّ(‪ّ0‬حتىّ‪ّ .ّ)255‬‬
‫ّّ‬ ‫‪ّ.8‬تعريفّالقطبّاألولّمنّ‪ّPORTF‬كدخلّبقيمةّابتدائيةّ‪ّ1‬منطقيّ‪.‬‬
‫‪ ّ.9‬تابعّ التهيئةّ لشاشةّّ‪ّّLCD‬ويقومّّ‪ّّCodeVisionAVR‬بتوليدّ هذاّ التابعّّتلقائياّ بعدّ ضبطّ إعداداتّ ّ‬
‫ّّ‬ ‫ّّّّالشاشةّبال ُمساعدّ(كماّالشكلّ(‪)ّ )2‬‬
‫‪ّ.10‬تابعّمسحّالشاشةّمنّأيّبياناتّسابقةّ‪ّ ّ.‬‬
‫‪ ّ.11‬تابعّ نقلّ مؤشرّ العرضّ للشاشةّ ألولّ خانةّ فيهاّ (العمودّ األولّ والسطرّ األول)‪ّ .‬‬
‫‪ ّ.12‬إدراجّ العبارةّ النصيةّ "‪ّّ"Welcome To us‬وهيّّمنّ البياناتّ غيرّ القابلةّللتعديلّ أثناءّّالتشغيلّ ّ‬
‫ّّ‬ ‫ّّّّّوذلكّفيّحالّإسنادهاّإلىّمتغيرّ‪.‬‬
‫‪ّ.13‬الحلقةّالتكراريةّ‪ّ ّ .‬‬
‫‪ّ.15‬نقلّالمؤشرّإلىّأولّعمودّفيّالسطرّالثانيّ‪ّ ّ .‬‬
‫ّ‬

‫‪5‬‬
‫ّ‬
‫ّ‬
‫‪ّ.16‬طباعةّالعبارةّ ّ" ‪ّ"No.Typing:‬وتعنيّ ّ"عددّالضغطات"‪ّ ّ .‬‬
‫‪ ّ.17‬بعدّ كتابةّ العبارةّ فيّ السطرّّ‪ّّ16‬يتمّ نقلّ المؤشرّ إلىّّالعمودّّ‪ّّ10‬ضمنّ السطرّ الثانيّ باعتبارّ أنّ ّ‬
‫ّّّّّّالعبارةّفيّالسطر ّ‪ّ 16‬تتألفّمن ّ‪ّ 10‬حروفّوبماّأنّالعدّبدءّمن ّ‪ّ 0‬فإنّالعبارةّتنتهيّعندّالعمودّ ّ‬
‫ّّّّّ‪ّ ّ9‬منّ السطرّ الثانيّ ولذلكّ نقلناّ المؤشرّ إلىّ العمودّ ّ‪ّ ّ10‬ليتمّ كتابةّ عددّ الضغطات‪ّ .‬‬
‫‪ّ.18‬تابعّتحويلّقيمةّالمتغير ّ‪(ّ i‬الرقمّال ُممثلّلعددّضغطاتّالزر) ّإلى ّالقيمةّالمقابلةّلهذاّالرقمّبحروفّ ّ‬
‫ّّّّّّشيفرةّ األسكيّ وهيّّشيفرةّّ ُمعتمدةّ منّ قبلّ معالجّ الشاشةّّوهاذّ التّابعّ موجودّ فيّ مكتبةّّ‪ّ .ّSTD‬‬
‫شيفرةّ اآلسكيّ ضمنّ مصفوفةّ المحارفّّ‪ ّ)str‬علىّّالشاشةّ فيّ الموقعّ ّ‬ ‫‪ّّ.19‬إظهارّ الرقمّ (بعدّ تخزينهّ ب ّ‬
‫ّّ‬ ‫ّّّّّّال ُمحددّفيّالسطرّالبرمجيّ‪.ّ17‬‬
‫‪ّ.20‬اختبارّإنّتمّضغطّالزرّ(تغيرّحالةّالقطبّ‪ّ ّ.)PINF.0‬‬
‫‪ّ .21‬فيّحالّتغيرّحالةّالقطبّنختبرّحالةّالقفلّ(المتغير ّ‪ّ)a‬وبذلك ّيتم ّتنفيذّالتعليماتّالخاصةّبالكباسّ ّ‬
‫ّّ‬ ‫ّّّّّّفقطّمرةّواحدةّخاللّالضغطةّالواحدة‪.‬‬
‫‪ّ.22‬عندّالضغطّعلىّالكباسّفيّأولّلحظةّيكونّ‪ّa=0‬وبالتاليّيتمّتنفيذّماّداخلّاألقواسّالشرطيةّوهوّ‬
‫أنّيتمّزيادةّالعداد ّ‪ّ i‬بمقدار ّ‪ّ 1‬وتعديلّقيمة ّ‪ّ a‬لغيرّالصفرّوذلكّمنّأجلّعدمّتكرارّاألمرّداخلّالشرطّ‬
‫ّّ‬ ‫أكثرّمنّمرةّخاللّالضغطةّالواحدة‪.‬‬
‫‪ّّ.24‬فيّ حالّ عدمّ الضغطّ علىّ الزرّ يعودّ المتغيرّ (القفل)ّّ‪ّّa‬إلىّ قيمتهّ االفتراضيةّّ‪ّّ0‬وذلكّ للسماحّ ّ‬
‫ّّّّّّبتكرارّالضغط‪ّ .‬‬

‫ّ‬ ‫• بعدّكتابةّالكودّوتحميلهّعلىّال ُمتحكمّ‪ّATMega2560‬يكونّلديناّالخرجّ(الشكل(‪:ّ)ّ )5‬‬

‫ّ‬
‫ّ‬
‫‪ّ ----------------------------------------------------------------------------------------------------------‬‬ ‫ّ‬

‫انتهتّالجلس ّة‬

‫‪6‬‬

You might also like