PIC Logic Scope Adapter は、PIC16F84 を使った、8ch のロジックスコープを 実現するアダプタです。出力はコンポジットビデオ信号ですので、ビデオ入力を もつテレビや、液晶モニタに表示することができます。 サンプリング周期は表示しながらの場合には、16kHz から 1Hz (16kHz, 8kHz, 4kHz, 2kHz, 1kHz, 200Hz, 100Hz, 20Hz, 10Hz, 2Hz, 1Hz) 、 表示を中断する場合には、PIC16F84のオッシレータ周波数の 1/12 (3命令で実現) となっています。一画面あたりの表示サンプル数は 8ch x 50 です。
単体では入力に何もつながれていない場合、あるいはハイインピーダンス状態の場合 内部プルアップのため入力は H となります。 入力2chを利用し、ロジックレベルにより、 1)ハイインピーダンス: LL, 2)Lレベル: HL, 3)Hレベル: LH, と変化する回路を付加することにより、ハイインピーダンス状態を表示することも 可能です。
PIC16F84 の PORT-A の下位2ビットをビデオ信号の生成に、上位3ビットを スイッチ入力に利用しています。PORT-B は全ビットをロジック入力に 割り当てています。PIC16F84で復号同期信号と輝度信号(2値)を生成し、 トランジスタ1石で合成してビデオ信号としています。 スイッチは3つ用意し、サンプリング開始、中断、サンプリング周期変更に それぞれを割り当てています。
プログラムはメインルーチンと割り込みルーチンの2つからなっています。 メインルーチンは、割り込み設定など初期化処理を実行した後、 スイッチを監視し続けます。 サンプリング開始(SW1)と中断スイッチ(SW2)は反応を早くし、サンプリング周期変更 スイッチ(SW3)はチャタリングを防止する必要があります。 そこで、SW1,SW2 については PORT-A を直接読み込み、押されていれば サンプリング開始または停止をするようにしました。 SW3 については、割り込みルーチンで読み込むことでサンプリング間隔を長くし、 さらにスイッチが離されたことを検出して周期を変更するようにしました。
画面表示しながらのサンプリングは割り込みルーチン内で行ないます。 画面表示をしない場合のみ、SW1 が押されていることを検出したあとすぐに、 50回のサンプリングを行ないサンプリングを停止します。
割り込みルーチンは、タイマ割り込みを利用し約62.6μs毎に起動されます。 一度の起動で、同期信号の生成、1ライン分の映像信号の出力、1回のサンプリングを 行ないます。まず、