Allgemeines
Програмування для мікроконтролерів, як і програмування для універсальних комп'ютерів пройшло великий шлях розвитку від програмування в машинних кодах до застосування сучасних інтегрованих систем написання програм, налагодження та програмування мікроконтролерів. В даний час вихідний текст програми пишеться на одній з мов програмування.
Самі мови програмування в свою чергу діляться на дві групи:
мови програмування "високого" рівня
мови програмування "низького" рівня.
До мов програмування "низького" рівня відносяться мови програмування в яких кожному оператору відповідає не більше однієї машинної команди. Набір машинних команд кожного конкретного процесора обов'язково входить до складу такої мови програмування. Мови програмування низького рівня в даний час називаються асемблер (стара назва автокоди). Для кожного процесора існує своя група ассемблеров. Асемблери для одного і того ж процесора розрізняються між собою додатковими можливостями, які полегшують програмування.
Мови програмування "високого" рівня дозволяють замінювати один оператор декількома машинними командами. Це дозволяє збільшувати продуктивність праці програмістів. Крім того, мови "високого" рівня дозволяють писати програми, які можуть виконуватися на різних процесорах. (Природно, що при цьому необхідно використовувати програми - транслятори для відповідного процесора.) В даний час найбільш поширені такі мови програмування високого рівня як С і PLM.
До складу сучасних засобів написання і налагодження програм для мікроконтролерів зазвичай входять емулятори процесорів або налагоджувальні плати, текстовий редактор, компілятори мови високого рівня (найчастіше "C") і асемблера, редактор зв'язків і завантажувач програми в отладочную плату. Всі програми зазвичай об'єднані інтегрованим середовищем розробки програмного проекту, що дозволяє підтримувати один або кілька програмних проектів.