De Intel 4004 is de eerste processor die volledig op één chip is gebouwd. Intel lanceerde deze in 1971 en noemde het een microprocessor, om onderscheid te maken met eerdere processoren waarvan de onderdelen in verschillende chipbehuizingen (of systeemdelen) waren ondergebracht. Maar hoewel Intel de eerste was die een microprocessor op de markt bracht, ligt het patent bij Texas Instruments, die het ontwerp voor de TMS1000 eerder had gemaakt maar deze toen nog niet op de markt had gebracht.
De 4004 is een 4-bits-processor. Hij kan maar met 4 bits tegelijk bewerkingen doen. Bewerkingen met getallen van 16 (24) of groter moet hij in meerdere stappen doen. Het tientallig (BCD) rekenen verraadt waar hij oorspronkelijk voor ontwikkeld is: voor kantoorrekenmachine.
De 4004 heeft 2300 transistors. Zoveel waren er in die tijd nog nooit op één chip geplaatst. De 4004 heeft een instructieset van 46 instructies, 41 van 8 bits en 5 van 16 bits, en hij heeft een maximale kloksnelheid van 740 kHz.
Intel ontwikkelde in 1969 vier chips voor een rekenmachine van een Japanse klant; de chipfamilie bestond uit de 4004 microprocessor, passende ROM- en RAM-chips en een I/O chip. In 1971 werden de rechten van het ontwerp teruggekocht en bracht Intel de vier chips onder eigen naam op de markt, vergezeld van een postercampagne getiteld “Announcing a new era of integrated electronics”.
De Intel 8080 was een 8-bits microprocessor ontworpen en gefabriceerd door Intel vanaf april 1974. Een microprocessor bevat alle functies van een processor (accumulator, programmateller, statusregister, stackpointer en arithmetic logic unit) in een enkele chipbehuizing. De 8080 werd gebruikt de MITS Altair 8800 en de IMSAI 8080, waarmee de basis gelegd werd voor machines met het CP/M-besturingssysteem. De grootste concurrent in die tijd was de 6502 van MOS Technology. De ontwerpers van de processors begonnen na een verschil van mening met Intel hun eigen fabriek en brachten de kloon Z80 op de markt. Die processor is veel uitgebreider maar verder volledig compatibel met de 8080 en bracht een microcomputer revolutie teweeg.
Twee jaar nadat Zilog de markt voor microprocessoren van Intel had afgesnoept met de Z80 kwam Intel met een geheel nieuwe microprocessor, de Intel 8086. Een microprocessor bevat alle functies van een processor (accumulator, programmateller, statusregister, stackpointer en arithmetic logic unit) in een enkele chipbehuizing. Mogelijk omdat de oorspronkelijke ontwerpers van de 8080 nu Zilog hadden opgericht was de 8086 niet backwards compatible met de 8080. Belangrijk verschil met zijn voorganger was de 16-bits architectuur en 20-bits adresbus. Dit laatste maakte een groter geheugenbereiken tot 1MB mogelijk en daarmee aanzienlijk grotere programma’s en complexere user interfaces. Het nadeel was echter dat geen van de oude generatie interface chips kon worden hergebruikt. Intel bracht daarom vrij snel een 8088 uit, een 8086 met extern een 8-bits databus. Deze 8088 microcroprocessor werd door IBM in de eerste generatie IBM PC’s gebruikt.
De afgelopen 50 jaar hebben toegezien op parallelle ontwikkelingen in computer architectuur, chipfabricatie en massaproductie. De microprocessor is hiervan een tekenend resultaat, dat voor het eerst in 1971 een commercieel succes werd door de introductie van de 4-bit 4004 van een toen nog klein en onbekend bedrijfje genaamd Intel. Veel bedrijven volgden Intel’s voorbeeld en tegen het eind van de jaren ’70 kon je uit een half dozijn microprocessoren kiezen. In die jaren explodeerde het aantal computergebruikers van een handvol ondernemende hobbyisten en technisch onderlegde ‘hackers’ naar miljoenen zakelijke, industriële, ambtelijke, educatieve en thuisgebruikers, die allemaal de beschikking hadden over relatief betaalbare computeroplossingen.
Gelijktijdig aan de microprocessor, gebruikmakend van dezelfde ontwikkelingen ontstond de microcontroller, met de TMS1000 van Texas Instruments als lichtend voorbeeld. Microcontrollers zijn voor het grote publiek veel minder als eindproduct bekend dan de veel vaker genoemde microprocessoren, hoewel termen als ‘Arduino‘ en ‘ESP32’ ook bij de gemiddelde consument bekend beginnen te raken. Het grote publiek is zich echter zeer bewust van het feit dat ‘iets’ verantwoordelijk is voor de slimmigheid in huishoudelijke apparaten zoals broodroosters, koffiemachines, televisies, ovens, wasmachines, koelkasten, elektrische tandenborstels en ontelbare andere ‘gadgets’.
Een microcontroller bestaat intern uit een microprocessor, werkgeheugen, programmaopslaggeheugen en I/O voorzieningen. Dit maakt het in veel opzichten een regelcomputer-in-een-chip, waarbij er slechts een externe voedingsspanning nodig is om een programma uit te voeren. De eerste microcontroller was de TMS1000 van Texas Instruments (1974), gevolgd door de 8048 van Intel (1977). Een opvolger van de 8048 was de 8051 (1980), met als speciale uitvoering de hier beschreven 8052AH-BASIC (1986).
Het grootste verschil tussen microprocessoren en microcontrollers is gelegen in hun toepassingsgebieden: waar de microprocessor bedoeld is voor generieke toepassingen is de microcontroller bedoeld voor besturingstoepassingen met minimale externe componenten. Zo heeft een microprocessor over het algemeen geen intern geheugen, terwijl een microcontroller dat wel heeft. Een microcontroller heeft veel meer bitvergelijkingsinstructies en overwegend een beperktere instructieset die vooral op snelheid is ingericht. Ook de mogelijkheden om met andere chips en direct met digitale en analoge elektronica te communiceren is bij een microcontroller meer uitgemeten dan bij een microprocessor.
De MCS-51 is een familie van microcontroller IC’s, ontwikkeld, geproduceerd en op de markt gebracht door Intel, gebaseerd op de archetype 8051. Andere IC-fabrikanten zoals Siemens, Advanced Micro Devices (AMD), Fujitsu en Philips zijn gelicentieerde fabriekanten van deze microcontrollers. De microcontrollers uit de MCS-51 familie zijn geoptimaliseerd voor besturingstoepassingen voor ondermeer de automobielindustrie met in de instructieset een verscheidenheid aan adresseringsmodi, handige 8-bits rekenkundige instructies, ínclusief instructies voor vermenigvuldigen en delen en ondersteuning voor één-bit variabelen met bijbehorende bitmanipulatiemogelijkheden.
In de tabel zijn enkele van de MCS-51 microcontrollers weergegeven met hierbij aangegeven de hoeveelheid interne geheugen. Het interne gebeugen ligt in hetzelfde adresbereik als het externe geheugen, wat de uitwisselbaarheid van de microcontrollers vergroot.
Een speciale variant van de 8052AH, de 8052AH-BASIC, heeft een af-fabriek in het maskeerbaar ROM ondergebrachte drijvendekomma-BASIC genaamd MCS-BASIC, een terminalserver en een EPROM programmeercircuit voor de opslag van programma’s. Intel bracht deze 40-pins microcontroller in 1986 op de markt.
De 8052AH-BASIC was bij de introductie in 1986 om verschillende redenen bijzonder: het bevatte een eenvoudige terminalserver met een ingebouwde editor, zodat programma’s met een seriële terminal of terminalemulatieprogramma beheerd konden worden. Ook de ingebouwde MCS-51 BASIC maakte deze microcontroller speciaal. Nog niet eerder was er een besturingschip met een ingebouwde hogere programmeertaal beschikbaar geweest.
Elektuur kwam met het november 1987 nummer met het ontwerp van een microcontrollerboard gebaseerd op de 8052AH-BASIC, ongeveer rondom de tijd waarin ik zelf ook voor mijn studie met deze microcontroller bezig was. Het ontwerp was opgebouwd rondom een 8052AH-BASIC V1.1, twee 6264 RAM’s, een 2764 of 27128 EEPROM, wat bus logica, een programmeerspanning-beveiliging, RS232 niveau-aanpassing en een reset-schakelaar.
De opgebouwde microcontroller was een dubbelzijdige, doorgemetaliseerde printplaat met afmetingen van 10×15 centimeter. Twee connectoren maakten I/O en busuitbreidingen mogelijk. Op de printplaat zaten, buiten de 8052AH-BASIC micocontroller, twee RAM-chips, een EPROM-voet en enkele logicachips. De seriële ansluiting voor een terminal of computer met terminalsoftware bestond uit een 5-polige DIN aansluiting, in die tijd bekend als audioconnector waarmee audioapparaten onderling konden worden verbonden. De toepassing hiervan was niet standaard (een 9-polige D-connector was hier toepasselijker geweest), zodat er een kabel op maat gemaakt moest worden. Twee leds en een schakelaar maakten het geheel af. De printplaat was voorzien van montagegaten zodat het eenvoudig in een behuizing kon worden ingebouwd, een en ander overgelaten aan de creatieve vaardigheden van de constructeur.
Na het aansluiten van een geschikte terminal aan de 5-pins DIN-aansluiting en het inschakelen van de voeding werd een prompt op de terminal getoond en kon een programma worden ingetoetst:
*MCS-51(tm) BASIC V1.1*
READY
>10 FOR I=1 TO 3
>20 PRINT I
>30 NEXT I
>RUN
1
2
3
READY
>
Op de prompt konden enkele commando’s worden gegeven: RUN, LIST, NEW, NULL, RAM, ROM, XFER, PROG, BAUD, CALL en variaties hierop. Met LIST (of LIST met een regelbereik) werd het programma (of een deel hiervan) naar de terminal teruggegeven. Een regel werd gecorrigeerd door deze opnieuw in te voeren.
De geplaatste EPROM kon vanuit de controller worden geprogrammeerd met het commando PROG en programma’s konden eenvoudig vanuit de EPROM worden opgestart met het commando ROM. Programma’s konden slechts met UV-licht uit de EPROM worden gewist:
>LIST
10 FOR I=1 TO 3
20 PRINT I
30 NEXT I
READY
>PROG
12
READY
>NEW
READY
>LIST
READY
>ROM 12
READY
>LIST
10 FOR I=1 TO 3
20 PRINT I
30 NEXT I
READY
>