N88-BASICでデジタル回路 (1回目)
2022/1/12(水)
N88-BASICでデジタル回路 (1回目)
2bits binary(2桁の2進数)を
7segment displayに10進表示する回路を
考えます
AAAA
F B
F B
GGGG
E C
E C
DDDD
2bitsの2進数yzとA~Gの表示の対応表
1=true(真)、0=false(偽)
yz A B C D E F G
00 1 1 1 1 1 1 0
01 0 1 1 0 0 0 0
10 1 1 0 1 1 0 1
11 1 1 1 1 0 0 1
A = (NOT z) OR y
B = -1
C = z OR (NOT y)
D = A
E = NOT z
F = NOT (z OR y)
G = y
y,zが入力でA~Gが出力で、1の時光らせます
NOT、AND、OR、XOR素子を組合わせた回路を作ります
優先順位を分かりやすくするため不要な()を付けています
(この回路は最適ではなく、とりあえず動くものです)
NOTは1、0の反転
ANDは両方1の時のみ1
OR は両方0の時のみ0
XORは両方同じとき0違うとき1
次に3bits binary(3桁の2進数)を
7segment displayに10進表示する回路を
考えます
AAAA
F B
F B
GGGG
E C
E C
DDDD
3bitsの2進数xyzとA~Gの表示の対応表
xyz A B C D E F G
000 1 1 1 1 1 1 0
001 0 1 1 0 0 0 0
010 1 1 0 1 1 0 1
011 1 1 1 1 0 0 1
100 0 1 1 0 0 1 1
101 1 0 1 1 0 1 1
110 1 0 1 1 1 1 1
111 1 1 1 0 0 1 0
A = (NOT (x XOR z)) OR y
B = NOT ((z XOR y) AND x)
C = (NOT y) OR z OR x
D = (NOT ((z XOR y) XOR x)) OR ((NOT z) AND y)
E = (NOT z) AND (y OR (NOT x))
F = (NOT (z OR y)) OR x
G = ((NOT z) AND x) OR (x XOR y)
x~zが入力でA~Gが出力です
優先順位を分かりやすくするため不要な()を付けています
(この回路は最適ではなく、とりあえず動くものです)
更に4bits binary(4桁の2進数)を
7segment displayに16進表示する回路を
考えます
(10~15はAbCdEFで表します)
AAAA
F B
F B
GGGG
E C
E C
DDDD
wxyz A B C D E F G
0000 1 1 1 1 1 1 0
0001 0 1 1 0 0 0 0
0010 1 1 0 1 1 0 1
0011 1 1 1 1 0 0 1
0100 0 1 1 0 0 1 1
0101 1 0 1 1 0 1 1
0110 1 0 1 1 1 1 1
0111 1 1 1 0 0 1 0
1000 1 1 1 1 1 1 1
1001 1 1 1 1 0 1 1
1010 1 1 1 0 1 1 1
1011 0 0 1 1 1 1 1
1100 1 0 0 1 1 1 0
1101 0 1 1 1 1 0 1
1110 1 0 0 1 1 1 1
1111 1 0 0 0 1 1 1
4bitsの2進数wxyzとA~Gの表示の対応表
L = (NOT (x XOR z)) OR y
H = NOT ((x XOR y) AND z)
A = (L AND (NOT w)) OR (H AND w)
L = NOT ((z XOR y) AND x)
H = (NOT ((y AND z) OR x)) OR (((NOT y) AND z) AND x)
B = (L AND (NOT w)) OR (H AND w)
L = (NOT y) OR z OR x
H = (NOT y) AND z OR (NOT x)
C = (L AND (NOT w)) OR (H AND w)
L = (NOT ((z XOR y) XOR x)) OR ((NOT z) AND y)
H = (x XOR z) OR (NOT y)
D = (L AND (NOT w)) OR (H AND w)
L = (NOT z) AND (y OR (NOT x))
H = (x OR y) OR (NOT z)
E = (L AND (NOT w)) OR (H AND w)
L = (NOT (z OR y)) OR x
H = (NOT x) OR y OR (NOT z)
F = (L AND (NOT w)) OR (H AND w)
L = ((NOT z) AND x) OR (x XOR y)
H = (y OR z) OR (NOT x)
G = (L AND (NOT w)) OR (H AND w)
w~zが入力でA~Gが出力です
優先順位を分かりやすくするため不要な()を付けています
(この回路は最適ではなく、とりあえず動くものです)
1=true(真)、0=false(偽)は
BASICでは、-1(すべてのbitが1):true、0:falseです
NL-BASICとblg~.zip(digi001.bas)は
このブログ(以下のリンク)からダウンロードできます
N88-BASICでデジタル回路 (1回目)
2bits binary(2桁の2進数)を
7segment displayに10進表示する回路を
考えます
AAAA
F B
F B
GGGG
E C
E C
DDDD
2bitsの2進数yzとA~Gの表示の対応表
1=true(真)、0=false(偽)
yz A B C D E F G
00 1 1 1 1 1 1 0
01 0 1 1 0 0 0 0
10 1 1 0 1 1 0 1
11 1 1 1 1 0 0 1
A = (NOT z) OR y
B = -1
C = z OR (NOT y)
D = A
E = NOT z
F = NOT (z OR y)
G = y
y,zが入力でA~Gが出力で、1の時光らせます
NOT、AND、OR、XOR素子を組合わせた回路を作ります
優先順位を分かりやすくするため不要な()を付けています
(この回路は最適ではなく、とりあえず動くものです)
NOTは1、0の反転
ANDは両方1の時のみ1
OR は両方0の時のみ0
XORは両方同じとき0違うとき1
次に3bits binary(3桁の2進数)を
7segment displayに10進表示する回路を
考えます
AAAA
F B
F B
GGGG
E C
E C
DDDD
3bitsの2進数xyzとA~Gの表示の対応表
xyz A B C D E F G
000 1 1 1 1 1 1 0
001 0 1 1 0 0 0 0
010 1 1 0 1 1 0 1
011 1 1 1 1 0 0 1
100 0 1 1 0 0 1 1
101 1 0 1 1 0 1 1
110 1 0 1 1 1 1 1
111 1 1 1 0 0 1 0
A = (NOT (x XOR z)) OR y
B = NOT ((z XOR y) AND x)
C = (NOT y) OR z OR x
D = (NOT ((z XOR y) XOR x)) OR ((NOT z) AND y)
E = (NOT z) AND (y OR (NOT x))
F = (NOT (z OR y)) OR x
G = ((NOT z) AND x) OR (x XOR y)
x~zが入力でA~Gが出力です
優先順位を分かりやすくするため不要な()を付けています
(この回路は最適ではなく、とりあえず動くものです)
更に4bits binary(4桁の2進数)を
7segment displayに16進表示する回路を
考えます
(10~15はAbCdEFで表します)
AAAA
F B
F B
GGGG
E C
E C
DDDD
wxyz A B C D E F G
0000 1 1 1 1 1 1 0
0001 0 1 1 0 0 0 0
0010 1 1 0 1 1 0 1
0011 1 1 1 1 0 0 1
0100 0 1 1 0 0 1 1
0101 1 0 1 1 0 1 1
0110 1 0 1 1 1 1 1
0111 1 1 1 0 0 1 0
1000 1 1 1 1 1 1 1
1001 1 1 1 1 0 1 1
1010 1 1 1 0 1 1 1
1011 0 0 1 1 1 1 1
1100 1 0 0 1 1 1 0
1101 0 1 1 1 1 0 1
1110 1 0 0 1 1 1 1
1111 1 0 0 0 1 1 1
4bitsの2進数wxyzとA~Gの表示の対応表
L = (NOT (x XOR z)) OR y
H = NOT ((x XOR y) AND z)
A = (L AND (NOT w)) OR (H AND w)
L = NOT ((z XOR y) AND x)
H = (NOT ((y AND z) OR x)) OR (((NOT y) AND z) AND x)
B = (L AND (NOT w)) OR (H AND w)
L = (NOT y) OR z OR x
H = (NOT y) AND z OR (NOT x)
C = (L AND (NOT w)) OR (H AND w)
L = (NOT ((z XOR y) XOR x)) OR ((NOT z) AND y)
H = (x XOR z) OR (NOT y)
D = (L AND (NOT w)) OR (H AND w)
L = (NOT z) AND (y OR (NOT x))
H = (x OR y) OR (NOT z)
E = (L AND (NOT w)) OR (H AND w)
L = (NOT (z OR y)) OR x
H = (NOT x) OR y OR (NOT z)
F = (L AND (NOT w)) OR (H AND w)
L = ((NOT z) AND x) OR (x XOR y)
H = (y OR z) OR (NOT x)
G = (L AND (NOT w)) OR (H AND w)
w~zが入力でA~Gが出力です
優先順位を分かりやすくするため不要な()を付けています
(この回路は最適ではなく、とりあえず動くものです)
1=true(真)、0=false(偽)は
BASICでは、-1(すべてのbitが1):true、0:falseです
NL-BASICとblg~.zip(digi001.bas)は
このブログ(以下のリンク)からダウンロードできます