En 1977, Motorola ouvre le manuel du MC14500B avec une liste de problèmes qu’un automaticien reconnaît immédiatement : un fin de course est-il fermé ? un délai est-il terminé ? faut-il allumer une pompe quand trois relais sont actifs ? démarrer un moteur après un nombre donné d’impulsions ?1

Toutes ces questions ont quelque chose en commun. Leur réponse tient dans un bit.

C’est la meilleure manière de comprendre le MC14500B. Pas comme un ordinateur 8 bits auquel on aurait retiré sept bits pour économiser du silicium, mais comme le cœur programmable d’un monde où beaucoup d’entrées sont des contacts ouverts ou fermés et beaucoup de sorties des actionneurs à commander ou non.

Un seul résultat

Le composant tient dans un boîtier DIP de 16 broches. Son unité logique reçoit un bit sur sa ligne bidirectionnelle, puis le combine avec celui de son unique registre de résultat, RR. Elle peut charger, inverser, faire AND, OR, leurs variantes complémentaires ou XNOR, puis stocker le résultat vers l’extérieur.16

Voilà le « 1 bit » : l’unité logique et son accumulateur ne manipulent qu’une valeur booléenne à la fois.

Le programme, lui, n’est évidemment pas une suite de bits isolés. Le MC14500B reçoit un opcode sur quatre broches, ce qui permet 16 instructions. Les adresses des entrées et sorties sont gérées par la mémoire et la logique externe du système.1

Le chip ne contient d’ailleurs ni mémoire programme, ni compteur de programme, ni pile. Un système minimal ajoute donc un compteur externe, une ROM ou RAM, un sélecteur d’entrées et un latch de sorties.1 Dire que « ce CPU faisait tourner une usine » est pratique. En réalité, il était le petit noyau booléen d’un contrôleur construit autour de lui.

Quatre lignes

J’ai repris l’exemple que Motorola place dès la préface : une pompe doit fonctionner lorsque les relais A, B et C sont fermés.1 En le déroulant instruction par instruction, je me suis rendu compte que la largeur de l’accumulateur disparaît presque du problème : il faut seulement conserver vrai ou faux entre deux contacts.

La logique est simplement :

POMPE = A AND B AND C

Sur le MC14500B, la décision se déroule naturellement :

LD    A       ; RR prend l'état du contact A
AND   B       ; RR vaut A ET B
AND   C       ; RR vaut A ET B ET C
STO   POMPE   ; la sortie reçoit le bit de RR

Il n’y a pas de nombre à additionner, de chaîne à manipuler ou de pixel à déplacer. La machine doit savoir si trois conditions vraies autorisent une sortie vraie. Un accumulateur d’un bit est exactement assez large.

Puis le contrôleur recommence. C’est le principe du scan cyclique que les PLC utilisent toujours sous différentes formes : lire la logique, mettre à jour les résultats, reprendre au début.

Motorola donne un ordre de grandeur très parlant. Avec un programme de 1 000 instructions et une horloge de 500 kHz, la boucle est parcourue 500 fois par seconde. Une entrée modifiée peut donc influencer sa sortie dans les deux millisecondes suivantes.1

La largeur du registre n’est donc pas le critère décisif ici. Ce qui compte est le temps nécessaire pour repasser sur la décision.

Série et parallèle

Le choix devient encore moins étrange quand on regarde le langage des automaticiens de l’époque : le ladder logic, dessiné comme une échelle de contacts et de bobines héritée des armoires à relais. Pour quelqu’un habitué aux schémas à relais, la traduction devient presque littérale.

Deux contacts placés en série signifient que les deux doivent conduire : c’est un AND. Deux branches en parallèle laissent passer si l’une ou l’autre est active : c’est un OR. Un contact normalement fermé se traduit par une condition complémentée.

Le MC14500B ne demande donc pas à l’électricien de penser comme le programmeur d’un ordinateur généraliste. Il sérialise une logique déjà composée de décisions binaires.

C’est aussi pourquoi Motorola vendait la simplicité comme une fonctionnalité. Le manuel oppose les relais, faciles à comprendre mais volumineux et difficiles à modifier, aux micro-ordinateurs jugés surdimensionnés pour beaucoup de tâches de commande.1 L’ICU essayait de garder le modèle mental du relais tout en rendant le câblage programmable.

Il faut mémoriser

Cette première commande n’a pas besoin de mémoire : à chaque tour, la sortie peut être recalculée à partir des trois contacts. Une machine réelle demande vite quelque chose de plus subtil.

Nicola Cimmino, dont la conférence à Hackaday Europe 2026 a remis le MC14500B sous les projecteurs,23 utilise dans son trainer open source PLC14500 Nano le cas classique d’un moteur avec bouton START et bouton STOP.4

Quand on relâche START, le moteur doit continuer de tourner. Il faut donc mémoriser un état RUN.

Diagramme ladder du PLC14500 Nano avec START, STOP, état RUN mémorisé et sortie MOTOR
Le cas start/stop de Nicola Cimmino montre le premier endroit où le seul état instantané des entrées ne suffit plus : RUN doit rester mémorisé après le relâchement de START.Nicola Cimmino / PLC14500 Nano

Son programme réduit le rung principal à une suite presque littérale : charger START, faire OR avec l’ancien RUN, annuler le résultat si STOP est pressé, stocker le nouveau RUN, puis l’envoyer au moteur.4

LD    START
OR    RUN
ANDC  STOP
STO   RUN
STO   MOTOR

Le RUN persistant n’habite pas magiquement dans le registre résultat : le trainer le place dans un scratchpad externe rebouclé comme entrée.4 Le processeur reste minuscule, tandis que le système ajoute la mémoire seulement là où le problème en réclame.

Pas un ordinateur complet

Cette modularité explique à la fois l’élégance et les limites du MC14500B.

Le chip lui-même dispose de seize instructions, mais des fonctions aussi élémentaires qu’un compteur de programme, la mémoire qui contient les instructions ou une banque de bits temporaires appartiennent au circuit construit autour. Ses instructions JMP, RTN ou les flags exposent même des signaux que la logique externe doit interpréter.1

L’architecture peut donc sembler étrange à qui compare directement le composant à un Z80 contemporain. Ce n’est pas une comparaison très juste : le Z80 veut être le processeur d’un ordinateur, tandis que le MC14500B veut devenir la logique programmable au centre d’un contrôleur.

Ken Shirriff, qui a reconstitué son silicium, estime le circuit à environ 500 transistors.6 La simplicité n’est pas seulement une conséquence du bus d’un bit : une bonne partie des fonctions qu’on attend d’un CPU a volontairement été laissée dehors.

« Faisait tourner des usines »

Hackaday a titré cette semaine sur « le CPU 1 bit qui faisait tourner des usines » après la conférence de Cimmino.2 La formulation décrit bien la vocation du composant, mais les sources accessibles sont moins généreuses en inventaire vérifiable d’usines et de machines précises.

Le manuel Motorola est sans ambiguïté sur la cible industrielle, les relais, pompes, moteurs, timers et systèmes de type PLC.1 Hackaday parle de nombreux systèmes industriels programmables.2 Une dérivation du design a aussi été utilisée dans un contrôleur automobile personnalisé pour Nippon Denso, selon l’historique du composant.7

En revanche, nous n’avons pas trouvé de registre permettant d’écrire sérieusement « telle chaîne de production de telle usine fonctionnait avec tel MC14500B ». IRZ garde donc la formule comme description d’une classe d’usage, pas comme une liste de déploiements que les archives permettraient aujourd’hui de recompter.

Le trainer moderne

Cimmino a commencé par reconstruire le système autour du chip, puis en a tiré le PLC14500 Nano : 256 octets de RAM programme, sept entrées, sept sorties, un timer, sept bits de scratchpad et trois modes d’horloge, dont un mode manuel où chaque pression avance d’une instruction.4

Un Arduino Nano se cache sous la carte, mais uniquement pour charger la mémoire depuis un ordinateur moderne. Le MC14500B exécute ensuite le programme.4 La carte est certifiée Open Source Hardware et son dépôt contient schémas, PCB, assembleur, simulateur et guide de programmation.45

Ce mode manuel est probablement la meilleure façon de comprendre l’architecture : les LED montrent l’adresse, le mot lu en mémoire, RR, l’écriture et les états internes pendant que chaque instruction traverse le système.

PLC14500 Nano avec MC14500B, interrupteurs, LED, mémoires et logique externe
La carte moderne rend visible ce que le boîtier 16 broches ne contient pas : mémoire programme, compteur, sélection d’E/S, scratchpad et interface de chargement vivent autour du MC14500B.Nicola Cimmino / PLC14500 Nano

La bonne largeur

Quarante-neuf ans après sa sortie, personne ne choisirait normalement un MC14500B pour automatiser une nouvelle machine. Un microcontrôleur ou un PLC moderne coûte peu, offre énormément plus de fonctions et arrive avec un écosystème autrement confortable.

Mais le vieux chip garde une leçon que les machines modernes rendent facile à oublier : la puissance utile dépend du problème, pas du nombre de bits imprimé sur la brochure.

Pour décider si A, B et C autorisent une pompe, huit bits n’auraient pas produit une réponse plus vraie. Trente-deux bits non plus.

Le MC14500B pouvait être extraordinairement petit parce que le monde qu’il regardait, à cet instant précis, se résumait à oui ou non.