הרבה מה יישומי מיקרו-בקר דורשים ספירה של אירועים חיצוניים כגון תדירות רכבות הדופק ויצירת עיכובים פנימיים מדויקים בין פעולות המחשב. ניתן ליישם את שתי המשימות הללו על ידי טכניקות תוכנה, אך לולאות תוכנה לספירה, ועיתוי לא ייתן את התוצאה המדויקת, אלא שלא נעשה פונקציות חשובות יותר. כדי להימנע מבעיות אלה, טיימרים ודלפקים במיקרו-בקרים הם אפשרויות טובות יותר ליישומים פשוטים ובעלות נמוכה. טיימרים ומונים אלה משמשים כ מפריע למיקרו-בקר 8051 .
יש שני טיימרים ודלפקים של 16 סיביות מיקרו-בקר 8051 : טיימר 0 וטיימר 1. שני הטיימרים כוללים רישום של 16 סיביות בו מאוחסן הבייט התחתון ב- TL והבייט הגבוה מאוחסן ב- TH. טיימר יכול לשמש כמונה וכן להפעלת תזמון שתלוי במקור של פעימות השעון למונים.
טיימרים ודלפקים
מונים וטיימרים במיקרו-בקר 8051 מכילים שני רושמי פונקציות מיוחדים: TMOD (Register Mode Timer) ו- TCON (Timer Control Register), המשמשים להפעלה ולהגדרה טיימרים ודלפקים .
בקרת מצב טיימר (TMOD): TMOD הוא פנקס של 8 סיביות המשמש לבחירת טיימר או מונה ומצב טיימרים. 4 סיביות תחתונות משמשות להפעלת בקרה של טיימר 0 או מונה 0, וארבעה סיביות שנותרו משמשות להפעלת בקרת טיימר 1 או מונה 1. רישום זה קיים במרשם SFR, הכתובת לרישום SFR היא 89.
בקרת מצב טיימר (TMOD)
שַׁעַר: אם סיבית השער מוגדרת ל- '0', נוכל להתחיל ולעצור את טיימר 'התוכנה' באותו אופן. אם השער מוגדר ל- '1', נוכל לבצע טיימר חומרה.
C / T: אם ביט ה- C / T הוא '1', הוא פועל כמצב נגד, ובדומה לכך כאשר הוא מוגדר C +
= / T ביט הוא '0' הוא פועל כמצב טיימר.
ביטים לבחירת מצב: M1 ו- M0 הם ביטים לבחירת מצב המשמשים לבחירת פעולות הטיימר. ישנם ארבעה מצבים להפעלת הטיימרים.
מצב 0: זהו מצב של 13 סיביות שמשמעותו שפעולת הטיימר מסתיימת בפולסים '8192'.
מצב 1: זהו מצב a16 סיביות, כלומר פעולת הטיימר מסתיימת בפולסי שעון מרביים ש- '65535'.
מצב 2: מצב זה הוא מצב טעינה אוטומטי של 8 סיביות, כלומר פעולת הטיימר מסתיימת עם פעימות שעון '256' בלבד.
מצב 3: מצב זה הוא מצב פיצול טיימר, כלומר ערכי הטעינה ב- T0 ומפעילים את T1 באופן אוטומטי.
ביטים לבחירת מצב
בחירת מצב ערכים של טיימרים ומונה ב- 8051
ערכי בחירת מצב של טיימרים ומונים
רישום בקרת טיימר (TCON): TCON הוא רישום נוסף המשמש לבקרת פעולות של מונים וטיימרים במיקרו-בקרים. זהו רישום של 8 סיביות שבו ארבעה סיביות עליונות אחראיות על טיימרים ומונים והסיביות התחתונות אחראיות להפרעות.
רישום בקרת טיימר (TCON)
TF1: ה- TF1 מייצג ביט דגל 'טיימר 1'. בכל חישוב עיכוב הזמן בטיימר 1, TH1 ו- TL1 מגיעים לערך המקסימלי שהוא 'FFFF' באופן אוטומטי.
EX: בעוד (TF1 == 1)
בכל פעם ש- TF1 = 1, נקה את מעט הדגל ועצר את הטיימר.
TR1: ה- TR1 מייצג זמן התחלה או עצירה של טיימר 1. הפעלת טיימר זו יכולה להיות באמצעות הוראות תוכנה או באמצעות שיטת חומרה.
EX: שער = 0 (התחל טיימר 1 באמצעות הוראות תוכנה)
TR1 = 1 (טיימר התחל)
TF0: ה- TF0 מייצג ביט-דגל 'timer0'. בכל חישוב עיכוב הזמן בטיימר 1, ה- TH0 וה- TL0 מגיעים לערך מרבי שהוא 'FFFF' באופן אוטומטי.
EX: בעוד (TF0 == 1)
בכל פעם ש- TF0 = 1, נקה את סיבית הדגל והפסיק את הטיימר.
TR0: ה- TR0 מייצג התחלה או עצירה של 'טיימר 0', הפעלת טיימר זו יכולה להיות באמצעות הוראות תוכנה או באמצעות שיטת חומרה.
EX: שער = 0 (התחל טיימר 1 באמצעות הוראות תוכנה)
TR0 = 1 (טיימר התחל)
חישובי עיכוב זמן עבור מיקרו-בקר 8051
מיקרו-בקר 8051 עובד בתדר 11.0592 מגה-הרץ.
תדר 11.0592MHz = 12 פוליות
דופק שעון אחד = 11.0592MHz / 12
F = 0.921 מגהרץ
עיכוב זמן = 1 / F.
T = 1 / 0.92MHz
T = 1.080506 us (למחזור '1')
1000us = 1MS
1000ms = 1 שניות
נוהל לחישוב תוכנית העיכוב
1. ראשית עלינו לטעון את ערך הרישום TMOD עבור 'Timer0' ו- 'Timer1' במצבים שונים. לדוגמא, אם אנו רוצים להפעיל טיימר 1 במצב 1 עליו להיות מוגדר כ- 'TMOD = 0x10'.
2. בכל פעם שאנו מפעילים את הטיימר במצב 1, הטיימר לוקח את הפולסים המקסימליים של 65535. ואז יש להפחית את הפולסים המחויבים בעיכוב הזמן מהפולסים המרביים, ולאחר מכן להמיר אותם לערך הקסדצימלי. יש לטעון ערך זה בסיביות גבוהות יותר ובקטנות נמוכות יותר של טיימר 1. פעולת טיימר זו מתוכנתת באמצעות מוטבע C במיקרו-בקר .
דוגמה: 500us עיכוב זמן
500us / 1.080806us
461 פעימות
P = 65535-461
P = 65074
65074 משובץ עשרוני משושה = FE32
TH1 = 0xFE
TL1 = 0x32
3. הפעל את הטיימר 1 'TR1 = 1'
4. עקוב אחר סיבית הדגל 'בעוד (TF1 == 1)'
5. נקה את ביט הדגל “TF1 = 0”
6. נקה את הטיימר 'TR1 = 0'
תוכניות לדוגמא:
תוכנית- 1
תכנית- 2
תוכנית- 3
מונים בשנת 8051
אנו יכולים להשתמש במונה על ידי שמירה על קצת C / T גבוה, כלומר לוגיקה '1' במרשם ה- TMOD. להבנה טובה יותר, נתנו תוכנית אחת המשתמשת בטיימר 1 כמונה. כאן נוריות הנוריות מחוברות לנמל 8051 2, והמתג לטיימר 1 סיכה P3.5 ולכן, אם לוחצים על המתג, הערך ייספר. אחרת, חיישן מחובר חיצוני לסיכת הנגד הזו כקלט מבצע פעולת ספירה זו.
תוכנית דלפק
יישומים של טיימרים ומונים בשנת 8051
מונה דיגיטלי עם 8051
המונה הדיגיטלי עם 8051 מושג על ידי תכנות המיקרו-בקר כפי שפורט לעיל ועל ידי הצמדת מערכת חיישנים אליו. דלפק אובייקט זה משתמש בחיישן IR שמזהה את המכשול הקרוב אליו ומאפשר גם את סיכה של המיקרו-בקר 06. כאשר אובייקט עובר דרך החיישנים, אז המיקרו-בקר מקבל אות הפסקה מחיישני ה- IR ומגדיל את הספירה שמוצגת בתצוגה של 7 קטעים.
מונה דיגיטלי עם 8051
מעגל עיכוב זמן באמצעות מיקרו-בקר 8051
האיור שלהלן מראה כיצד ניתן ליישם את פעולת הטיימר להחלפת נוריות באופן יעיל. פעולת עיכוב הזמן עבור קבוצת הנוריות מתוכנתת במיקרו-בקר באופן שנדון לעיל. כאן, סט נוריות LED מחובר ליציאה 2 באמצעות מערכת אספקה משותפת. כאשר מעגל זה מופעל על בסיס עיכוב הזמן תוכנית במיקרו-בקר כראוי, נוריות LED אלה מופעלות.
מעגל עיכוב זמן
זה הכל על טיימר מיקרו-בקר 8051 ומונים עם מעגלי תכנות ויישומים בסיסיים. אנו מקווים שהמידע במאמר זה עשוי היה לספק לך מספיק נתונים בכדי להבין את הרעיון טוב יותר. יתר על כן, כל ספק טכני בתכנות 8051 ומעגליו, תוכלו ליצור איתנו קשר על ידי תגובה למטה.
נקודות זיכוי: