目次
前
次
シフトレジスタチェック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を合体した
回路で、いろいろと操作してみるとよいでしょう。
目次
前
次