ریزکنترل‌گر

میکروکُنترولر (به انگلیسی: Microcontroller) نوعی ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط‌خواندنی (ROM)، تایمر، پورت‌های ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال)، درون خود تراشه است، و می‌تواند به تنهایی ابزارهای دیگر را کنترل کند. به عبارت دیگر یک میکروکنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری مانند تایمر، درگاه‌های ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شده‌است.
در واقع یک ریزپردازنده درون میکروکنترولر قرار گرفته‌است که با استفاده از آن می‌تواند محاسبات منطقی و حسابی را انجام دهد.
وجود RAM و ROM و پورت‌های I/O در میکروکنترلرها آن‌ها را یک انتخاب ایده ال برای کاربردهایی می‌کند که قیمت و اندازه در آن‌ها مهم است. در بسیاری از کاربردها مثل کنترل از راه دور تلویزیون نیازی به محاسبات سنگین در حد یک ۴۸۶ یا حتی ۸۰۸۶ وجود ندارد. در این گونه موارد و بسیاری دیگر از کاربردها فضای مورد استفاده توان مصرفی و قیمت هر واحد مهم تر از قدرت محاسبات است.
در این گونه موارد اغلب لازم است تعدادی I/O خوانده شده و بیت‌های مشخصی را خاموش یا روشن کند.
به همین دلیل این گونه پردازنده‌ها را (IBP (ITTY-BITTY PROCESSOR نیز می‌نامند.
میکروکنترلرها عموماً برای کاربردهای کوچک طراحی می‌شوند، بنابراین برخلاف ریزپردازنده‌ها در این‌جا مهم‌ترین مسائل، سادگی و مصرف کم‌ توان است.

اجزا

یک میکروکنترلر از بخش‌هایی مانند پردازنده، RAM، ROM و یک سری پایانه (پورت، درگاه) تشکیل شده‌است.
از سوی دیگر، از آنجا که میکروکنترلر معمولاً برای مقاصد کنترلی استفاده می‌شوند، نیاز به برقراری ارتباط با دستگاه تحت کنترل خود دارند. اما از آنجا که اکثر سیگنال‌های لازم برای این منظور سیگنال‌های آنالوگ هستند، باید ابتدا این سیگنال‌ها به صورت دودویی تبدیل شوند تا برای پردازنده قابل درک باشند. این کار توسط مبدل آنالوگ به دیجیتال صورت می‌گیرد. همچنین در برخی از میکروکنترلرها مبدل دیجیتال به آنالوگی هم وجود دارد که امکان فرمان دادن میکروکنترلر به دستگاه‌های با ورودی آنالوگ را فراهم می‌کند.
از دیگر اجزای معمول و پرکاربرد در میکروکنترلرها، تایمرها هستند. تایمرها عموماً از یک شمارنده تشکیل می‌شوند که پس از تعداد مشخصی از شمارش، یک وقفه تولید می‌کنند که می‌تواند برای انجام متوالی یک کار مورد استفاده قرار گیرد.
بسیاری از میکروکنترلرها از واحد تولید مدولاسیون عرض پالس نیز برخوردارند. این واحد به خصوص در کاربردهای الکترونیک قدرت و کنترل موتور و نیز به عنوان مبدل دیجیتال به آنالوگ کاربرد دارد.

میکروکنترلرهای رایج

از مهم‌ترین و بزرگ‌ترین تولیدکنندگان میکروکنترلرها می‌توان از شرکت اَتمِل (به انگلیسی: Atmel) نام برد که در حال حاضر سری ای‌وی‌آر و ۸۰۵۱ میکروکنترلرهای این شرکت در ایران به دلیل سهولت استفاده مورد توجه‌است.
برنامه‌ریزی میکروکنترلرهای AVR بیشتر با زبان C و با کامپایلر codevision، یا با زبان بیسیک و توسط نرم‌افزار BASCOM انجام می‌شود.
یکی دیگر از تولیدکنندگان بزرگ میکروکنترلرها شرکت Microchip است که میکروکنترلرهای این شرکت با نام‌های تجاری PIC و dsPIC نیز از محبوبیت زیادی برخوردار است.
شرکت‌های بزرگ دیگری نیز در زمینه تولید میکروکنترلر فعالیت می‌کنند که از آن جمله می‌توان بهTI، موتورولا و فیلیپس اشاره کرد. شرکت intel هم نقش بسیار مهمی در تولید میکروکنترلرهای خانوادهٔ ۸۰۵۱ دارد.
البته اخیراً با قدرتنمایی میکروکنترلرهای آرم، این میکروکنترلرهای ۳۲ بیتی با شدت بسیار زیادی در حال فراگیر شدن است و از رشد بسیار زیادی در بازار برخوردار است. میکروکنترلرهای آرم موجود در ایران توسط سه شرکت ان‌ایکس‌پی، اتمل و ST تولید می‌شوند، که در این میان سهم میکروکنترلرهای ST بیشتر است.

تفاوت میکروکنترولر و ریزپردازنده

میکروکنترولر و ریزپردازنده (میکروپروسسور) تقریباً از یک شاخهٔ فناورانه (تکنولوژیک) و ساختاری هستند، اما در اجزا، با هم تفاوت‌های عمده دارند. در ریزپردازنده‌ها فقط واحد پردازش به صورت مجزا به صورت یک آی‌سی وجود دارد که رم و رام و حتی رجیسترها در آی‌سی‌های مجزا به ریزپردازنده وصل و تشکیل یک ریزرایانه می‌دهند، اما در میکروکنترلر تمام واحدها، از جمله رم و رام و رجیسترها، درون یک آی‌سی به نام میکروکنترلر وجود دارد که معمولاً در دستگاه‌های تجاری برای کاهش قیمت دستگاه مانند تلویزیون و ماکروویو و غیره استفاده می‌شود.
میكروپرسسورها بر خلاف میكروكنترلرها فاقد RAM و ROM و پورت‌های I/O درون خود تراشه هستند بنابراین برای اینكه بتوان سیستمی مبتنی بر میكروپرسسور را طراحی کرد باید RAM و ROM و پورت‌های I/O و تایمرها به آن اضافه شود. با توجه به اینكه طراح می‌تواند روی مقدار RAM و ROM و پورت‌های I/O اعمال نظر نماید، این سیستم‌ها انعطاف‌پذیری بشتری دارند. و به آن‌ها سیستم‌های چند منظوره می‌گویند. میكروكنترلرها شامل یك CPU به همراه مقدار ثابتی از RAM، ROM، پورت‌های I/O وتایمر هستند كه همگی این اجزا در یک تراشه جای داده شده‌اند و طراح سیستم نمی‌تواند یك حافظه، I/O یا تایمر را بدون گسترش لازم از بیرون اضافه كند. بنابراین میكروكنترلرها انعطاف‌پذیری میكروپرسسورها را ندارند.

كاربرد میكروكنترلرها

میكروكنترلر برای كاربردهایی كه در آن‌ها قیمت و اندازه سیستم مهم است، مناسب است. زیرا اضافه كردن حافظه، پورت I/O تایمرها و مدار واسط لازم به میكرپروسسور سبب افزایش قیمت و اندازه سیستم می‌شود. میكروكنترلرها به‌طور گسترده‌ای در تولید سیستم‌های تك‌منظوره به كار می‌روند. منظور از سیستم تک‌منظوره سیستمی است كه از میكروكنترلر یا میكرپروسسور فقط برای یك كار استفاده می‌كند. مانند پردازنده درون یك موس كه تنها به منظور یافتن مكان اشاره گر موس و ارسال آن به PC برنامه‌ریزی شده‌است. این سیستم‌ها در مقابل سیستم‌های چند منظوره قرار می‌گیرند. كه نمونه بارز آن یك PC است كه می‌تواند برای كاربردهای متعدد و گوناگونی همچون واژه‌پردازی، بازی‌های ویدئویی، سرویس شبكه و ... مورد استفاده قرار گیرد. این توانایی PC در اجرای كارهای گوناگون به دلیل وجود سیستم عاملی است كه نرم افزار كاربردی را در RAM بار می كند تا PC بتواند آن را اجرا كند. اما در یك سیستم تک‌منظوره تنها یك نرم‌افزار كاربردی موجود است كه معمولاً درROM نوشته می‌شود. چند نمونه ساده از وسایلی كه در ساخت آن‌ها از میكروكنترلرها استفاده شده‌است، عبارت اند از كنترل از راه دور تلویزیون، تلفن، دوربین فیلمبرداری، فاكس، چاپگر، دستگاه فتوكپی،سیستم‌های حفاظتی، دزدگیر و سیستم‌های كنترل صنعتی. 
به‌طور كلی می‌توان كاربرد میكروكنترلرها را در طراحی مدارهای كنترل و اتوماسیون خلاصه كرد .