فهرست مطالب:

شروع به کار با Bascom AVR: 5 مرحله
شروع به کار با Bascom AVR: 5 مرحله

تصویری: شروع به کار با Bascom AVR: 5 مرحله

تصویری: شروع به کار با Bascom AVR: 5 مرحله
تصویری: برنامه نویسی avr گام اول | Programming For AVR microcontroler 2024, جولای
Anonim
شروع به کار با Bascom AVR
شروع به کار با Bascom AVR

این آغاز مجموعه ای است که به شما می گوید میکروکنترلر AVR خود را با Bascom AVR برنامه ریزی کنید.

چرا این کار را می کنم.

اکثر نمونه برنامه های این مجموعه را می توانید با آردوینو بسازید.

برخی آسان تر و برخی دیگر دشوارتر ، اما در پایان هر دو بر روی یک کنترلر اجرا می شوند.

اما روش برنامه نویسی در هر محیط توسعه متفاوت است. آردوینو به جز همه کارها به یک کتابخانه نیاز دارد. Bascom همچنین با کتابخانه ها کار می کند ، اما من به ندرت مجبورم کتابخانه ای شامل آن شوم. با آردوینو ، تمام تنظیمات سخت افزاری از طریق کتابخانه ها انجام می شود. تأثیر بسیار کمی بر قدرت واقعی میکروکنترلر دارید. شروع با تایمرهایی که کنترلر دارد. با آردوینو دوباره به کتابخانه نیاز دارید. اگر تایمر را دارید تا کار کند ، ممکن است کتابخانه دیگری با تنظیمات شما برخورد کند. در bascom شما می توانید به سخت افزار کامل از جمله بخش بوت که توسط arduino اشغال شده است دسترسی رایگان داشته باشید. به عنوان مثال ، برخی از کتابخانه های bascom از شما می پرسند که می خواهید از کدام تایمر استفاده کنید. از سوی دیگر ، از آنجا که arduino ایجاد کتابخانه را بسیار آسان می کند ، طبیعتاً آن را به بستری تبدیل می کند که سخت افزارها و حسگرهای جدید معمولاً مستقیماً دارای کتابخانه هستند. آنچه اغلب با تحقیقات زیادی در bascom همراه است و وظایفی که معمولاً یک کتابخانه انجام می دهد باید با زحمت در کد برنامه گنجانده شود. اما خبر خوب این است که جامعه bascom نیز بسیار بزرگ است ، به همین دلیل برای هر ایده یک راه حل وجود دارد.

بنابراین تا حدی به پروژه ای که برای محیط توسعه استفاده می شود بستگی دارد و تا حدی به دانش شخص برنامه نویس بستگی دارد.

اما چرا من این سریال را انجام می دهم. از یک طرف باعث صرفه جویی زیادی در پول می شود. من مجبور نیستم برای هر پروژه یک برد آردوینو بخرم. به عنوان مثال: هزینه یک کنترلر آردوینو نامی حدود 12 یورو است که روی آن فقط 2.5 یورو هزینه دارد و حداقل مدار مورد نیاز برای عملکرد پایدار ، حدود 4 یورو هزینه دارد. از سوی دیگر ، شما انتخاب کاملی از تراشه های avr را دارید که در دسترس هستند. atmegas 8 تا 256 و attiny 8 تا 2313 و بسیاری از انواع xmega که هیچ تجربه ای در مورد آنها ندارم. اگر فقط می خواهید از سروو و سنسور اولتراسونیک استفاده کنید که می تواند یک دست را تشخیص دهد ، و سپس درب سطل زباله را باز کنید ، می توانید از کوچکترین تراشه ممکن استفاده کنید. بنابراین دلایل زیادی برای یادگیری زبان دوم وجود دارد.

بنابراین بیایید شروع کنیم

تدارکات

این لیستی از حداقل قطعات مورد نیاز برای عملکرد پایدار تراشه و برنامه نویسی است.

تخته نان برای آزمایش

Atmega 8-16PU (اگر آنها را به اشتباه بکشید 2 یا 3 بخرید)

7805 تنظیم کننده ولتاژ 5V

مقاومت 10 اهم

خازن فیلم 100nF

خازن الکترولیتی 10µF

خازن الکترولیتی 100μF

چند سیم برای تخته نان

Windows PC 7/8/8.1/10

برنامه نویس ISP (من در اینجا از USBasp استفاده می کنم که می توانید آن را در آمازون با پول کمی خریداری کنید)

Bascom AVR (می توانید DEMO را از اینجا بارگیری کنید. همه عملکردها باز هستند ، اما می توانید کد را فقط تا اندازه 4Kb بنویسید که برای تعداد زیادی کد کافی است).

قطعات اختیاری:

LED ها با مقاومت

سوئیچ های فشار

قطعات خاص پروژه

مرحله 1: نصب Bascom و Setup

نصب و راه اندازی Bascom و راه اندازی
نصب و راه اندازی Bascom و راه اندازی
نصب و راه اندازی Bascom و راه اندازی
نصب و راه اندازی Bascom و راه اندازی
نصب و راه اندازی Bascom و راه اندازی
نصب و راه اندازی Bascom و راه اندازی

فایل را بارگیری کرده و Bascom AVR را نصب کنید. تمام قسمتهای آن از جمله آخرین کادر تأیید را پس از نصب نصب کنید.

پس از آن رایانه خود را راه اندازی مجدد کنید در غیر این صورت bascom شروع نمی شود.

پس از راه اندازی مجدد bascom را شروع کنید.

به گزینه ها -> برنامه نویس بروید و USBasp را از لیست انتخاب کنید ، تنظیمات را ذخیره کرده و Bascom را ببندید.

از این برنامه برای نصب usbasp استفاده کنید. پس از آن ، رایانه خود را مجدداً راه اندازی مجدد کنید. اکنون USBasp را با رایانه خود وصل کرده و مدیر دستگاه را راه اندازی کنید. USBasp باید در دستگاه های libusb ظاهر شود.

دوباره Stat Bascom و ایجاد یک فایل جدید. آن را در رایانه خود ذخیره کرده و دکمه F7 را روی صفحه کلید خود فشار دهید.

کامپایلر برنامه خالی را شروع و کامپایل می کند. اکنون می توانید عملکرد برنامه نویس را آزمایش کنید.

دکمه F4 را روی صفحه کلید خود فشار دهید تا پنجره برنامه نویس شروع شود. حالا برای شروع تعامل به قسمت chip -> Identify بروید. LED های USBasp اکنون باید کوتاه چشمک بزنند. باید پیامی دریافت کنید مانند شناسه تراشه FFFFFF نمی تواند دستگاه را بخواند. این نشانه خوبی است که برنامه نویس در حال کار است اما هیچ تراشه ای پیدا نکرد.

اکنون می توانیم اولین مدار را بسازیم.

مرحله 2: اجازه دهید نگاهی دقیق تر به تراشه بیندازیم

بیایید نگاهی دقیق تر به تراشه بیندازیم
بیایید نگاهی دقیق تر به تراشه بیندازیم

اگر به pinout تراشه نگاه کنید ، به نظر می رسد تراشه هیچ شباهتی به برد arduino ندارد. مطمئناً ما از Atmega8 استفاده می کنیم و در Arduino uno یک Atmega328 است. اما Pinout تقریباً یکسان است ، اما تراشه برد Arduino Uno عملکردهای بیشتری دارد. در اینجا نام پین ها است. VCC و GND پایه های منبع تغذیه هستند.

AREF و AVCC پین هایی برای ولتاژ مرجع و منبع تغذیه مبدل آنالوگ به دیجیتال هستند.

PB 0-7 PC 0-6 PD 0-7 پین های ورودی با کاربری چند منظوره و چند منظوره هستند.

تنظیم مجدد پین همان چیزی است که از نام آن می آید. برای راه اندازی مجدد تراشه خط بالای نام تنظیم مجدد به معنی نفی است. این بدان معناست که برای تنظیم مجدد تراشه باید آن را تا 0 ولت پایین بیاورید.

برای پین های زیر دستورالعمل های جداگانه به زودی ارائه می شود.

RXD TXD پین های سخت افزاری برای ارتباط سری UART هستند.

INT0 INT1 پین های سخت افزاری هستند

منبع ساعت XCK /T0 UART /تایمر /منبع ساعت Counter0

پایه های XTAL /TOSC برای کریستال خارجی تا 16 مگاهرتز (مدلهای مختلف تا 20 مگاهرتز) /پایه های کریستالی برای RTC داخلی است

T1 شبیه T0 است

پین های AIN برای مقایسه آنالوگ هستند

ICP1 مشابه T0/T1 است

OC1A پین خروجی سخت افزار برای pwm timer1 channel A است

تراشه SS / OC2 را برای SPI / مانند OC1B اما کانال B انتخاب کنید

MOSI MISO SCK / OC2 پین های سخت افزاری SPI و پایه های برنامه نویس / خروجی تایمر PWM2 هستند

ADC0 تا ADC5 ورودی های آنالوگ هستند

SDA SCL پین های سخت افزار I2C هستند

تراشه معمولی می تواند از 4 ، 5V تا 5 ، 5V کار کند ، Atmega 8L می تواند با ولتاژ بسیار پایین کار کند.

می بینید که حتی این تراشه می تواند بیشتر از آنچه که Arduino Uno نمی تواند انجام دهد ، انجام دهد. اما آردوینو می تواند این کار را انجام دهد ، شما فقط باید آن را برنامه ریزی کنید.

مرحله 3: اولین مدار

اولین مدار
اولین مدار
اولین مدار
اولین مدار

اکنون وقت آن است که اولین مدار خود را بسازید.

معمولاً اولین مدار چیست؟ درست! بیایید یک LED را چشمک بزنیم

LED با PB0 وصل شده است. مقاومت کنار تراشه دارای 10k اهم است.

مقاومت کنار LED دارای 470 اهم است.

حالا می توانید مطابق تصویر تصویر USBasp را با Atmega وصل کنید.

اما قبل از اینکه برق را روشن کنید اجازه دهید برنامه را بنویسیم.

مرحله 4: اولین برنامه را بنویسید

برنامه اول را بنویسید
برنامه اول را بنویسید

یک فایل جدید در Bascom ایجاد کنید و متن زیر را تایپ کنید.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0 = خروجی do portb.0 = 1 انتظار 1 portb.0 = 0 انتظار 1 حلقه

پس از آن آن را با زدن F7 روی صفحه کلید خود کامپایل کنید.

حالا می توانیم با فشار دادن F4 تراشه را برنامه ریزی کنیم. پنجره برنامه نویس ظاهر می شود. اکنون زمان آن رسیده است که برق را از صفحه نان بردار روشن کنید. شما باید چیزی بین 6 تا 12 ولت اعمال کنید.

حالا به chip -> autoprogram بروید. اگر پنجره برنامه نویس به طور خودکار بسته شود ، برنامه نویسی موفقیت آمیز بود.

LED باید در فرکانس یک ثانیه چشمک بزند.

اکنون برای درک نحو برنامه ، نگاهی دقیق تر به برنامه بیندازید.

$ regfile "m8def.dat"

کریستال $ = 1000000

با $ regfile به کامپایلر می گوییم نوع تراشه مورد استفاده نام تراشه آردوینو "m328pdef.dat" خواهد بود.

با کریستال $ ما سرعت پردازنده را در حدود 1 مگاهرتز به او می گوییم.

config portb.0 = خروجی

این بدان معناست که PB0 باید به عنوان خروجی عمل کند.

به هر حال ، اختصار PB0 به معنی پورت B بیت 0 است. تراشه به چند پورت تقسیم می شود. به هر پورت نامه ای برای شناسایی واضح داده می شود. و هر portpin کمی از 0 تا 7. به عنوان مثال ، من می توانم یک بایت کامل در ثبت خروجی پورت بنویسم ، که از طریق پین های پورت جداگانه خروجی می شود.

انجام دادن

حلقه

در آردوینو عبارت void loop به این معنی است. تمام این دو دستور برای همیشه تکرار می شود. (با برخی استثنائات اما بعداً بیشتر در مورد آن)

Portb.0 = 1

صبر کنید 1 portb.0 = 0 صبر کنید 1

در اینجا ما چشمک زدن led را بیان می کنیم.

Portb.0 = 1 به تراشه می گوید PB0 خروجی را به 5 ولت تغییر دهد

دستور wait 1 اجازه دهید تراشه یک ثانیه منتظر بماند. اگر می خواهید led را سریعتر عوض کنید باید دستور wait را با waitms جایگزین کنید ، اکنون می توانید مدتی را در میلی ثانیه وارد کنید. waitms 500. (waitus به معنی انتظار در نانو ثانیه است)

Portb.0 = 0 به تراشه می گوید PB0 خروجی را به 0V تغییر دهید.

مرحله 5: یک دکمه برای استفاده از ورودی ها اضافه کنید

یک دکمه برای استفاده از ورودی ها اضافه کنید
یک دکمه برای استفاده از ورودی ها اضافه کنید

حالا دکمه ای را برای روشن شدن led در صورت فشار دادن دکمه اضافه می کنیم.

دکمه را مطابق تصویر وارد کنید.

حالا برنامه follow را تایپ کنید

$ regfile "m8def.dat"

$ crystal = 1000000 پیکربندی portb.0 = خروجی پیکربندی portd.7 = ورودی Portd.7 = 1 انجام دهید اگر pind.7 = 0 سپس portb.0 = 1 دیگری portb.0 = 0 حلقه

اگر آن برنامه را روی تراشه بارگذاری کنید ، led تنها با فشردن دکمه روشن می شود. اما چرا؟

برنامه به طور مشابه مانند برنامه قبلی شروع می شود

config portd.7 = ورودی. این بدان معناست که پین PD7 که با دکمه متصل شده است به عنوان ورودی عمل می کند.

Portd.7 = 1 پین را به بالا تغییر نمی دهد ، اما مقاومت کشش داخلی Atmega را فعال می کند.

اگر به آردوینو عادت دارید ، statemend if کمی عجیب به نظر می رسد.

اگر از عبارت if استفاده می کنید باید از عبارت "then" استفاده کنید. در این نمونه دستور if برای عملیات تک فرمان استفاده می شود. اگر می خواهید از دستورات بیشتری استفاده کنید ، باید آن را به این شکل بنویسید.

اگر pind.7 = 0 باشد پس

portb.0 = 1 برخی از کد برخی از کد برخی دیگر کد portb.0 = 0 پایان اگر

برای استفاده از دستور if شما باید از عبارت "end if" در پایان استفاده کنید.

آنچه هنوز مهم است شاید قبلاً آن را دیده اید. ورودی ها با portx.x ، بلکه با pinx.x پرس و جو نمی شوند. شما به راحتی می توانید آن را به خاطر بسپارید. خروجی ها "o" (پورت) در کلمه و ورودی ها "i" (پین) دارند.

حالا نوبت شماست که کمی در اطراف بازی کنید.

دستورالعمل بعدی من به زودی (دستورات استاندارد مانند while ، case case ، for و متغیرها).

اگر از دستورالعمل آموزشی من خوشتان می آید و می خواهید بیشتر در نظرات به من بگویید.

توصیه شده: