Ce qui distingue un microcontôleur d'un microprocesseur est que le microcontôleur intègre, en plus de l'unité centrale (CPU : Central Processing Unit), également des structures périphériques :
mémoires
structures d'interfaçage parallèle
structure d'interfaçage série
structures de conversions analogique et numériques
circuits temporisateurs
etc...
Structure interne d'une CPU
Reprenons l'exemple du 68HC11F1.
Son unité arithmétique et logique (UAL) permet de réaliser des opérations sur 8 bits et certaines opérations sur 16 bits. On dit qu'il s'agit d'un processeur 8/16 bits.
Les accumulateurs A et B sont des registres de 8 bits qui contiennent les opérandes d'une opération. Certaines instructions associent ces deux accumulateurs pour réaliser des opérations sur 16 bits : A (8bits) +B (8bits) = D (16bits).
Le Program Counter (PC) ou compteur ordinale est un registre de 16bits qui contient en permanence l'adresse de la prochaine instruction à exécuter
Le Stack Pointer (S) est un registre de 16 bits qui contient l'adresse de la pile mémoire. Cette dernière est nécessaire pour faciliter la sauvegarde des données temporaires.
Lié à l'UAL le Code Condition Register (CCR) ou drapeau donne des indications sur un résultat : valeur nulle, valeur négative, résultat avec retenu, etc... Voir ci-dessous.
X et Y sont des registres de 16 bits qui permettent de manipuler les adresses. Cette CPU est donc capable d'adresser 216 adresses différentes.
L'unité de contrôle qui n'est pas représentée sur la figure ci-contre permet de cadencer et d'organiser l'exécution des instructions.
Le registre de code condition
Selon le résultat d'une opération les bits du registre CCR sont positionnés à "1" ou "1". Ces bits sont utilisés par le microprocesseur pour effectuer par la suite des tests conditionnels de type SI... ALORS.. SINON... FINSI
Les bits les plus courants sont :
C : Carry : positionné à "1" si le résultat d'une opération possède une retenue.
Z : Zero : Positionné à "1" si le résultat d'une opération est nulle.
N : Negative : Positionné à "1" si le résultat d'une opération est négatif. Plus précisement si le bit de poids fort est mis à "1".
Comportement du CCR lors d'opérations arithmétiques :