• ベストアンサー

数字

デジタルでデジタル時計みたいな数字を表すってどうやって考えたらいいのですか? │ ̄│  に1つずつ0と1をあてて足すんですか? │ ̄│   ̄

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

やり方はいろいろとあります。 例えばSN74LS47というICを使えば、0から9の数字を4ビットで入力してやれば、その形をLEDで表示できます。 IC内部では、LEDの配置がこうなっているとすると、   a  f   b   g  e   c   d  ある入力に対する出力がこうなるという回路が入っています。 入力    出力      abcdefg ----------  0 1111110  1 0110000  2 1101101  3 1111001  4 0110011  5 1011011  6 0011111  7 1110000  8 1111111  9 1110011 出力が1=点灯、0=消灯 マイコンで直接a~gを作るのであれば、そういう変換テーブルをプログラムで作っておけばいいだけです。

5296
質問者

お礼

7桁でいいのでしょうか?? 7ビットってことですか????? 一番前に0をつけて8桁にする必要はありますか??? 一本一本にa~gをわりあてて、その順番通りにオンなら1オフなら0って考えて数字を配列すればいいんですね♪ 7ビットってことでいいんでしょうか?

その他の回答 (6)

回答No.7

ANo.5の補足です。 >7ビットってことでいいんでしょうか? 7セグメントLEDですから7ビットで十分ですね。 8ビットでやってもいいですが、8本目はつなぐところがないので。。。 前にも書いたような気がしますが、大抵の7セグLEDにはドット(D.P)がついています。これを8ビット目に割り当てて、ドットを光らせたい時にこのビットを1にするというのはよくやる方法ですね。(マイコンのプログラムで光らせるときにLEDの状態を1バイトで保持しておく場合)

5296
質問者

お礼

ありがとうございました☆彡 みなさんは、こういう系の仕事をされてるんですか? すごいですね・・・。 ありがとうございました!!

  • nano_cat
  • ベストアンサー率24% (26/106)
回答No.6

えー、まず基本的なことを。 「習っていない」ことを言い訳にしてはいけません。 "LED" "点灯回路" でインターネット検索すれば山の ように出てくるじゃないですか。ちょいと10分も調 べればいいのじゃありませんか。 では時計の回路の説明。 7セグメントのLED("日"の字のLED)と、計時回路 内部の数字表現は切り離して考えましょう。 計時回路では、メカ式のカウンタのように、例えば 1秒毎に、ガチャンガチャンとカウンタをアップして いきます。1秒の桁回路では、 0000  (0秒) 0001  (1秒) 0010  (2秒) 0011  (3秒) 0100  (4秒) のように増えていきます。 1001  (9秒) まできたら、次は、 0000  (0秒) になります。と、同時に次の桁に桁あふれ信号を 出します。次の桁は桁あふれ信号がくるたびに値 が増えるようになっています。次の桁というのは この10秒の桁です。(おわかりですね?) 10秒の桁でも、 0000  (0) 0001  (1) 0010  (2) というように増えていきますが、 0101  (5) の次は 0000  (0) になります。そのように回路が組まれています。 この時、次の桁に、桁あふれ信号を出します。 各桁は2進数の4桁(4ビット)のカウンタに なっています。この4ビットに直接4個のLEDを 付けてももちろんかまいません。でもちょっと わかりにくいですよね。2進数の勉強にはなるかも しれませんが、やはり実用的ではありません。 そこで、 0000のときは、"0"に見えるように、 0001のときは、"1"に見えるように、 1001のときは、"9"に見えるような配線を します。(ちょっとややこしい) ダイオードマトリクスといって、すごい配線量に なるのですが、「4ビットの2進数を入力すると 7セグメントLEDに数字に見えるようにする」IC があります。またもっと高集積のICではカウンタ も表示回路もすべてひとつにおさめたものもあり ます。 また、上のように4ビットのカウンタをたくさん 使う(12:34:56の表示なら4ビットカウンタが 6個ですね)方法もありますが、1日は86400秒 なので、17ビットのカウンタがあれば数えること ができます。4ビットのカウンタ6個よりもお得な 気がしますが、しかし、例えば23456秒が何時何分 何秒なのか計算がしにくいです。マイコンを使う 場合に用いられることがあります。

5296
質問者

お礼

ありがとうございます。 授業で言ってたことがぜんぜんわからなかったもので・・・。 でも、先生はそんな難しいことをいってなかったような気がします・・・。 デジタルの数字を表したいだけで、実際に点灯させる技術を言われたのではないと思うんです。 まだ3回目なので。 でも、こうして、くわしく丁寧に書いてくださって、勉強になりました!! LEDの意味も分かったし、カウンターの仕組みも分かりました!!!! ありがとうございます!!!!

  • JUN-2
  • ベストアンサー率26% (360/1349)
回答No.4

まず、二進数はお判りになりますか? 7は二進数で表すと0111になります。 10進数的に表示するため、二進数を4桁ごとに区切ったBCDという表示方法がよく使われます。 判らない場合、二進数から復習して下さい。

5296
質問者

お礼

2進数はわかります! でも、LEDとかは習っていません。。。 4をデジタルで表したければ、100を入力する。 あらかじめ100が入力されれば4を表すこととする というデータを作ればいいということですか? デジタルで10個の数字を表す方法って、ただ、この配列でこの表示というのを決めればいいだけなのでしょうか??

  • JUN-2
  • ベストアンサー率26% (360/1349)
回答No.3

数字をLEDの点灯に変換するには、例えば BCD→7セグメントデコーダー のようなICを使います。 BCDで0001の場合、数字の1になるように   │   │ のセグメントをonになるようにします。 BCDで0010の場合、数字の2になるように  ─   │  ─ │  ─ の各セグメントをonにするようにします。 ICの中にはこのような対応表があり、それに従って各セグメントのon/offが決まります。 入力が 1010 のように9以上の場合、どのようにしたらよいでしょうか? 例えば16進数にあわせてAにすると良いと思います。  ─ │ │  ─ │ │ ちなみに、BCDはbinary coded decimal(10進化2進数)の意味です。

5296
質問者

お礼

デジタル時計にしなくてもいいんです。 すみません。。。 ONとOFFはなんとなく意味がわかるのですが、 たとえば7というデジタル数を機械の中ではどうゆう数字で表すことができますか?

回答No.2

棒が7本ありますね。7個の発光ダイオード(LED)があるわけです。こういうLEDを7セグメントLEDといいます。 それぞれのLEDに番号をつけて(No.1のa~gというのは棒7本+点で8個です)、それを8ビットのデータとして制御します。

5296
質問者

お礼

デジタルで0~9の数字の形を表す方法?なんですが、簡単に言うとどういうことですか? 番号をつけるというのは、情報処理(機械の中)では0と1でしかだめなんですよね?? それぞれどうやって7本を0と1で表して、たとえば0を表すにはどういう0と1の仕組みになるんですか? ちんぷんかんぷんでごめんなさい・・・

5296
質問者

補足

すみません、光らせるじゃなくてただ、数字を表す仕組みがしりたいです。 ごめんなさい(__)

  • JUN-2
  • ベストアンサー率26% (360/1349)
回答No.1

7セグメントLEDをシミュレートしようとされているのでしょうか? 各セグメント(a~g)にそれぞれon/offを割り当てるので良いと思います。

5296
質問者

お礼

すみません・・・初情報処理なもんで、LEDとかセグメントというコトバを知りません。ごめんなさい(__) デジタルの数字を表すには機械の中で0と1をどうやって変換されてるんでしょうか? すみません(__)

関連するQ&A