טיימרים ומונים בבקר : 8051 מבוא : ואף הבקר בתחומי התעשייה טיימרים קשור לסביבת עבודתו של קוצבי זמן או הצורך במעגלים שונות יש צורך ל המתין ללתהליכים שונים, באחרים יש צורך ללשלוט בתחומים אחרים, במערכות על זמן פעולתם. לפרק הזמן שהוא עוסק השהייה זו מנטרלת את המעבד אך פעולה זמן בחומרה לבצע השהיית ניתן ובכך חלק גדול מהזמן אין המעבד מטפל בכל ההתקנים החיצוניים. שאת בחומרה כך עיסוק יתר של המעבד בתוכניות השהייה יצרו רכיבי השהייה כדי למנוע בבקר משחררים מהמעבד ותהליך זה מדויק יותר מהשהיית תוכנה. הטיימרים תפקיד מודד דפקים המגיעים אליו בקצב קבוע, כך שלמעשה הוא קוצב זמן הינו מונה, הסופר מחברים לכניסת ההמונה אם של הרכיב. לתפקוד בשמות נעשית בהתאם זמן. ההבחנות בקצב אחיד), מתפקד הרכיב כקוצב זמן הנגזר משעון ה- CPU ) (כלומר מגיע אות לא כניסת המונה למקור חיצוני של אותות, שמייצר דפקים מחברים את.(TIMER) אם הרכיב כמונה אירועים.(COUNTER) בהכרח בקצב אחיד, יתפקד אלה חוסכים חשובים ביותר. כלים כלי עזר ל 8031 - שני מונים/קוצבי זמן, המהווים מדויקות, של דגימת אירועים באמצעות פניה לפורט ובדיקה בתכנות של לולאות השהיה אחרות. ומשחררים את הה- CPU לביצוע משימות מונים/קוצבי זמן, 8031 שני ב - הבא: 16 באורך בציור כל אחד, המתוארים סכמתית סיביות 1Page
תיאור המונים/קוצבי הזמן קוצבי הזמן מורכבים מארבעה אוגרים בני המונים/קוצבי זמן, נקראים TIMER0 ו- TIMER1. תופסים.TL0 (TIMER 0 LOW), TH0, TL1, TH1 הם ונקראים 8 סיביות במערכת האוגרים הכתובות AH, 8CH, 8BH8 ו- DH8 בהתאמה. את שני ע"י המשתמש בעזרת לקוצבי זמן אלה אפשרויות עבודה שונות ומגוונות, הנקבעות.F F. יציאות של הם ו- GATE,,C/T', בקרה TCON ו- TMOD. האותות באיור TR1 אוגרי הנמצאים באוגרים אלה, ונקבעים בתוכנה ע"י המשתמש. 2Page
האוגר : TMOD TIMER1 TIMER0 GATE C/T' M1 M0 GATE C/T' M1 M0 מחולק לשני חלקים. חלק אחד מטפל ב- TIMER0 וחלק שני ב- TIMER1. האוגר TMOD הסיביתC/T ' קובעת אם ה- TIMER יתפקד כמונה או כקוצב זזמן. אם סיבית זו ב- "0", ומחולקים ב- 12. זהו אותות המגיעים משעון ה- C.P.U מופנים אל המונים TL ו- TH T0 או T1, שהם כניסת המונה לקו "1", מופנה שימוש כקוצב זמן. אם ' C/T נמצאת ב-.C.P.U קוים חיצוניים ל- עוברים אל המונים שיגיעו מקוים אלו יפעילו את המונים. זהו ששימוש כמונה. בדרך אותות מעגל לוגי שכניסותיו הם,TR1,, GATE ו- כניסת INT האותות דרך מפסק בקרה הנשלט ע"י. אל המונים וה- הדפקים מפסק זה ססגור, עוברים באמצעות שער, כמובן). כאשר (מתג TIMER מופעל. את קובעות קוצב הזמן. הסיביות M0 ו- M1 אופן ההעבודה של קוצב הזמן שאינו תלוי בפסיקה חיצונית צריכה האפשור של זוהי סיבית הסיבית GATE קבלת חיצונית בעת מתאפשרת כאשר אין פסיקה '1' המנייה ב- "0". וכאשר ערכה להיות פסיקה המונה נעצר.,TCON באוגר F.F הוא יציאת TR1 3Page
כ" האוגר : TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TR1 ו- TR0 הסיביות הפסיקות החיצוניות. TCON משמש לבקרת הימני של החלק סיבית TR בב- "1" מופעל קוצב הזמן משמשים להפעלה בתוכנה של קוצבי הזמן. אם בתנאי שסיבית GATE המתאימה נמצאת ב- "0"..TMOD כאשר היא נמצאת ב- "1" ו- TR נמצאת ב- "1 ", סיבית ב- GATE היא סיבית הכניסה בב- "0", מופעל קוצב החיצונית לבקרה על הקוצב. כאשר משמשת כניסת הפסיקה הזמן, וכאשר היא ב- "1" מ, מופסקת פעולתו. הם מתמלאים ב- 1 ועוברים ל- אותם ב- 1. כאשר כל דופק המגיע למונים TL ו- TH מקדם פליפ - פלופים אלה 0 נוצרת סיבית הצפה (OVERFLOW) וזו מפעילה את ה-.TF F. F TIMER0 בהתאם (פסיקת נמצאים באוגר.TCONN כאשר TF מופעל הוא יוצר בקשת פסיקה שקוצב הזמן יספור מסוים של דפקים ואז יצור בקשת פסיקה. או.(TIMER בד", רוצים המספר הזה. קוצב זה במשלים ל- 2 של במקרה כזה, טוענים את המונים של.MODE0 MODE3 שונים הנקראים ארבעה אופני עבודה הזמן יש למונים של קצבי שבאוגר.TMODD מלבד M1 ו- M0 אופנים אלה נקבעים לכל קוצב באמצעות הסיביות עבודה אופני קצב של אספקת אות דחיפה ל- UART שב- 8051 לקביעת יש ל- TIMER1 תפקיד אלה, עבודת התקשורת הטורית. 4Page
אופני העבודה של -ה 0,1 : TIMERS M1 = 0, M0 = 0 MODE0 את המונים/קוצבי הזמן, כמתואר בציור המתאר באופו עבודה זה, קוצב הזמן מתפקד סיביות בלבד, והוא משמש כמחלק שהמונה TL מתפקד כמונה בן 5 העובדה מלבד.TH בב 32 - למונה (PRESCALER) M1 = 0, M1 = 1 MODE1 המונים את המונים/קוצבי הזמן, כאשר כמתואר בציור המתאר קוצב הזמן מתפקד בדיוק בן 16 סיביות. מתפקדים כמונה 5Page
M1= 1, M0 = 0 MODE2 סיביות ו- TH כ- LATCH. את TH טוענים בערך כמונה בן 8 באופן עבודה 2, משמש TL של המונה,TL הוא נטען הספירה שמסתיימת.(RELOAD) בכל פעם לטעינה חוזרת מאותו ערך. בערך,RELOAD הנמצא ב- TH, ומתחיל שוב בריצה אוטומטית מחדש 6Page
י" M1 = 1, M0 =1 MODE3 קוצבי הזמן כ 3 - מערכות נפרדות. אופן עבודה זה מתפקדים 2 כמונה/קוצב זמן, אבל יציאתו אינה לרגל בקשת פסיקה.TF1 הוא TIMER1 מתפקד קצב לתקשורת הטורית. משמש רק לאספקת אות את TF0 ויוצר בקשת המפעיל ל 2 - חלקים. TL0 מתפקד כמונה/קוצב זמן TIMER0 מתחלק פסיקה בהתאם. ב 12 - ומבוקר ע".TR1 מחולק תדר שעון בכניסתו TH0 מתפקד כקוצב זמן בלבד המקבל יציאתו מפעילה אתTF1 ויוצרת בקשת פסיקה בהתאם. 7Page
הם עולים ל-" 1 ", בתנאי שהיא אינה בקשת פסיקה כאשר הדגלים TF0 ו- TF1 יוצרים בחזרה. הם מאפסים חסומה ע"י האוגר.IE עם ההפניה לתכנית הפסיקה מצב הדגלים בתוכנה ניתן להשתמש בבקוצבי הזמן ללא פסיקות, ע"י דגימת ובדיקת ואיפוסם בתוכנה. באוגרי הקוצב ע"מ לקבל השהייה באורך ממסוים, המספר הדרוש לאחסון לחשב את כדי יש לדעת את תדר שעון המערכת. שצריך המגיע לקוצב, אזי מספר הדפקים של דופק ו- TP כזמן TD יוגדר כזמן ההשהיה אם יהיה המשלים לל 2 - של חלקי.TP המספר שצריך לטעון באוגרים שווה ל- TD הקוצב לספור זה. מספר תדר הדפקים המגיעים לקוצב שווה ל- Fosc/12 ומכאן ש- TP=12/Fosc. 8Page
: TIMER 2 לו אופני עבודה שונים בבהבדל אשר תכונותיו מקנות קיים מונה / זמנן נוסף במעבד 8051 מה- TIMERS הקודמים. על פי אופן העבודה נקבע יפורטו בהמשך כאשר עבודה אשר 4 אופני זה קיימים במונה אוגר הבקרה.T2CON אוגר הבקרה : T2CON TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2' CP/ /RL2' מתי OVERFLOW FLAG כלומר סיבית ""ההצפה" סיבית זו זוהי סיבית ה- : TF2 סיבית עולה ל "1 ומבקשת בקשה לפסיקה. סיבית זו את הספירה שמונה 2 סיים RCLK זו תחזור סיבית או רק ע"י תוכנה.היא איננה יכולה להיות "1 כאשר סיבית להיות "0 יהיו ב- "1. TCLK שבו זו עולה ל '1' במצב EXF2 ס: יבית זו הינה דגל חיצוני של TIMER 2 סיבית סיבית של עולה ל' 1 ' וניגש לפסיקה 1'= 'EXEN2 ורגל T2EX של המעבד בירידה, דגל זה סיבית סיבית זו ל' 0 ' לאחר ביצוע הפסיקה. TIMER 2 במצב זה. על המתכנת לדאוג להוריד ב "1 אז המוצא סיבית זו אישור פולסי השעון. במצב שבו RCLK ס: סיבית קבלת סיבית ו, 3 כאשר רגל זו עבודה 1 של TIMER 2 באופני הטורי משמש כפולסים לסיבת הגלישה פולסי השעון. שווה ל "0 אז סיבי ת הגלישה של TIMER 1 משמשת לקבלת סיביתTCLK : העברת אפשור השעון. במצב שבו סיבית זו בב- '1' אז תדר השידור זהו אז תדר השידור זהו שבו סיבית זו ב- '0' OVERFLOW של.TIMER 2 במצב התדר של ה- של.TIMER 1 OVERFLOW התדר של ה- 9Page
ס: : EXEN2 אפשור חיצוני ל TIMER 2 במצב שבו סיבית זו נמצאת בב' 0 ' אז המעבד סיבית מתעלם מהשינויים ברגל.T2EX / : TR2 סיבית התחלה סיבית את הספירה. "1. 2 TIMER מתחיל סיום של 'C / T2 סיבית חיצוני. סיבית בחירת מונה או זמנן "0 זמנן, "1 מונה לבחירת אופן עבודה Capture ע"י ' 1 'או Reload ע"י משמשת ' CP / RL2 : סיבית זו סיבית.'0' השונים נקבעים בצורה הבאה : העבודה אופני MODE TR2 'CP/RL2 RCLK+TCLK 16 bit Auto Reload 1 0 0 16 bit Capture 1 1 0 Baud Rate Generator 1 X 1 OFF 0 x x : AUTO RELOAD ע"פ מעלה מטה נקבעת. הספירה אוטומטית מונה bits 16 מעלה / מטה בעל טעינה הסיבית ( DCEN שבאוגר T2MOD אם הוא "0 הוא אוטומטית סופר כלפי ( Down Counter Enable בסיבית EXEN2 שנמצאת באוגר אשר תלויות יתכנו שתי אופציות מעלה. במצב זה עד שיגיע ל FFFFH0 יגרום T2CON אם סיבית זו שווה ל "0 אז המונה יספור כלפי מעלה טעינת המספר ההתחלתי תתבצע בתוכנה. TF2 כאשר "ההצפה" של סיבית לעליה במידה והסיבית EXEN2 תהיה שווה ל "1 אז תתבצע טעינה מחדש של bit 16 ע"י סיבית טעינה סיום הספירה תתבצע הגלישה או באמצעות הפין החיצוני T2EX שיהיה ב "1 לאחר של המספר. מחדש 10Page
אופציות עבודה אשר תתלויות בסיבית ה EXEN2 שבאוגר - : CAPTURE MODE ישנן שתי באופן עבודה זה. T2CON פעולתו כמונה / זמנן וכאשר יסיים את ב "0 TIMER 2 ישמש זו נמצאת שבו סיבית במצב יעלה את סיבית הגלישה ל "1. את אותה פעולה אך בירידה מ '1' ל- '0' EXEN2 תיהיה ל "1 המונה יבצע במידה וסיבית EXF2 וב- TL2 יעבור ל RCAP2H ו- RCAP2L במקביל הסיבית TH2 הערך שב- T2EX ברגל תעלה ל '1'. באוגר T2CON : BAUD RATE GENERATOR עבודה פנימיות או חיצוניות של ההמעבד. אנו מקבלים אות שעון למערכות אופן עבודה שבו 11Page
טיימרים: תרגילים דוגמא זמן מחזור של 200 מיקרו שניות, הגל ריבועי מתקבל לתכנן מתנד גל ריבועי סימטרי עם 1) יש השימוש בטיימר ) 0 1 ( Mode בהדק. P1.0 הנחה : תדר המתנד 12 M Hz פיתרון : לטעון את הטיימר לפי החישוב הבא : הזמן הדרוש לחשב את שתדר המתנד ידוע ניתן בהנחה Tp = 12/Fosc Tp= =12/12M Hz=1µ sec פולסים כדי ללקבל את חיובי ו 100 בו הגל יהיה מכאן חייבים למנות 100 פולסים כדי לקבל את הזמן היה שלילי. שבו האות הזמן אז נטען בגודל של 100-. וערך הטעינה נטען במשלים ל 2 שלערך הפולסים מאחר מעלה) (הטיימרים סופרים Org 0000h Lgmp main Org 000Bh Cpl p1.0 mov TL0,# 100 Mov TH0,# FFh SetB TR0 Reti Org 100H Main: mov TL0,# 100 Mov TH0,# FFh 12Page
ע( End Mov Tmod קביעת טיימר 0 מוד 1 קבלת דפקים ממקור פנימי ; 00000001B #, Mov IP, # 000000010 עליונה לטיימר ; 0 B 0 קביעת עדיפות Mov IE,#10000010 בלבד ואיפשור כללי ;B קבלת פסיקה מטיימר 0 Setb TR0; Tcon באוגר הפעלת הטיימר ע" "י סיבית הפעלת תוכנה Sjmp$ ( Mode פיתרון נוסף : עבור טיימר 2 הצטרכנו לטעון את תוכן הטיימר לראות שבתרגיל הדוגמא הקודם השתמשנו ב Mode 1 ולכן ניתן המנייה לשלב הבא. בסיום צורת עבודה הגורמת לטעינת ערך באופן אוטומטי כאשר אופן העבודה הוא mode להתבסס על ניתן. 2. ניתן להשתמש ללא חשש המירבי בצורת עבודה זו שהוא הערך וערך המנייה קטן מ 255 מאחר Org 0000h Lgmp main Org 000Bh Cpl p1.0 Reti Org 100H Main: mov TL0,# 100 Mov TH0,# 100 Mov Tmod קבלת דפקים ממקור פנימי ; 00000010B #, קביעת טיימר 0 מוד 2 Mov IP, # 000000010 עליונה לטיימר ; 0 B 0 קביעת עדיפות Mov IE,#10000010 בלבד ואיפשור כללי ;B קבלת פסיקה מטיימר 0 Setb TR0; Tcon באוגר הפעלת הטיימר ע" "י סיבית הפעלת תוכנה Sjmp$ End 13Page
טיימרים תרגיל (1 שיופק בהדק הוא 12 Mhz נדרש לייצר אות ריבועי מחזורי שתדר המתנד נתון הדרישה בהאה: 1 לפי זמן אות חיובי 20 µsec זמן אות שלילי 57 µsec טיימר P1.0 בעזרת פיתרון : לחשב את יחידות המנייה לפי היחס הבא ניתן t.p =12/f osc t.p=12/122 Mhz=1µsec זמן יחידות ההמנייה של החלק השלילי הוא 57. החלק החיובי הוא 20, מכאן זמן היחידות המנייה עבור. עבודה שונות של הטיימר לבצע את התרגיל בצורות ניתן לדאוג לטעינה 50% יש duty שונה מ לדוגמא, מאחר והגל עם cycle נבחר את mode 2 מחודשת עבור החלק החיובי והשלילי. Org 0000h Ljmp start Org 0018h Ljmp psika Org 0030h 14Page
Start: Psika: next : mov TL1,# 20 Mov Th1,# 57 Mov Tmod,#20h Mov Tcon, #40h Mov IE,# 88h Sjmp $ Org 150h cpl p1.0 Jb p1.0,next Mov Th1,# 200 Reti mov Th1, # 57 reti end טיימר ופסיקה תרגיל נתון מתנד עם תדר 6M hz כתוב תתוכנית שתייצר פולס חד טיימר 0 במצב mode 1 נתון יתקבל רק לאחר קבלת p1.4 (הפולס בגודל של 50 מילי שנייה הפולס יתקבל בהדק שלילי בהדק INT 1 בדירבון קצה) פעמי פסיקה פיתרון התרגיל : 50000/2 נצטרך 25,000 הוא 2 מיקרו שנייה. מהחישוב נקבל שזמן פולס חישוב מקבלים לפי פולסים. Org 0000h Ljmp start Org 000Bh Ljmp psika 15Page
Org 0013h Ljmp psik_int Start: Psik_int : Org 30h mov IP,# 00000100B Mov tmod, # 01h Mov tcon,#04 Mov IE, #86h Sjmp $ CLR p1.4 Setb Tr0 Reti Psika: setb p1.4 Clr Tr0 Mov Th1, #0CDh Mov Tl1, #0E2h Reti End 16Page
טיימר מקור אות חיצוני תרגיל מחזורי לייצר אות אות בתדר 10 Khz המתחבר להדק חיצוני, T0 יש נתון. (duty cycle 50% ) p1.2 100 hz בהדק בתדר של פיתרון : חישוב יש לספור 100 פולסים כדי לקבל את האות הנדרש. לפי עבודה. mod 2 נבחר את את טיימר 0 בצורת Org 0000h Ljmp start Org 000b h Ljmp pst0 Org 30h Start: mov IE, #82h Mov Th0,# 50 Mov Tl0,# 50 Mov tmod,# 00000110B Setb Tr0 Sjmp $ Pst0: cpl p1.2 Reti End 17Page
ע( תרגילים: 160 אות אסימטרי שהזמן החיובי הוא נדרש לייצר בהדק.P1 7 12 1) נתון מתנד שתידרו Mhz שניות והזמן השלילי הוא 240 מיקרו שניות יש להשתמש בטיימר. 1 מיקרו לתכנן חד יציב המוציא פולס שלילי ברוחב של 150 מיקרו 2) נתון מתנד עם תדר של, 12 Mhz יש בתגובה לשינוי דופק בהדק 1 INT שניות רוחב דופק המגיע להוות מד לבנות מערכת שתפקידה, 12 M יש 3) נתון מתנד עם תדר של hz פעולת טיימר ולמנות עד שהפסיקה החיצונית תעצור את הוא להפעיל מהדק INT 0 עקרון השיטה מערכו להפוך את הערך במשלים ל 2 ולחסר המנייה, ערך המונה סופר מספר פולסים ומכאן ניתן ההתחלתי. התנאי שהדק GATE יהיה ב '1' (. את התוצאה יש לשמור באוגרים R3,R4 בבבנק מספר 3 (4 18Page
19Page (5
20Page (6