مقدمه:
با پیشرفت تكنولوژی در زمینه طراحی كامپیوتر، ارزش و اندازه آنها بشدت كاهش یافت.كامپیوترهای اولیه به اندازه یك خانه بودند و تنها در اختیار عده بخصوصی از دانشمندان قرار داشتند. اختراع ترانزیستورها و پیشرفت های بعدی آن در طراحی، كامپیوتر را در اختیار عموم قرار داد. بتدریج كه نوآوری های سخت افزار محدودیت یافت، طراحان بدنبال تكنیك های جدید سعی در اصلاح عملكرد كامپیوترها نمودند .

 بخش عملیاتی هر كامپیوتر شامل سه قسمت است :

 1 واحد پردازش مركزی
 2 حافظه
 3 وسایل ورودی و خروجی نقش واحد پردازش اجرای (پردازش) اطلاعات ذخیره شده در حافظه است.

 عمل وسایل ورودی و خروجی همچون صفحه كلید، نمایشگر تصویر، تهیه مفاهیم ارتباط و محاوره با واحد پردازشگر است. 

در سیستم های كامپیوتری دو نوع حافظه اصلی وجود دارد:

1-RAM: كه برای ذخیره موقت برنامه ها و داده هاست .
2-ROM: كه برای ذخیره سازی دائمی برنامه ها و داده های است كه كامپیوتر برای كار خود استفاده می كند .

 وسایل جانبی مانند وسایل ورودی/خروجی به پردازشگر اجازه می دهند تا با انسان یا دیگر كامپیوترها تبادل اطلاعات نماید .

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

راه حل این مسئله ، استفاده از زبانهای سطح بالا می باشد. با این كار عملیات برنامه نویسی ساده تر گشته ، برنامه خوانا تر و انعطاف پذیر تر شده و پشتیبانی از آن نیز ساده تر می گردد. برای اغلب میكرو كنترلرها ، كامپایلرهای C و BASIC متفاوتی موجود می باشد.كامپایلرهای BASIC معمولاً به صورت مفسر بوده و كدهای حاصل از آنها كند می باشند . یكی دیگر از معایب زبان بیسیك این است كه اغلب كامپایلرهای بیسیك ساخت یافته نیستند در نتیجه برنامه سازی با آن كار دشواری می باشد.