فهرست مطالب:
- مرحله 1: الزامات
- مرحله 2: ایجاد برنامه نویس
- مرحله 3: نصب نرم افزار برنامه نویس
- مرحله 4: برنامه نویسی تراشه
- مرحله 5: مونتاژ
- مرحله 6: توضیح کد
- مرحله 7: منابع اضافی
تصویری: مقدمه ای بر برنامه نویسی 8051 با AT89C2051 (با بازی مهمان: آردوینو): 7 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
8051 (همچنین به عنوان MCS-51 شناخته می شود) یک طراحی MCU از دهه 80 است که امروزه همچنان محبوب است. میکروکنترلرهای سازگار با 8051 مدرن از چندین فروشنده ، در همه اشکال و اندازه ها ، و با طیف گسترده ای از لوازم جانبی در دسترس هستند. در این قسمت آموزشی ما ATC9C2051 MCU از Atmel را بررسی خواهیم کرد.
AT89C2051 یک میکروکنترلر کوچک (فلش 2 کیلوبایت ، 128 گیگابایت RAM) ، ارزان (1.40 دلار آمریکا برای هر تراشه) است. ویژگی ها:
- عملکرد 2.7-6V
- 15 خط ورودی/خروجی
- 2 تایمر (16 بیت)
- وقفه های داخلی و خارجی
- UART
- مقایسه کننده آنالوگ روی تراشه
- حداکثر 2MIPS با کلاک 24 مگاهرتز
مرحله 1: الزامات
الزامات:
- کامپیوتر لینوکس (نرم افزار مورد نیاز: Arduino IDE ، git ، make ، sdcc)
- آردوینو UNO
- تراشه AT89C2051 (بسته DIP20)
- سوکت ZIF 20 پینی
- Optocoupler (ترجیحاً MOSFET-output)
- سپر نمونه اولیه آردوینو
- منبع تغذیه 12 ولت
- منبع تغذیه 5 ولت
- نوسان ساز کریستالی 16 مگاهرتز
- خازن 2x 30pF
- خازن 100nF
- دیود (به عنوان مثال: 1N400X)
- مقاومت ها (1K ، 3K3)
- پروتو بورد
- پرش کننده ها
- سیم مسی
نرم افزار مورد نیاز را بررسی کنید:
کدام پایتون 3
که کدوم sdcc کدوم رو درست میکنن
مرحله 2: ایجاد برنامه نویس
این بخش مختصر خواهد بود ، زیرا من مدتی پیش سپر برنامه نویسی خود را ساختم. من شماتیک و تصاویر تخته مونتاژ شده را ضمیمه کرده ام. PDF طرحواره را می توان در مخزن یافت.
شما باید صفحه برنامه نویس را برنامه ریزی کنید:
1. مخزن را کلون کنید.
git clone
2. فایل AT89C2051_programmer/AT89_prog/AT89_prog.ino را در Arduino IDE باز کنید.
3. طرح را از IDE Arduino بسازید و بارگذاری کنید.
مرحله 3: نصب نرم افزار برنامه نویس
1. یک محیط مجازی پایتون ایجاد کنید.
python3 -m venv venv
به venv/bin/activ
2. at89overlord را نصب کنید. at89overlord یک برنامه نویس منبع باز برای تراشه AT89C2051 است که توسط من نوشته شده است. کد منبع را می توانید در اینجا پیدا کنید.
پیپ را در at89overlord نصب کنید
3. نصب را تأیید کنید.
at89overlord -h
مرحله 4: برنامه نویسی تراشه
1. یک پروژه پلک زدن ساده را کلون کنید.
سی دی
git clone https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. برنامه را بسازید.
بساز
3. آردوینو را به رایانه وصل کنید ، منبع تغذیه 12 ولت را وصل کنید ، تراشه AT89C2051 را در سوکت ZIF قرار دهید.
4. محل پورت سریال آردوینو را پیدا کنید.
ls /dev /tty*
5. فایل IntelHex ساخته شده را روی تراشه بارگذاری کنید. اگر پورت Arduino شما متفاوت از /dev /ttyACM0 است ، باید مقدار صحیح را با پارامتر خط فرمان -p ارسال کنید.
at89overlord -f./hello.ihx
مرحله 5: مونتاژ
مدار را مطابق شماتیک جمع کنید. نسخه PDF را می توانید در مخزن پیدا کنید.
شما باید فلش LED سبز را با فرکانس حدود 0.5Hz مشاهده کنید.
مرحله 6: توضیح کد
#عبارتند از
#عبارتند از
کار را با قرار دادن هدر AT89X051 از sdcc شروع می کنیم. این شامل ماکروهایی برای تعامل با ثبات ها است که گویی متغیر هستند. ما همچنین شامل stdint.h است که شامل تعاریف انواع صحیح uint8_t و uint16_t است.
// با فرض نوسان ساز 16 مگاهرتز
#تعریف 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؛
ما کنترل حالت led را اعلام کرده و متغیرهای شمارنده را قطع می کنیم.
void Timer0_ISR (void) _ وقفه (1) {
timer_counter-- ؛ 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 ؛ } else {P1 = 0x00؛ }}}
ما ماژول تایمر را پیکربندی کرده و منتظر تغییرات در متغیر کنترل حالت led هستیم. TMOD ثبت کننده زمان کنترل زمان است. TL0 و TH0 رجیسترهای کنترل Timer0 هستند. ET0 بیت فعال-زمان سنج 0 در رجیستر کنترل تایمر (TCON) است. TR0 و EA بیت هایی در ثبت وقفه فعال (IE) هستند.
مرحله 7: منابع اضافی
- برگه اطلاعات AT89C2051:
- کوچک دستگاه C کامپایلر (sdcc):
- منابع 8051:
- مخزن برنامه نویس AT89C2051:
- سلام مخزن 8051:
توصیه شده:
مقدمه ای بر برنامه نویسی تمشک پای بدون کدنویسی دستی: 3 مرحله
مقدمه ای بر برنامه نویسی Raspberry Pi بدون کدنویسی دستی: سلام ، این دستورالعمل به شما نشان می دهد که چگونه Raspberry Pi خود را به یک دستگاه خودکار کاملاً قابل برنامه ریزی سازگار با زبان برنامه نویسی گرافیکی جهت PLC ها با نام Function Block Diagram (بخشی از استاندارد IEC 61131-3) تبدیل کنید. این میتواند باشد
برنامه نویسی از راه دور/بی سیم آردوینو و پاور بانک خانگی: 12 مرحله (همراه با تصاویر)
برنامه نویسی از راه دور/بی سیم آردوینو و پاور بانک خانگی: مشکل. من در نزدیک کامپیوتر رایانه ای طراحی می کنم و از usb و سریال برای & quot؛ اشکال زدایی & quot؛ در این مورد من lib را برای DHT12 ایجاد می کنم ، نسخه ای را در github کتابخانه ارائه می دهم. اما مشکلی به وجود می آید: & quot؛ وقتی درجه حرارت به زیر 0 می رسد ، مقدار خوانده شده wro
ارزان ترین آردوینو -- کوچکترین آردوینو -- آردوینو پرو مینی -- برنامه نویسی -- آردوینو ننو: 6 مرحله (همراه با تصاویر)
ارزان ترین آردوینو || کوچکترین آردوینو || آردوینو پرو مینی || برنامه نویسی || آردوینو ننو: …………………………. لطفاً برای ویدیوهای بیشتر به کانال YouTube من مشترک شوید ……. .این پروژه در مورد نحوه ارتباط با کوچکترین و ارزانترین آردوینو است. کوچکترین و ارزان ترین آردوینو arduino pro mini است. شبیه آردوینو
چگونه می توان به راحتی علامت "Light/LED" را برای برنامه نویسی آسان آردوینو تغییر داد: 7 مرحله (همراه با تصاویر)
چگونه می توان به راحتی علامت "Light/LED" را برای برنامه نویسی آسان آردوینو تغییر داد: در این دستورالعمل نشان خواهم داد که چگونه هر کسی می تواند چیزی را با چراغها به یک چراغ چشمک زن arduino قابل برنامه ریزی یا & quot؛ چراغ های متحرک & quot ؛ تبدیل کند
برنامه نویسی آردوینو نانو با استفاده از UNO: 4 مرحله (همراه با تصاویر)
برنامه نویسی آردوینو نانو با استفاده از UNO: سلام بچه ها ، اخیراً من یک کلون آردوینو نانو (CH340) جدید از ebay برای پروژه مینی آردوینو خریدم. پس از آن من arduino را به کامپیوترم متصل کردم و درایورها را نصب کردم اما هنوز کار نمی کنند ، بعد از چند روز من فقط نحوه برنامه نویسی را پیدا کردم