標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第124回]

●7segLED表示回路の更なる改良です

[第121回]の最後のところで、「7segLED表示回路で、ひとつ心配していることがある」と書きました。
再掲します。

この回路でひとつだけ心配していることがあります。
それは命令によって実行クロック数が異なるということです。
CPUが読み込む命令によって、実行クロック数が異なるため、M1から次のM1までの間隔は一定にはなりません。
ということは桁ごとに表示されている時間が異なることになりますから、ひょっとすると表示がちらつくかもしれません。
(もとの文はT3でしたが、ここは[第122回]に、M1に訂正しました)

ここは、どうも気になっていました。
「多分、表示がチラつくのでは…」

ときどき思い出したように、考えていましたが。
ひらめきました!

つい、M1にとらわれてしまって、おばかな回路になっていました。
こうすれば、よかったのです。

●改良後の7segLED表示回路です



どこを変えたかといいますと、1箇所だけ、変えました。
74HC191の14pin(CK)に入っていたM1を外して、そこになにやら怪しげなインバータ回路が入っています。
直したのはここだけです。
たったこれだけで問題は解決です。

前にも書きましたが、なにしろ昔のことなので、TK80の資料は手元には全く残っていません。
ですから、ここのところが、TK80ではどうなっていたのか、わかりません。
でも、多分、同じような回路になっていたと思います。
そういえば、TK80では、7490(10進カウンタです。74LS90だったかも)が使われていたように思います。

あ。今回の回路も、本当は74HC191などという高級なICである必要は全くありません。
74HC191は「プリセッタブル同期式4bitバイナリUP・DOWNカウンタ」といういかにも恐ろしい名前のカウンタです。
せっかくですから、74HC191のデータシートを、また一部分だけですけれど、お見せします。

●74HC191のデータシート(部分)です



74HC191はバイナリカウンタだけれども、74HC190は10進カウンタだと書いてありますね(原文と順番が逆になってしまいましたね)。
それなら、74HC190でもよいのですけれど、「つくるCPU」ではもっぱら74HC191を使っています。
7segLED表示回路は10進(BCD)カウンタでも16進(バイナリ)カウンタでも、どちらでもよいのですけれど、「つくるCPU」の回路は16進(バイナリ)カウンタでないと使えません。
ですから、7segLED表示回路も74HC191を使うことにしたのです。

それはそうだとしても、でも、同期式である必要もなく、プリセッタブルである必要もなく、そしてUP/DOWNカウンタである必要もなくて、単純なUPカウンタでも構わない回路(本当にそういう回路なのです)なのに、どうしてシンプルな74LS90か74HC93[注]を使わないで、74HC191にしているのでしょう。
[注]74LS90は10進カウンタで74HC93は16進(2進)カウンタです。ともに4ビット、非同期出力です。

わざとそのようにしているのではありません。
私としては、74HC93で十分と思っています。
え…と。74LS90はありますが、74HC90はありません。

ところが、74HC93は、(少なくとも国内においては)いつのまにか生産中止になっていました。
なんという時代なのでしょうか、ねえ。

それが、今回の回路で、74HC191を使うしかなかった理由です。

余計なお話をしているうちに、また時間が無くなってしまいました。
今回の7segLEDの改良部分の回路についての説明は、次回にいたします。
2008.12.10upload

前へ
次へ
ホームページトップへ戻る