معرفی ATMEGA32
معرفی ATMEGA32
یکی از انواع میکروکنترلرهای جدید که در بازار الکترونیک ارائه شده است، میکروکنترلر های شرکت ATMEL با نام میکروکنترلرهای خانوادهAVR می باشد. این میکروکنترلر های هشت بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر زبان های سطح بالا (HLL ) بسیار مورد توجه قرار می گیرند. این میکروکنترلر ها از معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع میکروکنترلر ها دارا بودن 32 رجیستر همه منظوره می باشد. همچنین در این میکروکنترلر ها از حافظه های کم مصرف و غیر فرار FLASH و EEPROM استفاده می شود.
یکی از انواع میکروکنترلرهای جدید که در بازار الکترونیک ارائه شده است، میکروکنترلر های شرکت ATMEL با نام میکروکنترلرهای خانوادهAVR می باشد. این میکروکنترلر های هشت بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر زبان های سطح بالا (HLL ) بسیار مورد توجه قرار می گیرند. این میکروکنترلر ها از معماری RISC برخوردارند و شرکت ATMEL سعی نموده است با استفاده از معماری پیشرفته و دستورات بهینه، حجم کد تولید شده را کم و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع میکروکنترلر ها دارا بودن 32 رجیستر همه منظوره می باشد. همچنین در این میکروکنترلر ها از حافظه های کم مصرف و غیر فرار FLASH و EEPROM استفاده می شود. کامپایلر هایی به زبان BASIC و C که زبانهای پرکاربرد در دنیا هستند برای این نوع میکرو ها طراحی شده است و علاوه برآن از زبان اسمبلی نیز همچنان می توان برای برنامه نویسی استفاده کرد. به عنوان مثال کامپایلر BASCOM با زبان BASIC برای برنامه نویسی این نوع از میکروکنترلر ها می تواند مورد استفاده قرار گیرد. میکروکنترلر های AVR به سه دسته اصلی تقسیم می شوند: · سری AT90S یا AVR · سری TINYAVR · سری MEGAAVR میکروکنترلر های نوع MEGAAVR دارای قابلیت های بیشتری نسبت به دو سری دیگر هستند. در اینجا به بررسی مشخصات و پایه های یکی از میکروکنترلرهای پرکاربرد سری MEGA به نام ATMega32 می پردازیم: ATMega32 مهمترین مشخضات این میکروکنترلر 40 پایه عبارت است از: · کارایی بالا و توان مصرفی کم · 32 رجیستر (ثبات) 8 بیتی · سرعت با سقف 16 میلیون دستور در ثانیه در فرکانس 16 Mhz · 32 کیلو بایت حافظه FLASH داخلی قابل برنامه ریزی با قابلیت ده هزار بار نوشتن و پاک کردن · 2 کیلو بایت حافظه داخلی SRAM · 1024 بایت حافظه EEPROM داخلی قابل برنامه ریزی با قابلیت صد هزار بار نوشتن و خواندن · قابلیت ارتباط JTAG · دو تایمر/شمارنده هشت بیتی · یک تایمر/شمارنده شانزده بیتی · چهار کانال PWM · هشت کانال مبدل A/D ده بیتی · یک مقایسه کننده آنالوگ داخلی · WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی · ارتباط سریال برای برنامه ریزی: ISP · USART سریال قابل برنامه ریزی · دارای شش حالت SLEEP · منابع وقفه داخلی و خارجی · اسیلاتور داخلی RC · کار با ولتاژ 4.5 تا 5.5 · فرکانس کاری 0 تا 16 مگاهرتز · 32 خط داده ورودی و خروجی قابل برنامه ریزی میکروکنترلرهای PIC از نظر نوع حافظه به 4 دسته تقسیم می شوند : 1- دارای حافظه از نوع ¦nbsp;Flash هستند : آی سی هایی که دارای حرف F هستند ¦nbsp;مانند 16F84 2- دارای حافظه از نوع EPROM هستند : آی سی هایی که دارای حرف C یا CE هستند ¦nbsp;مانند 16C84 -16CE625 3-دارای حافظه از نوع ROM هستند :آی سی هایی که دارای حرف CR هستند ¦nbsp;مانند 16CR84 4-دارای حافظه از نوع EEPROM هستند . همچنین آی سی هایی که دارای حرف L هستند دارای رنج ولتاژ گسترده ای هستند . این مدار قابلیت پروگرم کردن آی سی های(PIC18F442و PIC18F458و PIC18F452و PIC18F252و PIC18F6620و PIC18F8720و PIC18F2620و PIC16C66و PIC16C72و PIC16C745و PIC16F84و PIC18F876) را دارد. این مدار رو می تونید با روشهای مختلفی تهیه کنید مثلا می تونید از برد سوراخ دار یا برد برد استفاده کنید یا استفاده از PCB آماده که من لینکشو در پایین گذاشتم یا آماده اون رو از بازار بخرید(به احتمال زیاد تو تهران پیدا میشه خصوصا تو پاساژ امجد!). برای ساخت این مدار من پیشنهاد میکنم از PCB استفاده کنید چون هم راحتتره و هم تمیزتر! برای ساخت این مدار به وسایل تقریبا زیادی احتیاج داریم که همه آنها در شمای کلی مدار نوشته شده است. در ضمن این مدار ورودی رو از پورت پرینتر میگیره. نوعی دیگر از آی سی های میکرو نیز وجود دارد به نام AVR که معمولا روی خود مدار اصلی پروگرم میشوند. در پستهای بعد مدارهای بسیار جالبی که با میکرو ساخته میشوند(مثل ساختن کد امنیتی برای دربها ، استپ موتو، دیکد کردن کدهای مورس و...!!) را آموزش میدهم. در ضمن اگر مشکلی در ساختن این مدار داشتید حتما در قسمت نظرات مطرح کنید. آموزش نرم افزار برنامه نویسی به زبان اسمبلی 8051 برای برنامه نویسی به زبان اسمبلی 8051 و ایجاد فایل HEX برای پروگرام کردن میکرو ، محیطهای برنامه نویسی مختلفی هست که ما در اینجا از نرم افزار Keil استفاده می کنیم . این نرم افزار را که به صورت فشرده هست می تونید از اینجا دانلود کنید . بعد از دانلود برنامه و اینکه اون رو از حالت فشره در آوردین ، برای نصب برنامه فایل setup را از داخل شاخه setup اجرا کنید و نرم افزار را در حالت DEMO نصب کنید . در این حالت بیشتر از 2 کیلو بایت نمی تونید برنامه بنویسید که البته منظور از 2 کیلوبایت ، ظرفیت فایلHEX نهایی هست و شما هم هیچوقت ظرفیت فایل HEX برنامه هاتون به 2 کیلو بایت نمی رسه . من که تا حالا 2 کیلو بایت برنامه ننوشتم ، شما رو نمیدونم . بعد از نصب برنامه از منوی Project گزینه یNew Project را انتخاب کنید و در پنجره ی جدیدی که باز میشه ، در قسمت File name برای پروژه ی جدید یک نام وارد کرده و دکمه ی Save رو کلیک کنید . حتماً هر پروژه ی جدید را داخل یک شاخه ی جدید به اسم همون پروژه ایجاد کنید . چراکه هر پروژه فایل های زیادی داره و بهتره که همشون یکجا باشند . بعد از اینکه دکمه ی Save رو کلیک کردین ، پنجره ی جدیدی باز میشه که از توی اون باید میکروکنترلر مورد نظر را از شرکت مربوطه انتخاب کنید . برای انتخاب میکروکترلر AT89C51 ساخت شرکت Atmel ، روی علامت به اضافه ای که کنار اسم این شرکته کلیک کرده و بعد روی گزینه ی 89C51 کلیک کنید . در پایان هم روی دکمه ی Ok کلیک کنید تا به مرحله ی بعد برید . اکنون پنجره ی اصلی نرم افزار را مشاهده می کنید که در سمت چپ آن پنجره ی Project Window و در قسمت پایین آن پنجره ی Output Window قرار داره . در پنجره ی Project Window پوشه ی Target 1 را می بینید که با کلیک کردن روی علامت به اضافه ای که در کنار آن است ، پوشه ی Source Groupe 1 باز میشه . در این مرحله برای ایجاد فایلی که بتونید برنامه را داخل آن بنویسید ، از منوی File گزینه ی New را انتخاب کرده و پس از آن با استفاده از گزینه ی Save که در منوی File قرار داره ، این فایل جدید را که ایجاد کردید با پسوند asm در همان پوشه ای که پروژه ی جدید را در آن ایجاد کردید ، ذخیره کنید . اکنون در پنجره ی Project Window ، بر روی پوشه ی Source Groupe 1 راست کلیک کرده و گزینه ی Add Files to Groupe’ Source Groupe 1’ َرا انتخاب کنید . در پنجره ی جدید در قسمت Files of type گزینه ی Asm Source file را انتخاب کنید تا فایلی که با پسوند asm ذخیره کردید در پنجره ی بالا ظاهر بشه . اکنون بر روی فایل ظاهر شده کلیک کرده و پس از آن دکمه یAdd را کلیک کنید و با کلیک کردن روی دکمه ی Close این پنجره را ببندید . اگر این مراحل را به درستی طی کرده باشید ، در کنار پوشه ی Source Groupe 1 یک علامت به اضافه قرار گرفته که با کلیک کردن روی آن ، فایلی را که با پسوند asm ذخیره کردید می بینید . قبل از آنکه در پنجره ی سمت راست شروع به برنامه نویسی کنید ، برای آنکه نرم افزار فایل HEX را هم برای شما بسازه،بایستی از منوی Project گزینه ی Options for Target ‘Target 1’ را انتخاب کرده و در پنجره ای که باز میشه ، از پنجره ی Ootput تیک گزینه ی Create HEX File را بزنید . حالا می تونید در پنجره ی سمت راست برنامه ی مورد نظر را به زبان اسمبلی بنویسید و مشاهده می کنید که نرم افزار دستورات اسمبلی را با رنگ دیگه ای از سایر دستورات متمایز میکنه . برای ساختن فایل HEX کلید F7 را بزنید . نرم افزار برنامه ی شما را کامپایل میکنه و در پنجره ی پایین اطلا عاتی را به شما میده . این اطلاعات به شما میگه که برنامه ی شما از نظر رعایت قوانین و دستورات برنامه نویسی اسمبلی مشکلی داره یا نه و ایجاد یا عدم ایجاد فایل HEX را هم اطلاع میده . اگه برنامه ی شما خطایی داشته باشه ، با کلیک کردن روی نوع خطا در پنجره ی پایین ، نشانگری به شکل یک فلش ، سطری از برنامه را که خطا داره نشون میده . اگه فایل با پسوند Lst را هم که بعد از کامپایل کردن برنامه ی شما ساخته میشه باز کنید ، میتونید نوع خطا و سطری را که خطا داره بهتر ببینید . آخرین موردی که درباره ی نرم افزار باید بگم اینه که گزینه ی Options را از منوی View انتخاب کرده و در قسمت Editor ، گزینه ی Auto Indent را تیک بزنید . در قسمت Colors & Fonts از همین پنجره ، میتونید محیط برنامه نویسی را مطابق سلیقه ی خودتون تغییر بدین . مثلاً رنگ پس زمینه ، نوع فونت و رنگ دستورات اسمبلی را اونطوری که دوست دارین تعیین کنید . امیدوارم توضیحات بالا برای شروع کار با نرم افزار Keil کافی باشه و اگه مشکلی داشتین از طریق Email با من تماس بگیرید . آموزش ساخت و نحوه استفاده از پروگرامر AT89S51 خوب در این مرحله میریم سراغ ساختن یک پروگرامر . همون چیزی که همه دنبالش هستن . یک پروگرامر ساده و ارزون . ساختن این پروگرامر را مدیون سری جدید میکروکنترلرها یعنی سری S هستیم . البته خداپدر طراح این پروگرامر را هم بیامرزه که اون را ساخته و مجانی توی اینترنت گذاشته . میکروکنترلرهای سری S و همه ی میکروکنترلرهای سری AVR قابلیت بسیار خوبی به نام ISP دارند که مخفف In System Programable هست و به معنی قابلیت برنامه ریزی روی بورد می باشد . یعنی شما می تونید از طریق پنج رشته سیم که چند تا از پایه های میکرو را به پورت پارالل کامپیوتر وصل میکنه و بدون اینکه میکرو را از مدار جدا کنید و اون رو توی پروگرامر بگذارین ، همین طور که میکرو روی مدار داره کار میکنه ، برنامه ی میکرو را تغییر بدین . قبل از اینکه Atmel میکروکنترلرهاش را به این ویژگی مجهز کنه شما مجبور بودین که حتماً یک پروگرامر با قیمت حده اقل 10 یا 15 هزار تومان بخرین . البته الآن هم پروگرامر های سری S به طور آماده در بازار به فروش میرسه که اگه دوست داشته باشین می تونید یکی از اونها رو تهیه کنید . البته من خودم یک بافر به شماره ی74LS241 را به منظور بهبود کارایی این پروگرامر به نقشه ی اون اضافه کردم که نرم افزار و نقشه ی ساخت پروگرامر را که بصورت فشرده هستند میتونید از اینجا دانلود کنید . پورت پارالل از نوع نری به همراه کاور ، تراشه ی 74LS241 و یک متر کابل 9 رشته با شیلد را که در لیست قطعات لازم آورده بودم برای ساختن پروگرامر بود که اگه شما یک پروگرامر داشته باشین یا بخواهین یک پروگرامر آماده بخرین ، احتیاجی به خرید این قطعات ندارین . نکته ی لازم در مورد این پروگرامر اینه که بهتره با کمی دقت و ظرافت ، تراشه ی 74LS241 را توی کاور جا بدین . البته میتونید اون رو روی برد بورد هم بگذارین ولی اگه توی کاور باشه ، خیلی بهتره . اگه تراشه را توی کاور بگذارین ، یک سیم دیگه برای تغذیه ی مثبت تراشه باید از روی برد بورد به تراشه وصل کنید که در مجموع شش تا از سیمهای کابل 9 رشته را باید استفاده کنید . نکته ی دیگه اینه که این پروگرامر یه کم بد جواب میده و ممکنه در اولین تست کار نکنه که نباید دلسرد بشین و نهایت دقت و ظرافت را در ساخت این پروگرامر به خرج بدین . بعد از اینکه برنامه ی پروگرامر به همراه راهنمای ساخت را دانلود کردین و از حالت فشرده در آوردین ، یک فایل PDF و یک فایل EXE دارین که فایل PDF همون راهنمای ساخت و فایل EXE هم برنامه ی پروگرامر هست که تحت DOS اجرا میشه و اگه روی آیکن اون دوبار کلیک کنید ، برنامه اجرا شده و شما یک پنجره ی تحت DOS با پس زمینه ی قرمز را می بینید . در ابتدا با کلیدهای جهت روی گزینه ی Setup رفته و کلید Enter را فشار بدین . در پنجره ی جدیدی که باز میشه با رفتن روی گزینه ی Device نوع میکروکنترلری که دارین مثلاً AT89S51 را انتخاب کرده و سپس با رفتن روی گزینه ی Save setup و فشردن کلید Enter این پنجره را بسته و به پنجره ی اصلی برگردین . در پنجره ی اصلی روی گزینه ی اول ، یعنی Load HEX file to Flash buffer رفته و کلید Enter را فشار بدین . حالا در قسمت پایین پنجره و در جلوی عبارت Input Filename مسیر فایل HEX مورد نظر را به طور کامل وارد کنید . مثلاً برای یک فایل HEX به اسم Test که در ریشه ی درایو C قرار داره مسیر فایل باید به صورت C: est.hex تایپ بشه . یادتون نره که حتماً پسوند فایل را تایپ کنید و اسم فایل هم شامل کاراکتر فاصله نباشه . بعد از تایپ مسیر فایل HEX ، کلید Enter را فشار بدین که در صورت درست بودن همه چیز ، کدهای Hex برنامه و در سطر آخر هم پیغام Hex file loaded, Press any key to continue را در پنجره ی جاری می بینید . با فشردن کلید Enter به پنجره ی اصلی برگردید و بعد از رفتن روی گزینه ی Program ، کلید Enter رو فشار بدین تا فایل HEX مورد نظر از طریق کابل پروگرامر به داخل حافظه ی میکرو بار بشه . اگه کابل پروگرامر را به طور صحیح ساخته باشید ، در این مرحله بطوریکه پنجره ی جدید به شما نشون میده ، فایل HEX از 10 تا 100 در صد به داخل حافظه Flash میکرو بار شده و پس از آن مجدداً از 10 تا 100 در صد Verify می شود . پس از آن بسته به تنظیم شما برنام ی داخل حافظه برای جلوگیری از کپی شدن ، قفل شده و در پایان پیغام Press any key to continue را هم در پایین پنجره می بینید که با فشردن هر کلیدی به پنجره ی اصلی بر می گردید . میکروکنترلها امروزه کاربرد فراوانی در صنعت الکترونیک دارند که از جمله خانواده های آنها می توان 8051 را نام برد که تا قبل از AVR رقیبی نداشتند اما عاری از عیب نبودند از جمله عیوب آنها می توان سرعت و حافظه کم و توان مصرفی بالا و همچنین از همه مهمتر قیمت نسبتا زیاد (البته نسبت به کارایی که ارائه می دهند زیاد بود!) همین مشکلات باعث شد تا غولهای بزرگ تولیدی به فکر ساخت محصولی جدید به نام AVR بیفتند که عیوب 8051 را نداشته باشند. میکروهای AVR دارای انعطاف پذیری غیر قابل مقایسه و بی همتایی هستند.آنها قادر به ترکیب هر نوع کدی با یک معماری کارامد از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند. میکرو AVR دارای معماریی است که میتواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماریی دارد که برای شما کارایی 16 بیتی ارائه می دهد که البته قیمتش به اندازه یک 8 بیتی تمام می شود.