זה מאוד יכול לעזור למי שרוצה להתחיל אבל מסתבך.
מיקרו בקר PIC16F84
Microchip הינה החברה אשר מייצרת את סדרת המיקרו בקרים הנקראת PIC. ישנם סוגים רבים ושונים של מיקרו בקרים בסדרה זאת, יש כאלה עם זיכרון בסיסי נמוך, בעלי ממירים מתחים אנלוגים לדיגיטאלים, ואפילו בעלי PWM. אך במדריך זה נתרכז ב PIC16F84. ולאחר שתלמדו איך הוא עובד תוכלו להמשיך מכאן בקלות.
את הרכיב ניתן לתכנת בשפות שונות. במדריך נלמד לתכנת את הרכיב באמצעות שפת אסמבלי. זה לא כזה מסובך ישנם רק 35 פקודות בשפה.
הרגליים של ה- PIC16F84
להלן מופיע תרשים של רגלי הרכיב, כעת נסביר לכם על כל רגל.
RA0 עד RA4
Ra הוא פורט דו כיווני. כלומר, אלו רגליים אשר יכולות להיות מוגדרות בתור קלט או פלט. להלן מספר RA הוא מספר הסיביות (0 עד 4). לכן, יש לנו אחד 5 סיביות כווני הנמל שבו כל ביט יכול להיות מוגדר כמו קלט או פלט.
RB0 עד RB7
RB הוא הפורט דו כיווני השני. שהוא מתנהג בדיוק באותה צורה כמו Ra, אלא ישנם 8 - סיביות מעורבים.
VSS ו VDD
אלו הם כניסות המתח להפעלת הרכיב. VDD היא הכניסה החיובית, ו VSS היא שלילית, או 0V. העל"ל אספקת מתח, כי אתה יכול להשתמש הוא 6V, ואת מינימום 2V
OSC1/CLK ו- OSC2/CLKOUT
רגליים אלה הם המקום שבו אנו מתחברים שעון חיצוני, בעזרת זרם המשתנה בתדירות מסויימת אנו מתזמנים את הפקודות.
MCLR
רגל זאת משמשת כדי למחוק את הזיכרון בתוך PIC (כלומר, כאשר אנחנו רוצים לעשות ריסט לתוכנית). בפעולה הרגילה שלו אנו צריכים לספק לו הספקה מתח רגילה.
INT
זהו הקוד הסודי קלט שיכול להיות בפיקוח. אם את הולכת PIN גבוהה, אנו עלולים לגרום להפעלה מחדש של התוכנית, עצור או כל אחד אחר פונקציה שאנחנו רוצים. אנחנו לא יהיה שימוש רב אחד.
T0CK1
זהו שעון קלט אחר, שבו פועל שעון פנימי. בבידוד היא פועלת על השעון הראשי. גם בזה אנחנו לא נשתמש ממש הרבה.
איך לתכנת את ה- PIC
עד עכשיו למדנו למה משמשת כל רגל ברכיב, כעת נלמד איך מתכנתים את הרכיב.
אך על מנת להכניס את הפקודות לתוך הרכיב צריך מעגל הנקרא צורב, שאותו אנו מחברים למחשב האישי, ובעזרתו "צורבים" פקודות לתוך הגוק. לאחר שיש ברשותנו צורב כזה, משתמשים בתוכנה שניתן להוריד חינם מהאינטרנט, והיא מבצעת את הצריבה.
את הצורב ניתן לבנות על פי סרטוטים מהאינטרנט. אך שימו לב שהצורב תומך ברכיב שברשותכם, או במקרה שבמדריך זה PIC16F84
הדבר הבא שנצטרך הוא תוכנית שממירה את הפקודות לתוך תבנית ש PIC מבין. הכי מומלץ להשתמש בסביבת הפיתוח של חברת מיקרוצ'יפ - MPLAB. היא מבוססת על Windows, והוא כולל עורך, סימולטור, ואסמבלר. את התוכנה ניתן להוריד חינם מאתר האינטרנט של החברה.
מומלץ להשתמש במטריצת לוח ניסויים כדי להפוך את המצב מעגלים.
בשלב הבא נלמד איך לחבר את הפיק למעגל.
חיבור למעגל
אחרי שיש לך כבר רכיב פיק אחד או שניים. הכל טוב ויפה אם נדע איך מתכנתים את ה- PIC בתיאוריה, אבל הלמידה האמיתית מגיעה כאשר אתה מנסה את הקוד על הרכיב ורואה איך זה פועל בעצמך.
בעקרון ישנם יציאות ברגלי הרכיב שנקראות פורטים, לשם אנחנו יכולים לחבר מה שאנחנו רוצים (כגון נורות לד(.
הסרטוט הנ"ל הינו מעגל פשוט ביותר לרכיב. יש לבנות אותו כדי להמשיך.
אספקת מתח של +6 V, הינו המתח המקסימאלי שניתן להזין ברכיב.
C3 הינו קבל שמשמש כדי לצמצם כל רעש אפשרי.
X1 הוא מתנד גבישי בעל תדירות של 4MHz . במקום רכיב זה ניתן להשתמש גם בקבל ונגד, אבל בכל זאת עדיף להשתמש במתנד גבישי משום שהעלות שלו אפסית, והוא יציב יותר.
C1 ו C2 לצמצם כל מקרי oscillations ברחבי קריסטל, ולהיפטר מכל רעש לא רצוי לפני שהוא נכנס לרכיב.
הנה, פשוט לא?
הרגי'סטרים בתוך הפיק
הרגי'סטר הוא מקום בתוך PIC שניתן נכתבים, לקרוא, או שניהם. לחשוב על הרשמה כמו פיסת נייר שבה אתה יכול להסתכל על וכתוב על המידע.
הנתון הבא מציג את המפה בתוך קובץ לרשום את PIC16F84. אל דאגה, אם לא לפגוע דבר כזה בעבר, זה רק כדי להציג בו את חתיכות שונות BITS וכן נמצא בתוך PIC, וכן יסייעו להסביר כמה של פקודות.
ניתן לראות כי ישנם שתי עמודות, בנק 1 ובנק 0.
ימני 1 משמש לשליטה בפועל של מבצע PIC, למשל לומר את אשר PIC סיביות של פורט א הם ואשר הינם קלט פלט. בנק 0 משמש כדי לתפעל את הנתונים.
להלן דוגמה: נניח שאנחנו רוצים לעשות אחד מעט ביציאה גבוהה. ראשית, אנו צריכים ללכת המערבית 1 כדי להגדיר את סיבית מסוימת, או מספר זיהוי אישי, על יציאה של כ של הפלט. לאחר מכן, אנו מגיעים לראש 0 בנק ושלח את ההיגיון 1 (ביט 1) זה הקוד הסודי.
הנפוצים ביותר נרשם בשנת המערבית 1 אנחנו מתכוונים להשתמש הן סטטוס, TRISA ו TRISB. הראשונה מאפשרת לנו לחזור המערבית 0, TRISA מאפשרת לנו לבחור את מספרי זיהוי אישיים ביציאה א הם ואשר הינם פלט קלט, מאפשרת לנו TRISB כדי לבחור את מספר הזיהוי האישי ביציאה נמצא ב ואשר נמצא פלט קלט. בחר הבנק לרשום ב 0 מאפשר לנו לעבור בנק 1.
תן לנו לקחת מקרוב תראי את אלה שלושה הרגיסטרים.
STATUS
כדי לשנות המערבית מ 0 עד 1 המערבית אנו אומרים STAUS הרשמה. אנו עושים זאת על ידי הגדרה של 5 ביט סטטוס הרשמה 1. כדי לחזור ל 0 המערבית, אנו קובעים 5 סיביות של סטטוס הרשמה 0. מעמדה הרשמה הוא בכתובת כתובת 03h (ה 'ח' פירושו הוא מספר הקסאדצימלי).
Tr ו-ISA TRISB.
אלו הן כתובות בכתובת 85h ו 86h בהתאמה. תוכנית סיכה כדי להיות פלט או קלט, אנחנו פשוט לשלוח 0 או 1 כדי הרלוונטיים סיביות של הרשם. עכשיו, זה יכול להיות נעשה בינאריים, או שש . אני אישית משתמש בשניהם, לפי הבינארי האם לעזור לחזות את יציאת. אם אתה לא בקי עם המרת מ בינרי כדי hex ולהיפך, ולאחר מכן להשתמש במחשבון המדעי.
אז, ביציאה א יש לנו 5 מספרי זיהוי אישיים, ולכן 5 BITS. אם אני רוצה להגדיר אחד להזין את מספר הזיהוי האישי, אני שולח'1 'ל םייטנבלרה ביט. אם אני רוצה להגדיר את מספר הזיהוי האישי של פלט , אני קובע את הרלוונטיות ביט ל'0 '. BITS של arranges הם בדיוק באותה צורה כמו את מספר הזיהוי האישי, במילים אחרות מעט RA0 הוא 0, 1 ביט היא RA1, RA2 ביט הוא 2 וכן הלאה. בואו לקחת דוגמה. אם אני רוצה להגדיר RA0, RA3 ו RA4 כפי פלטי, ו RA1 ו RA2 כפי תומושתו, אני שולח את זה: 00110 (06h). שים לב כי הוא אפס מעט מימין, כפי שמוצג:
Port A Pin RA4 RA3 RA2 RA1 RA0
Bit Number 4 3 2 1 0
Binary 0 0 1 1 0
אותו הולך ל TRISB.
Porta ו PORTB
כדי לשלוח את הפלט של אחד מספרי זיהוי אישיים גבוהים, אנחנו פשוט לשלוח'1 'כדי המקבילה שלנו מעט porta PORTB או הרשם. באותו פורמט הבא בתור עבור TRISA ו TRISB רשומים. כדי לקרוא סיכה, אם הוא גבוה או נמוך על שלנו יציאת מספרי זיהוי אישיים, אנו יכולים לבצע בדיקה כדי לראות אם בפרט המקבילה מוגדר מעט גבוה (1) או מוגדר נמוך (0)
לפני שאני נותן דוגמה הקוד, אני צריך להסביר רק עוד שני הרשמה - W ו F.
W
W לרשום את זה בכלל לרשום בו אתה יכול לשים כל ערך שאתה רוצה. לאחר שהוקצה ערך W, אתה יכול להוסיף אותו ערך אחר, או להזיז את זה. אם אתה מקצה אחר ערך W, הן את תוכנם מוחלפים.
קוד דוגמה:
אני אתן לך דוגמא קוד יש לנו על מה בדיוק למדו. אין לנסות לעבד את זה עדיין, אנחנו עושים את זה כשאנחנו מגיעים התוכנית הראשונה שלנו. אני רק מנסה להראות איך הוא למעשה תוכנית לעיל ו להכניס כמה הנחיות בדרך. שאני הולך להקים נמל ת כמפורט בדוגמה לעיל.
ראשית, אנו צריכים לעבור בנק בנק 0 עד 1. אנו עושים זאת באמצעות הגדרת סטטוס הרשמה, אשר הוא כתובת 03h, ביט 5 עד 1.
BSF 03h,5
BSF של אמצעים Bit F. בחר את האות F כלומר, אנחנו הולכים להשתמש בזיכרון מיקום, או הרשמה. אנחנו באמצעות שני מספרים לאחר הנחיה זו - 03h, המהווה את סטטוס רישום כתובת, ואת מספר 5, אשר מתאים ל מספר הסיביות. אז, מה שאנחנו אומרים הוא "בחר ב-bit 5 כתובת 03h עד 1".
אנו נמצאים כעת ב 1 המערבית.
MOVLW b'00110'
W E הן לשים את הערך הבינארי 00110 (האות ב פירושו הוא מספר בינארי) לתוך המטרה שלנו בכלל לרשום W. אני יכול, כמובן, יש לעשות זאת ב hex, במקרה שלנו יהיה הוראה:
MOVLW 06h
או עובד. MOVLW פירושו של 'העבר ערך מילולי לתוך w', אשר באנגלית משמעותו לשים את הערך אחרי ישירות לתוך W הרשמה.
עכשיו אנחנו צריכים לשים את זה על גבי הערך שלנו TRISA להירשם כדי להגדיר את היציאה:
MOVWF 85h
הנחיה זו פירושה "להעביר את התוכן של W לתוך רישום הכתובת הבאה", במקרה זה מצביע על הכתובת TRISA.
הירשם עכשיו TRISA שלנו יש את הערך 00110, או המוצג בצורה גרפית:
Port A Pin RA4 RA3 RA2 RA1 RA0
Binary 0 0 1 1 0
Input/Output O O I I O
עכשיו אנחנו צריכים להגדיר את פורט א מספרי זיהוי אישיים, אנחנו צריכים לחזור אל הבנק כדי לתפעל 0 כל הנתונים.
BCF 03h,5
הנחיה זו עושה את ההפך של BSF. זה אומר "קצת F נקה". שני מספרים כי הם בצע את הכתובת של הרשמה, במקרה זה את סטטוס רישום, ואת מספר הסיביות, במקרה זה מעט 5. אז מה יש לנו הוא בחר לעשות זאת עכשיו מעט 5 שלנו STAUS הרשמה 0
אנחנו עכשיו שוב 0 המערבית.
הנה הקוד יחיד לחסום:
BSF 03h,5 ;Go to Bank 1
MOVLW 06h ;Put 00110 into W
MOVWF 85h ;Move 00110 onto TRISA
BCF 03h,5 ;Come back to Bank 0
קרא זאת באמצעות כמה פעמים, עד שהיא תוכל לבצע את זה. עד כה יש לנו 4 הסתכל ההוראות. רק 31 ללכת!



