جدول المحتويات:
- الخطوة 1: المتطلبات
- الخطوة الثانية: بناء المبرمج
- الخطوة الثالثة: تثبيت برنامج المبرمج
- الخطوة 4: برمجة الشريحة
- الخطوة 5: التجميع
- الخطوة 6: شرح الكود
- الخطوة 7: موارد إضافية
فيديو: مقدمة إلى البرمجة 8051 باستخدام AT89C2051 (ضيف بطولة: Arduino): 7 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
8051 (المعروف أيضًا باسم MCS-51) هو تصميم MCU من الثمانينيات ولا يزال شائعًا حتى اليوم. تتوفر وحدات التحكم الدقيقة الحديثة المتوافقة مع 8051 من بائعين متعددين ، بجميع الأشكال والأحجام ، مع مجموعة واسعة من الأجهزة الطرفية. في هذا الدليل ، سننظر في AT89C2051 MCU من Atmel.
AT89C2051 هو متحكم صغير (2Kbyte Flash ، 128 بايت من ذاكرة الوصول العشوائي) ورخيص (~ 1.40 دولار لكل شريحة).
- عملية 2.7-6V
- 15 خطوط الإدخال / الإخراج
- 2 مؤقت (16 بت)
- المقاطعات الداخلية والخارجية
- UART
- المقارنة التناظرية على الرقاقة
- ما يصل إلى 2MIPS مع ساعة 24MHz
الخطوة 1: المتطلبات
متطلبات:
- كمبيوتر Linux (البرنامج المطلوب: Arduino IDE، git، make، sdcc)
- اردوينو UNO
- شريحة AT89C2051 (حزمة DIP20)
- مقبس ZIF ذو 20 سنًا
- Optocoupler (يفضل إخراج MOSFET)
- درع اردوينو للنماذج الأولية
- 12 فولت امدادات الطاقة
- 5V امدادات الطاقة
- 16 ميجا هرتز الكريستال مذبذب
- 2x 30pF مكثف
- مكثف 100nF
- الصمام الثنائي (على سبيل المثال: 1N400X)
- المقاومات (1 ك ، 3 ك 3)
- بروتوبورد
- صداري
- سلك نحاس
تحقق من البرامج المطلوبة:
التي بيثون 3
مما يجعل أي sdcc أي بوابة
الخطوة الثانية: بناء المبرمج
سيكون هذا القسم موجزًا ، حيث قمت ببناء درع البرمجة الخاص بي منذ بعض الوقت. لقد أرفقت التخطيطي وصور اللوحة المجمعة. يمكن العثور على ملف PDF الخاص بالتخطيطي في المستودع.
سيكون عليك برمجة لوحة المبرمجين:
1. استنساخ المستودع.
استنساخ بوابة
2. افتح ملف AT89C2051_programmer / AT89_prog / AT89_prog.ino في Arduino IDE.
3. قم ببناء وتحميل الرسم التخطيطي من Arduino IDE.
الخطوة الثالثة: تثبيت برنامج المبرمج
1. إنشاء بيئة افتراضية بيثون.
python3 -m venv venv
. venv / بن / تفعيل
2. قم بتثبيت at89overlord. at89overlord هو مبرمج مفتوح المصدر لشريحة AT89C2051 مكتوبة بواسطتي. يمكن العثور على كود المصدر هنا.
نقطة تثبيت at89overlord
3. تحقق من التثبيت.
at89overlord -h
الخطوة 4: برمجة الشريحة
1. استنساخ مشروع وميض بسيط.
مؤتمر نزع السلاح ~
git clone https://github.com/piotrb5e3/hello-8051.git cd hello-8051 /
2. بناء التطبيق.
صنع
3. قم بتوصيل Arduino بجهاز الكمبيوتر ، قم بتوصيل مزود الطاقة 12 فولت ، ضع شريحة AT89C2051 في مقبس ZIF.
4. حدد موقع منفذ Arduino التسلسلي.
ls / dev / tty *
5. تحميل ملف IntelHex المدمج على الشريحة. إذا كان منفذ Arduino الخاص بك مختلفًا عن / dev / ttyACM0 ، فيجب عليك تمرير القيمة الصحيحة باستخدام معلمة سطر الأوامر -p.
at89overlord -f./hello.ihx
الخطوة 5: التجميع
قم بتجميع الدائرة وفقًا للتخطيط. يمكن العثور على نسخة PDF في المستودع.
يجب أن ترى وميض LED الأخضر بتردد حوالي 0.5 هرتز.
الخطوة 6: شرح الكود
#يشمل
#يشمل
نبدأ بتضمين رأس AT89X051 من sdcc. يحتوي على وحدات ماكرو للتفاعل مع السجلات كما لو كانت متغيرات. نقوم أيضًا بتضمين stdint.h الذي يحتوي على تعريفات أنواع الأعداد الصحيحة uint8_t و uint16_t.
// بافتراض أن المذبذب هو 16 ميجا هرتز
#define INTERRUPTS_PER_SECOND 5208
تحدث مقاطعة عندما يفيض Timer0. تم تكوينه كمؤقت واحد 8 بت ، لذلك يحدث هذا كل 2 ^ 8 دورات معالج. تستغرق دورة المعالج الواحدة 12 دورة ساعة ، وبالتالي نصل إلى 16000000/12/2 ^ 8 = 5208.33333.
uint8_t متقلبة led_state = 0 ؛
uint16_t timer_counter = INTERRUPTS_PER_SECOND ؛
نعلن التحكم بقيادة الدولة ومتغيرات عداد المقاطعة.
Timer0_ISR (void) _interrupt (1) باطل {
عداد_مؤقت-- ؛ إذا (timer_counter == 0) {led_state =! led_state؛ timer_counter = INTERRUPTS_PER_SECOND ، }}
في كل مرة يتجاوز فيها Timer0 العداد ينخفض. إذا كانت تساوي الصفر ، تتم إعادة تعيينها ، ويتم تغيير حالة الصمام. يحدث هذا بمعدل مرة واحدة في الثانية ، مما ينتج عنه ~ 0.5 هرتز تردد وميض LED.
انت مين() {
TMOD = 0x3 ؛ // وضع المؤقت - 8 بت ، بدون مقياس مسبق. التكرار = OSCFREQ / 12/2 ^ 8 TL0 = 0 ؛ // مسح العداد TH0 = 0 ؛ // مسح السجل TR0 = 1 ؛ // ضبط جهاز ضبط الوقت للتشغيل. ET0 = 1 ؛ // ضبط المقاطعة. EA = 1 ؛ // تعيين المقاطعة العالمية. بينما (1) {if (led_state) {P1 = 0xFF ؛ } آخر {P1 = 0x00 ؛ }}}
نقوم بتكوين وحدة المؤقت وننتظر التغييرات في متغير التحكم في حالة الصمام ، TMOD هو سجل التحكم في وضع المؤقت. TL0 و TH0 هي سجلات تحكم Timer0. ET0 هو بت enable-timer0 في سجل التحكم في المؤقت (TCON). TR0 و EA هما بتات في تسجيل المقاطعة لتمكين السجل (IE).
الخطوة 7: موارد إضافية
- ورقة بيانات AT89C2051:
- مترجم C للأجهزة الصغيرة (sdcc):
- موارد 8051:
- مستودع المبرمج AT89C2051:
- مستودع hello-8051:
موصى به:
Robots for IRC (بطولة الروبوتات الدولية): 4 خطوات
Robots for IRC (International Robotics Championship): The IRC League هي أكبر مسابقة للروبوتات في آسيا تهدف إلى الاحتفال بالعلوم والتكنولوجيا والهندسة والرياضيات (STEM) وجعل الابتكار مجالًا شغوفًا بالعقول الشابة في العالم النامي. يود أن يوضح كيف م
مقدمة إلى المتلاعبين: 8 خطوات (بالصور)
مقدمة إلى المتلاعبين: يعد إنشاء المناور المناسب للتحدي أحد أصعب أجزاء مسابقة FIRST Robotics Competition (FRC). & nbsp؛ خلال السنوات الأربع التي أمضيتها كطالب ، كانت دائمًا أكبر نقطة فشل في فريقي. & nbsp؛ على الرغم من أن تحدي اللعبة في FRC يتغير من عام إلى
SlouchyBoard - طريقة مزعجة لمنعك من التراخي (مقدمة إلى EasyEDA): 4 خطوات (بالصور)
SlouchyBoard - طريقة مزعجة لإبعادك عن التراخي (مقدمة إلى EasyEDA): لوحة Slouchy عبارة عن لوحة دوائر مطبوعة صغيرة مقاس 30 مم × 30 مم تستخدم مستشعر إمالة وجرس بيزو و ATTiny 85 لإصدار صوت مزعج عند المستخدم يتراخى. يمكن إرفاق اللوحة بقميص أو قبعة مستخدمين بحيث عند التسرب
مقدمة للتعرف على الصوت باستخدام Elechouse V3 و Arduino: 4 خطوات (بالصور)
مقدمة للتعرف على الصوت باستخدام Elechouse V3 و Arduino: مرحبًا بكم … لقد كانت تقنية التعرف على الصوت موجودة هنا خلال السنوات القليلة الماضية. ما زلنا نتذكر الإثارة الكبيرة التي شعرنا بها أثناء التحدث إلى أول جهاز iPhone مزود بنظام Siri. منذ ذلك الحين ، تطورت أجهزة الأوامر الصوتية إلى مستوى متقدم جدًا
كيفية العد من 0 إلى 99 باستخدام متحكم 8051 مع عرض 7 أجزاء: 5 خطوات (بالصور)
كيفية العد من 0 إلى 99 باستخدام متحكم 8051 مع عرض 7 قطاعات: مرحبًا بالجميع ، سنخبرك في هذا البرنامج التعليمي عن كيفية العد من 0 إلى 99 باستخدام عرضين من 7 مقاطع