
چکیده
جزوه حاضر به عنوان یک مرجع ساختار یافته برای آشنایی با مبانی میکروکنترلرهای AVR، محیط برنامه نویسی BASCOM و شیوه ی کار با سخت افزارهای جانبی تهیه شده است. مطالب با رویکرد مرحله به مرحله تنظیم شده اند تا روند یادگیری از آشنایی با نرم افزار و دستورات پایه تا پیاده سازی عملی پروژه های مبتنی بر LCD، پورت ها، تایمرها، مبدل آنالوگ به دیجیتال، ارتباطات سریال و دیگر قابلیت های داخلی و خارجی میکروکنترلر ادامه یابد. علاوه بر توضیح کامل ساختار برنامه نویسی در بیسیک، تنظیمات رجیسترها، معرفی قطعات، روش شبیه سازی در Proteus و نحوه پروگرام کردن میکرو نیز در بخش ضمائم گنجانده شده است. این جزوه با محوریت خانواده ی Atmega و Attiny، نمونه کدها و مثال های قابل اجرا را همراه با فایل های شبیه سازی ارائه می کند تا مخاطب بتواند مباحث را در محیط واقعی یا مجازی دنبال کند.
مقدمه
میکروکنترلرهای AVR طی سال ها جایگاه ویژه ای در پروژه های الکترونیکی پیدا کرده اند و دلیل این موضوع تنها به فراگیر بودن آن ها در بازار محدود نمی شود. معماری هشت بیتی ساده، کارایی بالا در فرکانس های مختلف، مجموعه ی دستورالعمل های کم تعداد اما کاربردی و وجود امکانات داخلی گسترده باعث شده است که این خانواده برای ساخت و توسعه ی مدارهای دیجیتال انتخاب مناسبی باشد. در کنار این ویژگی ها، وجود ابزارهای نرم افزاری مانند BASCOM-AVR فضای مناسبی را برای برنامه نویسی فراهم کرده است؛ فضایی که با اتکا بر زبان بیسیک، امکان نوشتن کدهای خوانا و سریع را فراهم می سازد. جزوه ی پیش رو با همین نگاه تهیه شده و به صورت منسجم، بخش های مختلف کار با AVR را از پایه تا سطوح کاربردی توضیح می دهد.
نخستین موضوعی که در این جزوه مطرح شده، آشنایی با محیط بسکام است؛ محیطی که تمام مراحل نوشتن، ویرایش، بررسی خطا، کامپایل و تولید فایل های خروجی مانند HEX در آن انجام می شود. منوهای مختلف برنامه، از File و Edit تا Program و View، به شکلی قابل فهم بررسی شده اند و مخاطب می تواند بدون پیچیدگی های اضافی مسیر ایجاد یک پروژه را از ابتدا دنبال کند. توضیحاتی مانند نحوه ی ذخیره سازی پروژه ها، مدیریت فایل ها، مشاهده ی خطاها، استفاده از شبیه ساز داخلی، و کاربرد گزینه هایی مانند Compile یا Syntax Check از جمله بخش هایی هستند که در گام اول به آن ها پرداخته شده است. آشنایی با این محیط مقدماتی ترین نیاز برای ورود به دنیای بسکام است و ساختار منظم این بخش، زمینه ی لازم را برای ادامه مسیر ایجاد می کند.
پس از آشنایی با نرم افزار، نوبت به مبانی زبان بیسیک در بسکام می رسد. در این بخش، ساختار اصلی یک برنامه توضیح داده شده است؛ از معرفی میکروکنترلر با دستور $regfile تا تعیین فرکانس کاری با $crystal. مثال های عملی نشان می دهند که چگونه می توان امکانات داخلی میکرو مانند تایمرها، مبدل آنالوگ به دیجیتال، یا LCD کاراکتری را توسط دستور Config تنظیم کرد. با ارائه نمونه کدهای واقعی، روند استفاده از پورت ها و پین ها نیز شرح داده شده است؛ از تعریف ورودی و خروجی بودن خطوط گرفته تا دستوراتی مانند Toggle، Set، Reset و Bitwait که رفتار پایه ها را کنترل می کنند. این توضیحات پایه ای، امکان تنظیم دقیق سخت افزار و نوشتن ساختارهای قابل اجرا را فراهم می سازد.
موضوع دیگری که در جزوه مورد توجه قرار گرفته، راه اندازی لوازم جانبی داخلی و خارجی است. میکروکنترلرهای AVR به مجموعه گسترده ای از امکانات مجهز هستند؛ تایمر/کانترهای متعدد، کانال های PWM، واحد USART، مبدل آنالوگ به دیجیتال ۱۰ بیتی، نوسان ساز داخلی، ارتباط JTAG، پشتیبانی از ISP و دیگر قابلیت هایی که در پروژه های مختلف مورد استفاده قرار می گیرند. در این جزوه، نحوه ی فعال سازی و کار با این امکانات همراه با مثال های کاربردی ارائه شده است. همچنین راه اندازی LCD گرافیکی، بررسی ساختار ورودی/خروجی، تنظیمات مربوط به کریستال ها و معرفی ویژگی های سخت افزاری پایه های میکرو نیز در بخش های مختلف تشریح شده است.
در بخش ضمائم، موضوعاتی قرار گرفته که نقش تکمیلی دارند. آموزش مقدماتی کار با Proteus، روش شبیه سازی مدارها، معرفی روند پروگرام کردن میکرو با ISP و آشنایی با برخی نکات اجرایی، مجموعه ای از ابزارها را در اختیار مخاطب قرار می دهد تا بتواند برنامه ها و مدارهای خود را در محیط واقعی یا شبیه سازی شده اجرا کند. این بخش باعث می شود مسیر بین نوشتن کد، تست، شبیه سازی و پیاده سازی سخت افزاری به صورت یکپارچه دنبال شود.
در کنار تمام این مباحث، محتوای جزوه از مثال های عملی تشکیل شده است؛ مثال هایی که از چشمک زن ساده تا نمونه های پیچیده تر را در بر می گیرد. این مثال ها با ساختار منظم نوشته شده و امکان بررسی خط به خط را فراهم می کنند. استفاده از فایل های شبیه سازی پروتئوس نیز شرایطی ایجاد کرده تا اجرای واقعی کدها قابل مشاهده باشد. تمرکز اصلی در این روند بر شناخت امکانات میکرو، تجربه کردن رفتار آن ها و آشنایی با ساختار بیسیک است.
این مجموعه با نگاهی دقیق به نیازهای کار با AVR، از معرفی نرم افزار و دستورات اولیه تا راه اندازی سخت افزارهای جانبی را به شکل منظم بررسی کرده و جریان مشخصی برای نوشتن کد، تست و اجرای عملی ارائه می دهد.
فهرست مطالب
مقدمه: 5
فصل اول (آشنایی مختصر با محیط بسکام)
آشنایی مختصر با محیط بسکام: 7 منوی file 7
8 edit منوی
8 View منوی
9 program منوی
اصلاحات پرکاربرد 7
فصل دوم (آشنایی مختصر با بیسیک و کار با lcd و پورت ها)
مراحل نوشتن یک برنامه جدید (بدنه ی یک برنامه): 11
دستورات مربوط به پورت ها (کار با پورت ها ) 15
دستورات تاخیر 18
دستورات حلقه و پرش 18
Lcd کاراکتری (دستورات مربوط به راه اندازی، فارسی نویسی و…) 23
فصل سوم (معرفی سایر دستورات بیسیک )
اعداد و متغییرها در بسکام 33
دستورات مربوط به کار با رشته ها 45
دستورات حلقه و پرش و شرط 55
دستورات اجرایی (این دستورات، دستورات خاص برای کامپایلر هستند که برای اجرای بهتر برنامه استفاده می شوند) 68
زیربرنامه ها و فراخوانی توابع 74
توابع ریاضی و محاسباتی 79 توابع تبدیل کدها و متغییرها به یکدیگر 94
فصل چهارم (راه اندازی امکانات جانبی )
دستور debounce (اتصال کلید به میکرو) 97
دستور PULSEOUT (ایجاد یک پالس بر روی یک پایه) 98
دستور PULSEIN (اندازه گیری دوره ی تناوب پالس موجود بر روی یک پایه) 99
دستور SOUND (ایجاد پالس برای راه اندازی بازر بر روی یک پایه) 99
دستور ENCODER ) ENCODER نوعی کلید دوطرفه می باشند که..) 100
دستور DTMFOUT ( ایجاد پالس شماره گیری (تلفن) با avr) 102
راه اندازی magnetic card (فقط کافی است شما آن را از شکاف…) 105 LCD گرافیکی (بر روی این نوع lcd می توان تصاویر، متن و… را نمایش داد و…) 122
استفاده از کلید و کیبرد و کی پد و …(روش های راه اندازی کیپد، کیبرد کامپیوتر و کلید فشاری و…) 129
اتصال avr به عنوان کیبرد به کامپیوتر (چگونه یک کیبرد بسازیم…….) 126
اتصال avr به عنوان موس به کامپیوتر — چگونه یک موس بسازیم) 131
مبدل آنالوگ به دیجتال (adc) (برای تبدیل کمیت های آنالوگ به دیجتال از این مورد استفاده می شود …. ) 134
راه اندازی سروو موتور (نوعی موتور پرقدرت است که می تواند در یک زاویه خاص بچرخد…) 137
راه اندازی WATCHDOG (تایمری است که می تواند تا یک زمان خاص بشمارد و میکرو را ریست کند، این تایمر…) 140
راه اندازی وقفه های خارجی (چگونه یک پایه همیشه چک شود) 141
راه اندازی گیرنده rc5 (گیرنده و فرستنده های مادون قرمز که آن ها را با نام تجاری گیرنده و فرستنده های rc5 می شناسند رواج فوق… ) 143
ساخت کنترل تلویزیون و سی دی sony (توسط دستور زیر می توان دستورات مخصوص کنترل تلویزیون و cd سونی … ) 147
راه اندازی گیرنده RC6 (این پروتکل، برخلاف RC5 در اکثر دستگاه های صوتی تصویری جدید (تمامی دستگاه های CD چینی را پشتیبانی…) 150
اندازه گیری یک خازن یا مقاومت (شما با استفاده از دستور زیر می توانید مقدار ثابت زمانی مقاومت و خازنی که به پایه دلخواه میکرو…) 152
مقایسه کننده آنالوگ (مقایسه کننده آنالوگ مقادیر ولتاژ آنالوگ موجود بر روی دو پایه خود را) 153
تایمر/کانتر (تایمر کانتر چیست؟…) 154
تایمر/کانتر 0 (راه اندازی تایمر کانتر صفر در مد تایمر – کانتر -….) 154
تایمر کانتر یک (راه اندازی در مد تایمر – کانتر – pwm مقایسه ای و…) 158
راه اندازی تایمر/کانتر دو (راه اندازی در مد تایمر – کانتر – pwm مقایسه ای و…) 176
راه اندازی تایمر/کانتر سه (راه اندازی در مد تایمر – کانتر – pwm مقایسه ای و…) 187
Real Time Counter) rtc ) (شمارشگر زمان واقعی) 202
ارتباط سریال rs232 (اتصال دو میکرو از طریق دو سیم…) 211
ارتباط سریال spi ( ارتباط چند میکرو از طریق 4 سیم …) 217
ارتباط سریال i2c یا wire 2 (اتصال چند میکرو از طریق دو سیم…) 224
ارتباط سریال WIRE 1 (اتصال چند میکرو از طریق 1 سیم..) 231
کار با حافظه داخلی میکرو (eeprom): 234
ضمائم:
ضمیمه 1 : طریقه ی نصب بسکام 236
ضمیمه 2 : آشنایی با محیط شبیه سازی بسکام (simulate) 240
ضمیمه 3 : شبیه سازی میکرو کنترل avr با برنامه پروتئوس (آشنایی مقدماتی) 246
ضمیمه 4 : پروگرام کردن میکرو : (معرفی منوی send to chip) 253
ضمیمه 5 : راه اندازی انواع موتورهای dc و پله ای بوسیله ی avr و زبان بیسیک 258
ضمیمه 6 : راه اندازی 7 سگمنت (این قطعات از 8 led تشکیل می شود که 7 تا از آن ها نمایشگر هستند و یکی…) 269
ضمیمه 7 : خطاهای بسکام 283
ضمیمه 8 : کلیدهای میانبر در بسکام 287
ضمیمه 9 : اندازه گیری ولتاژهای منفی، زیاد، مثبت و… با ADC (کار با OP AMP) 288
منابع و ماخذ 299