

Intel初のマイクロコントローラであるMCS-48マイクロコントローラシリーズは、1976年に初めてリリースされました。最初のメンバーは8048、8035、8748でした。8048 [ 1 ]は、このファミリーの中で最も有名なメンバーと言えるでしょう。
当初、この製品群はNMOS(n型金属酸化膜半導体)技術を用いて製造されていました。1980年代初頭にはCMOS技術での製造が可能になり、1990年代まで製造が続けられ、当時まだこの技術を使用していた旧型設計のサポートに役立てられました。
MCS-48シリーズは、改良型ハーバードアーキテクチャを採用しており、内部または外部のプログラムROMと、64~256バイトの内部(オンチップ)RAMを備えています。I /Oは、プログラムやデータとは別の専用アドレス空間にマッピングされます。
MCS-48シリーズは最終的に大成功を収めたMCS-51シリーズに取って代わられたものの、低コスト、入手性の高さ、メモリ効率の良い1バイト命令セット、そして成熟した開発ツールのおかげで、2000年になってもなお高い人気を誇っていた。そのため、このアーキテクチャは現在でも、テレビのリモコン、コンピューターのキーボード、玩具など、大量生産されコスト重視の民生用電子機器に採用されている。
MCS-48シリーズは、コンピュータや端末のキーボードで広く使用され、キー入力をデジタル回路が理解できるプロトコルに変換します。これによりシリアル通信が可能になり、外部キーボードのケーブルに必要な導体数を削減できます。8048は、1978年の発売以来、この用途で使用されています。
1979年に発売されたTandy/Radio Shack TRS-80 Model IIは、キーボードに8021を使用していた。[ 3 ] 8021プロセッサはキーマトリックスをスキャンし、スイッチの閉状態を8ビットコードに変換し、そのコードをシリアルでメインシステムのキーボードインターフェースに送信する。また、インジケータLEDをオンまたはオフにするコマンドも受け付ける。8021は、TRS-80 Model 12、12B、16、16B、およびTandy 6000/6000HDのキーボードにも使用されていた。[ 4 ]
オリジナルのIBM PC キーボードと、その前身であるIBM System/23 Datamaster のキーボードは、内部マイクロコントローラとして 8048 を使用していた。[ 5 ] PC AT は、 I/O ポート アドレス0x60~ 63にあるPC のIntel 8255周辺インターフェース チップを、ポート アドレス0x60および0x64からアクセスできる 8042 に置き換えた。[ 6 ] 8042 はキーボード インターフェイスの管理に加えて、AT のIntel 80286 CPU のA20 ラインゲーティング機能を制御し、ソフトウェアから 80286 をリセットするようにコマンドすることもできた ( 80386以降のプロセッサとは異なり、80286 はリセットする以外に保護モードからリアル モードに切り替える方法がなかった)。後の PC 互換機は、8042 の機能をスーパー I/Oデバイスに統合した。
8048 は、Magnavox Odyssey²ビデオゲームコンソール、Korg Tridentシリーズ[ 7 ]、Korg Poly-61 [ 8 ] 、Roland Jupiter-4およびRoland ProMars [ 9 ]アナログシンセサイザーで使用されました。Sinclair QL は、キーボード、ジョイスティックポート、RS-232 入力、およびオーディオを管理するために、密接に関連する Intel 8049 を使用しました。ROM のない 8035 バリアントは、任天堂のアーケードゲームDonkey Kongで、背景音楽とゲームの効果音の一部を生成するために使用されました。
MCS-48の命令はすべて1バイトまたは2バイトの長さで、命令の70%は1バイトです。MCS-48は、4096バイトのプログラムメモリ、256バイトのRAM、256バイトの外部メモリ、および8つのポートI/Oアドレスをアドレス指定できます。ほとんどの算術演算と論理演算は、アキュムレータをパラメータおよび宛先として使用します。8つのメモリ位置がレジスタとしてマッピングされているため、多くの命令に埋め込まれた3ビットフィールドでアドレス指定できます。これらのレジスタのうち2つはメモリポインタとして使用できます。条件分岐は、現在の256バイトのページにのみアクセスできます。JMPとCALLは、2048のアドレスに直接アクセスできます。4096バイトのプログラム空間全体にアクセスするには、扱いにくいメモリバンク選択命令を使用する必要があります。ただし、RET命令はアドレス空間内の任意の場所に戻ることができます。割り込みは、コンテキストスイッチを迅速に行うための代替レジスタと、RETR命令によるフラグの状態復元機能によって十分にサポートされています。すべての命令は、1または2マシンサイクルで実行されます。各マシンサイクルには15個の外部クロックが必要です。[ 2 ]
以下のアセンブラソースコードは、リトルエンディアンadd32順で格納された 2 つの 32 ビット整数を加算するサブルーチンのものです。一方の加数は R0 が指し、もう一方の加数と結果は R1 が指します。




8049には 2 KB のマスクROM (8748 と 8749 にはEPROMがあった) があり、4 KB の外部 ROM と交換できます 。また、128バイトのRAMと 27 個のI/Oポートがあります。[ 10 ]マイクロコントローラの発振器ブロックは、クロック入力周波数を 3 で分割し、さらにその結果を 5 つのマシン ステートに分割します。最大 11 MHz の水晶発振周波数を使用すると、0.73 MIPSのシングルサイクル命令が生成されます。命令の約 70% はシングルバイトでシングルサイクルですが、30% は 2 サイクルまたは 2 バイトを必要とするため、その典型的なパフォーマンスは 0.5 MIPS に近くなります。
UPI-41シリーズは、周辺機器向けに設計されたMCS-48のバリエーションであり、パラレルバス上でオンデマンドで応答することを目的としています。そのため、これらのチップにはバッファ付きパラレルデータバスインターフェースが組み込まれており、このインターフェースの動作を可能にするために一部のオペコード命令が変更されています。[ 12 ]
Philips Semiconductors (現在のNXP ) はこのシリーズを製造するライセンスを所有しており、このアーキテクチャに基づいて MAB8400 ファミリーを開発しました。これらはI²Cインターフェースを内蔵した最初のマイクロコントローラであり、最初のPhilips (米国ではMagnavox )コンパクト ディスク プレーヤー(CD-100 など) に使用されました。[ 14 ]