ディスコンのシフトレジスタM66310を使用したLEDフローです。32個のLEDフロー表示ではCCSを使いましたが、今回はハイテックCにしました。CCSとは少し勝手が違いました。
これを製作・検証したときは、LEDは28個でした。ただ、このシフトレジスターを使用したデバッグ機は手元に残っていませんので、ソースリストはLEDが28個の時のままです。ディップスイッチは点灯モードを変えます。LEDの点灯パターンは3種類でconstで定義しています。1個のフロー点灯、2個の後追いフロー点灯、3個の後追いフロー点灯の3種類です。speed()はディップスイッチで3種類の中から選びます。case 0x0dで100mSが並んでいるのは100mSを基準に検討していた時のなごりです。segshift()は、シフトレジスタに与える各信号の時系列の並びです。segall()は、全部点灯させるためですが、1個づつを1mS間隔で回しているだけです。モードはmain()の中で変えています。
ルネサス(三菱)のLED用のラッチつき16ビットシフトレジスタを、PIC16F84Aで制御します。このシフトレジスタは、シフト用とラッチ用の2つのクロック入力があり、6Pinがラッチクロック入力で、8Pinがシフトクロック入力です。これを2段カスケード接続して32個のLEDを動かします。