Freescale 68HC11

68HC11（または、6811やHC11と略記）は、モトローラによる8ビットマイクロコントローラのファミリであり、現在はフリースケール・セミコンダクタが製造している。68HC11はMC6800マイクロプロセッサから派生したCISCマイクロコントローラである。68HC11は68HC05マイクロコントローラよりも高価であるが強力であり、バーコードリーダ、ホテルのカードキーライター、アマチュア向けのロボットやその他の多くの組み込みシステムで使われている。

内部的には、HC11の命令セットはMC6800にYインデックスレジスタを加えたものであり、上位互換性がある（Yレジスタを扱う命令は、1バイトプレフィックスの0x18が付いたオペコードを使用する）。HC11は2つの8ビットアキュムレータのAとB、2つの16ビットインデックスレジスタのXとY、ステータスレジスタ、16ビットスタックポインタとプログラムカウンタを持つ。加えて、いくつかの命令はAとBのレジスタを組み合わせ、16ビットのDレジスタとして扱う。

HC11ファミリ向けの標準的なブートローダは、BUFFALO("Bit User Fast Friendly Aid to Logical Operation")と呼ばれる(ブートアップ時にシリアルポートにBUFFALOのプロンプトが見える場合は、ボード上のフラッシュメモリが消去されている可能性がある)。全てのHC11のモデルが、BUFFALOブートローダを内蔵しているわけではない。68HC11A0とA1はブートローダを内蔵していないが、A8は内蔵している。

HC11のバージョンの差により、アルファベットで名前がつけられたポートの数は異なる。最も一般的なバージョンは5つのポート（A,B,C,D,E）があるが、ポートを3つしか持っていないものもある（バージョンD3）。ポートD以外の各ポートはそれぞれ8ビットである。ポートDは6ビットである（チップのバリエーションによっては、Dも8ビットである）。HC11は内蔵のプログラムとRAM（1から768バイト）、または最大64キロバイトの外部メモリで動作する。外部メモリを使用する場合、ポートBとCがアドレスバスとデータバスとして使用される。この場合ポートCは、アドレスの低位バイトとデータの両方で使用するため時分割多重となる。

ポート変換ユニットのMC68HC24をHC11と合わせて使用することが出来る。外部のアドレスバスに置かれた場合は、MC68HC24はポートBとCの機能として動作する。ポートAは入力のキャプチャ、出力の比較、パルスアキュムレータ、他のタイマ機能を持つ。ポートDはシリアルI/Oの機能を、ポートEはAD変換器の機能を持つ。

Freescale 68HC12は68HC11を強化したバージョンである。

Freescale 68HC16マイクロコントローラは、68HC11のアップグレードとして、ほとんど互換性のある16ビットプロセッサを意図している。

外部リンク 
Freescale 68HC11 (Legacy) Part Info
A fully-synthesizable VHDL implementation of the HC11 CPU

マイクロプロセッサ