תוכן עניינים:

שעון תצוגת LED מטריקס זעיר: 8 שלבים
שעון תצוגת LED מטריקס זעיר: 8 שלבים

וִידֵאוֹ: שעון תצוגת LED מטריקס זעיר: 8 שלבים

וִידֵאוֹ: שעון תצוגת LED מטריקס זעיר: 8 שלבים
וִידֵאוֹ: עדן חסון ואודיה - הנשיקה! 😱 2024, יולי
Anonim
Image
Image
שעון תצוגת LED מטריקס זעיר
שעון תצוגת LED מטריקס זעיר
שעון תצוגת LED מטריקס זעיר
שעון תצוגת LED מטריקס זעיר
שעון תצוגת LED מטריקס זעיר
שעון תצוגת LED מטריקס זעיר

תמיד רציתי שיהיה לי שעון שולחן עבודה מיושן, שנראה כמו משהו מסרטי שנות ה -90, עם פונקציונליות צנועה למדי: שעון בזמן אמת, תאריך, שינוי תאורה ברקע, ביפר ואפשרות אזעקה. לכן, יש לי רעיון לבנות אחד: מכשיר דיגיטלי, המבוסס על מיקרו -בקר עם כל התכונות שהזכרתי למעלה, ומופעל באמצעות USB - או מחשב אישי או כל מטען USB נייד. מכיוון שרציתי להפוך אותו לתכנות, עם תפריטים והתאמת הגדרות, מיקום MCU היה בלתי נמנע בפרויקט זה. ATMEGA328P IC (שכל לוח Arduino Uno מורכב ממנו) נבחר להיות "המוח" של המעגל (אם כבר מדברים עליו, פשוט היו לי הרבה מהם). שילוב של חלקים אלקטרוניים כ- RGB LED, שבב שמירת זמן טעינת טעינה וכפתורי לחיצה, אפשר את לידת הפרויקט כולו-ניתן לתכנת שעון שולחן עבודה בגודל קטן בגודל קטן לתכנות.

אז אחרי שסיקרנו את הישות של הפרויקט, בואו לבנות אותו

שלב 1: הרעיון

הרעיון
הרעיון

כפי שהוזכר קודם לכן, המכשיר שלנו מכיל כמה תצוגות מטריקס LED יפות, תאורה אחורית LED RGB משתנה, שבב שמירת זמן לטעינת טעינה, יחידת אספקת חשמל USB נוחה ומארז בגודל קטן.

נתאר את תרשים בלוק פעולת המכשיר לפי חלקים:

1. יחידת ספק כוח:

מכיוון שהמכשיר פועל על 5 וולט DC, רכיב אספקת החשמל מורכב משני מעגלים נפרדים:

  • כניסת מיקרו USB - למטען ישיר / ספק כוח.
  • מעגל ווסת מתח לינארי 5V מבוסס על LM7805 IC.

מעגל ה- IC LM7805 הוא אופציונלי, אלא אם אתה מעדיף ליישם זמינות קלט שונה של ספק כוח. במכשיר שלנו, נעשה שימוש ב- PSU מיקרו USB.

2. יחידת מיקרו -בקר:

מיקרו -בקר ATMEGA328P, פועל כ"מוח "של כל המכשיר. מטרתו היא לתקשר עם כל המעגלים ההיקפיים, לספק את הנתונים הדרושים ולשלוט בממשק המשתמש של המכשיר. מכיוון שהמיקרו -בקר הנבחר הוא ATMEGA328P, נצטרך Atmel Studio וידע בסיסי ב- C (תרשימים ורצפי תכנות מתוארים בשלבים נוספים).

3. מעגל שעון בזמן אמת:

המעגל השני בחשיבותו במכשיר. מטרתו לספק נתוני תאריך ושעה, עם דרישה לאחסונם, ללא תלות בחיבור לחשמל קלט, כלומר נתוני זמן מתרעננים במצב בזמן אמת. על מנת לגרום לרכיב RTC להמשיך ולשנות נתוני זמן / תאריך, מתווספת למעגל סוללת תאי מטבע 3V. ה- IC הוא DS1302, פעולתו מתוארת בשלבים נוספים.

4. ממשק קלט - מתגי לחצנים:

מתגי PB קלט מספקים ממשק קלט למשתמש. מתגים אלה מעובדים בתוכנית המוגדרת על ידי MCU ושליטה במכשיר.

5. תצוגת מטריקס LED

תצוגת המכשיר מורכבת משתי מטריצות LED אלפאנומריות אלפאנומריות עטופות IC, כל אחת מהן כוללת 4 תווים של מטריצת LED זעירה 5x7. הצגים הללו פשוטים לשימוש, נתמכים בתקשורת תלת-חוטית ובגודל קטן-כל מה שאנחנו צריכים בפרויקט זה.

6. תאורה אחורית RGB:

תאורה אחורית המשנה את הצבעים מבוססת על LED RGB חיצוני, הנשלט על ידי אותות PWM המגיעים מה- MCU. בפרויקט זה, RGB LED כולל 4 סיכות: R, G, B ונפוץ, כאשר לוח הצבעים R, G, B נשלט באמצעות PWM על ידי MCU.

7. זמזם:

מעגל זמזם משמש כפלט קול, בעיקר למטרות אזעקה. מתג BJT משמש כדי לספק מספיק זרם לרכיב הבאזר, כך שעוצמת הקול שלו תהיה חזקה מספיק כדי להעיר אדם חי.

שלב 2: חלקים ומכשירים

חלקים ומכשירים
חלקים ומכשירים

I. אלקטרוניקה:

א רכיבים משולבים ופעילים:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - תצוגות AVAGO
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

ב. רכיבים פסיביים:

  • נגדים:

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • קבלים:

    • 3 x 0.1uF
    • 1 x 0.47uF
    • 1 x 100uF
    • 2 x 22pF
  • 1 x 4 פינים RGB LED
  • 1 x זמזם
  • 1 x 32.768KHz קריסטל

ג מחברים:

  • 1 x מחבר מיקרו USB
  • מחבר 2 x 6 פינים סטנדרטי (100mil) סטנדרטי.
  • מחבר 2 x 4 פינים סטנדרטי (100mil) סטנדרטי.
  • 1 x מארז סוללות עם מטבעות.

ד שונות:

  • 3 x מתגי לחיצת כפתור SPST
  • 1 x 3V סוללת מטבעות.

ה PSU אופציונלי:

  • 1 x LM7805 - וסת לינארי
  • 2 x 0.1uF כובע
  • כובע 2 x 100uF

II. מֵכָנִי:

  • 1 x מארז פלסטיק
  • 4 x קבצים מצורפים מגומי
  • 1 x לוח הלחמה אב טיפוס
  • 1 x כותרת MCU (במקרה של כשל במיקרו -בקר)
  • 2 x ברגים קטנים של 8 מ"מ
  • 2 x 8 מ"מ מכונות כביסה

III. מכשירים וחומרים:

  • חוטי הלחמה
  • צינורות מתכווצים
  • פח הלחמה
  • מלחם
  • מַחתֵך
  • צבת
  • מַלְקֶטֶת
  • מקדחות
  • קובץ בגודל קטן
  • מברגים שונים
  • קליפר
  • מולטימטר
  • לוח לחם (אופציונלי)
  • כבל מיקרו USB
  • קובץ בגודל בינוני
  • אקדח דבק חם
  • מתכנת AVR ISP

IV. תִכנוּת:

  • Atmel Studio 6.3 או 7.0.
  • ProgISP או AVRDude
  • Microsoft Excel (ליצירת תווים לתצוגה)

שלב 3: תיאור סכמטי

תיאור סכמטי
תיאור סכמטי

על מנת להקל על הבנת פעולתו של המעגל, שלב הסכימות מחולק לשבע קבוצות משנה. עליך לשים לב כי שמות רשת מוגדרים בדף הסכמתי מגדירים גם קשרים בין מעגלי משנה נפרדים של המכשיר.

א לוח רכיבים עיקריים:

כפי שהוזכר קודם לכן, כל מעגלי המשנה המתאימים שאנו רוצים שיהיו "בתוך" המכשיר, מונחים על לוח אב טיפוס אחד. בואו נמשיך להסבר על פעולת המעגלים הממוקמים בלוח הראשי:

1. מעגל מיקרו -בקר:

MCU המשמש בפרויקט זה הוא ATMEGA328P. הוא מופעל על ידי ספק כוח חיצוני 5V, במקרה זה - מחבר מיקרו USB. כל סיכות הקלט/פלט המתאימות מחוברות בהתאם לדרישות העיצוב. קל להבין מיפוי קלט/פלט של יציאות, מכיוון שכל שמות הרשת מוגדרים בדיוק כפי שישמשו אותם בשלב התכנות. MCU כולל מעגל איפוס RC פשוט, המשמש גם ברצף תכנות ובאתחול הספק.

החלק המכריע של MCU הוא מעגל התכנות. יש מחבר תכנות בעל 6 פינים - J5, וודא כי רשתות VCC, GND ו- RESET משותפות למתכנת ISP החיצוני ולוח הרכיבים העיקריים.

2. מעגל שעון בזמן אמת:

המעגל הבא, הוא חלק היקפי עיקרי בפרויקט. DS1302 הוא IC טעינת זמן לטעון טעינה, המספקת ערכי זמן ותאריך מעובדים ליחידת העיבוד שלנו. DS1302 מתקשר עם MCU באמצעות ממשק 3 חוטים, בדומה לתקשורת SPI בת 3 החוטים, בשורות הבאות:

  • RTC_SCK (פלט): מבצע נהיגה ודגימת נתונים המועברים בקו ה- SDO.
  • RTC_SDO (I/O): קו נהיגה של נתונים. משמש כקלט ל- MCU כאשר נתוני זמן/תאריך מתקבלים וכפלט בעת העברת נתונים (ראה שלב תכנות יסודות להסבר נוסף).
  • RTC_CE: (פלט): קו הפעלת העברת נתונים. כאשר הוא מוגדר גבוה על ידי MCU, הנתונים מוכנים להעברה/קבלה.

DS1302 דורש מתנד קריסטל חיצוני של 32.768KHz לצורך התנהגות המעגל המתאימה. על מנת להימנע מסחף גדול במערכת ספירת המעגלים (תופעות הסחף פשוט בלתי נמנעות במעגלים משולבים מסוג זה), יש להציב שני קבלים כיול על כל סיכת קריסטל (ראה חלקים X1, C8 ו- C9 בתרשימים). 22pF היו ערכים אופטימליים לאחר הרבה ניסויים עם שמירת זמן אמצעים בפרויקט זה, לכן, כאשר אתה עומד להלחם את המעגל לגמרי, וודא שיש אפשרות להחליף קבלים אלה עם ערכים אחרים. אבל 22pF ללוח בגודל קטן עבד די טוב לסחיפה קטנה מאוד (7 שניות לחודש).

הרכיב האחרון אך לא פחות במעגל זה-יש להניח על הלוח סוללת 3V מטען בכדי לספק מספיק אנרגיה ל- DS1302 IC כך שתמשיך את פעולת ספירת הזמן.

4. 8 תווים LED מטריקס:

תצוגת המכשיר מבוססת על 2 x 4 תווים LED של מטריקס תצוגת LED, מתוכנתים באמצעות ממשק תלת-חוטי, בדומה ל- DS1302 של מעגל ה- RTC, בהפרש יחיד, כי קו מתן הנתונים (SDI) מוגדר כפלט MCU (אלא אם כן אתה רוצה להוסיף יכולת בדיקת מצב למעגל התצוגה שלך). התצוגות משולבות בתוסף 3-Wire מסדרה, ולכן שני ה- IC פועלים כמכשיר תצוגה יחיד, כאשר יש אפשרות לתכנת אותו עבור כל הגדרת תווי התצוגה (ראה שילוב סדרות SPI). כל שמות הרשת של המעגל תואמים את החיבורים המתאימים ל- MCU - שים לב שיש רשתות משותפות, שמבססות תקשורת בין הצגים, ואין צורך לחבר את שני ממשקי התקשורת לתצוגת ה- MCU. תכנות ורצף בניית תווים מוגדרים בשלבים נוספים. מעגל ממשק משתמש:

ממשק המשתמש מחולק לשתי קבוצות משנה-מערכות כניסה ויציאה: מערכת כניסה: המכשיר עצמו מספק קלט משתמש המוגדר כשלושה מתגי לחצן SPST, עם נגדי משיכה נוספים, על מנת להניע לוגיקה מוגדרת HIGH או LOW ל את ה- MCU. מתגים אלה מספקים מערכת בקרה לכל האלגוריתם המתוכנת, שכן יש צורך בהתאמת ערכי זמן/תאריך, בקרת תפריטים וכן הלאה.

6. מערכת פלט:

מעגל זמזם מספק פלט קול בשני המצבים, תפריט מיתוג מכיר צליל ואלגוריתם אזעקה. טרנזיסטור NPN משמש כמתג, המספק מספיק זרם לזמזם, וגורם לו להישמע באינטנסיביות מתאימה. זמזם נשלט ישירות על ידי תוכנת MCU. RGB LED משמש כחלק מהתאורה האחורית של המכשיר. הוא נשלט ישירות על ידי MCU, עם ארבע אפשרויות לבחירת תאורה אחורית: מצבי אדום, ירוק, כחול, PWM או כבוי. שימו לב שלנגדים המחוברים בסדרה לסיכות LED R, G ו- B יש ערכים שונים, שכן לכל צבע יש עוצמה שונה על פני זרם קבוע. עבור נוריות LED ירוקות וכחולות ישנם אותם מאפיינים, כאשר לאדום יש עוצמה מעט גדולה יותר. כך LED אדום מחובר לערך ההתנגדות הגדול יותר - במקרה זה: 180Ohm (ראה הסבר LED RGB).7. מחברים:

מחברים ממוקמים על הלוח הראשי על מנת לאפשר תקשורת בין רכיבי ממשק חיצוניים כגון: תצוגה, LED RGB, מתגי כניסת כפתורים ולחצנים ולוח ראשי. כל מחבר מוקדש למעגל שונה, ולכן מורכבות הרכבת המכשיר יורדת באופן דרמטי. כפי שאתה יכול לראות בתרשימים, כל סדר רשתות מחברים הוא אופציונלי וניתן להחליף אותו, אם זה הופך את תהליך החיווט לפשוט הרבה יותר. לאחר שסקרנו את כל מושגי הסכימות, בואו נמשיך לשלב הבא.

שלב 4: הלחמה

הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה

כנראה עבור חלק מאיתנו זהו השלב הקשה ביותר בפרויקט כולו. על מנת להקל על ביצוע המכשיר בהקדם האפשרי, יש להשלים את תהליך ההלחמה ברצף הבא:

1. מחבר MCU ומחבר תכנות: מומלץ לא להלחים כותרת 28 פינים במקום MCU עצמו על מנת שתוכל להחליף IC MCU במקרה של כשל. וודא שניתן לתכנת ולהפעיל את המכשיר. מומלץ להניח מדבקת תיאור סיכה על מחבר התכנות (ראה תמונה שלישית).

2. מעגל RTC: לאחר הלחמת כל החלקים הדרושים, ודא שקל להחליף קבלים. אם ברצונך להשתמש במארז סוללות מטבע 3V - וודא שהוא תואם את מידות מארז המכשיר.

3. תצוגה: יש להלחם שני מחשבי IC לתצוגה על הלוח הנפרד בגודל קטן (תמונה 1). לאחר הלחמת כל הרשתות הדרושות, יש צורך בהכנת חוטים מחוץ ללוח (תמונה 4): חוטים אלה צריכים להיות מולחמים ומתנהלים בצד לוח התצוגה, שימו לב כי מתח ומתח מכני המופעל על החוטים לא להשפיע על מפרקי הלחמה בלוח התצוגה.

4. על החוטים מהשלב הקודם, יש להניח מדבקות תוויות - מה שהופך את תהליך ההרכבה לקל בהרבה בשלב הבא. שלב אופציונלי: הוסף מחבר סיכה חד-סיבי לכל חוט (בסגנון ארדואינו).

5. הלחמים הנותרים על הלוח הראשי, כולל רכיבים היקפיים. שוב, מומלץ להציב מדבקות עם תיאור סיכה לכל מחבר.

6. מעגל זמזם: זמזם ממוקם בתוך המכשיר, כך שהוא צריך להיות מולחם על הלוח הראשי, אין צורך במחבר המחבר.

7. נורית RGB: על מנת לחסוך מקום בלוח הראשי, הלחמתי את נגדי הסדרה על סיכות הלד, כאשר כל נגד מתאים לצבע התואם שלו ולפין ה- MCU המתאים (תמונה 5).

שלב 5: הרכבה

הרכבה
הרכבה
הרכבה
הרכבה
הרכבה
הרכבה

שלב זה מגדיר את מראה הפרויקט - חשמלי ומכני. אם כל ההערות המומלצות נלקחו בחשבון, תהליך ההרכבה הופך להיות קל מאוד לביצוע. הרצף המפורט שלב אחר שלב מספק מידע מלא על התהליך:

חלק א ': מארז

1. קדוח שלושה חורים, על פי קוטר כפתור הלחיצה (3 מ מ במקרה זה).2. לקדוח חור אחד המיועד לבאזר בצד המארז. ניתן להשתמש בכל קוטר מקדחה רצוי. מקדח חור קטן כבסיס לטחינה בהתאם למחבר ה- USB שעליך להשתמש בו (מיקרו USB במקרה זה). לאחר מכן, בצע טחינה עם הקובץ בגודל קטן, כך שיתאים למידות המחבר. לקדוח חור גדול יחסית כבסיס לטחינה. בצע טחינה עם קובץ בינוני, בהתאם למידות התצוגה. וודא כי ICs תצוגה נמצאים בצד החיצוני של המארז. מקדחה חור בגודל בינוני בתחתית המכשיר, על פי קוטר ה- RGB LED. חלק ב - קבצים מצורפים:

1. הלחם שני חוטים לכל אחד משלושת כפתורי הלחיצה (GND ואות). מומלץ להדביק מדבקות תוויות ומחברים עם סיכה אחת בחוטים.2. צרף ארבעה חוטים מוכנים לסיכות LED RGB. הנח מדבקות תווית וצינורות מתכווצים על מפרקי ההלחמה.3. חבר את ארבע רגלי הגומי בתחתית המכשיר חלק ג - חיבור החלקים:

1. הנח LED RGB בתחתית המארז, חבר אותו למחבר ייעודי בלוח הראשי. צרף אותו בעזרת הדבק החם.2. הצב שלושה מתגי כפתור לחיצה, חבר אותם למחבר ייעודי על הלוח הראשי, חבר אותם בעזרת הדבק החם. הנח את מחבר ה- USB, חבר אותו לסיכות אספקת החשמל של מחבר התכנות (VCC ו- GND). ודא שהקוטביות של קווי אספקת החשמל תואמת חלקים מולחמים. צרף אותו בדבק חם.4. הנח את לוח התצוגה, חבר אותו למחבר ייעודי. צרף אותו בעזרת הדבק החם. הערות:

1. מומלץ להוסיף זוגות בורג-אגוזים למארז הלוח הראשי ולכריכה העליונה (כפי שמוצג במקרה זה).2. על מנת להימנע מכשל בחוטים שבורים, יש לצרף אותם למראהם בתוך המארז.

שלב 6: מבוא תכנות קצר

מבוא תכנות קצר
מבוא תכנות קצר
מבוא תכנות קצר
מבוא תכנות קצר
מבוא תכנות קצר
מבוא תכנות קצר

לאחר שכל החלקים מולחמים, מומלץ לבצע בדיקת מכשירים ראשוניים לפני שתמשיך לשלב ההרכבה הסופי. קוד ה- MCU כתוב ב- C, ו- ATMEGA328P מתוכנת באמצעות כל מתכנת ISP (ישנם סוגים שונים של התקני תכנות Atmel: AVR MKII, AVR DRAGON וכו ' - השתמשתי בתכנת USB ISP זול מה- eBay, הנשלט על ידי תוכנת ProgISP או AVRDude). סביבת התכנות צריכה להיות Atmel Studio 4 ומעלה (אני ממליץ בחום על הגרסאות החדשות ביותר של התוכנה). אם נעשה שימוש במתכנת חיצוני שאינו Atmel Studio מובנה, יש צורך לתת נתיב קובץ hex לתוכנת התכנות (ממוקם בדרך כלל בתיקיית Debug או Release של הפרויקט). וודא כי לפני שתמשיך לשלב ההרכבה, ניתן לתכנת את המכשיר, וכל תהליך בסיסי לבניית וריכוז פרוייקטים ייעודיים של AVR מבוססים על מיקרו -בקר ATMEGA328P (ראה הדרכה של Atmel Studio).

שלב 7: תיאור הקוד

תיאור הקוד
תיאור הקוד
תיאור הקוד
תיאור הקוד

אלגוריתם קוד הגזרה מחולק לשתי שכבות נפרדות למחצה: 1. שכבת ליבה: תקשורת עם מעגלים היקפיים, הגדרת פעולות המכשיר, אתחול והצהרות רכיבים. שכבת ממשק: אינטראקציה בין משתמש למכשיר, פונקציונליות תפריטים, התאמת שעון/זמזם/צבע/אזעקה. רצף התוכנית מתואר בתמונה. 1, כאשר כל בלוק מתאים למצב MCU. התוכנית המתוארת פועלת כ"מערכת הפעלה "בסיסית המספקת ממשק בין חומרה לעולם החיצוני. ההסבר הבא מתאר את פעולת התוכנית החיונית לפי חלקים: חלק א ': שכבת ליבה:

1. אתחול קלט/פלט MCU: קודם כל, יש צורך לאתחל רכיבי חומרה:- קבועים בשימוש בקוד.- קלט/פלט של יציאות- ממשק.- הצהרות תקשורת היקפיות.

2. פונקציות כלליות בסיסיות: חלק מהפונקציות משמשות בלוקי קוד נפרדים, ההגדרות של פעולות על פינים הנשלטים על ידי התוכנה:- הפעלה/השבתה של תקשורת RTC ותצוגת לוח תצוגות.- יצירת/כיבוי צליל זמזם.- שעון 3-Wire פונקציות למעלה/שעון למטה.- הצגת פונקציות ליצירת תווים.3. אתחול היקפי: לאחר הגדרת יציאות קלט/פלט, מתקיימת תקשורת בין הגדרות פונקציות המעגלים. בסיום - MCU מתחיל באתחול של מעגלי RTC ותצוגה באמצעות פונקציות שהוגדרו לעיל.

4. הגדרת פונקציות הליבה: בשלב זה המכשיר מוגדר ומוכן לביצוע תקשורת עם כמה מעגלים היקפיים. פונקציות אלה מגדירות:- בקרת מתג מתג- הפעלת LED RGB (במיוחד PWM)- מחולל גל מרובע באזר.

5. פונקציות תצוגה: לא מצאתי באינטרנט הרבה מידע על מכשירי ה- HSMS בהם השתמשתי, ולכן כתבתי את הספרייה שלה בעצמי. פונקציות התצוגה מספקות פונקציונליות מלאה להצגת תווים, כולל הצגת תווי ASCII וכל מספר שלם. פונקציות נכתבות באופן כללי, כך שאם יש צורך לזמן פונקציות תצוגה מכל חלק בקוד, קל להשתמש בהן מכיוון שהן כלליות על ידי פעולה (לדוגמה: תצוגת מחרוזות, תצוגת תווים בודדים וכו ').

6. פונקציות הפעלת RTC: כל פונקציות ה- RTC נכתבות באופן כללי (בדומה למערך פונקציות התצוגה) בהתאם לפעולה של DS1302 IC. הקוד מבוסס על ספרייה כתובה, הזמינה בווריאציות רבות על gitHub. כפי שתראה בקוד הסופי, ערכת תצוגות ופונקציות RTC כלולות בקבצי.c ו-.h הנפרדים. חלק B - שכבת ממשק:

1. הפונקציה העיקרית: בסעיף main () הריק, יש הצהרה על כל פונקציות האתחול המרכזיות. מיד לאחר האתחול של כל הרכיבים, MCU נכנס ללופ אינסופי, שבו פונקציונליות המכשיר נשלטת על ידי משתמש.

2. מתגים בזמן אמת, תאורה אחורית ובקרת תצוגה: בזמן ריצה בלולאה אינסופית, MCU מבצע רענון בכל חלק של המכשיר. הוא בוחר אילו נתונים להציג, איזה לחצן נלחץ ואיזה מצב תאורה אחורית נבחר.

3. פונקציות תפריט משתמש: לפונקציות אלה יש צורה דמוית עץ (ראו תמונה X), כאשר מערכת התפריט והיררכיה מוגדרות כמכשיר מצב. כל מכונה ממלכתית הנשלטת על ידי קלט משתמש - מתגי לחצנים, ולכן כאשר נלחץ על כפתור לחיצה מתאים - מכונת המדינה תשנה את ערכה. הוא מתוכנן באופן שכל השינויים במכשיר המבוצעים בתפריט משתנים באופן מיידי.

4.החלפת תפריט משתמשים: כאשר קלט המשתמש מסופק, מצב התפריט צריך לשנות את מצבו. אז, פונקציות אלה מספקות שליטה תלויה במשתמש על מכונת מדינה. במקרה הספציפי הזה: הבא, הקודם ואישור.

שלב 8: קוד סופי וקבצים שימושיים

וזה הכל! בשלב זה תוכל למצוא את כל הקבצים הדרושים לך:- תרשימי חשמל- קוד מקור מלא- בונה תווי תצוגה תכונה אופציונלית: יש מגוון תווים הזמינים להצגה בספריית ה- IC של התצוגה, אך חלקם אינם כלולים. אם ברצונך לבנות תווים בעצמך, הוסף מצב רישיות עם הפניה ל- ASCII בפונקציה Print_Character ('') (ראה פונקציות display.c). מקווה שתמצא את זה שימושי:) תודה שקראת!

מוּמלָץ: