لتأسيس اتصال جيد بين عالم الإنسان وعالم الآلة ، تلعب وحدات العرض دورًا مهمًا. ولذا فهي جزء مهم من الأنظمة المدمجة. وحدات العرض - كبيرة أو صغيرة ، تعمل على نفس المبدأ الأساسي. إلى جانب وحدات العرض المعقدة مثل شاشات الرسوم والتوزيع ثلاثي الأبعاد ، يجب على المرء أن يعرف العمل مع شاشات بسيطة مثل وحدات 16 × 1 و 16 × 2. ستتألف وحدة العرض مقاس 16 × 1 من 16 حرفًا وتكون في سطر واحد. فإن LCD 16X2 يكون 32 حرفا في مجموع 16in 1 شارع خط و 16 أخرى في 2 الثانيةخط. هنا يجب أن يفهم المرء أنه في كل حرف يوجد 5 × 10 = 50 بكسل لذلك لعرض حرف واحد ، يجب أن تعمل جميع وحدات البكسل الـ 50 معًا. لكن لا داعي للقلق بشأن ذلك لأن هناك وحدة تحكم أخرى (HD44780) في وحدة العرض تقوم بمهمة التحكم في البكسل. (يمكنك رؤيتها في وحدة LCD ، إنها العين السوداء في الخلف).
المكونات مطلوبة
المعدات:
متحكم ATmega32
مزود الطاقة (5 فولت)
مبرمج AVR-ISP
JHD_162ALCD (16 × 2 LCD)
100 فائق التوهج مكثف.
البرمجيات:
استوديو اتميل 6.1.1
Progisp أو فلاش السحر
مخطط الدائرة وشرحها
كما هو موضح في واجهة LCD مع دائرة ATmega32 ، يمكنك أن ترى أن PORTA من ATMEGA32 متصل بمنفذ بيانات LCD. هنا يجب على المرء أن يتذكر تعطيل اتصال JTAG في PORTC لـ ATMEGA عن طريق تغيير بايتات الصمامات ، إذا أراد المرء استخدام PORTC كمنفذ اتصال عادي. في 16x2 LCD ، يوجد 16 دبوسًا في الكل ، إذا كان هناك ضوء خلفي ، إذا لم يكن هناك ضوء خلفي ، فسيكون هناك 14 دبوسًا. يمكن للمرء أن يغادر أو يترك دبابيس الضوء الخلفي. يوجد الآن في 14 دبابيس 8 دبابيس بيانات (7-14 أو D0-D7) ، دبابيس إمداد طاقة (1 & 2 أو VSS & VDD أو gnd & + 5v) ، 3 دبوس rd للتحكم في التباين (يتحكم VEE في مدى سماكة الأحرف معروض) ، 3 دبابيس تحكم (RS & RW & E)
في الدائرة أعلاه للواجهة 16x2 LCD مع متحكم AVR ، يمكنك ملاحظة أنني أخذت دبابيس تحكم فقط. هذا يعطي مرونة لفهم أفضل. لا يتم استخدام بت التباين والقراءة / الكتابة في كثير من الأحيان حتى يمكن تقصيرها إلى الأرض. هذا يضع LCD في أعلى وضع التباين والقراءة. نحتاج فقط إلى التحكم في دبابيس ENABLE و RS لإرسال الأحرف والبيانات وفقًا لذلك.
فيما يلي التوصيلات بين متحكم ATmega32 وشاشة LCD مقاس 16 × 2:
PIN1 أو VSS - الأرض
PIN2 أو VDD أو VCC - + 5 فولت
PIN3 أو VEE - أرضي (يعطي أقصى تباين أفضل للمبتدئين)
PIN4 أو RS (اختيار التسجيل) - PD6 للميكروكونترولر
PIN5 أو RW (قراءة / كتابة) - أرضي (يؤدي وضع شاشة LCD في وضع القراءة إلى تسهيل الاتصال للمستخدم)
PIN6 أو E (تمكين) - PD5 لوحدة التحكم الدقيقة
PIN7 أو D0 - PA0 للميكروكونترولر
PIN8 أو D1 - PA1
PIN9 أو D2 - PA2
PIN10 أو D3 - PA3
PIN11 أو D4 - PA4
PIN12 أو D5 - PA5
PIN13 أو D6 - PA6
PIN14 أو D7 - PA7
في الدائرة ، يمكنك أن ترى أننا استخدمنا اتصال 8 بت (D0-D7) ، لكن هذا ليس إلزاميًا ويمكننا أيضًا استخدام اتصال 4 بت (D4-D7) ولكن مع برنامج اتصال 4 بت يصبح معقدًا بعض الشيء للمبتدئين ، لذلك ذهبنا مع اتصال 8 بت.
لذلك من مجرد الملاحظة من الجدول أعلاه ، نقوم بتوصيل 10 دبابيس من شاشة LCD بوحدة التحكم ، حيث تكون 8 دبابيس عبارة عن دبابيس بيانات و 2 دبابيس للتحكم.
العمل
الآن للبدء ، يجب أن تعرف وظائف 10 دبابيس من 16x2 LCD (8 دبابيس بيانات + 2 دبابيس تحكم). دبابيس البيانات الثمانية مخصصة لإرسال البيانات أو الأوامر إلى شاشة LCD. في دبابيس تحكم:
1. دبوس RS (تسجيل التحديد) هو لإخبار شاشة LCD ما إذا كنا نرسل البيانات إليها أو نصدر الأوامر إليها.
فمثلا:
في الجدول أعلاه ، تخبر قيمة منفذ البيانات (D7-D0) "0b0010 1000 أو 0x28" شاشة LCD أن تعرض الرمز "(". في الجدول الثاني ، تخبر نفس القيمة 0x28 شاشة LCD "أنت شاشة LCD 5x7 نقطة و تتصرف مثل واحد "، لذلك يمكن للمستخدم تحديد شيئين لنفس القيمة ، والآن يتم تحييد هذا الموقف بواسطة دبوس تحديد التسجيل ، إذا تم ضبط دبوس RS منخفضًا ، فإن LCD تفهم أننا نرسل الأمر. إذا قمنا بتعيين دبوس RS إلى مرتفع ، تفهم شاشة LCD أننا نرسل البيانات ، وبالتالي في كلتا الحالتين تحترم شاشة LCD قيمة منفذ البيانات وفقًا لقيمة دبوس RS.
2. الدبوس E (التمكين) هو ببساطة لإخبار "مؤشر الطاقة LED الخاص بجهاز الكمبيوتر" ، يتم تعيين هذا الدبوس على مرتفع لإخبار شاشة LCD "باستلام منفذ بيانات نموذج البيانات لوحدة التحكم". بمجرد انخفاض هذا الدبوس بعد الارتفاع ، تقوم شاشة LCD بمعالجة البيانات المستلمة وإظهار النتيجة المقابلة. لذلك تم ضبط هذا الدبوس على مرتفع قبل إرسال البيانات وسحبه لأسفل على الأرض بعد إرسال البيانات.
الآن بعد توصيل الجهاز ، ابدأ Atmel studio وابدأ مشروعًا جديدًا لكتابة البرنامج ، والآن افتح شاشة البرمجة وابدأ برنامج wring. يجب أن يتبع البرنامج ما يلي.
أولاً نخبر وحدة التحكم عن المنافذ التي نستخدمها للبيانات والتحكم في شاشة LCD. ثم أخبر وحدة التحكم بموعد إرسال البيانات أو الأمر وفقًا لذلك عن طريق اللعب باستخدام دبابيس RS و E.
شرح موجز للمفاهيم المستخدمة في البرنامج:
1. تم ضبط E عاليًا (إخبار LCD باستقبال البيانات) وتم ضبط RS على مستوى منخفض (إخبار LCD أننا نعطي الأمر)
2. إعطاء قيمة 0x01 لمنفذ البيانات كأمر لمسح الشاشة
3. تم ضبط E عاليًا (إخبار LCD باستقبال البيانات) وضبط RS عاليًا (إخبار LCD أننا نعطي البيانات)
4. أخذ سلسلة من الأحرف لإرسال كل حرف في سلسلة واحدة تلو الأخرى.
5. تم ضبط E على مستوى منخفض (لإعلام LCD بأننا انتهينا من إرسال البيانات)
6. بعد الأمر الأخير ، تنهي شاشة LCD الاتصال وتعالج البيانات وتعرض سلسلة الأحرف على الشاشة.
في هذا السيناريو ، سنرسل الأحرف واحدة تلو الأخرى. يتم إعطاء الأحرف إلى LCD بواسطة رموز ASCII (الكود القياسي الأمريكي لتبادل المعلومات).
يظهر جدول رموز ASCII أعلاه. هنا لكي تظهر شاشة LCD الحرف "@" ، نحتاج إلى إرسال رمز سداسي عشري "64". إذا أرسلنا "0x62" إلى شاشة LCD ، فسيظهر رمز ">". مثل هذا ، سنرسل الرموز المناسبة إلى شاشة LCD لعرض الاسم.
من الأفضل شرح طريقة الاتصال بين متحكم ATmega32 AVR خطوة بخطوة من رمز C أدناه ،