AT89S52
הקדמה קצרה
מיקרו בקר AT89S52, הינו מיקרו בקר מבית ATMEL, מבוסס על ארכיטקטורת המיקרובקר הוותיק 8031 של INTEL.
ניתן לרכוש מיקרו בקר זה כרכיב בודד, עם זאת קיימים בשוק החופשי כיום עשרות לוחות פיתוח ולוחות תרגול המתאימים למיקרו בקר זה.
את קוד ההפעלה בדרך כלל כותבים בשפת C, ולאחר הידור הקוד והפקת קובץ hex, צורבים את הקובץ ל ROM באמצעות פרוטוקול תקשורת ISP ישנם כמה קומפיילרים באמצעותם ניתן לכתוב את הקוד, אני רגיל לתוכנת μ vision של חברת KIEL , תוכנה זו עוצמתית במיוחד לצד זה שהיא חינמית. מומלץ לעבוד איתה מה גם שהיא מתאימה לכל מערכות ההפעלה הקיימות.לשם צריבת הקוד ל ROM קימות מס' תוכנות אף הן חינמיות אך העדפת תוכנה על פני אחרת הינה בתלות בסוג הצורב הקיים ברשותכם.
ניתן לרכוש מיקרו בקר זה כרכיב בודד, עם זאת קיימים בשוק החופשי כיום עשרות לוחות פיתוח ולוחות תרגול המתאימים למיקרו בקר זה.
את קוד ההפעלה בדרך כלל כותבים בשפת C, ולאחר הידור הקוד והפקת קובץ hex, צורבים את הקובץ ל ROM באמצעות פרוטוקול תקשורת ISP ישנם כמה קומפיילרים באמצעותם ניתן לכתוב את הקוד, אני רגיל לתוכנת μ vision של חברת KIEL , תוכנה זו עוצמתית במיוחד לצד זה שהיא חינמית. מומלץ לעבוד איתה מה גם שהיא מתאימה לכל מערכות ההפעלה הקיימות.לשם צריבת הקוד ל ROM קימות מס' תוכנות אף הן חינמיות אך העדפת תוכנה על פני אחרת הינה בתלות בסוג הצורב הקיים ברשותכם.
אז מה זה מיקרו בקר?
כדי לענות על שאלה זו אסביר תחילה מהו מעבד. ובכן, מעבד זוהי יחידת ALU - Aritmetic Logic Unit, זוהי למעשה יחידת העיבוד המרכזית של כל מערכת ממוחשבת באשר היא, יחידה זו כשמה כן היא, יודעת לבצע עיבוד של מידע לוגי או חשבוני.
יחידת ALU הזעירה ביותר הינה יחידת ALU לשתי סיביות אשר על פי מבוא בקרה יודעת להחליט איזה עיבוד לבצע במידע המוצג על רגלי ה DATA. אין זו יחידה מעשית אך לצורך ההסבר אציג אותה כאן.
יחידת ALU באשר היא, מתנהגת באותו אופן תמיד. הפעולה היחידה שהיא מבצעת היא חישוב לוגי או חשבונית בהתאם לצורך וזהו.
וכאן נכנסות עוד יחידות לתמונה. מהן יחידות בסיסיות ( חובה ) ומהן יחידות אשר מקלות את העבודה והסיבה לקיומן הינה ארכיטקטורה בלבד.
1) בקר פסיקות. בכדי שאפשר יהיה לקלוט נתונים מבלי להפריע את עבודת העיבוד.
2) זמנן ( TIMER ). לצורך תזמון כלל פעולות המערכת.
3) זיכרון קשיח. שמירת נתונים קשיחה, שמירת תוכנה מבצעת.
4) זיכרון נדיף. שמירת נתונים זמנית, בין אם עברו עיבוד ובין אם לא.
5) יחידת תקשורת טורית. פלט וקלט של נתונים.
6) יחידת תקשורת מקבילית. פלט וקלט של נתונים.
להלן קישור לאתר מעולה המסביר את אופן פעולתו והארכיטקטורה של המיקרו 8052, כמובן שהמיקרו בקר AT89S52 בנוי באותה ארכיטקטורה. האתר מסביר בפירוט רב את תפעול המיקרו בקר ברמת הרגיסטרים ומיעון סיביות כולל כל השמות המנמונים שלהם. למעבר לאתר לחץ כאן.
להורדת תוכנת μ vision לחץ כאן.
כדי להתחיל ולעבוד עם המיקרו בקר שלנו נצטרך לבנות מעגל הפעלה, את המיקרובקר נמקם בתוך מעגל ההפעלה. בתוכנת
μ vision נכתוב את הקוד בשפת C. ולאחר שהפקנו קובץ hex נצרוב אות לתוך זיכרון ה ROM של המיקרו בקר.
להלן שרטוט מעגל הפעלה למיקרו בקר AT89S52 הכולל :
באיור 3 אנו רואים את חיבור מעגל התנודות הכולל גביש שמחובר במקביל לרגליים 18 , 19 של המיקרו בקר, בין כל רגל של הגביש לבין האדמה מחובר קבל וזה לטובת סינון רעשי סביבה.
בנוסף יש את מעגל ה RESET הכולל קבל שמחובר בין מתח בטור לנגד, הנגד מחובר בטור לאדמה נקודת המפגש בין הקבל לנגד מחובר לרגל 9 של המיקרובקר ובמקביל לקבל מחובר לחצן RESET.
איור 4 מתאר את מעגל אספקת המתח, מדובר במיצב מתח מסדרת 78XX (במקרה שלנו 7805), אשר מקבל במבואו אספקת מתח בתחום שבין 6v ל 30v, במוצאו נקבל 5v מיוצב. שתי פעולות אם כן, 1) ייצוב המתח. 2) מתח מוצא קבוע של 5v בכל מקרה של מתח המשתנה בתחום שבין 6v ל 30v במבוא.
להלן (איור 5) לוח מינימלי של המיקרובקר AT89S52 טיפוסי' הכולל בתוכו את שלשת המעגלים המתוארים באיורים 3,4 לציין כי קיים בנוסף גם את מעגל הצריבה המבוסס פרוטוקול תקשורת SPI. אליו מתחבר הצורב (איור 6).
על הלוח הנ"ל ניתן לראות את כל הפינים המיצגים את יציאות\כניסות של המיקרובקר ובעצם מדובר ברגלי I/O . שמות הרגליים הנ"ל רשומים בצמוד לכל רגל, לדוגמא אם ניקח את PORT 1, זהו מקבץ של 8 רגלי I/O אשר נקראות בתוכנה P1 (נא לשים לב ל UPERCASE \ lowercase).
לכל PORT שני שורות מקבילות כדי שניתן יהיה לחבר יותר ממערכת אחת על כל PORT.
יחידת ALU הזעירה ביותר הינה יחידת ALU לשתי סיביות אשר על פי מבוא בקרה יודעת להחליט איזה עיבוד לבצע במידע המוצג על רגלי ה DATA. אין זו יחידה מעשית אך לצורך ההסבר אציג אותה כאן.
איור 1 יחידת ALU בסיסית. |
יחידת ALU באשר היא, מתנהגת באותו אופן תמיד. הפעולה היחידה שהיא מבצעת היא חישוב לוגי או חשבונית בהתאם לצורך וזהו.
וכאן נכנסות עוד יחידות לתמונה. מהן יחידות בסיסיות ( חובה ) ומהן יחידות אשר מקלות את העבודה והסיבה לקיומן הינה ארכיטקטורה בלבד.
1) בקר פסיקות. בכדי שאפשר יהיה לקלוט נתונים מבלי להפריע את עבודת העיבוד.
2) זמנן ( TIMER ). לצורך תזמון כלל פעולות המערכת.
3) זיכרון קשיח. שמירת נתונים קשיחה, שמירת תוכנה מבצעת.
4) זיכרון נדיף. שמירת נתונים זמנית, בין אם עברו עיבוד ובין אם לא.
5) יחידת תקשורת טורית. פלט וקלט של נתונים.
6) יחידת תקשורת מקבילית. פלט וקלט של נתונים.
איור 2 תכולה של מיקרו בקר |
להלן קישור לאתר מעולה המסביר את אופן פעולתו והארכיטקטורה של המיקרו 8052, כמובן שהמיקרו בקר AT89S52 בנוי באותה ארכיטקטורה. האתר מסביר בפירוט רב את תפעול המיקרו בקר ברמת הרגיסטרים ומיעון סיביות כולל כל השמות המנמונים שלהם. למעבר לאתר לחץ כאן.
להורדת תוכנת μ vision לחץ כאן.
כדי להתחיל ולעבוד עם המיקרו בקר שלנו נצטרך לבנות מעגל הפעלה, את המיקרובקר נמקם בתוך מעגל ההפעלה. בתוכנת
μ vision נכתוב את הקוד בשפת C. ולאחר שהפקנו קובץ hex נצרוב אות לתוך זיכרון ה ROM של המיקרו בקר.
להלן שרטוט מעגל הפעלה למיקרו בקר AT89S52 הכולל :
- מעגל תנודות.
- מעגל RESET.
- מעגל אספקת מתח.
איור 4 - מעגל אספקת מתח למיקרו בקר. |
בנוסף יש את מעגל ה RESET הכולל קבל שמחובר בין מתח בטור לנגד, הנגד מחובר בטור לאדמה נקודת המפגש בין הקבל לנגד מחובר לרגל 9 של המיקרובקר ובמקביל לקבל מחובר לחצן RESET.
איור 4 מתאר את מעגל אספקת המתח, מדובר במיצב מתח מסדרת 78XX (במקרה שלנו 7805), אשר מקבל במבואו אספקת מתח בתחום שבין 6v ל 30v, במוצאו נקבל 5v מיוצב. שתי פעולות אם כן, 1) ייצוב המתח. 2) מתח מוצא קבוע של 5v בכל מקרה של מתח המשתנה בתחום שבין 6v ל 30v במבוא.
להלן (איור 5) לוח מינימלי של המיקרובקר AT89S52 טיפוסי' הכולל בתוכו את שלשת המעגלים המתוארים באיורים 3,4 לציין כי קיים בנוסף גם את מעגל הצריבה המבוסס פרוטוקול תקשורת SPI. אליו מתחבר הצורב (איור 6).
איור 5 - לוח מינימלי AT89S52 |
איור 6 - צורב, מותאם ללוח מאיור 5. |
על הלוח הנ"ל ניתן לראות את כל הפינים המיצגים את יציאות\כניסות של המיקרובקר ובעצם מדובר ברגלי I/O . שמות הרגליים הנ"ל רשומים בצמוד לכל רגל, לדוגמא אם ניקח את PORT 1, זהו מקבץ של 8 רגלי I/O אשר נקראות בתוכנה P1 (נא לשים לב ל UPERCASE \ lowercase).
לכל PORT שני שורות מקבילות כדי שניתן יהיה לחבר יותר ממערכת אחת על כל PORT.
תגובה זו הוסרה על ידי המחבר.
השבמחק