- התכוננות לתכנות:
- יצירת פרויקט חדש באמצעות MPLAB-X:
- היכרות עם רישומי התצורה:
- הגדרת ביטי התצורה ב- MPLAB-X:
- תכנות PIC להבהוב נורית:
- תרשים מעגלים וסימולציית פרוטאוס:
זו ההדרכה השנייה של סדרת ההדרכות שלנו ב- PIC. במדריך הקודם שלנו התחלנו עם מיקרו-בקר PIC: מבוא ל- PIC ו- MPLABX, למדנו את הדברים הבסיסיים אודות מיקרו-הבקר שלנו, התקנו גם את התוכנה הנדרשת ורכשנו מתכנת PicKit 3 חדש בו נשתמש בקרוב. עכשיו אנחנו מוכנים להתחיל עם תוכנית ה- LED המהבהבת הראשונה שלנו באמצעות ה- PIC16F877A. אנו נלמד גם על רישומי תצורה במדריך זה.
הדרכה זו מצפה שהתקנת את התוכנה הנדרשת במחשב שלך ואתה יודע כמה יסודות ראויים לגבי ה- PIC MCU. אם לא, אנא קפץ בחזרה להדרכה הקודמת והתחל משם.
התכוננות לתכנות:
מכיוון שהחלטנו להשתמש ב- PIC16F877A, עם מהדר XC8 הבה נתחיל בגיליון הנתונים שלהם. אני ממליץ לכולם להוריד את גליון הנתונים של PIC16F877A ואת מדריך המהדר XC8, מכיוון שנתייחס אליהם לעתים קרובות ככל שאנו מתקדמים במדריך שלנו. זה תמיד נוהג לקרוא את גליון הנתונים השלם של כל MCU לפני שנתחיל לתכנת איתו.
עכשיו, לפני שאנחנו פותחים את ה- MPLAB-X שלנו ומתחילים לתכנת, יש כמה דברים בסיסיים שצריך להיות מודע אליהם. בכל מקרה, מכיוון שזו התוכנית הראשונה שלנו, אני לא רוצה להטריד אתכם אנשים עם הרבה תיאוריה אבל אנחנו נעצור פה ושם בזמן שאנחנו מתכנתים ואני אסביר לכם את הדברים ככאלה. אם אין לך מספיק זמן לקרוא את כל אלה, אז פשוט הצץ וקפץ לסרטון שבתחתית הדף.
יצירת פרויקט חדש באמצעות MPLAB-X:
שלב 1: הפעל את ה- MPLAB-X IDE שהתקנו במחלקה הקודמת, לאחר הטעינה הוא אמור להיראות כך.
שלב 2: לחץ על קבצים -> פרוייקט חדש, או השתמש במקש הקיצור Ctrl + Shift + N. תקבל את ה- POP-UP הבא, ממנו עליך לבחור פרויקט עצמאי ולחץ על הבא.
שלב 3: כעת עלינו לבחור את המכשיר שלנו לפרויקט. אז הקלד כמו PIC16F877A מעל החלק הנפתח בחר מכשיר . לאחר שתסיים זה צריך להיות ככה ואז לחץ על הבא.
שלב 4: העמוד הבא יאפשר לנו לבחור את הכלי לפרויקט שלנו. זה יהיה PicKit 3 עבור הפרויקט שלנו. בחר PicKit 3 ולחץ על הבא
שלב 5: העמוד הבא יבקש לבחור את המהדר, בחר את המהדר XC8 ולחץ על הבא.
שלב 6: בדף זה עלינו לתת שם לפרויקט שלנו ולבחור את המיקום שבו יש לשמור את הפרויקט. קראתי לפרויקט זה כ- Blink ושמרתי אותו על שולחן העבודה שלי. אתה יכול לתת שם ולשמור אותו בצורה המועדפת עליך. הפרויקט שלנו יישמר כתיקיה עם סיומת .X, שניתן להפעיל ישירות על ידי MAPLB-X. לחץ על סיום לאחר סיום.
שלב 7: זהו זה !!! הפרויקט שלנו נוצר. החלון השמאלי ביותר יציג את שם הפרויקט (Here Blink), לחץ עליו כדי שנוכל להציג את כל הספריות בתוכו.
על מנת להתחיל בתכנות עלינו להוסיף קובץ C ראשי, בתוך ספריית קבצי המקור שלנו. לשם כך פשוט לחץ באמצעות לחצן העכבר הימני על קובץ המקור ובחר חדש -> C קובץ ראשי, כפי שמוצג בתמונה למטה.
שלב 8: תופיע תיבת הדו-שיח הבאה בה יש להזכיר את שם קובץ ה- C. קראתי שוב ב- Blink, אבל הבחירה נותרה לך. תן שם לשם בעמודה שם קובץ ולחץ על סיום.
שלב 9: לאחר יצירת הקובץ הראשי של C, ה- IDE יפתח אותו עבורנו עם כמה קודי ברירת מחדל בו, כפי שמוצג להלן.
שלב 10: זהו זה, כעת אנו יכולים להתחיל לתכנת את הקוד שלנו בקובץ C הראשי. בקוד ברירת המחדל לא ישמש בהדרכות שלנו. אז בואו נמחק אותם לחלוטין.
היכרות עם רישומי התצורה:
לפני שמתחילים לתכנת מיקרו-בקר כלשהו עלינו לדעת על רישומי התצורה שלו.
אז מהם רושמי התצורה האלה, איך ולמה עלינו להגדיר אותם?
למכשירי ה- PIC מספר מיקומים המכילים את סיביות התיקון או הנתיכים. סיביות אלה מציינות את פעולת המכשיר הבסיסית, כגון מצב מתנד, טיימר כלב שמירה, מצב תכנות והגנה על קוד. יש להגדיר ביטים אלה בצורה נכונה על מנת להריץ את הקוד אחרת יש לנו מכשיר שאינו פועל . לכן חשוב מאוד לדעת על רישומי התצורה הללו עוד לפני שנתחיל עם תוכנית ה- Blink שלנו.
על מנת להשתמש ברשומות התצורה הללו עלינו לקרוא את גליון הנתונים ולהבין מהם הסוגים השונים של סיביות התצורה הזמינים ותפקידיהם. ניתן להגדיר או לאפס ביטים אלה על פי דרישות התכנות שלנו באמצעות פרגמת תצורה.
לפרגמה יש את הצורות הבאות.
הגדרת תצורה של פרגמה = ערך ערך # רישום תצורת פרגמה = ערך
כאשר ההגדרה היא מתאר הגדרת תצורה, למשל, WDT ומצב הוא תיאור טקסטואלי של המצב הרצוי, למשל OFF. שקול את הדוגמאות הבאות.
# pragma config WDT = ON // הפעל את טיימר כלב השמירה
לְהִרָגַע!!….. תירגע !!…. תירגע !!…...
אני יודע שזה נכנס יותר מדי לראש שלנו והגדרת סיביות תצורה אלה עשויה להיראות קצת קשה עבור מתחיל !! אבל, זה בהתרסה לא עם ה- MPLAB-X שלנו.
הגדרת ביטי התצורה ב- MPLAB-X:
Microchip הפך את התהליך המעייף הזה להרבה יותר קל באמצעות ייצוגים גרפיים של הסוגים השונים של סיביות תצורה. אז עכשיו כדי לקבוע אותם עלינו פשוט לבצע את השלבים הבאים.
שלב 1: לחץ על חלון -> תצוגת זיכרון PIC -> ביטים תצורה. כפי שמוצג מטה.
שלב 2: זה אמור לפתוח את חלון Bits Configuration בתחתית IDE שלנו כמוצג להלן. זה המקום בו אנו יכולים להגדיר כל אחד מקבצי התצורה בהתאם לצרכים שלנו. אסביר על כל אחד מהביטים ומטרתו תוך כדי התקדמות השלבים.
שלב 3: הביט הראשון הוא ביט בחירת המתנד.
ניתן להפעיל את PIC16F87XA בארבעה מצבי מתנד שונים. ניתן לבחור את ארבעת המצבים הללו על ידי תכנות שתי סיביות תצורה (FOSC1 ו- FOSC0):
- LP קריסטל בעל הספק נמוך
- XT קריסטל / מהוד
- HS מהיר גביש / מהוד
- נגן RC / קבלים
עבור הפרויקטים שלנו אנו משתמשים ב- 20Mhz Osc ולכן עלינו לבחור את HS מהתיבה הנפתחת.
שלב 4: הסיבית הבאה תהיה טיימר כלב השמירה שלנו אפשר ביט.
טיימר כלב השמירה הוא מתנד RC הפועל בחינם, שאינו דורש רכיבים חיצוניים. מתנד RC זה נפרד מהמתנד RC של סיכת OSC1 / CLKI. פירוש הדבר ש- WDT יפעל גם אם השעון על סיכות OSC1 / CLKI ו- OSC2 / CLKO של המכשיר הופסק. במהלך פעולה רגילה, פסק זמן של WDT מייצר איפוס מכשיר (איפוס טיימר כלב). סיבית ה- TO במרשם הסטטוס תימחק לאחר פסק זמן של טיימר כלב. אם הטיימר לא מנוקה בקידוד התוכנה שלנו, כל ה- MCU יתאפס בכל הצפת טיימר WDT. ניתן להשבית את ה- WDT לצמיתות על ידי ניקוי סיבית התצורה.
אנו לא משתמשים ב- WDT בתוכנית שלנו, אז תן לנו לנקות את זה, על ידי בחירה ב- OFF מהתיבה הנפתחת.
שלב 5: הביט הבא יהיה Bit-up timer timer.
טיימר ההפעלה מספק פסק זמן סמלי קבוע של 72 ms בהפעלה רק מה- POR. טיימר ההפעלה פועל על מתנד RC פנימי. השבב נשמר באיפוס כל עוד ה- PWRT פעיל. עיכוב הזמן של ה- PWRT מאפשר ל- VDD לעלות לרמה מקובלת. ביט תצורה מסופק כדי להפעיל או להשבית את ה- PWRT.
לא נצטרך עיכובים כאלה בתוכנית שלנו, אז בואו נשבית את זה גם.
שלב 6: הביט הבא יהיה תכנות המתח הנמוך.
סיבית ה- LVP של מילת התצורה מאפשרת תכנות ICSP במתח נמוך. מצב זה מאפשר לתכנת את המיקרו-בקר באמצעות ICSP באמצעות מקור VDD בתחום מתח ההפעלה. זה רק אומר ש- VPP לא צריך להביא ל- VIHH אלא ניתן להשאיר אותו במתח ההפעלה הרגיל. במצב זה, סיכת RB3 / PGM מוקדשת לפונקציית התכנות ומפסיקה להיות סיכת קלט / פלט למטרות כלליות. במהלך התכנות, VDD מוחל על סיכת ה- MCLR. כדי להיכנס למצב תכנות, יש להחיל VDD על ה- RB3 / PGM בתנאי שמוגדר סיבית ה- LVP.
הבה נכבה את ה- LVP כדי שנוכל להשתמש ב- RB3 כסיכת קלט / פלט. לשם כך, פשוט כבה את התיבה באמצעות התיבה הנפתחת.
שלב 7: הביטים הבאים יהיו ביטים EEPROM ו- Program Memory Memory. אם סיבית זו מופעלת, לאחר שתוכנת ה- MCU אף אחד לא יביא את התוכנית שלנו מהחומרה. אבל בינתיים בואו נעזוב את כל השלושה כבויות.
לאחר שההגדרות נעשות בהתאם להוראות, תיבת הדו-שיח אמורה להיראות ככה.
שלב 8: כעת לחץ על צור קוד מקור לפלט, הקוד שלנו ייווצר כעת רק העתק אותו יחד עם קובץ הכותרת והדבק בקובץ C של Blink.c, כפי שמוצג להלן.
זה עבודת התצורה שלנו נעשית. אנו יכולים לקבל תצורה זו לכל הפרויקטים שלנו. אבל אם אתה מעוניין תוכל להתעסק איתם מאוחר יותר.
תכנות PIC להבהוב נורית:
בתוכנית זו אנו נשתמש במיקרו-בקר PIC שלנו כדי להבהב נורית מחוברת לסיכת קלט / פלט. בואו נסתכל על סיכות ה- I / O השונות הזמינות ב- PIC16F877A שלנו.
כפי שמוצג לעיל PIC16F877 כולל 5 יציאות קלט / פלט בסיסיות. הם מסומנים בדרך כלל על ידי PORT A (RA), PORT B (RB), PORT C (RC), PORT D (RD) ו- PORT E (RE). יציאות אלה משמשות לממשק קלט / פלט. בבקר זה, "PORT A" הוא רק 6 ביטים (RA-0 ל- RA-5), "PORT B", "PORT C", "PORT D" הם רק 8 ביטים (RB-0 ל- RB-7, RC-0 ל- RC-7, RD-0 ל- RD-7), "PORT E" רוחב 3 סיביות בלבד (RE-0 ל- RE-2).
כל היציאות הללו דו כיווניות. כיוון הנמל נשלט באמצעות רושמי TRIS (X) (TRIS A המשמש לקביעת כיוון PORT-A, TRIS B משמש לקביעת הכיוון ל- PORT-B וכו '). הגדרת TRIS (X) סיבית '1' תגדיר את סיבית ה- PORT (X) המתאימה כקלט. ניקוי סיבית '0' של TRIS (X) יקבע את סיבית ה- PORT (X) המתאימה כפלט.
עבור הפרויקט שלנו עלינו להכין את הפין RB3 של PORT B כפלט כדי שניתן יהיה לחבר אליו את ה- LED שלנו. הנה קוד לד מהבהב עם מיקרו-בקר PIC:
#לִכלוֹל
ראשית ציינו את תדר הקריסטל החיצוני באמצעות #define _XTAL_FREQ 20000000. ואז בפונקציה main () הריקנית , הנחנו את ה- MCU שלנו שאנחנו הולכים להשתמש ב- RB3 כפלט (TRISB = 0X00;) . ואז סוף סוף נעשה שימוש בלולאה בזמן אינסופי כך שהנורית המהבהבת תימשך לנצח. על מנת למצמץ נורית LED עלינו פשוט להפעיל ולכבות אותו עם עיכוב מורגש.
לאחר סיום הקידוד, בנה את הפרויקט באמצעות הפעלה -> פקודת הפקודה הראשית של הפרויקט. זה אמור להרכיב את התוכנית שלך. אם הכל בסדר (כמו שצריך) קונסולת פלט בתחתית המסך תציג הודעת BUILD SUCCESSFUL, כפי שמוצג בתמונה למטה.
תרשים מעגלים וסימולציית פרוטאוס:
ברגע שבנינו פרוייקט ואם Build יצליח, היה נוצר קובץ HEX ברקע IDE שלנו. ניתן למצוא קובץ HEX זה בספריה הבאה
זה עשוי להשתנות מבחינתך אם שמרת במקום אחר.
כעת, בואו נפתח במהירות את פרוטאוס שהתקנו מוקדם יותר וניצור סכימות לפרויקט זה. אנחנו לא מתכוונים להסביר כיצד לעשות זאת בהקשר לפרויקט זה. אבל לא לדאוג, מוסבר בסרטון למטה. ברגע שאתה עוקב אחר ההוראות ובונה את הסכימות זה אמור להיראות ככה
כדי לדמות את הפלט, לחץ על כפתור ההפעלה בפינה השמאלית התחתונה של המסך לאחר טעינת קובץ ה- Hex. זה צריך להבהב את הנורית המחוברת ל- RB3 של ה- MCU. אם יש לך בעיה כלשהי בבקשה צפה בסרטון, אם עדיין לא נפתר השתמש בסעיף ההערות לעזרה.
כעת ביצענו את הפרויקט הראשון שלנו עם מיקרו - בקר PIC ואמתנו את הפלט באמצעות תוכנת סימולציה. עבור לצבוט עם התוכנית וצפה בתוצאות. עד שניפגש בפרויקט הבא שלנו.
אהה רגע !!
בפרויקט הבא נלמד כיצד לגרום לכך לעבוד על חומרה ממשית. לשם כך נצטרך את הכלים הבאים לשמור עליהם מוכנים. עד אז למידה שמחה !!
- פיקיט 3
- PIC16F877A IC
- בעל סיכת 40 פינים
- לוח Perf
- 20Mhz קריסטל OSC
- סיכות ברגסטיק נקבה וזכר
- קבלים 33pf - 2Nos
- נגד 680 אוהם
- נורית LED בכל צבע
- ערכת הלחמה.