בחיי היומיום שלנו אנו רואים סוגים רבים של מכשירים להצגת טקסט, תמונות וגרפיקה. צגי LCD הם אחד ממכשירי התצוגה הפופולריים ביותר באלקטרוניקה ומשמשים בעיקר בכל הפרויקטים שמציגים מידע כלשהו. ישנם סוגים רבים של מסכי LCD המשמשים בפרויקטים אלקטרוניים. השתמשנו כבר ב- 16X2 LCD ברבים מהפרויקטים שלנו והשתמשנו גם ב- TFT LCD עם Arduino. תוכל למצוא את כל הפרויקטים הקשורים ל- LCD 16X2 על ידי קישור זה, כולל ממשק עם 8051, AVR, Arduino ורבים אחרים.
במדריך זה אנו הולכים לעשות ממשק LCD גרפי עם מיקרו-בקר 8051. בפרויקט זה נראה כיצד להציג תמונה על גבי LCD גרפי (GLCD).
רכיבים נדרשים:
- LCD גרפי
- AT89c52 8051 מיקרו-בקר
- וסת מתח 7805
- קבלים 1000uf
- קבל 10 uF
- נגד 10K
- עציץ 10K
- מתנד קריסטל 12 MH
- חוט חיבור
- לוח לחם
- רצועות בורג זכר
- ספק כוח
- לד
- נגד 220 אוהם
- נגד 1K
LCD גרפי:
LCD 16x2 פשוט כולל 16 פינים אך LCD גרפי כולל 20 פינים. תיאור הסיכה מופיע להלן לפי גליון הנתונים שלה:
מספר סיכה | שם סיכה | תיאור | פוּנקצִיָה |
1 | VSS | קרקע, אדמה | 0 וולט |
2 | VDD | ספק כוח | 5 וולט |
3 | V0 | כוונון ניגודיות LCD | |
4 | RS | בחירת פקודה / נתונים | RS = 0: בחירת פקודה ו- RS = 1: בחירת נתונים |
5 | R / W | קרא / כתוב רישום | R / W = 0: בחירת כתיבה ו- R / W = 1: בחירת קרא |
6 | ה | הפעל אות | |
7 | DB0 | סיכת קלט / פלט נתונים (DB0-DB7) | 8 סיביות (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | בחר שבב | CS1 = 1, שבב בחר אות עבור IC1 |
16 | CS2 | בחר שבב | CS2 = 1, שבב בחר אות עבור IC2 |
17 | RST | אִתחוּל | אפס GLCD |
18 | VEE | מתח שלילי לנהג LCD | |
19 | א | נורית תאורה אחורית | 5 וולט |
20 | ק | נורית תאורה אחורית | קרקע, אדמה |
מציג תמונה על גבי LCD גרפי באמצעות 8051:
כדי להציג תמונה על גבי LCD גרפי, ראשית עלינו להמיר את התמונה לקוד הרכבה, כך שמיקרו-בקר 8051 יוכל להבין ולקרוא אותה. אז עלינו לבצע את הצעדים הבאים להמרת תמונה לקוד HEX:
שלב 1: ראשית עלינו להוריד יישום הממיר תמונה (בפורמט BMP) לקוד הרכבה. אז הורד את יישום המרת התמונות BMP2ASM מקישור זה, לחץ לחיצה ימנית על הקישור ואז לחץ על שמור קישור כ…
שלב 2: לאחר מכן, בחר את התמונה שבה ברצונך להציג על LCD הגרפי ו להמיר אותו לתוך BMP, (אם הוא לא בפורמט BMP כבר) באמצעות כל יישום כמו צבע MS, פוטושופ וכו 'או שאתה יכול למצוא באתר מקוון רב להמרה בפורמט תמונה. יש לנו תמונה מתחת ל- BMP, בגודל 128x64:
שלב 3: כעת חילץ את קובץ BMP2ASM.zip, שהורדנו בשלב 1 ופתח את Bmp2asm.exe בתוכו, ובחר את תמונת ה- BMP.
שלב 4: כעת לחץ על "המר" בחלון היישום BMP2ASM.
שלב 5: לאחר מכן העתק את הקוד שנוצר והדבק בתוכנית 8051 ב- Keil uVision. בצע כמה שינויים וקבץ את הקוד.
עכשיו הקוד שלך מוכן להעלאה במיקרו-בקר 8051.
הסבר מעגל:
חיבורי מעגלים, עבור ממשק LCD גרפי למיקרו-בקר 8051, קלים וכמעט כמו חיבור LCD 16x2 ל- 8051. אבל LCD 16x2 כולל 16 פינים ו- GLCD כולל 20 פינים.
סיר 10K משמש להגדרת ניגודיות ל- GLCD. בקרת סיכות של RS GLCD, R / W ו- E מחוברים ישירות 89C52 סיכה P1.0 מספר, P1.1 ו P1.2. סיכות בחר שבב CS1 ו- CS2 של LCD מחוברות לסיכה P1.3 ו- P1.4 בהתאמה. סיכות נתונים DB0-DB7 מחוברות ישירות ב- PORT P2. וסת מתח 7805 משמש לאספקת 5 וולט רגילה. בסרטון הדגמה השתמשתי באספקת החשמל של ארדואינו.
הסבר על תכנות:
ראשית כל, אנו כוללים בתוכנו קבצי כותרת נדרשים ומגדירים סיביות עבור סיכות בקרה ונתונים של GLCD.
#לִכלוֹל
אחריה, יצרנו פונקציית עיכוב.
עיכוב חלל (int itime) {int i, j; עבור (i = 0; i
הפונקציה void lcd_disp_on () משמשת להפעלת התצוגה.
פונקציה void setCursorY (int y) נוצרת להגדרת העמודה ב- GLCD ופונקציה void setCursorX (int x) נוצרת להגדרת העמוד ב- GLCD. קובץ הקוד השלם ניתן להלן בסעיף הקוד.
לאחר הגדרת העמודה והעמוד, כתבנו פונקציה לשליחת פקודה ונתונים ל- GLCD.
בטל lcdprint (char dat, גודל int) {לא חתום int i; עבור (i = 0; i
בשינה (ראשית ריקה) פונקציה, שנבהיר GLCD ולאחר מכן להגדיר טור ו עמ'. לאחר מכן, שלח נתונים ל- LCD באמצעות פונקציית lcdprint ריק (char dat, int גודל) .
בטל main () {int x, y; P3 = 0xff; ואילו (1) {lcdclear (); עבור (y = 0; y <8; y ++) {עבור (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (תמונה, x); }}…………………..
זרימת קוד:
- ראשית כאשר אנו מפעילים את המערכת, התוכנית מנקה את ה- GLCD ומפעילה את התצוגה.
- לאחר מכן הגדר את הסמן לעמודה, משם אנו רוצים לכתוב את הנתונים.
- לאחר מכן הגדר את הסמן לדף, משם אנו רוצים לכתוב את הנתונים.
- כעת התוכנית שולחת נתונים למיקום הנבחר בזה אחר זה עד 128X8 פעמים. מכיוון ש- GLCD כולל 8 עמודים ו -128 עמודות.