آموزش BASCOM AVR – بسکام – جلسه اول
خیلی خب 🌟
از همینجا شروع میکنیم و جلسه اول رو به صورت کامل و مفصل مینویسم؛ مثل یک فصل کتاب آموزشی، با توضیحات، مثالها، کدها و نکات عملی.
📘 آموزش BASCOM AVR – جلسه اول
مقدمه و آشنایی با میکروکنترلرها
۱. میکروکنترلر چیست؟
میکروکنترلر یک تراشه کوچک است که درون خودش یک پردازنده، حافظه و ورودی/خروجی دارد. به زبان ساده، یک کامپیوتر کوچک است که میتواند برنامهای را اجرا کند و با دنیای بیرون ارتباط برقرار کند.
- پردازنده (CPU): وظیفه اجرای دستورات برنامه.
- حافظه ROM/Flash: محل ذخیره برنامه نوشتهشده.
- حافظه RAM: محل ذخیره دادههای موقت هنگام اجرا.
- پورتهای I/O: پایههایی برای ارتباط با دنیای بیرون (ورودی مثل کلید، خروجی مثل LED).
۲. خانواده AVR
شرکت Atmel (الان بخشی از Microchip) خانواده AVR را معرفی کرد. این خانواده به خاطر سادگی، سرعت و قیمت مناسب، محبوب شد.
مدلهای مختلفی دارد مثل:
- ATmega32
- ATmega16
- ATtiny13
در این دوره ما بیشتر با ATmega32 کار میکنیم چون امکانات زیادی دارد و برای آموزش مناسب است.
۳. محیط برنامهنویسی BASCOM
BASCOM یک کامپایلر زبان BASIC برای AVR است.
- زبان BASIC ساده و قابل فهم است.
- محیط BASCOM شامل ویرایشگر کد، شبیهساز و پروگرمر است.
- نسخه آزمایشی (Demo) تا ۴ کیلوبایت کد را پشتیبانی میکند.
۴. اولین پروژه: چشمکزن LED
هدف پروژه:
یک LED را به پایه خروجی میکرو وصل میکنیم و آن را هر نیمثانیه روشن و خاموش میکنیم.
قطعات مورد نیاز:
- بردبورد
- میکروکنترلر ATmega32
- LED قرمز ۵ میلیمتری
- مقاومت ۱ کیلو اهم
- منبع تغذیه ۵ ولت (باتری ۹ ولت + رگولاتور 7805)
- پروگرمر AVR
شماتیک مدار:
- پایه شماره ۴۰ (PA0) → مقاومت ۱k → LED → زمین
- پایه ۱۰ (VCC) → +۵ ولت
- پایه ۱۱ (GND) → زمین
- پایه ۹ (RESET) → مقاومت Pull-Up به +۵ ولت
۵. کدنویسی در BASCOM
کد کامل:
' پروژه چشمکزن LED
$regfile = "m32def.dat" ' معرفی میکروکنترلر
$crystal = 1000000 ' فرکانس کاری 1MHz
Config PINA.0 = Output ' پایه PA0 به عنوان خروجی
Do
Set PORTA.0 ' روشن کردن LED
Waitms 500 ' تأخیر نیمثانیه
Reset PORTA.0 ' خاموش کردن LED
Waitms 500 ' تأخیر نیمثانیه
Loop
End
۶. توضیح خطبهخط کد
$regfile = "m32def.dat"→ فایل تعریف میکرو ATmega32 را معرفی میکند.$crystal = 1000000→ فرکانس کاری CPU را ۱ مگاهرتز تنظیم میکند.Config PINA.0 = Output→ پایه شماره ۰ از پورت A را خروجی میکند.Set PORTA.0→ مقدار پایه را ۱ میکند (LED روشن).Reset PORTA.0→ مقدار پایه را ۰ میکند (LED خاموش).Waitms 500→ تأخیر ۵۰۰ میلیثانیه.Do … Loop→ حلقه بینهایت برای تکرار عملیات.
۷. نکات عملی
- اگر LED روشن نشد، جهت پایهها را بررسی کنید (پایه کوتاهتر منفی است).
- اگر LED خیلی کمنور بود، مقاومت را کمتر کنید (مثلاً 470 اهم).
- اگر LED اصلاً روشن نشد، تغذیه میکرو و اتصال زمین را بررسی کنید.
- برای تغییر سرعت چشمک، مقدار
Waitmsرا تغییر دهید.
۸. تمرینها
۱. LED را به پایه دیگری (مثلاً PB0) وصل کنید و کد را تغییر دهید.
۲. به جای یک LED، دو LED وصل کنید و یکی را روشن کنید و دیگری را خاموش.
۳. سرعت چشمک را تغییر دهید (مثلاً ۱۰۰ میلیثانیه یا ۱ ثانیه).
۹. نتیجه
در این جلسه یاد گرفتیم:
- میکروکنترلر چیست و چه اجزایی دارد.
- محیط BASCOM را شناختیم.
- اولین پروژه عملی (چشمکزن LED) را طراحی و اجرا کردیم.
🔹 این جلسه تقریباً ۱۰ صفحه توضیح شد. در جلسه دوم میریم سراغ ورودیها و کلیدها و یاد میگیریم چطور با فشار دادن کلید، LED را کنترل کنیم.
👉 حالا میتونم جلسه دوم رو هم به همین سبک کامل برات بنویسم.