• 締切済み

コンピュータの IO (?)

パソコンの A  の キーを押したら、A  が 出力されますけど、これはどのような 仕組みになっているのでしょうか。(うまく説明出来ません) どこにどの様なプログラムがあるのでしょうか。

  • 0256
  • お礼率54% (13/24)

みんなの回答

回答No.3

こんにちわ。 MPLABですか。私は初耳ですが、PICのプログラムをするもののようですね。 一般的にですが、WindowsやLinuxなどPCのOS上でのプログラミングを行う場合、OS同梱のライブラリがハードウェアの利用を高度に抽象化してくれているため、デバイスドライバを書くような場合を除けばハードウェアを意識する必要はほとんどありません。ライブラリの任意の関数を呼べば(printfとか)、その目的を達成に必要とされるデバイスの詳細な制御は、基本的にライブラリが面倒を見てくれます。 しかし、PICのようなハードウェアそのものを制御するプログラムを書く場合には、ハードウェアの挙動を意識してプログラミングをする必要があります。ライブラリがないということはないと思いますが、抽象化の度合いは相対的に低いはずです。また、最終的には一番ハードに近いアセンブリ言語でデバッグをしたりするはずなので、本当に一番低いところの制御まで理解している必要があるはずです。 後者の方がとっつきにくいと思いますが、そこで学んだことは前者のプログラミングをする時にかならず役に立つので、頑張ってください。

回答No.2

こんばんわ。 たぶん求める答えは直接本には書いていないと思うので、極力簡単に説明してみます。 キーボードの"A"のキーを押すと、キーボードに入っているチップ(電子回路)が、どのキーが押されたかを番号で認識します(すべてのキーに通し番号がついていると思ってください)。 認識した番号を、キーボードからパソコン本体に送ります。たとえばUSB接続のキーボードであれば、内蔵のUSBの処理を行うチップがUSBの信号として先の番号を送ります。パソコン本体側にもUSBの処理を行うチップが搭載されており、受け取ったUSBの信号を解釈して、先の番号を取り出します。 取り出した番号は、パソコン本体に送られます。この番号を誰が受け取るかはパソコンの状態により異なります。電源投入直後であればBIOS(最近ならUEFI)というパソコン本体内蔵のチップに組み込まれている簡単なOSが、WindowsなどのOSが起動した後であればOSが同じように信号を受け取ります。細かく言うならば、実際に受け取るのはそれらのOSの入力を司る部分ということになります。 信号を受け取ったBIOSやOS(の入力を司る部分)は、取り出した番号を見てキーボードで"A"が押されたことを知ります。そうしたら、今度はOSの中の画面出力を制御している部分に"A"という文字を描画するように指令を送ります。 "A"を描画しろという指令を受けた画面描画を司る部分は、それをモニタに描画するためのデータに変換してからモニタに信号を送り、最終的にモニタに"A"が描画されます。画面のどこに何を描画するかは原則としてOSが決めていて(他に表示すべきデータもあるので)、モニタに送られるのはあくまで最終的が描画イメージだけだと思ってください。 "プログラム"という意味での登場人物は、  1. キーボードに内蔵されている、押されたキーを検出するチップ  2. キーボードに内蔵されている、パソコン本体と通信を行う機能を司るチップ  3. パソコンに内蔵されている、キーボードとの通信を行う機能を司るチップ  4. パソコン本体で動作しているOS (埋め込みのBIOSもしくはWindowsなどのいわゆる"OS")  5. パソコンに内蔵されている、モニタとの通信を行う機能を司るチップ  6. モニタに内蔵されている、パソコンとの通信を行う機能を司るチップ というところでしょうか。かなり単純化していますので厳密に言えば異なりますが。 4.以外のチップにはそれぞれ対応する機能を実装するためのプログラムが製造工程で焼きこまれています。チップに焼かれたプログラムは後から変更することは原則としてできませんが、逆に高速に処理ができ、かつ製造単価が安いのが特徴です。 4.のパソコンの中にあるOSは、WindowsやLinuxなど後から利用者が意のままに変更できますが、柔軟性に富む = 処理が複雑になるため、相対的に非常に高機能なチップを大量に利用します。質問者さんがイメージしている"プログラム"に一番近いのは、おそらくここで動いているものでしょう。

0256
質問者

お礼

早速のご回答ありがとうございます。 私が以前質問したことなんですけど、MPLAB の printf を使うことが出来なくて、質問したことがあるのです。MPLAB では、通信の機能を使って、やるようなんですけど私がようやらんのです。他の c言語(LSIC ?) 等では一発で出力しますよね。 (LSICは正しいかどうか自信がありません)

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

学校で教えて貰うか 入門書を紐解いてください この場はそう言う質問には向いてません この場で説明出来る範囲で言えば キーボードが機械的な動きを電気的な信号に置き換える 置き換えられた電気信号をOSという基本ソフトが検知して必要な処理を行う その結果、モニタという機械に光学的なシンボルが表示される プログラムといえなくもないが・・・・・

関連するQ&A

  • コンピューターについて

    VaioノートパソコンのPCG-505v/CBXのことで質問です。 友人から、買い譲り受けたのですが、起動のスイッチをいれたのですが 何かよくわからない、画面に、いっぱい英語の文字が出てきたので説明書をみたのですが、内容は、1、F2キーを押す。2、→で(GetDefault Values)を選び、Enterキーを押す。3、(Yes)が選ばれているときは、←キーで(Yes)を選びEntarキーを押します。 4、(Exit(Save Changes)を選び、Enterキーを押す。 5、(Yes)が選ばれていることを確認したから、Enterキーを押す。(No)が選ばれているときは、←で(Yes) を選び、Enterキーを押します。本機が再起動します。 と説明書に出ているのですが、何回やっても同じことの繰り返しに なるのですが、どなたか、どうして、再起動できないか教えて下ださい。

  • パソコンIOボードを探しています

    以下のような仕様のパソコンのIOボードを探しています。 どこかで販売しているでしょうか?おそらく 出力の電流値(8A)がネックだとおもうのですが。。 (1)USBもしくはLANで制御 (2)出力形式は8~10A程度の付加を制御できるリレー出力形式で点数は4点で、 (3)入力は4点程度

  • IO制御について

    IO制御について、PIOボードを使用して、入力を見たり出力でモータを回したりするところまでは分かりました。 センサーやモーターは、一度PIOの端子台で受けてパソコンに入りますが、端子台の所で電圧はどのようになっているのでしょうか? 簡単に解るよう説明さたサイトがないか探しましたが見当たりませんでした。 どなたか、 分かりやすく説明出来る方もしくは、よいサイトをご存知の方がおられましたら教えてください。 宜しくお願いします。

  • 画面切り替えの方法

    まず状況の説明をします。 パソコンA:(DELL INSPIRON6400)とパソコンB(FMV-BIBLO NB16C)があります。 パソコンAの液晶はペンが減り込んでて木端微塵です。そこでデータ救出の為にパソコンBにパソコンAの画面を出力したいと思います。しかしやり方が分かりません。 この2つのPCはVGAケーブルで繋がっています。 そこからどうすればいいのでしょうか? Fnキー+Fキーということは分かるのですが、なぜかパソコンAでFnキー+F8キーをしてもパソコンAの画面が真っ暗になるだけでパソコンBの画面には何も映りません。一瞬だけ暗くなったりも・・ これはどうすればパソコンAをパソコンBに出力できるのでしょうか? ※どちらもノートPCです。

  • コンピュータについて

    11/18に大学のコンピュータの授業(HTML)でテストがあります。授業でやったところが出る&持込可なのですが、授業の内容がよくわかりませんでした。コンピュータの仕組み、ネットワークの仕組み、そして2進法が出そうだということなので、この3つについては頭に入れておこうと思っています。そこで、わかりやすく簡単に説明していただけないでしょうか??わかりやすく説明されているURLも教えていただけるとありがたいです。早めにお願いします!!!

  • 再起動プログラム

    以前再起動の仕組みについて教えてもらいました。 また、自分で作ってみようと思いました。 具体的には、MSDOSの起動システムFDの中にCTRL+ALT+DELETEを強制的に押すプログラムです この3つのキーをプログラムでどうするかわからない のです、普通に標準出力で指定すればいいというのでは ないでしょうし、ヒントでも良いのでご教授願います。

  • コンピュータについてを学ぶ、というと・・・?

    私は、大学で情報系のことを学んでいます。 時折自分がなにを学んでいるのかを聞かれることがあるのですが、 ”コンピュータについて学んでいる”では何か変ですし、 実際に学んでいるのは、パソコンの仕組み、ネットの仕組み、HP作成、3D作成、プログラミング、マーケティング、e-ラーニング。情報化社会について、音楽作成、映像作成、など幅広いんですが、 こういうことを学んでいるとき、どういってまとめるべきでしょうか?

  • 教えてください!!コンピューターのこと!!

    言語バーのことについて聞きたいんですが、私のパソコンは入力モードをひらがなに直すと毎回、KANAキーがついてしまって、KANAキーのボタンを押して戻そうとすると、ひらがな自体が全角英数に勝手に変わってしまいます。何か設定が変なのでしょうか・・・。直す方法を教えてください!!お願いします。

  • PHP 変数の書き方

    初歩的な質問で恐縮なのですが どなたか教えていただけますでしょうか。 変数の書き方で $a="banana"; $$a = 1; print $$a; とした場合にちゃんと出力結果は「1」と出るのですか プログラムの書き方として上記のように$$を続けて書くのは正しいのでしょうか。 例えば配列を使った場合 $a = array("banana"=>0); このbananaを変数名としたい場合 bananaをforeachなどで取り出し $keyとし $$key = 1; print $$key; この書き方はプログラムの書き方として正しいのでしょうか?他によいか書き方ある場合その書き方を教えていただければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • コンピューターの仕組みを簡単に教えてください。

    コンピューターの電源を入れてインターネットにつながるのはどのような仕組みでどうしてそうなるのか 3行くらいの文章で説明してください。マウスを動かすとなぜカーソルが同じ方向に動くのか?とか、 色々(フェイスブックが何を何しているのかも知りたいな~)60歳ですからお手柔らかに・・・・・