Le processeur est l'élément central d'un système informatique : il interprète les instructions et traite les données d'un programme. Il a besoin de certains éléments externes pour fonctionner :
Ces éléments sont reliés par 3 bus :
Traditionnellement, ces composants sont intégrés dans des circuits distincts. Le développement d'un tel système à base de microprocesseur se trouve donc pénalisé par (liste non exhaustive) :
Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation) d'un système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul circuit intégré. Un microcontrôleur est donc un composant autonome, capable d'exécuter le programme contenu dans sa mémoire morte dès qu'il est mis sous tension. Selon les modèles et les conditions de fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques composants externes (quartz, quelques condensateurs, parfois une ROM), mais ceci reste très limité.
Lorsque toutes les fonctions du système informatique sont regroupées dans un unique circuit intégré, y compris les fonctions logiques, analogiques, radiofréquence, d'interface (USB, Ethernet, etc.), on parle alors de System on Chip (système sur puce ou système mono-puce). Ces composants sont basés sur un ou plusieurs cœurs de microcontrôleur, de microprocesseur ou de DSP.
Les microcontrôleurs sont très utilisés dans tous les systèmes embarqués évoqués en introduction. Ils sont également très prisés en robotique amateur (robots autonomes) et en modélisme (automatismes des maquettes de réseaux ferroviaires par exemple).
Les microcontrôleurs représentent la plus grosse partie des ventes dans le marché des microprocesseurs. En effet, un foyer moyen d'un pays développé est susceptible d'être équipé de seulement un ou deux microprocesseurs généralistes (ordinateurs), mais d'une ou deux douzaines de microcontrôleurs (appareils électroménagers). Une automobile de milieu de gamme est équipée d'au moins 50 microcontrôleurs.
Les fabricants proposent souvent des versions spéciales de leurs microcontrôleurs pour faciliter le développement matériel et logiciel des applications. Par exemple, lorsque les mémoires mortes utilisées étaient des EPROM, il existait des variantes des microcontrôleurs équipées de fenêtres sur le dessus, qui permettaient d'effacer le programme grâce à de la lumière ultraviolette. Ceci permettait de recommencer une programmation après un cycle programmation-test.
Pour de petites séries (quelques milliers d'unités ou moins), les microcontrôleurs programmables une seule fois (OTP, one-time programmable) sont économiques. Ils sont basés sur la même puce que la version UV-EPROM, se programment avec le même matériel, mais le boîtier n'est pas équipé de la fenêtre qui permet l'effacement (et qui est onéreuse).
Il peut exister des versions de microcontrôleurs dépourvus de mémoire morte interne. La mémoire morte est alors située dans un boîtier extérieur, par exemple une EPROM. Il suffit alors d'un simple programmateur d'EPROM pour réaliser la programmation, mais des broches du microcontrôleur sont requises pour la communication avec la mémoire externe, et ne peuvent donc pas être utilisées pour les entrées-sorties. Ces versions sont plus coûteuses, mais peuvent se révéler intéressantes si les quantités visées sont faibles.
Plus rarement, on rencontre une variante de l'approche précédente, le piggy back. Le microcontrôleur ne dispose pas non plus de mémoire morte interne, mais la communication avec l’EPROM se fait non pas par des broches d'entrée-sortie, mais par des broches spéciales situées sur le dessus du boîtier. L’EPROM se fixe alors au-dessus du microcontrôleur, et ne monopolise pas de port d'entrée-sortie. Ces versions sont souvent onéreuses et peu pratiques, sauf pour les phases de développement et les très petites séries.
Le recours à la programmation sur place, dans le circuit applicatif, permet de mettre à jour le programme après la fabrication du produit. On parle alors de flashage. Cette opération peut être effectuée via un programme situé en ROM, ou passer par l'utilisation d'un connecteur physique particulier. Dans tous les cas, on évite ainsi un retour en usine pour effectuer la mise à jour.
Lorsqu'il s'agit de produire de plus grandes séries (plusieurs milliers et plus), le coût de réalisation d'un masque pour la fabrication de mémoire morte non programmable est facilement amorti sur tous les exemplaires produits. On peut alors fixer le contenu de la mémoire morte lors de la réalisation du circuit intégré, et non plus lors du montage du produit. Cependant, ces mémoires présentent l'inconvénient de ne pouvoir être mises à jour. Si l'on envisage néanmoins de telles mises à jour, on peut prévoir de monter le microcontrôleur sur un support, ce qui permet de le faire remplacer par un technicien en cas de nécessité.