- 締切済み
PICを用いて、複数入力をランダムに出力する方法
電子回路の「で」の字も習ったことのない超初心者です。C言語の初歩的なプログラミングならかじったことがあります。 突然いままで触ったこともなかったPICにて、記事タイトルのような処理をするプログラムを組まなければならないことになりました。 詳しい仕様としましては、 ・入力が8個、出力も8個 ・「出力先変更スイッチ(ダクトスイッチというものを使用することを想定)」を押すことで、8個の入力を、ランダムに8個の出力に割り振る という単純なことができればいいのですが、なにぶん右も左も分からず、ピンが幾つ必要なのかも分からず手を付けられずにいます。 手元にある環境は、 ・28ピンPIC(型番:PIC16F876-20/SP) ・40ピンPIC(型番:PIC16F877A-I/P) ・ライタ(LEAP ELECTRONIC) ・MPLAB(エディタになると聞きインストールしたのみ) 以上です。 希望する回答は、以下の2点についてです。 ・手元にあるPIC(28ピン、40ピン)のどちらを使用すればよいか ・具体的にどのようなプログラムを書けばよいか(PICで乱数は使えるのでしょうか?) 時間もなく、出来るだけ早くもう明日にでも完成させたいので、ご協力くださる方、是非宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Classified
- ベストアンサー率39% (28/71)
訂正: No.2 ですが、「最低9bit」とあるのは「最低17bit」の書き間違いです。
- Classified
- ベストアンサー率39% (28/71)
やりたいことは、たとえばあみだくじ見たいなことですか、 例えばマイコンも使わずに実現するとしたら、スイッチと出力先を1対1につないで、その配線を裏でかくしておいてもできるようなこと。 スイッチと出力先の対応関係は、8個のスイッチとは別にある、入れ替え指示のスイッチがあって、そのスイッチを押されたら切り替わるのでしょうか。 最低9ビットのI/Oがあれば足りるのでPIC16F876でも足りるでしょうけど、追加要求とかにそなえて16F877にした方が安全でしょう。 が、... 「明日にでも完成させたい」 のに、「ピンが幾つ必要なのかも分からす」 ではギャップがありすぎかと。 もし、マイコンなりjの学習課題とかではなくて、たんにそういうスイッチと出力先の関係を入れ替えたいだけ(なにか余興とかイベントで必要)という話であれば、 別の実現方法とかを探ったほうが早いのでは。 それこそスイッチと出力先をつなぐ配線をジャックでつなぎ変えられるようにして、毎回手で適当につなぎかえるとか。 ちなみに「ダクトスイッチ」じゃなくて「タクトスイッチ」
8個のスイッチのどれか1つが押されたら、例えば8つ有るLEDのどれか1つが光るということでいいのでしょうか。 それって、スイッチが8個ある必要ないですよね?