目次

シフトレジスタチェック2

 1ビットのシフトレジスタは、74HC164、74HC194がありますが
 ピン数が少ないので74HC164をよく使います。

 ピン数が少ないマイコンで、8ビットを3ビットで実現する
 要求があったので、74HC164と74HC574を組み合わせました。



 2ビットで74HC164にデータを出力後、74HC574にトリガーを
 与えて8ビット出力になります。
 サブルーチンで、2つのレジスタの面倒をみます。

100 '
110 LET [0],P:OUT 2,0:OUT 3,0
120 FOR I=8 TO 1 STEP -1
130   LET [I],[0] & 1:LET [0],[0] >> 1
140 NEXT
150 FOR I=1 TO 8
160   OUT 1,[I]:OUT 2,1:OUT 2,0
170 NEXT
180 OUT 3,1:OUT 3,0
190 RTN

 サブルーチンの呼び出し側では、変数Pに出力したい8ビットを
 代入して、後の処理はサブルーチンに依頼します。

 次のLED表示パターンを使えば、回路動作を確認できます。



 変数Pに代入するビットパターンを配列に格納して
 処理すればよいでしょう。

10 '
20 LET [10],#80,#40,#20,#10,#08,#04,#02,#01
30 FOR I=10 TO 17
40   LET P,[I]:GOSUB 100:WAIT 60
60 NEXT
60 IF BTN() GOTO 80
70 GOTO 30
80 ? "exit"
90 END

 コードを合体すると、以下。

10 '
20 LET [10],#80,#40,#20,#10,#08,#04,#02,#01
30 FOR I=10 TO 17
40   LET P,[I]:GOSUB 100:WAIT 60
60 NEXT
60 IF BTN() GOTO 80
70 GOTO 30
80 ? "exit"
90 END
100 '
110 LET [0],P:OUT 2,0:OUT 3,0
120 FOR I=8 TO 1 STEP -1
130   LET [I],[0] & 1:LET [0],[0] >> 1
140 NEXT
150 FOR I=1 TO 8
160   OUT 1,[I]:OUT 2,1:OUT 2,0
170 NEXT
180 OUT 3,1:OUT 3,0
190 RTN

 ラベル利用で次のようにも書けます。

10 '
20 LET [10],#80,#40,#20,#10,#08,#04,#02,#01
30 @LOOOP
35 FOR I=10 TO 17
40   LET P,[I]:GSB @HND:WAIT 60
60 NEXT
60 IF BTN() GOTO @EXIT
70 GOTO @LOOOP
80 @EXIT
85 ? "exit"
90 END
100 @HND
110 LET [0],P:OUT 2,0:OUT 3,0
120 FOR I=8 TO 1 STEP -1
130   LET [I],[0] & 1:LET [0],[0] >> 1
140 NEXT
150 FOR I=1 TO 8
160   OUT 1,[I]:OUT 2,1:OUT 2,0
170 NEXT
180 OUT 3,1:OUT 3,0
190 RTN

 74HC164と74HC574を合体したICとして74HC595があります。

 74HC595の動作を理解するには、74HC164と74HC574を合体した
 回路で、いろいろと操作してみるとよいでしょう。


目次

inserted by FC2 system