目次PIC回路集遠隔大型表示装置改良


遠隔大型表示 表示装置 変更ソフト処理説明



今回の変更では2つの処理変更をしています。1つ目はデジット数字の表示にラッチレジスタを使ったので、デジット数字処理で数字情報の設定処理とラッチのタイミング処理を変更しました。2つ目はデジット数字の処理を操作装置から情報を受信した後に1回だけ行うようにしました。
今回の回路の動作確認をしたところ、3桁の数字のうち1位の数字だけを表示させたとき、100位、10位の7セグメントLEDの一部のセグメントが一瞬点灯する現象が発生しました。原因ははっきりとは分かりませんが、配線を束ねている関係で線間に制御信号が伝わってしまうのではないかと思われます。そのため、デジット数字を連続的に表示すると100位、10位に意味のない表示が出てしまったため、数字情報の受信直後に1度だけ、表示制御をするようにしました。ラッチレジスタに記録される情報は正常なので、連続的に数字表示制御を行わなければ余分な表示は行われません。


数字情報とラッチタイミング制御
118 ;**** 7 segment display control
    ddisp_pは制御内容を制御するためのカウンタです。このカウンタは2ミリ秒毎の割り込みの都度1つ加算されます。
    ddisp_pの内容により以下の処理が実行されます。
ddisp_p処理内容
0100位情報設定
1100位ラッチ信号ON
2100位ラッチ信号OFF
ddisp_p処理内容
310位情報設定
410位ラッチ信号ON
510位ラッチ信号OFF
ddisp_p処理内容
61位情報設定
71位ラッチ信号ON
81位ラッチ信号OFF

    全ての処理が終了するとddisp_pはクリアされ、次の情報を操作装置から受信した場合、100位情報設定から行われます。

    146, 174, 202のステップは必要ありません。RAxをLレベルにするタイミングは次のRAyをHレベルにするタイミングと同時でもよいと思います。例えば、RA0はRA1のタイミングです。その場合、ddisp_p=(0):100位情報設定、(1):100位ラッチ信号ON、(2):10位情報設定、(3):100位ラッチ信号OFFおよび10位ラッチ信号ON、(4):1位情報設定、(5):10位ラッチ信号OFFおよび1位ラッチ信号ON、(6):1位ラッチ信号OFF になります。

表示処理実行制御
    data_rcvは操作装置からデータを受信したことを表示するフラッグ(旗)表示を格納するエリアです。
    フラッグの設定はデータ受信処理で行われます。
308         incf    data_rcv,f      ;Set data received flag
    データの受信が完了するとdata_rcvに"1"が設定されます。

    7セグメントLEDの表示処理の先頭でdata_rcvをチェックしています。
120         movfw   data_rcv        ;Read Data recived flag
    data_rcvが"1"の場合、「数字情報とラッチタイミング制御」が実行されます。
    data_rcvが"0"の場合、「数字情報とラッチタイミング制御」はスキップされます。
    movfwは疑似命令で movf data_rcv,w と同様です。

    「数字情報とラッチタイミング制御」の最後ではdata_rcvを"0"にして処理が連続しないようにしています。
212         clrf    data_rcv        ;Clear data received flag
    ワークエリアの初期設定処理では操作装置からのデータが無い場合に表示をクリアするためにdata_rcvに"1"を設定して「数字情報とラッチタイミング制御」が1度実行されるようにしています。
063         movlw   d'1'            ;Set Data received flag
064         movwf   data_rcv        ;Set flag