میکروکنترولر (14)
ریزکنترلگر یا میکروکنترلر (Microcontroller) نوعی ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط خواندنی (ROM)، تایمر، پورتهای ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال) در درون خود تراشهمیباشد
برنامه نویسی تایمر کانتر در میکروکنترلر AVR بخش 1
نوشته شده توسط Super User
کارگاه عملی با تشریح برنامه نویسی تایمر/کانتر یک آماده شده است.
این جلسه،فقط میخوایم در مورد کدنویسیش صحبت کنیم.
ایندفعه میخوایم از وقفه هم که تا حالا تو کدنویسی هامون ازش استفاده نکردیم،استفاده کنیم.
کد نویسی به زبان سی در محیط کامپایلر کدویژن :
فرکانس کاری میکروکنترلر 16 مگاهرتز خارجی تعریف شده.
#include<mega32.h>
در ابتدای کار،طبق معمول فایل سرآیند مربوط به میکروکنترلر مورد نظرمون که اینجا ATmega32 هست رو اضافه میکنیم.
در این بخش از کارگاه عملی،کار با تایمر/کانتر شماره صفر را بررسی خواهیم کرد.
یادتونه که در قسمت های قبلی عملکرد تایمر/کانتر شماره صفر رو بررسی کردیم،اما در مورد برنامه نویسیش صحبتی نکردیم و الان وقتشه که بریم سراغ برنامه نویسی.
سعی میکنم یه مقدار سطح توضیح دادنم رو حرفه ای تر کنم،اما قول میدم که برای دوستان مبتدی اشکالی پیش نیاد.
طبق معمول یه مسئله مطرح میشه و سعی میکنیم حلش کنیم
تعریف مسئله :
بررسی تایمر/کانتر شماره صفر (0) میکروکنترلرهای AVR
نوشته شده توسط Super Userبررسی تایمر/کانتر صفر (0) میکروکنترلرهای AVR
در این بخش از آموزش به بررسی تایمر/کانتر شماره صفر در میکروکنترلرهای AVR میپردازیم.
بخش بعدی آموزش رو شروع میکنیم.
در بخش قبلی اومدیم و تایمر/کانتر رو معرفی کردیم و نشون دادیم که چجوری محاسبات زمانی رو انجام میده و چندتا فرمول و ...
یادتون نمیاد لطفا برگردید و یه بار دیگه دوره کنید ...
که میکروکنترلرهای AVR دارای سه تایمر/کانتر :
1.تایمر/کانتر 0 ==> 8 بیتی
2.تایمر/کانتر 1 ==> 16 بیتی
3.تایمر/کانتر 2 ==> 8 بیتی
میباشند.
این بار مبحث شیرین تایمر/کانتر در میکروکنترلر AVR رو دنبال خواهیم کرد.
بحث امروز ما راجع به واحدی در میکروکنترلر به نام Timer/Counter هست که اگه یادتون باشه چندین بار تو پستهای قبلی ازش یاد کردیم و حالا دیگه وقتشه که بهتر بشناسیمش.
پس معرفی میکنم : دوستان،،،،تایمر/کانتر --- تایمر/کانتر،،،
تایمر/کانتر چیست ؟
تو زندگی روزمره همه کارهامون با زمان هماهنگ میشه.فلان ساعت فلان کارو میکنم و n دقیقه ورزش میکنیم و ...
وظیفه واحد تایمر/کانتر هم همینجور کارهاست.
دیمانسیون متغییر در بسکام:
متغییر در برنامه نویسی به داده هایی اطلاق می شود که ممکن است در طی برنامه مقدارشان تغییر کند. فرض کنید ما قصد داریم برنامه ای برای میکروکنترلر بنویسیم تا دمای محیط را اندازه گیری کنیم ، در این برنامه دمای محیط یک متغییر است. در برنامه نویسی برای متغییر باید نام متغییر ، نوع متغییر ، اندازه متغییر و در برخی موارد محل ذخیره سازی متغییر را تعریف کنیم.
در نرم افزار بسکام متغییر به روش زیر تعریف می شود:
ارتباط میکروکنترلر با حافظه هاي فلش (sd،mmc) ; (قسمت اول)
در اداﻣﻪ ﻧﻤﻮﻧﻪ ﻗﻮﯾﺘﺮي ﺑﺎ ﻧﺎم16 FATرا اراﺋﻪ ﮐﺮد ﮐﻪ ﻗﺎﺑﻠﯿﺖ آدرس دﻫﯽ 16ﺑﯿﺘﯽ ﮐﻼﺳﺘﺮﻫﺎ را داﺷﺖ و ﺗﺎ ﻇﺮﻓﯿﺖ 4 ﮔﯿﮕﺎ ﺑﺎﯾﺖ را ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽﮐﺮد اﯾﻦ ﻧﻤﻮﻧﻪ ﻧﯿﺰ ﺑﺎ روي ﮐﺎر آﻣﺪن ﻓﻀﺎﻫﺎي ﺑﺴﯿﺎر ﺑﺎﻻ در ﻫﺎرد دﯾﺴﮑﻬﺎ ﮐﻨﺎررﻓﺘﻪ و ﻓﻘﻂ در ﺳﯿﺴﺘﻢﻫﺎي ﻗﺎﺑﻞ ﺣﻤﻠﯽ ﻣﺎﻧﻨﺪ MP3 PLAYERو COOL DISKﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد. اﯾﻦ ﻧﻤﻮﻧﻪ ﺑﺪﻟﯿﻞ ﭘﺎﺋﯿﻦ ﺑﻮدن ﺗﻌﺪاد ﺳﮑﺘﻮر ﺑﻪازاي ﻫﺮ ﮐﻼﺳﺘﺮ در ﺳﯿﺴﺘﻢﻫﺎي ﻗﺪﯾﻤﯽ ﺳﺮﻋﺖ ﮐﻤﺘﺮي را داراﺳﺖ زﯾﺮا در ﺣﺠﻢ ﺑﺮاﺑﺮﺑﻪ ﻣﺤﺎﺳﺒﺎت ﺑﯿﺸﺘﺮي ﻧﺴﺒﺖ ﺑﻪ ﻧﻤﻮﻧﻪ ﺟﺪﯾﺪﺗﺮ ﺧﻮد ﻧﯿﺎز دارد ﺗﺎ اداﻣﻪ ﻓﺎﯾﻞ ذﺧﯿﺮه ﺷﺪه را در ﺣﺎﻓﻈﻪ ﭘﯿﺪا ﮐﻨﺪ. ﺑﻪ اﯾﻦ دﻟﯿﻞ و ﻣﺤﺪودﯾﺖ ﻇﺮﻓﯿﺖ ﻧﻤﻮﻧﻪ دﯾﮕﺮي اراﺋﻪ ﺷﺪ
میکروکنترلر 8051
میکروکنترلر 8051 ابتدایی ترین میکروکنترلر و توسط شرکت بزرگ intel ساخته شده است. اما بعدا intel این امکان را به دیگر شرکت ها داد که این میکروکنترلر را تولید کنند و شرکت هایی مانند ATMEL , PHILIPS, SIEMENS , DALLAS و... که از بزرگ ترین شرکت های دنیا هستند به تولید این میکروکنترلر پرداختند یکی از شرکت هایی که به صورت گسترده به تولید این تراشه پرداخت ATMEL بود که مدل های مختلف میکروکنترلر را ساخت و محصولات آن در سراسر جهان و در ایران یافت می شود. اما زمانی که ما به صورت کلی سیر پیشرفت این نوع میکروکنترلر را در نظر می گیریم متوجه می شویم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای 8051 که الان تولید می شود پیشرفت زیادی ندارد به طور مثال AT89S5X که میکروکنترلر 8051 جدید ساخت ATMEL است نسبت به مدل های اولیه 8051 پیشرفت آنچنانی ندارد .
امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست . به صورتی که که همین مدل جدید 8051 تقریبا حافظه ای برابر یک صدم (0.001 ) میکروکنترلر های AVR را دارد و سرعتش 4 برابر کمتر از میکروکنترلر های PIC و 12 بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس می شود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت همین مدل جدید AT89S5X حول و حوش 1000 تومان است که قیمت بسیار مناسبی است.
FPGA چیست؟
میکروکنترلر PIC چیست؟
عبارت PIC از سر کلمه های Programmable Interface Controller گرفته شده که به معنای کنترل کننده های ارتباطی برنامه پذیر است . این میکروکنترلرها ساخت کمپانی میکروچیپ (www.microchip.com) می باشند که در ادامه به طور مختصر بر روی آنها بحث خواهد شد .
میکروکنترلرهای سری 10 : این نوع تراشه ها از نوع 8 بیتی و 6 پایه هستند که دارای امکاناتی نظیر مقایسه کننده های داخلی ، مبدل آنالوگ به دیجیتال ، اسیلاتور داخلی و قابلیت غیر فعال کردن پایه ریست ، امکان پروگرام کردن در مدار و ... می باشند .
حافظه برنامهء این میکروکنترلرها با حجم 250W تا 500W و حافظه داده آنها بین 16 تا
24 بایت (رم) طراحی شده است .
میکروکنترلرهای سری 12 : این نوع تراشه ها از نوع 8 بیتی و 8 پایه هستند که دارای امکانات بیشتری نسبت به سری 10 هستند . مبدل آنالوگ به دیجیتال ، مقایسه کننده داخلی ، تایمر WDT ، تایمر0 ، تایمر 1 با قابلیت استفاده از اسیلاتور LPخارجی ، اسلاتور داخلی ، غیر فعال کردن ریست ، امکان پروگرام کردن در مدار و ... از امکانات تراشه های سری 12 می باشد .
میکرو کنترلر AVR چیست؟
ساده ترین معماری میکرو کنترلر، متشکل از یک ریز پردازنده، حافظه و درگاه ورودی/خروجی است. ریز پردازنده نیز متشکل از واحد پردازش مرکز (CPU) و واحد کنترل (CU)است.
CPU درواقع مغز یک ریز پردازنده است و محلی است که در آنجا تمام عملیات ریاضی و منطقی ،انجام می شود. واحد کنترل ، عملیات داخلی ریز پردازنده را کنترل می کند و سیگنال های کنترلی را به سایر بخشهای ریز پردازنده ارسال می کند تا دستورالعمل ها ی مورد نظر انجام شوند.
حافظه بخش خیلی مهم از یک سیستم میکرو کامپیوتری است. ما می توانیم بر اساس به کارگیری حافظه، آن را به دو گروه دسته بندی کنیم: حافظه برنامه و حافظه داده .
میکروکنترلر ARM چیست؟
این قطعات پردازنده ای هستند ، از نوع 32 بیتی و دارای معماری RISC هستند و سرعت نسبتا بالایی هم دارند (کلاک از 300 تا 2000 مگاهرتز)و مجهز به برخی امکانات داخلی (adc و dac و تایمر وکانتر و pwm و rtc و i2c و spi و dmaو ...)وحافظه کش هستند . قابلیت ها و باس های استانداردی که برای این پروسسورها در نظر گرفته شده به همراه سرعت بالا ، حافظه کش مناسب ، مقایسه گرهای داخلی ، تایمرهای 16 بیتی برای پیاده سازی RTC و ... ، باعث شده که عملکرد این تراشه ها نسبت به انواع دیگر پروسسورهای هم تراز ، دارای کیفیت و قدرت بالاتری باشه .