همانطور که می دانید در واقع میکروکنترلرها کامپیوترهای بسیار کوچکی هستند که دارای بخش های اصلی حافظه، پردازشگر، ورودی و خروجی می باشند و قابل برنامه ریزی شدن هستند.برنامه های مورد نظر که می بایستی توسط میکروکنترلر اجرا شوند بایستی به زبان ماشین یا همان صفر و یک ها دربیایند و سپس در حافظه میکروکنترلر جای بگیرند.این برنامه ها بسته به نوع میکروکنترلری که استفاده می کنیم می تواند در کامپایلرهای مختلفی نوشته شوند و آن کامپایلر برنامه را پس از رفع عیب، کامپایل یا اصطلاحاً به زبان ماشین ترجمه می نماید و یک فایل از برنامه که به زبان ماشین یا همان صفر و یک است به ما تحویل می دهد.
{
نرم افزار Codevision : کامپایلری است که برای برنامه نویسی میکروکنترلرهای AVR به زبان C بکار می رود.
نرم افزار CCS : کامپایلری است که برای برنامه نویسی میکرو کنترلرهای PIC به زبان C بکار می رود.
نرم افزار (Micro Code Studio (PIC Basic Pro : کامپایلری است که برای برنامه نویسی میکرو کنترلرهای PIC به زبان Basic بکار می رود.
}
دستورات این فایل بایستی توسط نرم افزار های برنامه ریزی کننده یا همان پروگرامر وارد حافظه میکروکنترلر شود. علاوه بر نرم افزار پروگرامر، نیاز به یک وسیله سخت افزاری نیز داریم که برنامه را از کامپیوتری که در آن ذخیره شده به حافظه میکروکنترلر منتقل نماید. این مدار همان سخت افزار پروگرامر می باشد.
در هر میکروکنترلر بعضی از پین ها علاوه بر کارکرد خود در حالت اجرای برنامه، به عنوان پایه های برنامه ریزی میکروکنترلر نیز تعریف شده اند، با اتصال این پایه ها به کامپیوتر از طریق یکی از پورتهای کامپیوتر که می تواند پورت سریال یا موازی و یا USB باشد، و اجرای نرم افزار پروگرامر، کدهای زبان ماشین یا همان دستورات ما که قرار است میکروکنترلر اجرا نماید و تبدیل به صفر و یک شده اند، وارد حافظه میکروکنترلر شده و از آنجا آماده اجرا توسط میکرو خواهند شد.
مدار سخت افزاری پروگرامر ها اگرچه بسیار ساده و قابل ساخت در آزمایشگاه می باشند، اما معمولاً به دلیل استفاده مکرر و یا عدم ساخت دقیق و با دوام، ممکن است خوب کار نکنند و یا زود دچار آسیب شوند. از این رو معمولاً برخی شرکت ها پروگرامرهای هر نوع میکروکنترلر را به صورت آماده ساخته و در معرض فروش و استفاده قرار می دهند که این نوع پروگرامرها از دقت و کارایی بهتری برخوردارند.
عکس نمونه هایی از پروگرامرها:
PIC USB PROGRAMMER
STK300 AVR Programmer