תוכן עניינים:
- שלב 1: דרישות
- שלב 2: בניית המתכנת
- שלב 3: התקנת תוכנת מתכנת
- שלב 4: תכנות הצ'יפ
- שלב 5: הרכבה
- שלב 6: הסבר קוד
- שלב 7: משאבים נוספים
וִידֵאוֹ: מבוא לתכנות 8051 עם AT89C2051 (כוכב אורח: ארדואינו): 7 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
8051 (המכונה גם MCS-51) הוא עיצוב MCU משנות ה -80 שנותר פופולרי כיום. בקר מיקרו-בקרים מודרני תואם 8051 זמין מספקים רבים, בכל הצורות והגדלים, ועם מגוון רחב של ציוד היקפי. במדריך זה נסתכל על AT89C2051 MCU מאטמל.
AT89C2051 הוא מיקרו -בקר קטן (2Kbyte, 128byte RAM) וזול (~ $ 1.40 לכל שבב).
- פעולה 2.7-6V
- 15 קווי I/O
- 2 טיימרים (16 ביט)
- הפרעות פנימיות וחיצוניות
- UART
- משווה אנלוגי על שבב
- עד 2MIPS עם שעון 24MHz
שלב 1: דרישות
דרישות:
- מחשב Linux (תוכנה נדרשת: Arduino IDE, git, make, sdcc)
- ארדואינו UNO
- שבב AT89C2051 (חבילת DIP20)
- שקע ZIF 20 פינים
- מצמד אופטי (רצוי פלט MOSFET)
- מגן אב טיפוס של Arduino
- ספק כוח 12V
- ספק כוח 5V
- מתנד קריסטל 16MHz
- 2 קבלים 30pF
- קבל 100nF
- דיודה (למשל: 1N400X)
- נגדים (1K, 3K3)
- פרוטובארד
- מגשרים
- חוט נחושת
בדוק אם קיימת תוכנה נדרשת:
איזה פייתון 3
שעושים איזה sdcc איזה git
שלב 2: בניית המתכנת
חלק זה יהיה קצר, כפי שבניתי את מגן התכנות שלי לפני זמן מה. צירפתי את הסכימה והתמונות של הלוח המורכב. קובץ ה- PDF של הסכימה ניתן למצוא במאגר.
יהיה עליך לתכנת את לוח המתכנתים:
1. שיבוט את המאגר.
שיבוט git
2. פתח את הקובץ AT89C2051_programmer/AT89_prog/AT89_prog.ino ב- Arduino IDE.
3. בנה והעלה את הסקיצה מה- Arduino IDE.
שלב 3: התקנת תוכנת מתכנת
1. צור סביבה וירטואלית של פייתון.
python3 -m venv venv
. venv/bin/activ
2. התקן את at89overlord. at89overlord הוא מתכנת קוד פתוח לשבב AT89C2051 שנכתב על ידי. קוד המקור שלו ניתן למצוא כאן.
pip להתקין at89overlord
3. אמת את ההתקנה.
at89overlord -h
שלב 4: תכנות הצ'יפ
1. שיבוט פרויקט מצמוץ פשוט.
תקליטור ~
שיבוט git https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. בנה את האפליקציה.
עשה
3. חבר את Arduino למחשב האישי, חבר את אספקת 12V, הנח את שבב AT89C2051 בשקע ה- ZIF.
4. אתר את היציאה הטורית של Arduino.
ls /dev /tty*
5. העלה קובץ IntelHex בנוי לשבב. אם היציאה של Arduino שלך שונה מ /dev /ttyACM0 עליך להעביר את הערך הנכון עם פרמטר שורת הפקודה -p.
at89overlord -f./hello.ihx
שלב 5: הרכבה
הרכיב את המעגל על פי סכמטי. ניתן למצוא גרסת PDF במאגר.
אתה אמור לראות את הבזק הלד הירוק בתדירות של סביב 0.5 הרץ.
שלב 6: הסבר קוד
#לִכלוֹל
#לִכלוֹל
אנו מתחילים בהכללת הכותרת AT89X051 מ- sdcc. הוא מכיל פקודות מאקרו לאינטראקציה עם רגיסטרים כאילו היו משתנים. אנו כוללים גם stdint.h המכיל הגדרות של סוגי uint8_t ו- uint16_t שלמים.
// בהנחה שהמתנד הוא 16MHz
#הגדר INTERRUPTS_PER_SECOND 5208
הפרעה מתרחשת כאשר טיימר 0 עולה על גדותיו. הוא מוגדר כטיימר יחיד של 8 ביט, כך שזה קורה כל 2^8 מחזורי מעבד. מחזור מעבד אחד לוקח 12 מחזורי שעון, וכך אנו מגיעים ל 16000000/12/2^8 = 5208.33333.
uint8_t led_state נדיף = 0;
uint16_t timer_counter נדיף = INTERRUPTS_PER_SECOND;
אנו מכריזים על בקרת המדינה המובילה ומפריעים למשתני נגד.
טיימר void0_ISR (void) _interrupt (1) {
שעון_ Timer--; if (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
בכל פעם שהטיימר 0 עולה על גדותיו, המונה יורד. אם הוא שווה לאפס הוא מתאפס, ומצב ה- LED משתנה. זה קורה בערך פעם בשנייה, וכתוצאה מכך תדר מהבהב של ~ 0.5Hz LED.
int main () {
TMOD = 0x3; // מצב טיימר - 8 סיביות, ללא מכשיר מראש. freq = OSCFREQ/12/2^8 TL0 = 0; // ניקוי מונה TH0 = 0; // נקה רשום TR0 = 1; // הגדר טיימר להפעלה. ET0 = 1; // הגדר הפרעה. EA = 1; // הגדר הפרעה גלובלית. בעוד (1) {if (led_state) {P1 = 0xFF; } אחר {P1 = 0x00; }}}
אנו מגדירים את מודול הטיימר ומחכים לשינויים במשתנה הבקרה של מצב ה- LED. TMOD הוא רשם בקרת מצב הטיימר. TL0 ו- TH0 הם אוגרי בקרת טיימר 0. ET0 הוא ביט ההפעלה של טיימר 0 ברשם בקרת הטיימר (TCON). TR0 ו- EA הם סיביות ברשם האפשרויות להפריע (IE).
שלב 7: משאבים נוספים
- גיליון נתונים של AT89C2051:
- מהדר מכשיר קטן C (sdcc):
- 8051 משאבים:
- מאגר מתכנת AT89C2051:
- מאגר hello-8051:
מוּמלָץ:
מבוא לתכנות פטל פטל ללא קידוד ידני: 3 שלבים
מבוא לתכנות פטל פטל ללא קידוד ידני: היי, הוראה זו תראה לך כיצד להפוך את ה- Raspberry Pi שלך למכשיר אוטומציה הניתן לתכנות מלא התואם לשפת תכנות מכוונת גרפית עבור PLCs הנקראים פונקציית בלוק תרשים (חלק מתקן IEC 61131-3). זה יכול להיות
כוכב חג המולד עם נוריות לתכנות: 7 שלבים
כוכב חג המולד עם נוריות ניתנות לתכנות: רציתי השנה משהו אחר לתצוגת חג המולד החיצונית שלי, אז החלטתי לקנות מחרוזת נוריות ניתנות לתכנות RGB (לפעמים נקראות נוריות ניאופיקסל) וליצור כוכב חג המולד. נוריות LED אלה יכולות להיות מתוכנתות בנפרד לצבע ובהיר
מבוא והדרכה בנושא אספקת חשמל לתכנות !: 7 שלבים
מבוא והדרכה בנושא אספקת חשמל הניתנת לתכנות !: אם תהית אי פעם לגבי ספקי כוח הניתנים לתכנות, עליך לעבור על ההוראות כדי לקבל ידע מלא & דוגמה מעשית לאספקת חשמל לתכנות. כמו כן, כל מי שמתעניין באלקטרוניקה, אנא עברו על
כוכב אוריגמי כוכב LED: 3 שלבים (עם תמונות)
כוכב אוריגמי כוכב LED: טוב … בדקתי כאן הוראות ולא מצאתי את זה נעשה כך … כן … hehe … להלן המוצר הסופי
כוכב חג המולד עם נוריות ארדואינו ו- RGB: 5 שלבים (עם תמונות)
כוכב חג המולד עם נורות ארדואינו ו- RGB: היי! אנו קהילת ארדואינו נובוסיבירסק מסיביר קפואה עמוקה. כדי להתחמם מעט החלטנו לעשות כוכבי חג מולד נוצצים ויפים. הקפד לצפות בסרטון ההדגמה