תפריט English Ukrainian רוסי עמוד הבית

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


אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל
ספרייה חינם / ערכות של מכשירים רדיו-אלקטרוניים וחשמליים

תכנות מודולרי של מערכות בקרה על MCS48. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל

ספריה טכנית בחינם

אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / מיקרו-בקרים

הערות למאמר הערות למאמר

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

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

עיקרון זה מוטבע במבנה של שפות רבות ברמה גבוהה (PASCAL, C++), והמתכנת ממש נאלץ לעקוב אחריו. למרבה הצער, ASSEMBLERS (כולל עבור MCS48), תוך שהם מספקים למתכנת חופש גדול יותר לבחור כלים ושיטות לפתרון בעיות, ככלל, אינם מפקחים כלל על עמידה במשמעת התכנות. זה מוביל לעתים קרובות ליצירת תוכניות כל כך מבלבלות שאפילו מחבריהן לא יכולים, לאחר זמן מה, להבין מה נעשה, שלא לדבר על להשתמש בפרגמנטים שנוגדו בתוכניות אחרות. היצמדות מודעת למושגים מודולריים כלליים הופכת את תכנות המיקרו-בקרים להרבה יותר קל ומהיר. דוגמה לתוכנית מודולרית טיפוסית למערכת בקרה ניתנת בטבלה. התחביר שלו מתאים לאסמבלר הטבלאי TASM בגרסה למיקרו-מעבד 8048.

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

ברור שעבודה כזו דורשת זמן רב ולעתים קרובות אינה חפה מטעויות. מה שהופך את זה למסובך במיוחד הוא שחלק מהפקודות עשויות להשתמש לא בכל המספר, אלא, למשל, בבייט הגבוה או הנמוך שלו. האסמבלר, כבר בשלב תרגום התוכנית, מסוגל לחשב כמה קבועים על סמך ערכים של אחרים. תכונה זו מומחשת על ידי חישוב הבתים הגבוהים (N3N) והנמוכים (N3L) של המספר NXNUMX.

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

תכנות מודולרי של מערכות בקרה על MCS48
(לחץ להגדלה)

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

לאחר הפעלת המתח (או שליחת אות איפוס), המיקרו-בקר מתחיל להפעיל את התוכנית מכתובת אפס. הפקודה לקפוץ ללא תנאי לנקודת ההתחלה בפועל של התוכנית (במקרה זה, לתווית START) נכתבת בדרך כלל לכתובת זו. זה הכרחי מכיוון שפסיקות חומרה תמיד מעבירות את השליטה לכתובות קבועות 3 ו-7 (עבור סוגים אחרים של מיקרו-בקרים הכתובות עשויות להיות שונות, אך הן עדיין ממוקמות בתחילת זיכרון התוכנית). התוכנית הראשית חייבת "לעקוף" פקודות למעבר ללא תנאי לשגרות שירות ההפסקות המתאימות הממוקמות בכתובות אלו.

השלב הבא הוא הגדרת מצבי הפעולה של הבקר (לדוגמה, בחירת מאגרי זיכרון ואוגרים), אתחול משתנים והתקנים חיצוניים. טעות אופיינית של מתכנתים מתחילים היא להניח שמיד לאחר תחילת התוכנית, למשתנים יש כבר ערכים מסוימים. תפיסה שגויה זו מתחזקת על ידי העובדה שחלק מהשפות ברמה גבוהה (לדוגמה, BASIC) מקצות אוטומטית ערך התחלתי של אפס לכל המשתנים. בתוכנות שפה ASSEMBLY (ובשפות רבות אחרות), המתכנת חייב לוודא שלפני הקריאה הראשונה של הערך של משתנה, משהו כבר נכתב למיקום הזיכרון שהוקצה לו. סגנון תכנות טוב מחייב להקצות ערכים ראשוניים למשתנים ממש בתחילת התוכנית. במקרה זה, זה נעשה על ידי תת-השגרה 1INIT.

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

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

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

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

בואו נסתכל על כמה תכונות של תתי שגרות. I NCREM ו-DECREM מבצעים את הפעולות הנדרשות במקרים רבים כדי להגדיל או להקטין מספר בינארי של 16 סיביות בכמות נתונה (הביטים הגבוהים והנמוכים שלו ממוקמים באוגרים R6 ו-R5, בהתאמה). הקבועים המגדירים את התוספת מתוארים בתחילת התוכנית.

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

כדי להתחיל לספור מרווח חדש, עליך להזין את הערכים ההתחלתיים בתאי העבודה של תת-השגרה TIME ולהפעיל את הטיימר. תת-השגרה SET2M, למשל, מגדירה השהיית זמן של 2 דקות. לחישוב הערכים ההתחלתיים יש כמה דקויות.

ידוע כי במיקרו-בקרים מסדרת MCS48 מסופקים פולסים לכניסת המונה/טיימר הפנימי בתדר נמוך פי 480 מתדירות מתנד הקוורץ. לדוגמה, עם תדר קוורץ של 7 מגה-הרץ, המספר שנרשם במונה משתנה כל 480/7000000 = 0,00006857 s = 68,57 μs. אז המונה יעלה על גדותיו (ותיווצר בקשת פסיקה) תוך 68,57 -(256-N1) µs, כאשר N1 הוא המספר שנכתב במקור למונה. אם תתחיל ספירה חדשה ממספר זה בכל פעם, בעוד 0,1 שניות (השהיית זמן מינימלית) יתרחשו הצפות N2 = 0,1 · 7000000/[1480 · (256-N1)].

ברור שניתן להשיג את אותו השהיית זמן עם N1 ו-N2 שונים, אך מכיוון שמספרים אלה אינם יכולים להיות חלקים, הוא ייושם עם שגיאה כלשהי. המשימה היא לבחור זוג ערכים שבהם השגיאה מינימלית. במקרה הנדון, האפשרות הטובה ביותר היא N1 = 13, N2 = 6. עיכוב זמן של 2 דקות מתקבל על ידי חזרה על ההליך המתואר N3 = 1200 פעמים.

לעתים קרובות יש צורך להשתמש בהליכים שונים לעיבוד אותן פסיקות חומרה במצבי הפעלה שונים של תוכנית. דרך אחת לעשות זאת מומחשת על ידי תת-השגרה INTER. הוא מנתח את קוד סוג ההפסקה שהוזן על ידי התוכנית הראשית בתא INTT, ובהתאם לערכו, קורא לאחת משגרות שירות ההפרעה ISR1 או ISR2. שימו לב ששניהם מסתיימים בפקודה RET, לא RETR. קל להגדיל את מספר אפשרויות העיבוד ואף לגרום לכך שלערך קוד מסוים ייקראו בזו אחר זו כמה תתי שגרות שונות.

זה בכלל לא הכרחי לכתוב את כל תתי השגרות הדרושות לקובץ טקסט של התוכנית הראשית. ניתן לאתר בקבצים נפרדים מודולים שעברו ניפוי באגים והשתמשו בהם שוב ושוב בתוכניות שונות ולחבר אותם לתוכנית הראשית באמצעות הנחיות INCLUDE. כל קובץ include יכול להכיל שגרה אחת או יותר. החיסרון של שיטה זו הוא שאין לחזור על שמות המשתנים, הקבועים והתוויות בכל המודולים בשימוש. השיטה של ​​תרגום מודולים בנפרד ולאחר מכן שילובם ברמת קוד האובייקט, אשר נקייה מפגם זה, למרבה הצער אינה נתמכת על ידי ה-TASM ASSEMBLY.

מחבר: D. Ryzhov, Vladimir

ראה מאמרים אחרים סעיף מיקרו-בקרים.

תקרא ותכתוב שימושי הערות על מאמר זה.

<< חזרה

חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה:

עור מלאכותי לחיקוי מגע 15.04.2024

בעולם טכנולוגי מודרני בו המרחק הופך להיות נפוץ יותר ויותר, חשוב לשמור על קשר ותחושת קרבה. ההתפתחויות האחרונות בעור מלאכותי על ידי מדענים גרמנים מאוניברסיטת Saarland מייצגים עידן חדש באינטראקציות וירטואליות. חוקרים גרמנים מאוניברסיטת Saarland פיתחו סרטים דקים במיוחד שיכולים להעביר את תחושת המגע למרחקים. טכנולוגיה חדשנית זו מספקת הזדמנויות חדשות לתקשורת וירטואלית, במיוחד עבור אלה שמוצאים את עצמם רחוקים מיקיריהם. הסרטים הדקים במיוחד שפיתחו החוקרים, בעובי של 50 מיקרומטר בלבד, ניתנים לשילוב בטקסטיל וללבוש כמו עור שני. סרטים אלה פועלים כחיישנים המזהים אותות מישוש מאמא או אבא, וכמפעילים המשדרים את התנועות הללו לתינוק. הורים הנוגעים בבד מפעילים חיישנים המגיבים ללחץ ומעוותים את הסרט הדק במיוחד. זֶה ... >>

פסולת חתולים של Petgugu Global 15.04.2024

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

האטרקטיביות של גברים אכפתיים 14.04.2024

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

חדשות אקראיות מהארכיון

ווסת מתח ADM8839 10.01.2003

ANALOG DEVICES הכריזה על שחרורו של ווסת המתח ADM5 עם יציאות +15 V, +15 V ו-8839 V, שתוכנן במיוחד להנעת צגי LCD צבעוניים.

ספק הכוח הוא אחד +3 V. מתחי המייצב משמשים כדלקמן: +5 V - להפעלת בקר התצוגה, +15 V - עבור טרנזיסטורי הפאנל. זרמי מוצא: 5 mA - לפלט +5 V ו-100 μA כל אחד - ליציאות + 15 V ו-15 V. יעילות שבב 83%, תדר המרה 100 קילוהרץ. השבב זמין בחבילת LFCSP בעלת 20 פינים.

עוד חדשות מעניינות:

▪ חמימות ביתית - כמעט בחינם

▪ עכברים מגניבים

▪ מכונת תפירה עם מחשב

▪ אוטובוס חשמלי מימן

▪ מכשיר המחקה את אופן פעולת המוח

עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה

 

חומרים מעניינים של הספרייה הטכנית החופשית:

▪ חלק מהרכבת הקוביות של רוביק באתר. בחירת מאמרים

▪ מאמר שלושה דגמים של רוברים פלנטריים. טיפים לדוגמן

▪ מאמר מה היה באמריקה לפני גילויה על ידי קולומבוס? תשובה מפורטת

▪ מאמר Buer Blue bird. הובלה אישית

▪ מאמר מחולל על PIC16F84A ו-AD9850. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל

▪ מאמר מפלה רוחב הדופק. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל

השאר את תגובתך למאמר זה:

שם:


אימייל (אופציונלי):


להגיב:





כל השפות של דף זה

בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר

www.diagram.com.ua

www.diagram.com.ua
2000-2024