2016/05/06(FRI) 【Nチビ】シフトインジケータ(天下一武闘会編)
はい。前回、実車にて確認したところ
Nチビでは4〜6速までしか拾えそうもないということで
回路とプログラムを作り変えです。
入力は、4〜6速の3ビット入力なので
PIC16F627AのPORTBの入力割込みを使おうかと。
割り込みに使えるのはRB4〜Rb7なので、それを使う。
また、7セグへのアウトプットはPORTAに変更。
あとRA5は入力専用なので使わない。
回路は↓こんな感じ
フォト

PORTAの使い方をテーブルで表現すると
↓こんな感じ。
フォト

前回、出力は4ビットでいいとしたけど
一応、7ビット使うこととした。

で、回路に合わせてプログラムも変更
まずは、ヘッダとか宣言部分。
フォト

リテラルは先ほどの表に合わせました。

続いてが割り込みハンドラ
RB4〜6の入力に変化があった時に割り込みが発生
チャタリング対応して、PORTAへの出力
フォト

続いて初期化ルーチン。
各レジスタの初期化の順番が
この前のテストプロのデバッグの結果を反映してます。
あと割込みの設定が増えています。
フォト

ちなみにメインループは、空回りwww
いつもながら、こんな処理で大丈夫なのか???
サブルーチン。
WAIT関連は変更なしです。
フォト

入力判定ルーチンです。
フォト

結局、おバカに判定処理をならべてます。
まぁ、ちょっとくらいROM/RAM、処理時間の無駄遣いでもいいでしょ?
まだリソースに余裕があるわけだし。
念のため、入力をテーブルにしておく。
フォト

最後は、プログラムの締めです。
フォト

本当はプログラムをもっと見直したいけど
まぁ単純な方がわかりやすいかな???

あ、回路的にはRA5とRB7はプルアップしておいた方がいいかな?
いつもながら動作確認未です。
今度はコンパイルは確認しています。