العمل مع شاشة LCD رمزية بناء على وحدة تحكم HD44780. STM32 و LCD. العمل مع مكتبة عرض الرسومات للعمل مع LCD

بناء على طلب الناس العاملين، قررت وعودتي وصف العمل مع إشارة LCD 16x2 في بيئة CodevisionAvr. دعنا نبدأ بفحص LCD نفسه. يمكن أن إخراج شاشة LCD الرقمية ALPotovically مع شركة HD44780 المدمجة من شركة HITACHI من شركة HITACHI في واحدة أو سنتين أو أربع مرات من 8 أو 16 أو 20 أو 40 حرفا. في هذه المقالة سأعتبر lcd 16x2 (16 حرفا، خطين) وبعد يحتوي هذا العرض على الاتصال الجسدي إلى MK 16 استنتاجات. (يعتمد موقع الاستنتاجات على شركة الشركة المصنعة) وبعد دعونا نلقي نظرة على هذه الاستنتاجات. بدون Caustava، أنا رائحة كريهة تسجيل الدخول. من حيث المبدأ، إنها مناسبة لأي شاشات الكريستال السائل.
حسنا، أعتقد أنه ليس من الضروري توضيح سبب حاجة إلى رقم تعريف واحد أو آخر. كل شيء مكتوب هناك باللغة الروسية. ولكن هناك بعض صغيرة ولكن. 1) يمكن إصدار شاشات LCD في خيارين من 5 فولت، أو بمقدار 3.3. 2) لا يتم تثبيت المقاوم الحالي المحدود دائما في دائرة الطاقة. انظر بعناية، يمكن أن تقف فقط الطائر. (أنا محترقة جدا الإضاءة الخلفية على عرضين.) 3) مخطط المقاوم لضبط التباين.
لذلك، الآن كيف هذه معجزة للاتصال ب MK. سنعمل مع ATMEGA8 والكوارتز على 4 ميغاهيرتز. هنا هو الفعلي والمخطط.
كما ترون أي شيء معقد. أول ثلاثة تخلف الميناء د. تقدم إلى الإدارة، والأربعة الأخيرة للبيانات. يمكنك أيضا العمل مع هذه الشاشات عبر حافلة 8 بت، لكنني أعتقد أن إعطاء 4 أرجل إضافية هي النفايات. لذلك، سوف نعمل على حافلة 4 بت. من المقرر مع المخطط، الآن دعونا مع جزء البرنامج. لتهيئة شاشة العرض ونقلها إلى وضع 4 بت، تحتاج إلى أداء عدة أوامر. ولكن قبل ذلك، أريد توضيح كيفية عمل السيطرة. بت روبية مسؤولة عن ما سيحصل على شاشة LCD. اذا كان روبية \u003d 0.ثم نرز الفريق، وإذا 1 تلك البيانات. إذا بت RW \u003d 0.ثم يتم تسجيلنا في LCD، وإذا 1 ، ثم أقرأ. قليلا هيا مجرد بوابة. وهذا هو، بمجرد أن نريد إدخال الأمر أو البيانات، بعد ذلك بعد وضع جميع البتات على الساقين ببساطة معرض 1 قليلا هياثم انخفاض مرة أخرى في 0 وبعد 1 - قم بتشغيل Power 2 - يمقت وقفة ما لا يقل عن 20 مللي ثانية 3 - أمر 4 بت. الإطارات 4 - تحمل وقفة لا تقل عن 40 μs 5 - فريق لمدة 4 بت. الإطارات (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 1)، (D4 \u003d 1) 6 - تحمل وقفة ما لا يقل عن 40 μS 7 - فريق لمدة 4 بت. الإطارات (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 1)، (D4 \u003d 1) 8 - تحمل وقفة ما لا يقل عن 40 μs 9 - فريق لمدة 4 بت. الإطارات (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 1)، (D4 \u003d 0) 10 - تحمل وقفة ما لا يقل عن 40 μS 11 - تعيين المعلمات (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 1)، (D4 \u003d 0) (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 1)، (D6 \u003d 0)، (D5 \u003d 0)، (D4 \u003d 0) 12 - أطفئ الشاشة (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 0)، (D4 \u003d 0) (RW \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 1)، (D4 \u003d 0) 13 - تنظيف الشاشة (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 0)، (D4 \u003d 0) (RW \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 0)، (D4 \u003d 1) 14 - وضع إدخال البيانات (RS \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 0)، (D5 \u003d 0)، (D4 \u003d 0) (RW \u003d 0)، (RW \u003d 0)، (D7 \u003d 0)، (D6 \u003d 1)، (D5 \u003d 1)، (D4 \u003d 0) حول كيف. الآن بعد هذا Abracadabra، عرضنا جاهز لتلقي البيانات. ماذا بعد. ثم دعونا نفكر في فرق LCD. لنقل الأمر / البيانات في شاشة LCD على الحافلة 4 بت، يطلب من كتابين. نرت لأول مرة الأكبر سنا 4 بايت، والثاني نحيل بايت 4 بايت الأصغر سنا. مزيد من الأوامر سأكتبها في أزواج. يقوم الفريق بتنظيف المؤشر وإعداد المؤشر إلى الزاوية اليسرى العليا. RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 0، D7 \u003d 0 (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 0، D7 \u003d 1 (E \u003d 1 ثم 0) أمر القيادة إلى الوضع الأيسر. (X- يعني توجيه القيمة) RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 0، D7 \u003d 0 (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 1، D7 \u003d x (e \u003d 1 ثم 0) يقوم الأمر بتعيين اتجاه Shift المؤشر (ID \u003d 0/1 إلى اليسار / اليمين). أيضا، دقة Shift Shift (SH \u003d 1) عند التسجيل في DDRAM. RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 0، D7 \u003d 0 (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 1، D6 \u003d ID، D7 \u003d sh (e \u003d 1 ثم 0) أمر العرض (D \u003d 1) وحدد المؤشر (A، B). a \u003d 0، b \u003d 0 لا مؤشر، لا شيء يضغط a \u003d 0، b \u003d 1 مؤشر لا، ومضات الرمز بأكمله a \u003d 1، b \u003d 0 المؤشر في شكل السفلات السفلية لا وميض a \u003d 1، b \u003d 1 المؤشر في شكل السفلات الداخلية ومضات RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 0، D7 \u003d 0 (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d 1، D5 \u003d D، D6 \u003d A، D7 \u003d B (E \u003d 1 ثم 0) عرض / فريق التحول المؤشر (SC \u003d 0/1 المؤشر / عرض RL \u003d 0/1 يسار / يمين). RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 0، D7 \u003d 1 (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d SC، D6 \u003d X، D6 \u003d X، D7 \u003d x (e \u003d 1 ثم 0) أمر تثبيت بت الإطارات (DL \u003d 0/1 4/8 بت) بالإضافة إلى صفحة علامة R. RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 0، D6 \u003d 1، D7 \u003d DL (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d 1، D6 \u003d 0، D6 \u003d P D7 \u003d 0 (E \u003d 1 ثم 0) عنوان عنوان الإعداد للتشغيل التالي مع تثبيت المؤشر وحدد CGRAM (أحرفه المخترعة). RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 1، D6 \u003d ACG، D7 \u003d ACG (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d ACG، D5 \u003d ACG، D6 \u003d ACG، D7 \u003d ACG (E \u003d 1 ثم 0) عنوان إعداد عنوان العملية التالي واختيار منطقة ذاكرة DDRAM (Sign Generator). RS \u003d 0، RW \u003d 0، D4 \u003d 0، D5 \u003d 1، D6 \u003d إضافة، D7 \u003d إضافة (E \u003d 1 ثم 0) RS \u003d 0، RW \u003d 0، D4 \u003d إضافة، D5 \u003d إضافة، D6 \u003d إضافة، D7 \u003d إضافة (E \u003d 1 ثم 0) أمر تسجيل البيانات إلى المنطقة الحالية. RS \u003d 1، RW \u003d 0، D4 \u003d البيانات، D5 \u003d البيانات، D6 \u003d البيانات، D7 \u003d البيانات (E \u003d 1 ثم 0) RS \u003d 1، RW \u003d 0، D4 \u003d البيانات، D5 \u003d البيانات، D6 \u003d البيانات، D7 \u003d البيانات (E \u003d 1 ثم 0) أمر قراءة البيانات في المنطقة الحالية. RS \u003d 1، RW \u003d 1، D4 \u003d البيانات، D5 \u003d البيانات، D6 \u003d البيانات، D7 \u003d البيانات (E \u003d 1 ثم 0) RS \u003d 1، RW \u003d 1، D4 \u003d البيانات، D5 \u003d البيانات، D6 \u003d البيانات، D7 \u003d البيانات (E \u003d 1 ثم 0) هذا هو في الواقع جميع الفرق. لا يزال هناك فريق من قراءة علم المبالغة، لكنني لا أستخدمها، ولكن فقط تصاعد بين كل فريق ما لا يقل عن 40 μs. هذا كل شئ. والآن بعد قراءة هذه الأهداف، اشرب كوبا من الشاي أو القهوة ونسيانها كل شيء. لأن كل هذه الموسرة يأخذ الوظائف من مكتبة CodevisionAvr. إنشاء مشروع جديد كما قيل بالفعل. بالنسبة لأولئك الذين لا يعرفون هنا، فإن الباقي يذهب إلى رمز المولد إلى علامة التبويب LCD. و اختار بورتد.. ما فعلناه. الأول أخبرنا البرنامج الذي نريد العمل مع شاشة LCD (عن طريق تحديد علامة التبويب LCD.). ثم قلنا أننا نتواصل مع المنفذ د.وبعد أسفل القائمة المنسدلة تجعل من الممكن تحديد عدد الأحرف في السلسلة. كما هو الافتراضي يستحق 16 ونريد العمل مع LCD 16x2، فليس من الضروري تغيير أي شيء. أدناه للمطالبات رسمت أرجل منفذ للاتصال الصحيح لشاشات الكريستال السائل إلى MK. الكل، وحفظ المشروع والنظر في التعليمات البرمجية التي تم إنشاؤها حديثا. أول شيء يجب الاهتمام به هو جزء من التعليمات البرمجية بعد توجيه مسبق #تضمن. هنا في هذا: // وظائف وحدة LCD الأبجدية الرقمية #ash. __lcd_port \u003d 0x12؛ بوردي #endass #include > دعونا نصها خط. التعليق الصف الأول الذي تقول فيه أننا وصلنا إلى ملف الرأس مع وظائف للعمل مع LCD iconic. نحن نفتح الوحدة لإدخال أوامر المجمع. السلسلة التالية تقوم بتعيين المنفذ الذي يتصل به LCD. فريق . في المجمع يجعل نفس الشيء #تضمن. في C. إذا اخترت الكود بشكل عشوائي في مولد التعليمات البرمجية، فيمكن تغييره دائما في هذا الصف. يمكن دائما العثور على رقم المنفذ في ملف التهيئة MK. يتصل دائما في السطر الأول. في حالتنا، هذا mega8.h.وبعد السطر التالي يغلق وحدة رمز التجميع. والسطر الأخير فقط يربط كل ما تحتاجه للعمل مع LCD. الآن دعونا نركذه الوظائف الأساسية. الوظيفة الأولى التي يجب أن يكون سببها قبل أن تبدأ LCD المعذبة - هذا بالطبع وظيفة تهيئة الشاشة. تبدو مثل هذا: void LCD_INIT (Unsign char lcd_columns) تهيئة هذه الميزة العرض، ويجب أن تكون المعلمة المرسلة عدد الأحرف في الصف. نغسل برنامجنا إلى القاع وأمام الدورة الرئيسية التي نرى سطرين المحتوى التالي: / / تهيئة وحدة LCD LCD_INIT (16)؛ فيما يلي نفس الخطوط ال 16 التي تم اختيارها في قائمة برنامج Gener-Generator وقم برفع الوسيطة الوظيفة. هنا أيضا، إذا كنت قد نسيت الخوف لديك 8 أو 20 حرفا على السلسلة، فما عليك سوى تغيير قيمة الوسيطة في هذه الوظيفة. void LCD_Gotoxy (غير موقعة char x، char غير موقعة y) هذه الميزة، تكريما باسمها، تترجم المؤشر إلى الموقف x، Y.وبعد هنا عاشر - هذا خشب الزان. من اليسار إلى اليمين من 0 إلى 15/19/39 (يعتمد على عدد الحروف في السلسلة) وبعد لكن y. - هذه سلسلة. من الأعلى إلى الأسفل من 0 إلى 0/3 (يعتمد على عدد الخطوط) . void lcd_putchar (char c) تعرض هذه الميزة حرفا واحدا بالموضع الحالي. مثال: lCD_PUTCHAR ("A") أو lcd_putchar (0x41) أنه في الإخراج سيعطي نفس النتيجة. وهذا هو، يمكن أن تكون المعلمة رمز ورمزها. lcd_gotoxy (0،0)؛ LCD_Putchar ("A")؛ lcd_gotoxy (0،1)؛ lcd_putchar (0x41)؛ أعتقد أن التعليقات هنا أيضا، دعونا ننظر إلى النتيجة.
الوظيفة التالية. void LCD_Puts (char * str) تعرض هذه الميزة سلسلة موجودة في SRAM بدءا من الوضع الحالي. مثال: lcd_gotoxy (0،0)؛ LCD_Puts ("سلسلة")؛ نحن نرى:
الوظيفة التالية. void lcd_putsf (char * str) تعرض هذه الميزة سلسلة تقع في فلاش بدءا من الوضع الحالي. مثال: lcd_gotoxy (0،0)؛ LCD_PUTSF ("سلسلة")؛ نحن نرى:
حسنا، يغلق كل هذه الوظيفة "ممحاة" void LCD_CLYR (باطلة) استدعاء هذه الميزة، ستحقق كل ما هو على الشاشة، وسيقوم المؤشر يرتفع إلى الموضع الأيسر المتطرف لسلسلة أعلى. لذلك للحصول على بداية، يمكنك عرض الكلمات والأرقام الموجودة على شاشة LCD باستخدام وظائف جاهزة. الآن دعونا نتحدث عن كيفية إخراج قيمة المتغيرات. لهذه الأغراض، سنحتاج إلى مكتبة أخرى. حسنا، يحتاج أولئك الذين برمجوا على جهاز الكمبيوتر إلى معرفة. تسمى stdio.h. ونحن يرتفع إلى أعلى البرنامج وبعد توجيه مسبق #تضمن. DoBlym. #تضمن. نتيجة لذلك، سوف نلقي نظرة على المدونة لدينا. // وظائف وحدة LCD الأبجدية الرقمية #ash. __lcd_port \u003d 0x12؛ بوردي #endass #include #تضمن. الآن دعونا نتعرف على الوظيفة التي تعمل في تنسيق النص. باطل printf (char flash * fmtstr [، arg1، arg2، ...]) كيف تعمل. في شار فلاش * fmtstr تم تعيين تنسيق قيمة الإخراج، وفي الحجج arg1، Arg2، ... اسم المتغير. مثال. Unsign char temp \u003d 123؛ printf ("temp \u003d٪ 05d \\ n"، temp)؛ ماذا يعني هذا Abra-Kadabra. يقوم السطر الأول بإنشاء متغير وتعيين القيمة إليه. هنا كل شيء واضح، ولكن ما يفعله المرتبة الثانية. كل ما في الأمر. عرض لأول مرة. temp \u003d.، ومن بعد 00123 وبعد لماذا تفرز 00123 وبعد ولكن لأن لدينا شرط ٪ 05D \\ N الذي يقول: 1) % - سنقوم بتنسيق قيم الوسيطة الأولى 2) 0 - سوف نسحب علامات N، الفارغة خدش الأصفار 3) 5 - نأخذ 5 أحرف إذا كان الرقم أقل من 5 أحرف، فقم بملء اللهايات بأصفار الأصفار. يشير هذا إلى العنصر 2. سيتم محاذاة الرقم على الحافة اليمنى. أربعة) د. - نحن نستمد رقم بتنسيق عشري. خمسة) \\ ن. - التخصص بعد عرض الرمز للذهاب إلى سلسلة أخرى. الوظيفة التالية. void Sprintf (Char Flash، Char Flash * FMTSTR [، ARG1، ARG2، ...]) هذه الميزة الأكثر إثارة للاهتمام بالنسبة لنا. إنه تنسيق السلسلة ويكتبها في صفيف. بعد أن يمكننا صفيف بجرأة لعرضها. كيف تعمل. Unsign char temp \u003d 123؛ سلسلة شار غير موقعة Sprintf (String، "TEMP \u003d٪ 05D \\ N"، TEMP)؛ LCD_Puts (سلسلة)؛ هذه هي الطريقة التي تبدو حية.
لذلك تعلمنا إخراج النص المنسق على شاشة LCD. بعد ذلك، تشغيل لفترة وجيزة من خلال أنواع التحول. أنا. د. - لسحب الكلمة العشرية مع علامة u. - لإخراج عشري خارج دون تسجيل هيا -d.d e-d هيا - لإنتاج مادة مع نقطة عائمة من النوع -d.d e-d f. - لإنتاج مادة مع نقطة عائمة من النوع -d.d. عاشر - للانسحاب في السادة، رسائل صغيرة عاشر - للسحب السادس من شكل رسائل كبيرة جيم - لعرض في الرمز إذا كتبت ٪ -05D. ثم تسجيل "-" أجبر على محاذاة الحافة اليسرى، ولن يتم انسداد اللهايات. إذا حاولت طباعة رقم نقطة عائمة، فوجئت كثيرا. لا يتم طباعة الرقم. في الكمين)) تكمن المشكلة في إعدادات المحول البرمجي. من أجل التحويل البرمجي لبدء فهم التنسيق يطفو تحتاج إلى تكوينه قليلا. لهذا الانتقال مشروع\u003e تكوين. والانتقال إلى علامة التبويب ج مترجموبعد في المقاطعة (ق) ميزات Printf: إختر تعويم، العرض، الدقةوبعد هذا كل شئ. حاول، تجربة. ستكون هناك أسئلة، والكتابة على المنتدى. حظا سعيدا!

قارئ بلوق لدينا ميخائيل ( ميشاديش.) أنشأت مكتبة ممتازة للعمل مع LCD. واقترح كتابة مقال لإظهار قدراتها. في الواقع، اليوم يتعلق الأمر بهذا ونناقشنا أن الوظائف يتم تنفيذها، وكذلك في نهاية المقالة سيكون هناك مثال للعمل مع الشاشة.

كالعادة، سأبدأ بمناقشة الحديد ... ثم لا يوجد شيء لا يتحدث عنه حقا. كما هو الحال في المقالة الأولى حول العمل مع العرض ()، سوف نستخدم لوحة التصحيح مصغرة STM32.وبعد في الواقع، توصيل العرض، الأوامر الرئيسية لكتابة البيانات، تسلسل الإرشادات الخاصة بالتهيئة - كل هذا هناك \u003d) لذلك، الآن نذهب مباشرة إلى مناقشة المكتبة للعمل مع عروض الرسوم البيانية.

فيما يلي قائمة كاملة بالميزات مع التفسيرات:

الوظيفة التالية، كما هو موضح من اسمها، يغير اتجاه الشاشة. قد اثنين من مواقف الشاشة، على التوالي اثنين من قيم المعلمة ممكنة اتجاه:

  • الاتجاه_portrait.
  • الاتجاه_album.

تعتمد الوظيفة رمزا على عرض الرسوم عن طريق وضعه على الإحداثيات التي يتم إرسالها إلى الوظيفة، وكذلك عن طريق ضبط لونها. يتوافق فحص الرمز مع خط محدد في الملف. فونت. (يذهب الملف في المكتبة).

من الوظيفة LCD_DRAWCHAR () فيما يلي الوظيفة التالية:

VOID LCD_DRAWSTRING (Char * S، UINT16_T X، UINT16_T Y، UINT16_T اللون، UINT16_T Backcolor، UINT8_T ISTransparent)؛

هنا واضح ودون كلمات غير ضرورية 😉 المطبوعات LCD. خط النص. قاعدة لهذه الوظيفة هي السابق - LCD_DRAWCHAR ().

بالإضافة إلى الرموز والنص، بالطبع، من الضروري الحصول على القدرة على رسم البدائل الرسومية الأساسية، مثل خط أو دائرة. لهذا، يتم تنفيذ ما يلي:

Void LCD_DRAWLINE (INT X1، INT Y1، INT X2، INT Y2، UINT16_T اللون)؛ Void LCD_DRAWRECT (INT X1، INT Y1، INT X2، INT Y2، UINT16_T اللون، UINT8_T مملوءة)؛ Void LCD_DRAWellipse (UINT16_T X1، UINT16_T Y1، UINT16_T R، UINT16_T اللون)؛

لرسم خطا، تحتاج إلى المرور إلى وظيفة الإحداثيات في نقطة البداية، إحداثيات نقطة النهاية، وكذلك اللون المرغوب فيه. للحصول على مستطيل - إحداثيات الزاوية اليسرى العليا وإحداثيات الزاوية اليمنى السفلى (!). المعلمة الأخيرة مملوء - يحدد ما إذا كان هناك حاجة إلى الشكل لأداء. الوحدة تعني نعم، سيتم رسم الرقم باللون المحدد، صفر - سيتم رسم محيط الرقم فقط. هذا مفهوم) فقط دائرة بقيت - وظيفة Drawellipse ()وبعد هنا، بدلا من إحداثيات البداية والنهاية (الزوايا العلوية / السفلى)، نحيل مركز الدائرة وقافة نصف قطرها كحجج.

حسنا، أخيرا، ميزة أخرى:

void lcd_fillscr (لون uint16_t)؛

تتيح لك الوظيفة صب الشاشة بلون صلب.

يتم تنفيذ جميع الميزات المدرجة في الملف. gui_drv.c..

بالإضافة إلى ذلك، تتضمن المكتبة الوظائف لكتابة البيانات في الشاشة ( lcd_driver.c.) وكذلك الخطوط المذكورة بالفعل ( فونت.). كما ترون، كل شيء يتم فرزه بوضوح بواسطة ملفات مختلفة، لذلك من حيث المبدأ كل شيء واضح جدا، لذلك دعونا نذهب إلى المثال العملي!

دعونا نتعامل مع! انتقل إلى ملف. ج الرئيسية.... لن أعطي رمز كامل لوظائف التهيئة الطرفية، كل هذا يمكن عرضه مباشرة في الملف، أو في المقالة السابقة، المرجع الذي كان في بداية هذه المقالة 😉 رئيسي ():

intperiph ()؛ initfsmc ()؛ initlcd ()؛ تأخير (10،000)؛ LCD_Fillscr (0xFFFF)؛ تأخير (100)؛ LCD_Setorient (الاتجاه_album)؛ تأخير (100)؛ lcd_drawstring ( "مكتبة LGDP4532"، 30، 30، 0x888F، 0x0000، 0)؛ LCD_DRAWRECT (100، 100، 200، 200، 0x0000، 0)؛ LCD_DRAWRECT (120، 120، 180، 180، 0xFF00، 1)؛ lcd_drawelpse (150، 150، 50، 0xf000)؛ بينما (1) ())

نبدأ بتهيئة، قم بطلاء الشاشة بأبيض وتثبيت الاتجاه المناظر الطبيعية للشاشة. والآن الذهاب لرسم الرسومات)

نعرض السلسلة على الشاشة، بالإضافة إلى مستطيلين ودائرة. النتيجة واضحة:

من الواضح أن كل شيء يعمل بشكل جيد

لذلك، في هذا اليوم، تنتهي، شكرا لك، بفضل ميخائيل للعمل المنجز والمواد المقدمة. فيما يلي جهات الاتصال المؤلف للمكتبة:

سكايب - ميشاديش.

بريد - [البريد الإلكتروني المحمي]

هذا كل شيء، شكرا لاهتمامكم، إلى اجتماعات غامضة!

جنرال لواء

يحتوي مجلس DISPUG DISPUG DISTERY STM32L على مؤشر الكريستال السائل (LCD، LCD English LCD. شاشة الكريستال السائل)، وجود ستة عشر علامات مجزأة، 4 علامات القولون (القولون)، 4 نقاط (DP)، 4 شرائط (بار). يتم دمج جميع القطاعات في مجمع المجموعة، COM1، COM2، COM3 في 24 قطعة. كل مجموعة لها "سلك مشترك" منفصل


تم تثبيت لوحة Debug microcontroller STM32L152RBT6. يحتوي المتحكم على وحدة تحكم LCD مدمجة، يتحكم في مؤشرات الكريستال السائل أحادية اللون.
تحكم LCD:

  1. يتيح لك تكوين تردد التحديث (معدل الإطار - التردد الذي يتم تحديث المعلومات الموجودة على شاشة LCD)
  2. يدعم وضع التحكم ثابت ومتعدد
  3. يدعم تركيب برامج التباين
  4. يسمح لك باستخدام عدة مستويات من الجهد التحكم (حتى أربعة)
  5. يستخدم التخزين المؤقت المزدوج يتيح لك تحديث البيانات في سجلات LCD_RAM \u200b\u200bفي أي وقت من البرنامج، دون تعطيل سلامة معلومات العرض

سجلات ذاكرة تحكم LCD

في متحكم STM32L152RB، يتم تسليط الضوء على سجلات LCD_RAM \u200b\u200bالخاصة، والمعلومات المخزنة التي تتوافق مع مجموعة مقطع COM0 - COM3. تتوافق كل مجموعة مع سجلتين تفريغ 32. يسمح مثل هذا السجلات بالتحكم في Microcontroller على شاشة LCD بعدد كبير من القطاعات مقارنة بتثبيت لوحة تصحيح الأخطاء.

للسيطرة على شاشة LCD مع 176 قطعة، يتم استخدام 4 مجموعات من COM0 - COM3 لمدة 44 قطعة لكل منها، 8 مجموعات من COM0 - COM7 في 40 قطعة تستخدم للتحكم في LCA مع 320 قطعة لكل منها.



يستخدم مجلس Debug Debug Discovery DSM32L مع 96 قطعة مقصورة مفصولة بمقدار 4 مجموعات من COM0 - COM3 في 24 صفحة لكل منها.


يرتبط شاشة LCD على لوحة تصحيح Discugdy Discovery DSM32L بحيث يتم استخدام أجزاء S40، S41 من سجلات LCD_RAM \u200b\u200bالثانية في كل مجموعة وتتبع S0-S27 من سجلات LCD_RAM \u200b\u200bالأولى. لتقليل عدد السجلات المستخدمة، سيتم تسجيل المعلومات من بت S40-S43 في البتات المجانية S28-S31 باستخدام وظيفة إعادة التعيين (إعادة تعيين).

وحدة مقسم التردد

تتيح لك وحدة مقسم التردد (مولد التردد) تحقيق ترددات مختلفة للإطار (معدلات الإطار) على شاشة LCD في النطاق من 32 كيلو هرتز إلى 1 ميغاهيرتز. كمصدر للإشارة اللاإرادية يمكن استخدامها:
  1. مولد NF الخارجي مع تردد 32 كيلو هرتز (LSE. سرعة منخفضة خارجية)
  2. مولد HF الداخلي مع تواتر 37 كيلو هرتز (LSI. سرعة منخفضة داخلية)
  3. مولد RF الخارجي مع مقصورات التردد بمقدار 2.4،8 و 16 والحد الأقصى لتكرير MHz 1. (HSE. سرعة عالية خارجية)
لتحقيق مزامنة دقيقة وتقليل إزاحة الجهد العاصمة من خلال شرائح LCD، يجب أن يكون مصدر إشارة اللب الاستقرار. إشارة لباقة LCDCLK تدخل وحدة تحكم LCD. ينقسم وتيرة إشارة الساعة، وفقا لمعاملات الانشطار التي تم تعيينها بواسطة BITs PS، LCD_FCR تسجيل DIV (سجل التحكم في الإطار). يتم احتساب التردد الناتج عند إخراج كتلة توزيع التردد بواسطة الصيغة:

f ck_div \u003d f lcdclk / (2 ps * (16 + div))

يتم احتساب معدل الإطارات بواسطة الصيغة:

F الإطار \u003d f ck_div *

حيث واجب هو معامل التعبئة - نسبة مدة النبض إلى دورتها. خلال إطار واحد على LCA، يتم عرض معلومات من LCD_RAM \u200b\u200b[X]، سجلات LCD_RAM \u200b\u200bو TD بالتتابع. بالنسبة لشاشة LCD المثبتة على لوحة التصحيح، في إطار واحد، يجب أن تستمد وحدة تحكم LCD معلومات من 4 مجموعات من قطاعات COM0 - COM3، وبالتالي، فإن مدة نبض التحكم في مجموعة واحدة ستكون 1/4 من مدة الإطار، I.E. واجب \u003d 1/4.

إدارة LCD الإدارة

هناك طريقتان للتحكم في وضع التحكم في LCD ووضع التحكم المتعدد. مع عرض ثابت، يتم توصيل كل شريحة تفريغ مؤشر إخراج مخرجات ميكروكنترولر. فيما يتعلق بشاشة LCD، في لوحة تصحيح DESM32LDiscovery، سيستغرق الأمر 6 * 14 \u003d 84 استنتاجات متحكم (باستثناء القولون والنقاط والشرائط). نظرا لاستخدام عدد من الاستنتاجات، فإن اتصال آخر سيكون مستحيلا. يحتوي Mancontroller STM32L152RB على 64 مخرجات. عند وضع التحكم المتعدد (وضع التحكم الديناميكي)، يتم دمج مقاطع تفريغ المؤشر نفسها في مجموعات. يحدث عرض المعلومات بسبب الاشتعال البديل لشركات تفريغ المؤشر، مع تردد لا ينظر إليه بالعين البشرية.

يتيح لك التحكم المتعدد إدارة عدد كبير من القطاعات. بدلا من التحكم المنفصل من قبل كل عنصر، يمكنهم إضافة على خط وأعمدة (COM و SEG)، وبالتالي مبسطة بواسطة دائرة التحكم، لأن لا يتطلب كل شريحة خط التحكم الخاص به. لتمكين الجزء المحدد، من الضروري تقديم الفرق في إمكانات COM و SEG. مثال على تشغيل إفرازات المؤشر الأول ("1:" يتم عرضه على المؤشر):


الرقم الأول من المؤشر في وقت T 0


الرقم الأول للمؤشر في وقت T 1


الرقم الأول للمؤشر في وقت T 2


مخطط عام لربط القطاعات على استنتاجات LCD


رسم تخطيطي لاستنتاجات LCD لموافذ متحكم

بالنسبة لخطوط SEG، يتم استخدام الجهد التحكم، وعدد المستويات التي يحددها معامل التحيز. يستخدم LCD في لوحة التصحيح وضع التحكم المتعدد مع الواجب \u003d 1/4 والتحيز \u003d 1/3. يتم تثبيت قيمة الرسوم والتحيز من خلال سجل LCD_CR (سجل التحكم) في BISS و BIAS.

ممارسة

تكوين منافذ ميكروكسيونترولر

للتحكم في منافذ LCD، يجب تكوين Microcontroller وفقا لذلك:
  1. إلى الخروج
  2. استخدام وظيفة بديلة AF 11 (وظيفة بديلة)
  3. لها ترددات الإخراج في ميناء 400 كيلو هرتز
  4. استخدام وضع الدفع السحب
  5. دون تشديد المقاومات
عندما يعمل المنفذ في وظيفة بديلة، يتم التحكم في المخزن المؤقت لناتج المنفذ بواسطة إشارات المحيط. تحتوي ملفات رأس STM32LXX.H CMSIS على وصف لجميع السجلات الطرفية، وكذلك هياكل الوصول.

تتصل نتائج LCD بمنافذ GPIOA (PA1-PA3، PA8-PA10، PA15)، GPIOB (PB3-PB5، PB8-PB15)، GPIOC (PC0-PC3، PC6-PC11) من متحكم. لعمل LCA، تحتاج إلى تقديم إشارة الساعة إلى المنافذ المحددة. براعة منافذ GPIO الخاصة ب Microcontroller تأتي من حافلة RCC AHB (إعادة تعيين وسيطرة على مدار الساعة) - براعة وإعادة ضبط الأنظمة. يتم إجراء إشارة الساعة من خلال تثبيت البتات المقابلة في سجل RCC_AHBENR (AHB Peripheral Clock تمكين السجل).

سجل RCC_AHBENR (يوضح الشكل 15 تصريفات أول 15)

بالنسبة إلى GPIOA، GPIOB، موانئ GPIOC، فمن الضروري تعيين تفريغ سجل من 1 إلى 0 و 1، 2.

بعد ذلك، سأقدم رمز تسجيل المعلومات في السجل باستخدام BitMascus واستخدام الرموز الست عشرية. إن استخدام Bitmask هو أكثر ملاءمة، ولكن العمل مع الرموز الست عشرية يسمح لك بفهم جوهر العمل مع السجلات.

RCC-\u003e Ahbenr | \u003d (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEEN)؛ أو RCC-\u003e Ahbenr \u003d 0x7؛ / * 0x7 \u003d 111 * /

لتحديد أوضاع تشغيل المنفذ، يتم استخدام سجل GPIOX_Moder (سجل وضع منفذ GPIO) (x \u003d a..h). يتم تجميع جميع تصريفات التسجيل في مجموعة MODERY، حيث Y Number Pina هو المنفذ المقابل. يجب تكوين المنافذ إلى وضع وظيفة بديل، أي في مجموعة مسؤولة عن IDUS، حدد قيمة 10. بالنسبة لمنفذ GPIOA، تحتاج إلى ضبط الدبابيس 1-3.8-10.15، أي مجموعة 1 إلى 3،5،7،17،19،21،11،21،21،21،21،21،21،21،31.


تسجيل GPIOX_Moder (سجل وضع منفذ GPIO)

gpioa-\u003e moder | \u003d (gpio_moder_moder1_1 | gpio_moder_moder2_1 | gpio_moder_moder3_1 | gpio_moder_moder8_1 | gpio_moder_moder9_1 | gpio_moder_moder10_1 | gpio_moder_moder15_1)؛ أو gpioa-\u003e moder \u003d 0x802A00A8؛ / * 0x802A00A8 \u003d 1000 0000 0010 1010 0000 0000 1010 1000 * /
يجب ترجمة موانئ الميكروكو الصغيرة إلى وضع الدفع. للقيام بذلك، تحتاج إلى تعيين 1 في سجل GPIOX_OTYPER (سجل نوع إخراج المنفذ GPIO) 1 في التصريف المسؤول عن الدبابيس.


gpiox_otyper (سجل نوع ميناء المنفذ GPIO)

gpioa-\u003e otyper_ot_1 | gpio_otyper_ot_2 | gpio_otyper_ot_3 | gpio_otyper_ot_8 | gpio_otyper_ot_9 | gpio_otyper_ot_10 | gpio_otyper_ot_15)؛ أو gpioa-\u003e Otyper & \u003d ~ 0x0000870E؛ / * 0x870e \u003d 1000 0111 0000 1110 * /
تؤثر كلا الخيارين على المسامير المحددة. (يتم تكوين دبابيس 1-3.8-10.15 لمنفذ المعالجة المركزية). إذا كنت بحاجة إلى ترجمة مسامير المنفذات إلى وضع الدفع، يمكنك الكتابة إلى قيمة التسجيل:
gpioa-\u003e otyper \u003d 0x0؛
لتحديد تواتر إخراج المعلومات إلى المنفذ، يتم استخدام سجل سجل GPIOX_OSPEDR (سجل إخراج منفذ GPIO). يتم تجميع جميع تفريغ التسجيل في مجموعات OSPESRY، حيث Y هو عدد الصنوبر من المنفذ المقابل. في هذه الورقة، يجب تثبيت تردد 400 كيلو هرتز. في مجموعة مسؤولة عن IDUS، حدد القيمة 00.


تسجيل GPIOX_OSPEDR (سجل سرعة ميناء GPIO)

Gpioa-\u003e Ospeedr & \u003d ~ (GPIO_OSPEEDER_OSPEEDR1 | GPIO_OSPEEDER_OSPEEDR2 | GPIO_OSPEEDER_OSPEEDR3 | GPIO_OSPEEDER_OSPEEDR8 | GPIO_OSPEEDER_OSPEEDR9 | GPIO_OSPEEDER_OSPEEDR10 | GPIO_OSPEEDER_OSPEEDR15)؛ أو gpioa-\u003e ospeedr & \u003d ~ 0xc03f00fc؛ / * 0xc03f00fc \u003d 0000 0011 1111 1100 0000 0000 1111 1100 * /
إذا كنت بحاجة إلى تعيين تردد الإخراج إلى المنفذ 400 كيلو هرتز لجميع المسامير، يمكنك الكتابة إلى قيمة السجل:
gpioa-\u003e ospeedr \u003d 0x0؛
لتعطيل مقاومات السحب للمقاومات، المنسدلة من أجل دبابيس مختارة، استخدم تسجيل GPIOX_PUPDR (سجل Port Uptup / سحب المنسد). يتم تجميع جميع تفريغ التسجيل في مجموعات الجرم، حيث y هو عدد المنفذ المقابل. لتعطيل تشديد المقاومات في مجموعة مسؤولة عن IDUS تم تعيينها على 00.


تسجيل GPIOX_PUPDR (سجل سحب GPIO / المنسدلة)

gpioa-\u003e Pupdr & \u003d ~ (gpio_pupdr_pupdr1 | gpio_pupdr_pupdr2 | gpio_pupdr_pupdr3 | gpio_pupdr_pupdr8 | gpio_pupdr_pupdr9 | gpio_pupdr_pupdr10 | gpio_pupdr_pupdr15)؛ أو gpioa-\u003e pupdr & \u003d ~ 0xc03f00fc؛ / * 0xc03f00fc \u003d 1100 0000 0011 1111 0000 0000 0000 1111 1100 * /
إذا كنت بحاجة إلى إيقاف تشغيل مقاومات تشديد جميع المسامير، فيمكنك الكتابة إلى قيمة السجل:
gpioa-\u003e pupdr \u003d 0x0؛
لاستخدام وظيفة بديلة لمنافذ متحكم، يتم استخدام سجل GPIOX_AFRL (GPIO بدالة منخفضة وظيفة منخفضة)، وهو المسؤول عن المسامير الأصغر سنا (من 0 إلى 7) و GPIOX_AFRH (GPIO بدالة بدالة عالية)، وهو المسؤول بالنسبة إلى المسامير القديمة (من 8 إلى 15). يتم تجميع كافة التصريف السجل إلى المجموعات AFRLY وAfrhy، حيث Y هو عدد الصنوبر من المنفذ المقابل. يجب تكوين المنافذ لاستخدام الوظيفة البديلة AF11، لذلك في المجموعة المسؤولة عن IDUS يجب ضبطها على 1011.


سجل GPIOX_AFRL (GPIO وظيفة بديلة منخفضة)


تسجيل GPIOX_AFRH (GPIO وظيفة بديلة عالية سجل)

للقيام بذلك، اكتب إلى السجلات:
gpioa-\u003e afr \u003d 0xbbb0؛ / * 0xbbb0 \u003d 1011 1011 1011 0000 * / gpioa-\u003e afr \u003d 0xb0000bbb؛ / * 0xb0000bbb \u003d 1011 0000 0000 0000 0000 0000 1011 1011 1011 * /

AFR \u003d 0xbbb0 - يكتب قيمة إلى سجل GPIOX_AFRL.
AFR \u003d 0xb0000bbb - يكتب قيمة إلى سجل gpiox_afrh.

إعدادات منافذ Pins Pins GPIOB، يتم إنتاج GPIOC بالمثل.

إعداد وحدة تحكم LCD

عند العمل مع وحدة تحكم LCD، كما هو الحال مع محيط آخر، فمن الضروري تقديم إشارة الساعة. يتم إطعام إشارة الساعة أيضا لنظام إدارة الطاقة. نظام تحكم وإدارة الطاقة لبكاء استخدام ناقل APB1. لحل مدار الساعة في السجل RCC_APB1Enr (APB1 الطرفية على مدار الساعة تمكين تسجيل)، فمن الضروري وضع 1 في 9 و 28 التصريف.


RCC_APB1ENR Register (APB1 Ceripheral Clock تمكين التسجيل)

RCC-\u003e apb1enr | \u003d rcc_apb1enr_pwren | rcc_apb1enr_lcden؛ أو RCC-\u003e apb1enr | \u003d 0x10000200؛ / * 0x10000200 \u003d 1 0000 0000 0000 0000 0000 0010 0000 0000 * /
للعمل وحدة تحكم LCD، يجب عليك تحديد مصدر إشارات الساعة. تم تحديد المصدر في سجل RCC_CSR. بشكل افتراضي، يحظر السجل في هذا السجل. في سجل إدارة الطاقة PWR_CR (سجل التحكم في الطاقة PWR)، تتم إزالة الحماية من الكتابة إلى سجل RCC_CSR. RCC_CSR تسجيل الضوابط RTC Clock Clock Sources وحكم LCD
يسمح بالتسجيل إلى سجل RCC_CSR لتثبيت 1 في فئة 8 من سجل PWR_CR.


PWR_CR Register (سجل التحكم في الطاقة PWR)

PWR-\u003e CR | \u003d PWR_CR_DBP؛ أو PWR-\u003e CR | \u003d 0x100؛ / * 0x100 \u003d 1 0000 0000 * /
لتغيير مصدر مسقط رأس وحدة تحكم LCD (و RTC Clock أيضا)، يجب أولا إعادة تعيين مصدر مسقط رأس مجموعة BIT RTCRST (الإعداد 1 إلى 23 فئة) في سجل RCC_CSR (سجل التحكم / الحالة).


سجل RCC_CSR (سجل التحكم / الحالة)

RCC-\u003e CSR | \u003d RCC_CSR_RTCRST؛
أو كتابة قيمة في السجل باستخدام المشغل "| \u003d"، لأن القيمة من قبل
التسجيل الافتراضي مختلف عن 0x0:
RCC-\u003e CSR | \u003d 0x800000؛ / * 0x800000 \u003d 1000 0000 0000 0000 0000 0000 0000 * /
لتحديد مصدر ساعة جديد، يجب إزالة بت rtcrst:
RCC-\u003e CSR & \u003d ~ RCC_CSR_RTCRST؛ أو RCC-\u003e CSR & \u003d ~ 0x800000؛
تم تحديد مصدر إشارة الساعة مولد LC خارجي. لتشغيل المولد في سجل RCC_CSR، يجب تثبيت BITS LSEO (تعيين من 1 إلى 8 فئة):
RCC-\u003e CSR | \u003d RCC_CSR_LSEON؛ أو RCC-\u003e CSR | \u003d 0x100؛ / * 0x100 \u003d 1 0000 0000 * /
بعد تشغيل المولد، من الضروري لبعض الوقت لتحقيق الاستقرار. يتم فحص استعداد المولد من خلال إعداد بت Lserdy في سجل RCC_CSR:
بينما (! (RCC-\u003e CSR & RCC_CSR_LSERDY)؛
يتم تنفيذ LC الخارجية من المولد كصور ساعة من خلال الإعداد في مجموعة RTCSEL من قيم RCC_CSR 01:
RCC-\u003e CSR | \u003d RCC_CSR_RTCSEL_LSE؛ أو RCC-\u003e CSR | \u003d 0x10000؛ / * 0x10000 \u003d 01 0000 0000 0000 0000 0000 * /
في وحدة تحكم LCD، تحتاج إلى تثبيت وضع التحيز المطلوب. للقيام بذلك، في السجل LCD_CR (التحكم LCD تسجيل)، يجب عليك تعيين قيمة 10 إلى مجموعة التحيز. قبل تثبيت الشيء، من الضروري مسح البتات من "القمامة".


سجل LCD_CR (سجل التحكم LCD)

إعادة الضبط:
LCD-\u003e CR & \u003d ~ LCD_CR_BIAS؛ أو LCD-\u003e CR & \u003d ~ 0x60؛
اختيار وضع التحيز \u003d 1/3 باستخدام BitMascus:
LCD-\u003e CR | \u003d lcd_cr_bias_1؛ أو LCD-\u003e CR | \u003d 0x40؛
تثبيت الواجب \u003d وضع 1/4. للقيام بذلك، أولا تخلص من جميع البتات:
LCD-\u003e CR & \u003d ~ LCD_CR_DUTY؛ أو LCD-\u003e CR & \u003d ~ 0x1c؛
تثبيت القيمة 011 في مجموعة Duty LCD_CR ل
واجب \u003d 1/4:
LCD-\u003e CR | \u003d LCD_CR_DUTY_0 | LCD_CR_DUTY_1. أو LCD-\u003e CR | \u003d 0xc؛
تنشيط ميزة إعادة تعيين الاستنتاج. للقيام بذلك، تعيين من 1 إلى 7 فئات من السجل LCD_CR:
LCD-\u003e CR | \u003d LCD_CR_MUX_SEG؛ أو LCD-\u003e CR | \u003d 0x80؛
قم بتثبيت قيم معاملات انشطاد ترددات تردد الساعة LCDCLK. يتم تعيين قيم المعاملات في سجل LCD_FCR (سجل التحكم في إطار LCD). أولا، نقوم أيضا بتنظيف جميع البتات، ثم تثبيت المطلوب.


سجل LCD_FCR (سجل التحكم في إطار LCD)

LCD-\u003e FCR & \u003d ~ LCD_FCR_PS؛ LCD-\u003e FCR & \u003d ~ LCD_FCR_DIV؛ أو lcd-\u003e fcr & \u003d ~ 0x3c00000؛ LCD-\u003e fcr & \u003d ~ 0x3c0000؛
يتم تعيين قيم معاملات الانشطار على مدار الساعة إلى ck_ps \u003d lcdclk / 16، ck_div \u003d ck_ps / 17. للقيام بذلك، تعيين من 1 إلى 24 وفي 18 فئة:
LCD-\u003e FCR | \u003d 0x1040000؛ / * 0x1040000 \u003d 1 0000 0100 0000 0000 0000 0000 0000 * /
لتثبيت المستوى المطلوب النقيض من ذلك، فمن الضروري تعيين قيمة 010 إلى مجموعة SS، بت أيضا قبل المشقوق-من القيم القديمة:
LCD-\u003e FCR & \u003d ~ lcd_fcr_cc؛ LCD-\u003e FCR | \u003d LCD_FCR_CC_1؛ أو LCD-\u003e FCR & \u003d ~ 0x1c00؛ LCD-\u003e FCR | \u003d 0x800؛ / * 0x800 \u003d 1000 0000 0000 * /
بعد تثبيت جميع القيم، من الضروري لبعض الوقت على مزامنة سجل LCD_FCR. يتم فحص تزامن السجل من قبل تركيب FCRSF بت في LCD_SR التسجيل (الحالة LCD تسجيل).

سجل LCD_SR (سجل حالة LCD)

بينما (! (LCD-\u003e SR & LCD_SR_FCRSR))؛
كمصدر للجهد ل LCD، حدد محول الخطوة الداخلية لتشكيل شاشة LCD V. للقيام بذلك، تم تعيين الفئة الأولى من سجل LCD_CR (سجل التحكم LCD) على 0:
LCD-\u003e CR & \u003d ~ LCD_CR_VEL؛ أو LCD-\u003e CR & \u003d ~ 0x2؛
تم تعيين إذن عمل وحدة تحكم LCD إلى 1 في فئة سجل LCD_CR (سجل التحكم LCD):
LCD-\u003e CR | \u003d LCD_CR_LCDEN؛ أو LCD-\u003e CR | \u003d 0x1؛
بعد التثبيت كمصدر لتحويل التراجع الداخلي للجهد، من الضروري الانتظار لاستعداده. يتم فحص الاستعداد بواسطة تثبيت الأجهزة من RDY بت في سجل LCD_SR (سجل حالة LCD):
بينما (! (LCD-\u003e SR & LCD_SR_RDY))؛
بعد حل عمل وحدة تحكم LCD، من الضروري انتظار استعداده. يتم فحص الاستعداد بواسطة تركيب الأجهزة من BITS ENS في سجل LCD_SR (سجل حالة LCD):
بينما (! (LCD-\u003e SR & LCD_SR_ENS))؛

تشكيل الصورة على شاشة LCD

يتم الجمع بين جميع قطاعات المؤشر في COM0 - مجموعة COM3 في 24 قطاعات كل (SEG0-SEG23). يتم تخزين المعلومات حول القطاعات في سجلات LCD_RAM \u200b\u200bلوحدة تحكم LCD. إن الأسلاك من لوحة الدوائر المطبوعة هي أن عدد القطاعات لا يتوافق مع فئات سجلات LCD_RAM.

لعرض 1 في أول التفريغ لشاشات الكريستال السائل، تحتاج إلى إضاءة قطاعات 1B، 1C. ينتمي الجزء الأول إلى مجموعة COM0، وينتمي قطاع 1C إلى مجموعة COM1. وبالتالي، يجب تسجيل معلومات عنها في سجلات RAM (LCD_RAM0)، RAM (LCD_RAM2) على التوالي. تلبي الجزء 1B إخراج LCDSEG22 LCD، والمعلومات التي يتم تخزينها في سجل SEG40 RAM (LCD_RAM1). باستخدام وظيفة إعادة التعيين، سيكون مقطع LCDSEG22 مسؤولا عن سجل RAM SEG28 (LCD_RAM0). يتم رد قطاع 1C على إخراج LCDSEG1 LCD، والمعلومات التي يتم تخزينها في تصريف SEG1 لسجل RAM (LCD_RAM2).

LCD-\u003e RAM \u003d 0x10000000؛ / * 0x10000000 \u003d 1 0000 0000 0000 0000 0000 0000 0000 * / LCD-\u003e RAM \u003d 0x2. / * 0x2 \u003d 10 * /
قبل تسجيل القيم في سجلات الذاكرة، من الضروري التحقق مما إذا تم إكمال تحويل البيانات السابق إلى شاشة LCD. يتم التحقق من ذلك بواسطة UDR (طلب عرض عرض) سجل LCD_SR (سجل حالة LCD). وحدة تحكم LCD اثنين من مخازن الانتاج، يتم إدخال المعلومات في المخزن المؤقت الأول، ويتم عرض على شاشات الكريستال السائل من المخزن المؤقت الثاني. يتم تعيين بت UDR أثناء النقل من العازلة الأولى في الثانية، وحماية سجلات LCD_RAM:
بينما (LCD-\u003e SR & LCD_SR_UDR)؛
بعد تسجيل المعلومات في سجلات LCD_RAM، يجب تثبيت بت UDR في سجل LCD_SR (سجل حالة LCD) (تعيين 1 في 2 فئات):
LCD-\u003e SR | \u003d LCD_SR_UDR؛ أو LCD-\u003e SR | \u003d 0x4؛ / * 0x4 \u003d 100 * /

في كثير من الأحيان، يحتاج المستخدم إلى تلقي بعض المعلومات المرئية من الجهاز الإلكتروني. إذا كانت المعلومات يمكن تمثيلها في شكل رمزي، فإن أحد الخيارات لعرضه هو استخدام المؤشرات البلورية السائلة الرمزية (LCD، أو LCD في التعيين الأجنبي). اليوم سنتحدث عن المؤشرات الرمزية المنفذة على أساس وحدات التحكم هيتاشي. HD44780، سامسونج KS 0066 وما شابه ذلك.

كمثال، سأعتبر LCD WinStar WH1602D-TMI-CT #لدي تجارب. لقد ذكرت بالفعل هذا LCD في المقال، والتطورات الرسم التي استخدمتها اليوم.

مفصلة ورقة البيانات. ل LCD Winstar WH1602D-TMI-CT:

فئة: وثائق
تاريخ: 22.03.2015

يمكن تمثيل مخطط LCD المبسط على النحو التالي:

أساس المؤشر هو مصفوفة بلورية سائلة، وتغذية الجهد إلى عنصرها، يمكننا مراقبة النقطة على الشاشة. في شاشة LCD الرمزية، يتكون هذه المصفوفة من عدد معين من التعارف، والتي يتم تجميعها حسب الخطوط والأعمدة. غالبا ما يكون حجم التعارف في البكسل 5 × 8 نقاط. يحتوي بمناسبة مؤشري على أرقام 1602 وهذا يعني أن مؤشري يمكن أن يعرض سطرين من 16 حرفا في كل منهما. أيضا، تشمل الترميز: رمز الشركة المصنعة ونوع المؤشر، وتسليط الضوء، اللون، جدول التعليمات البرمجية، وهلم جرا.

نظام مؤشرات WinStar

إظهار / إخفاء تعيينات فك التشفير

1. رمز الشركة المصنعة: Winstar العرض المحدودة

2. نوع المؤشر:

  • حاء - رمز (تسجيل الاصطناعية)
  • جيم - لون الجرافيك مع مصفوفة سلبية CSTN (colorstn.)
  • عاشر - الرسم مع مصفوفة فاتورة غير مدفوعة. (الشريط الترابط التلقائي.- كريستال مثبت على شريط الركيزة من البولياميد ثلاثية الطبيقات)
  • في - الرسم مع مصفوفة الترس. (رقاقة على الزجاج. - كريستال على الزجاج)

3. القرار الأفقي:

  • عدد الأحرف في السلسلة لمؤشرات النوع الرمزي
  • عدد النقاط الأفقية لمؤشرات الرسوم

4. الدقة الرأسي:

  • رقم الصف لمؤشرات النوع الرمزي
  • عدد النقاط الرأسية لمؤشرات الرسوم

5. رمز النموذج

  • ترميز الأبعاد الهندسية المستخدمة من قبل وحدة تحكم

6. نوع الإضاءة الخلفية:

  • ن. - بدون الإضاءة الخلفية
  • ب. - الكهرولومين، لون توهج - الأزرق
  • د. - الكهرولومين، لون توهج - الأخضر
  • د - الكهرولومين، لون توهج - أبيض
  • Y. - LED، لون توهج - أصفر - أخضر
  • أ. - أدى، لون توهج - العنبر
  • رديئة - LED، لون توهج - أحمر
  • G. - أدى، لون توهج - أخضر
  • T. - أدى، لون توهج - أبيض
  • P. - أدى، لون توهج - أزرق
  • F. - مصباح الكاثود البارد (CCFL)، لون توهج - أبيض

7. تكنولوجيا صناعة LCD

  • ب. - TN رمادي، إيجابي
  • ن. - TN، سلبي
  • G. - STN رمادي، إيجابي
  • Y. - STN الأصفر والأخضر، إيجابي
  • م. - Stn Blue، سلبي
  • F.- fstn إيجابي
  • T. - Fstn سلبي
  • حاء - HTN رمادي، إيجابي
  • أنا. - HTN أسود، سلبي
  • TN. (الملتوية خيطي) -هيكل البلورات لديه نوع دوامة
  • stn. (سوبر الملتوية النموئية.) - مصفوفة تتكون من عناصر LCD بشفافية متغيرة
  • Fstn. (فيلم تعويض stn.) — stn.- ساتشيز مع تعويض الفيلم. التكنولوجيا تتيح لك الحصول على زاوية عرض توسيع.
  • htn. (الدواء الملتوية النيماتية.) - تعتمد العرض على التواء جزيئي أقوى (عادة 110 درجة) مقارنة مع TN النمي الملتوية التقليدية (90 درجة). إعطاء زاوية عرض واسعة وتحسين التباين. وفقا للخصائص، فإن تقنية STN متفوقة. الجهد التشغيل المنخفض (2.5V وأقل تكلفة بين الأسنان النيمي يجعلها تستخدم مفيدة في الأجهزة المستقلية المحمولة).

8. المستقطب، زاوية عرض، نطاق درجة حرارة العمل

  • أ. - RF، 6:00، N.T.
  • د. - RF، 12:00، N.T.
  • G. - RF، 6:00، W.T.
  • ج. - RF، 12:00، W.T.
  • ب. - TF، 6:00، N.T.
  • هيا- TF، 12:00، N.T.
  • حاء - TF، 6:00، W.T.
  • ك. - TF، 12:00، W.T.
  • جيم - TM، 6:00، n.t.
  • F.- TM، 12:00، n.t.
  • أنا. - TM، 6:00، W.T.
  • ل. - TM، 12:00، W.T.
  • الترددات اللاسلكية (شاشات الكريستال السائل العاكسة.) - مؤشر LCD يعمل حصريا على انعكاس الضوء. الصورة مرئية فقط مع إضاءة خارجية كافية.
  • TF. - (شاشات الكريستال السائل العادية.) العرض المائي، والذي يعكس الضوء، وينبعثه (يضيء بمفردها).
  • TM (نقل LCD.) - يأتي الضوء من خلال شاشة LCD من جانب الخلفية. لديها صورة عالية الجودة في الداخل وعادة ما تكون منخفضة جدا (شاشة سوداء) مع أشعة الشمس.
  • N.T. - نطاق درجة الحرارة العادية 0 ... + 50 درجة مئوية W.T. - نطاق درجة الحرارة المتقدمة -20 ... + 70 درجة مئوية

9. خيارات إضافية

أول حرفين هما علامة:

  • CT./CP. - لاتينا / السيريلية
  • EP./وآخرون/هيا/أخر/إيدر/وفاق - اتينا / أوروبي
  • JP./JT./JS./JN. - لاتينا / اليابانية
  • HP./HS. - اللغة العبرية

3-4 الرموز:

  • T. - تعويض درجة الحرارة
  • هيا أو EZ. - حافة BL (مصابيح الإضاءة الخلفية موجودة حول المحيط). قد يكون الرمز غائبا أيضا.
  • ك.أو رطل. - ECO BL (LEDs موجودة في الجزء الخلفي من الشاشة بالتساوي)
  • الخامس. - المصدر المدمج للجهد السلبي
  • ن. - بدون مصدر الجهد السلبي المدمج

10. معلومات إضافية:

# - التوافق مع المعيار بنفايات.

ملحوظة (المراقب الدقيقة الصانع):

  • xS. - سامسونج
  • xP. - أشعة الشمس.
  • xT. - sitronix.
  • xE. - إبسون.
  • شو. - UMC.

باستخدام هذا النظام من التعيينات، اكتشفت أنني اتضح أن تكون علامة على مؤشر التخليق winstar.عرض الأحرف في 16 أعمدة و 2 صفين باستخدام وحدة تحكم KS. 0066 أو التناظرية، مع إضاءة LED من اللون الأبيض حول المحيط، مع سلبية زرقاء نقل.- تلبية، زاوية مراجعة "لمدة 6 ساعات"، ومجموعة عمل من درجات الحرارة -20 ... + 70 درجة مئوية مع وجود شاشة، بما في ذلك السيريلية ومتوافقة مع المعيار بنفايات. (لا يحتوي على مكونات ضارة للصحة، يبدو أنه عندما يتم تجميع، تم استخدام لحام خالية من الرصاص).

مؤشرات بناء على وحدات التحكم HD44780., KS066U.

يدير تشغيل جهاز التحكم المدمج في المؤشر. كما تتحكم وحدة تحكم عادة هيتاشي HD44780., سامسونج KS0066U. أو نظائرها العديدة والنسخ المستنسجة. في المؤشرات التي تنتجها الشركة الروسية تذوب وحدة التحكم المستخدمة PCF8576.

تحتوي وحدة التحكم على خلايا ذاكرة بايت واحدة ( ddram.)، يتم عرض محتوياتها بالفعل على الشاشة وفقا للجدول المسجل في cgram.وبعد عادة ما تكون خلايا الذاكرة أكثر معرفة في شاشة LCD، وبالتالي فإن معالجة معارفك تحتاج إلى إلقاء نظرة عليها ورقة البيانات.وبعد نحتاج إلى تسجيل رمز الرمز المطلوب في الموضع المرغوب، وكل ما تبقى من وحدة التحكم سيفعله بنفسك.

لتحديد موضع، هناك افتراضي، يتم التحكم فيه بواسطة مؤشر الأوامر (عدد من خلية الذاكرة الحالية، مات). يمكن القيام به مرئيا. بشكل افتراضي، عند كتابة رمز في خلية، يتحرك المؤشر إلى الأمام إلى موضع واحد.

يتكون جدول التعليمات البرمجية للمؤشر عادة من ثلاثة أجزاء:

  • 0 × 00-0 × 07 - شاشة قابلة للتنزيل، الأحرف التي تم إنشاؤها بواسطتك
  • 0 × 20-0XFF - رموز ASCII مجموعة الرموز القياسية والأبجدية الإنجليزية
  • 0xa0-0xFF - رموز الحروف الهجائية الوطنية وغيرها، مع تخطي رموز التزام في مخزون مع اللغة الإنجليزية.

إظهار / إخفاء جدول التعليمات البرمجية، السيريلية

مثال: Code Hex 0x4A يتوافق مع الرسالة ج.، رمز 0xb6 - رسالة ج..

تحدد البتات الأربعة الأكبر سنا عمود الرمز المحدد في الجدول، الصف الأصغر سنا. يمكنك إنشاء جدول الرمز الخاص بك عن طريق كتابة ذلك cgram.وبعد كل حرف يتطلب 5 بايت (على عمود البايت). وحدات في كل بات تحدد بكسلات كبيرة. على سبيل المثال، لترميز أرقام Pixelno 8 هذا التسلسل مطلوب: 0x6c، 0 × 92.0 × 92.0 × 92.0x6c.

محول السيريلية

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

النص الأصلي:

نص مشفر:

جدول كود الفريق:

D7. D6. D5. D4. D3. D2. D1. D0. غرض
0 0 0 0 0 0 0 1 تنظيف الشاشة مات\u003d 0، مات على ال ddram.
0 0 0 0 0 0 1 مات\u003d 0، معالجة ddram.، يتم إعادة تعيين التحولات، يتم تناول بداية الخط في البداية ddram.
0 0 0 0 0 1 هوية شخصية.س.يختار اتجاه تحول المؤشر أو الشاشة
0 0 0 0 1 د.جيمب.تحديد وضع العرض
0 0 0 1 S / C.r / l.فريق تحول الشاشة / الشاشة
0 0 1 دلفن.F.تعريف معلمات الاجتياح وعرض حافلات البيانات
0 1 AC5.AC4.AC3.AC2.AC1.AC0.تعيين متر مات عناوين في المنطقة cgram.
1 AC6.AC5.AC4.AC3.AC2.AC1.AC0.تعيين متر مات عناوين في المنطقة ddram.

جدول قيم العلم:

علم قيمة
هوية شخصية.توزيع عداد عنوان التيار المتردد، 0 - نقصان، 1 - الزيادة
س.شاشة تحول محتوى الشاشة 0 - لا يتم تحويل الشاشة، 1 - بعد التسجيل في DDRAM من الرمز التالي، تتحول الشاشة في الاتجاه المحدد بواسطة العلم I / D: 0 - اليمين، 1 - اليسار. التحول لا يغير محتويات DDRAM. مؤشرات الموقع الداخلية فقط للبداية المرئية للصف في تغيير DDRAM
S / C.علم العلم، المنتجة إلى جانب العلم R / L، عملية تحول الشاشة (وكذلك في الحالة السابقة، دون تغييرات في DDRAM) أو المؤشر. يعرف كائن الإزاحة: 0 - مؤشر تحول، 1 - شاشة تحول
r / l.علم العلم المنتج جنبا إلى جنب مع علم S / C من تحول الشاشة أو المؤشر. يحدد اتجاه التحول: 0 - اليسار، 1 - اليمين
D / L.Flag تحديد عرض حافلات البيانات: 0 - 4 التفريغ، 1 - 8 تصريفات
ن.وضع مسح الصورة على شاشة LCD: 0 - سطر واحد، 1 - سطرين
F.حجم ماتريكس الرموز: 0 - 5 × 8 نقاط، 1 - 5 × 10 نقاط
د.توافر الصورة: 0 - تعطيل، 1 - المدرجة
جيمالمؤشر في شكل رمز السفل: 0 - إيقاف، 1 - تمكين
ب.المؤشر في شكل معارف الخفقان: 0 - إيقاف، 1 - ممكن

تعيين استنتاجات تحكم:

  • DB0.-DB7. - مسؤولة عن البيانات الواردة / الصادرة
  • روبية. - المستوى العالي يعني أن الإشارة في مخرجات DB0-DB7 هي البيانات، الأمر المنخفض
  • ث / ر - يحدد اتجاه البيانات (القراءة / الكتابة). نظرا لعملية قراءة البيانات من المؤشر عادة ما تكون غير مطالب بها، فيمكن تثبيتها بشكل مستمر في هذه الإدخال منخفضة
  • هيا - الاندفاع مع مدة لا يقل عن 500 مللي ثانية على هذا الإخراج يحدد إشارة إلى قراءة البيانات / الكتابة من DB0-DB7، RS وW / محطات R
  • الخامس 0. - تستخدم لتحديد صورة التباين
  • أ، ك. - الطاقة الخلفية (الأنود والكاثود) إذا كانت متاحة
  • v cc. و GND. - مؤشر LCD التغذية

للتحكم في مؤشر LCD، فمن الضروري 6 أو 10 مخرجات، اعتمادا على ما إذا كان سيتم تحديد وضع تبادل البيانات 4 أو 8 بت. لتقليل العدد المطلوب من الاستنتاجات، يمكن تشغيل ميكروكسيونترولر في وضع 4 بت. في هذه الحالة، في الاستنتاجات DB4.-DB7. سيتم إرسال المؤشر لأول مرة من قبل الأكبر سنا أربعة بتاتيات / أوامر بيانات، ثم أصغر أربعة بت. الاستنتاجات DB0.-DB3. سوف تبقى غير مستخدمة.

تحكم وحدة تحكم واحدة في عدد محدود من الأحرف. على لوحة المؤشر، قد يكون هناك 1 و 2 و 4 و 8 وحدات تحكم وربما - وأكثر من ذلك.

وثائق حول وحدات التحكم:

مراقب سامسونج KS0066U.

مراقب هيتاشي HD44780.

فئة: وثائق
تاريخ: 21.03.2015

مترجمة إلى الخيار الروسي:

فئة: وثائق
تاريخ: 21.03.2015

غالبا ما تكون مؤشرات مختلف الشركات المصنعة متوافقة ويمكن تضمينها، ولكن قد تختلف في الأبعاد، وإبزيم وجهات الاتصال وأشياء أخرى. لذلك، عند اختيار التطوير الجديد والبحث عن بدائل، اتصل بمكتولات المصنعين:

جدول التوافق من مؤشرات LCD الرمزية للمصنعين المصنعين المختلفة:

إظهار / إخفاء الجدول

نوع winstar. إنصهار رؤية البيانات. بوليمين. أشعة الشمس. microtips. وينتيك. أمبريس
8 × 2.Wh0802A.MT-8S2A.DV-0802.BC0802A.SC0802A.MTC-0802X.WM-C0802M.AC082A.
10 × 1.MT-10S1.
12 × 2.WH1202A.BC1202A.
16 × 1.WH1601A.DV-16100.BC1601A1.SC1601A.MTC-16100X.WM-C1601M.AC161A.
WH1601B.BC1601B.SC1601B.
WH1601L.MT-16S1A.DV-16100.BC1601D1.SC1601D.MTC-16101X.WM-C1601Q.AC161B.
DV-16120.AC161J.
16 × 2.WH1602L.MT-16S2R.DV-16210.BC1602E.SC1602E.MTC-16201X.WM-C1602Q.AC162E.
SC1602N.
WH1602D.MT-16S2J.DV-16230.BC1602B1.SC1602B.MTC-16202X.WM-C1602N.AC162A.
DV-16235.MTC-16203X.
WH1602C.MT-16S2D.DV-16236.BC1602D.SC1602D.
WH1602A.MT-16S2H.DV-16244.BC1602H.SC1602C.MTC-16204X.WM-C1602K.
WH1602B.DV-16252.BC1602A.SC1602A.MTC-16205B.WM-C1602M.
WH1602M.DV-16257.BC1602F.SC81602F.
DV-16275.
DV-16276.
16 × 4.WH1604A.MT-16S4A.DV-16400.BC1604A1.SC1604A.MTC-16400X.WM-C1604M.AC164A.
WH1604B.
20 × 1.DV-20100.
MT-20S1L.
20 × 2.WH2002A.MT-20S2A.DV-20200.BC2002A.SC2002A.MTC-20200X.WM-C2002M.AC202A.
WH2002M.
WH2002L.MT-20S2M.DV-20210.BC2002B.SC2002C.MTC-20201X.WM-C2002P.AC202B.
DV-20211.AC202D.
DV-20220.
DV-20206-1.
20 × 4.WH2004A.MT-20S4A.DV-20400.BC2004A.SC2004A.MTC-20400X.WM-C2004P.AC204A.
SC2004G.
SC2004C.
WH2004L.DV-20410.BC2004B.MTC-20401X.WM-C2004R.AC204B.
24 × 1.MT-24S1L.
24 × 2.WH2402A.MT-24S2A.DV-24200.BC2402A.SC2402A.MTC-24200X.WM-C2402P.AC242A.
MT-24S2L.
40 × 2.WH4002A.DV-40200.BC4002A.SC4002A.MTC-40200X.WM-C4002P.AC402A.
40 × 4.WH4004A.DV40400.BC4004A.SC4004A.MTC-40400X.WM-C4004M.AC404A.
SC4004C.

السلطة، ضبط التباين والضاءة الخلفية

يحتاج بعناية لتكون ذات صلة قطبية اتصال الطاقة لمؤشر LCD، وكذلك لضمان امدادات التيار الكهربائي يكمن في مجموعة من +4.5 ... 5.5 V. غافل الموقف من هذه اللحظات يمكن أن يؤدي إلى إخراج مؤشر!

تسمح لك مؤشرات LCD بضبط التباين باستخدام مقسم الجهد. قبل عرض البيانات إلى المؤشر، يجب عليك التأكد من التحكم في الإجهاد في نطاق التشغيل. تختلف تصنيف المقاومات في مختلف الشركات المصنعة لمؤشرات LCD. توفر بعض طرازات المؤشرات الموجودة في المجلس أماكنا لتثبيت مثل هذا المقسم وكدريا للحصول على معدلات المقاومة اللازمة. يعتمد تباين المؤشر على زاوية المشاهدة. إذا كان مؤشر "00:00"، ثم ننظر في مثل هذا المؤشر في مثل هذه الطريقة أنه أقل من مستوى العين، إذا "ساعات الصفر"، ثم تم تصميمه لمراقبة مستوى العين (عمودي على الطائرة الشاشة) وبعد إذا كانت مؤشر "الساعة السادسة"، فينبغي استخدامها عند ملاحظتها فوق مستوى العين. يجب أن تؤخذ هذه اللحظة في الاعتبار عند الشراء.

الإضاءة الخلفية للتغذية

إذا كان المؤشر لديه الإضاءة الخلفية، فإن الاستنتاجات تقع عادة بشكل منفصل. من الضروري توصيله بالسلطة، مما يؤدي إلى تيار تقييم باستخدام مقاوم خارجي R (انظر ورقة البيانات.). بالنسبة لمؤشري، يجب أن يكون الجهد المقيم على الأنود 3.5 فولت وحتى 40 مللي أمبير. بناء على ذلك، فإن مفضة المقاوم الحالي:

بعض الشركات المصنعة على متن مؤشر يوفر مكانا لتثبيت هذا المقاوم، تحتاج إلى أن يكون القيمة الاسمية المقابلة، اقترب الطائر وسوف يتم تزويد الإضاءة الخلفية من نفس خط المؤشر.

كيف تقيم هذا المنشور؟

  • يتم إجراء وحدة FC-113 على أساس رقاقة PCF8574T، وهي سجل تحول 8 بت - "المتوسع" من مخرجات الإطارات التسلسلية ل I2C. في شكل microcircuit مخصصة DD1.
  • R1 هو مقاوم سريع لضبط تباين شاشة LCD.
  • يستخدم J1 Jumper لتشغيل الإضاءة الخلفية الشاشة.
  • الاستنتاجات 1 ... 16 تستخدم لتوصيل الوحدة النمطية بمخرجات شاشة LCD.
  • منصة الاتصال A1 ... مطلوب A3 لتغيير عنوان I2C للجهاز. المقاعد لاعبا المقابلة، يمكنك تغيير عنوان الجهاز. يوضح الجدول مطابقة العناوين والاعتداء: "0" يتوافق مع تمزق السلسلة، "1" - الطائر القابل للتعديل. بشكل افتراضي، جميع صدام 3 لاعبا مفتوحة وعنوان الجهاز 0x27..

2 اردوينو شاشات الكريستال السائل خطة اتصالوفقا ل I2C.

يتم توصيل وحدة نمطية لاردوينو بمعايير حافلة I2C: يتم توصيل إخراج SDA من الوحدة النمطية بالمنفذ التناظري A4، وإخراج SCL إلى منفذ التناظرية A5 Arduino. تتم مدعوم الوحدة بواسطة الجهد +5 فولت من اردوينو. يتم توصيل الوحدة نفسها بالاستنتاجات 1 ... 16 مع الاستنتاجات المقابلة 1 ... 16 على شاشة LCD.


3 مكتبة للعملوفقا ل I2C.

الآن تحتاج إلى مكتبة للعمل مع شاشة LCD عبر واجهة I2C. يمكنك استخدام، على سبيل المثال، هذا (رابط في صف "تنزيل نموذج نموذجي ومكتبة").

أرشيف تم تنزيله liquidcrystal_i2cv1-1.rar. UNZIP في المجلد \\ المكتبات \\التي تقع في دليل اردوينو IDE.

تدعم المكتبة مجموعة من الوظائف القياسية لشاشات LCD:

دورغرض
liquidcrystal () ينشئ متغير من نوع Liquidcrystal ويقبل إعدادات العرض (أرقام PIN)؛
يبدأ () تهيئة شاشة LCD، إعداد المعلمات (عدد الصفوف والرموز)؛
صافي () تنظيف الشاشة وإرجاع المؤشر إلى الموضع الأولي؛
منزل، بيت () إرجاع المؤشر إلى الموضع الأولي؛
setcursor () تركيب المؤشر إلى الموضع المحدد؛
كتابة () يعرض رمز على شاشة LCD؛
مطبعة () يعرض النص على شاشة LCD؛
المؤشر () يظهر المؤشر، أي الإتحلى في مقعد الرمز التالي؛
nocursor () يخفي المؤشر؛
رمش () وميض المؤشر.
noblink () إلغاء يومض
لا يوجد عرض () قم بإيقاف تشغيل الشاشة أثناء حفظ جميع المعلومات المعروضة؛
عرض () قم بتشغيل الشاشة أثناء حفظ جميع المعلومات المعروضة؛
scrolldisplayleft () التمرير محتويات الشاشة في الموضع الأول إلى اليسار؛
scrolldisplayright () التمرير محتويات العرض في وضع واحد إلى اليمين؛
لف تلقائي () إدراج التعاقد التلقائي؛
noautoscroll () إيقاف تشغيل Lober السيارات؛
من اليسار إلى اليمين () يحدد اتجاه النص من اليسار إلى اليمين؛
من اليمين الى اليسار () اتجاه النص على اليمين إلى اليسار؛
createchar () يخلق رمز مخصص لشاشة LCD.

4 رسم لإخراج النصعلى شاشة LCD عبر حافلة I2C

دعنا نفتح العينة: عينات الملفات liquidcrystal_i2c customCharchars وتغييره قليلا. سوف نسحب رسالة في نهايةها سيكون الرمز اللامع. في التعليقات على التعليمات البرمجية، يتم تعليق جميع الفروق الدقيقة الرسمية.

#تضمن. // قم بتوصيل مكتبة السلك # / / نقوم بتوصيل مكتبة LCD # Define PrintByte (Args) الكتابة (Args)؛ // uint8_t القلب \u003d (0x0.0xa، 0x1f، 0x1f، 0x4.0x0)؛ // بت قناع رمز "القلب" Liquidcrystal_i2c LCD (0x27، 16، 2)؛ / / قم بتعيين العنوان 0x27 لعرض شاشة LCD 16x2 الإعداد باطل () ( lcd.init ()؛ / / تهيئة شاشة LCD LCD.backlight ()؛ / / قم بتشغيل LCD.CreateChar عرض الإضاءة الخلفية (3، القلب)؛ // إنشاء رمز القلب في 3 LCD.home () خلية الذاكرة؛ // ضع المؤشر على الزاوية اليسرى العليا، إلى الموضع (0.0) LCD.! ")؛ // طباعة سلسلة نص LCD.Setcursor (0، 1)؛ // نقل المؤشر إلى سلسلة 2، رمز 1 LCD.Print ("i")؛ // طباعة رسالة على خط 2 LCD.Printbyte (3)؛ // طباعة الرمز "القلب"، الموجود في الخلية الثالثة LCD.print ("Arduino")؛ } حلقة فارغة () ( // وامض الأخير LCD.Setcursor رمز (13، 1)؛ // نقل المؤشر إلى السلسلة 2، رمز 1 LCD.Print ("\\ t")؛ تأخير (500)؛ lcd.setcursor (13، 1)؛ // نقل المؤشر إلى السلسلة 2، رمز 1 LCD.Print ("")؛ تأخير (500)؛ }

بالمناسبة، الشخصيات المسجلة من قبل الفريق lCD.CreeTechar ()؛، تبقى في عرض الشاشة حتى بعد إيقاف التشغيل، لأن سجلت في 1602 mfu.

5 إنشاء شخصيات خاصة بكلعرض شاشة LCD.

المزيد من التفاصيل، فكر في مسألة إنشاء شخصياتك الخاصة لشاشات LCD. يتكون كل رمز على الشاشة من 35 نقطة: 5 في العرض و 7 في الارتفاع (+1 سلسلة النسخ الاحتياطي لتقويض). في الخط 6 من رسم معين، وضعنا مجموعة من 7 أرقام: (0x0، 0xa، 0x1f، 0x1f، 0xe، 0x4، 0x0)وبعد نقوم بتحويل أرقام 16 ريتش في ثنائي: {00000, 01010, 11111, 11111, 01110, 00100, 00000} وبعد هذه الأرقام ليست سوى قناع قليلا لكل سطر من 7 من الرموز، حيث تشير "0" إلى نقطة ضوء، و "1" - مظلمة. على سبيل المثال، سينظر رمز القلب المحدد في شكل قناع قليلا على الشاشة كما هو موضح في الشكل.

6 شاشة مكتب LCDعلى حافلة I2C

مخطط القيادة في اردوينو. على الشاشة ستظهر النقش مع المؤشر الوامض في النهاية.


7 ما هو "ل"الإطارات I2C.

ككافأة، فكر في رسم تخطيطي مؤقت لإخراج الأحرف اللاتينية "A"، "B" و "C" على شاشة LCD. تتوفر هذه الشخصيات في ROM العرض ويتم عرضها ببساطة عن طريق نقل عنوانها. تتم إزالة المخطط من الاستنتاجات RS، RW، E، D4، D5، D6 و D7، I.E. بالفعل بعد محول FC-113 "I2C Barlel Bus". يمكننا أن نقول أننا يغرق قليلا "أعمق" في "الحديد".


مخطط مؤقت لإخراج الأحرف اللاتينية "A"، "B" و "C" على شاشة LCD 1602

يوضح الرسم البياني أن الأحرف الموجودة في DVLD ROM (انظر ورقة البيانات 9.11، يتم إرسال المرجع أدناه) بواسطة سمنين، وهو الأول الذي يحدد جدول عمود الجدول، والثاني هو رقم السطر. في الوقت نفسه، البيانات "انتزاع" على الجبهة الأمامية هيا (تمكين)، وخط روبية. (سجل SELECT، تحديد التسجيل) في حالة وحدة منطقية، مما يعني نقل البيانات. حالة الحالة المنخفضة لخط RS تعني انتقال التعليمات التي نراها قبل نقل كل رمز. في هذه الحالة، يتم إرسال رمز تعليمات إرجاع النقل إلى موضع شاشة LCD (0، 0)، كما يمكنك أيضا معرفة ذلك عن طريق دراسة الوصف الفني للعرض.

ومثال واحد آخر. في الوقت الحالي، يظهر الرسم التخطيطي إخراج رمز "القلب" على شاشة LCD.


مرة أخرى، أول نبضات ممكن تعليمات متوافقة. منزل، بيت () (0000 0010 2) - عودة النقل إلى الموقف (0؛ 0)، والثاني الثاني - الإخراج على شاشة LCD المخزنة في خلية الذاكرة 3 10 (0000 0011 2) رمز "القلب" (التعليمات lcd.createchar (3، القلب)؛ رسم).