No.2ベストアンサー
- 回答日時:
PIC マイコンはいろいろな点で独特なクセがあります。
秋月電子通商のサイトの左のメニューから、
マイコン関連⇒PIC16F⇒PIC16F84(最上段の左から二つ目)⇒PIC16F84 PDFデータシート をたたけば英語版ですが PDF のデータシートが手に入ります。
http://akizukidenshi.com/catalog/g/gI-00097/
Microchip Technology 社のサイトでも手に入りますが、かなり古い製品なので見つけるのは簡単でないかもしれないので、これを使うといいでしょう。
メモリーマップが8ページに、
レジスタの構成が9ページに、
各レジスタの説明が10ページから、
入出力ポートの説明と使い方の例が17ページから、
命令関係の説明が37ページからの部分に書いてあります。
英語で書かれているので抵抗はあるでしょうが、これも勉強と思って読んでみるといいです。
日本語の雑誌やガイドブックのようなものと比べると何が書かれているか早くわかると思います。
さて、PA ポートや PB ポートで入出力を行いたい場合、以下のことを覚えておいてください。
実際の入出力を行うのに先立ち、ポートをどう使いたいかという情報を設定しておかなければなりません。
これをイニシャライズ(日本語だと初期化)と言います。
イニシャライズは PIC を起動したときに1回だけやります。
(1)メモリバンク0を選択
(2)出力値を初期値にする
(3)メモリバンク1を選択
(4)TRIS レジスタにビットごとの入出力方向を示す情報を設定する
(2)と(4)はPAポートとPBポートそれぞれについて行います。
もしそのポートのビットすべてを入力用にしか使わないのであれば、そのポートに対する(2)はする必要はありません。
以下は、次のような例です。
PAポートはビット0(最下位ビット)~3までを出力に使うときに、その初期値がビット0と1を1、ビット2と3を0にするという場合の初期値で、ビット4~7(最上位ビット)は入力用に使うのでどうでもいい値(ここではゼロ)とする。
PAポートはビット0(最下位ビット)~3までを入力に使うのでどうでもいい値(ここではゼロ)とし、ビット4~7(最上位ビット)を出力用に使うときに、その初期値がビット4だけが0で、ビット5~7の初期値をそれぞれ1とする。
※注意
ポートAはビット5~7はデータの入出力の目的には使えないことを覚えておいてください。
また、ポートの各ビットの入出力方向を決めるTRISレジスタはリセットや電源投入時にはすべてのビットが1、つまりデフォルトの入出力の方向設定が『入力』となります。
この状態ではポートの各ビットの出力は遮断、つまりハイインピーダンスの状態になっています。
これらのことはデータシートのレジスタの説明図や各レジスタの解説のところに書いてあります。
自分が使いたい入出力方向を設定する前に出力に使うビットの初期値を設定するのは、そうすることによって誤ったデータが出力されないようにするためです。
マイコンがちゃんと初期化されて初期情報が出てくるまでの間、ポートの各ビットに接続された回路は、マイコン側がハイインピーダンスでも誤った動作をしないように設計しなければなりません。
BCF STATUS, RP0 ; メモリバンク0を選択(各ポートのデータラッチはバンク0にあるため)
MOVLW 0x03 ; ポートAの出力の初期値
MOVWF PORTA ; ポートAの出力ラッチに書き込む(まだ出力はされません)
MOVLW 0xE0 ; ポートBの出力の初期値
MOVWF PORTB ; ポートBの出力ラッチに書き込む(まだ出力はされません)
BSF STATUS, RP0 ; メモリバンク1を選択(各ポートの TRIS レジスタはバンク1にあるため)
MOVLW 0xF0 ; ポートAの各ビットの入出力方向を指定するデータ
MOVWF TRISA ; TRISA に書き込む(この命令が実行されるとポートAの出力ビットには初期値が出力されます)
MOVLW 0x0F ; ポートAの各ビットの入出力方向を指定するデータ
MOVWF TRISB ; TRISB に書き込む(この命令が実行されるとポートBの出力ビットには初期値が出力されます)
あとはメインルーチンの中でデータを読んだり書いたりするだけです。
BCF STATUS, PR0
MOVWF PORTA
これでWレジスタにあるデータがポートAに出力されます。
ただし、出力に設定されているビットだけです。
BCF STATUS, PR0
MOVF PORTB, 0
これでポートBのデータがWレジスタに読み込まれます。
出力に設定されているビットは0となって読み込まれます。
ポートの配線の構造はデータシートの Figure 4-1 から 4-4 に書いてありますが、上記がその動作を示す説明になります。
No.3
- 回答日時:
PIC16F84 は日本語マニュアルが公開されています。
https://www.microchip.co.jp/download/dl_download …
このリンクがもしうまく開かなかったら、
Microchip Japan 社のホームページ https://www.microchip.co.jp/ から
「日本語資料」のページに入り、検索枠に 「16F8」 と入力すると出てきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 ウィーンブリッジ発進回路 2 2022/07/16 19:26
- 物理学 xy平面上を運動する物体Aがある。この物体の時刻tにおける位置ベクトルra(t)がra(t)=p + 2 2022/05/22 14:00
- 物理学 xy平面上を運動する物体Aがある。この物体の時刻tにおける位置ベクトルra(t)がra(t)=p + 1 2022/05/23 21:39
- 国産バイク ギボシ端子でのリレーの接続について 4 2023/05/05 17:49
- カスタマイズ(車) ミエーテレのスイッチ交換の方法を教えて頂きたいです。【車/電装品/DIY/カスタマイズ】 2 2023/03/30 13:11
- 数学 数学の質問です。 △ABCにおいて, ∠Aの二等分線が BC と交わる点をRとする。 辺BC, CA 2 2023/07/13 23:58
- カスタマイズ(車) 足元にLEDランプを付けるのですが端子の向きが分かりません。スイッチはどこに? 5 2023/04/13 11:06
- プラモデル・鉄道模型・模型製作 ダイハツム-ブのウインドーワイパーモーターの配線図? 1 2023/05/09 07:36
- 一戸建て 新築電気関係 スイッチと電気器具、電気配線に関して 4 2022/09/21 13:57
- 電気・ガス・水道業 スイッチボックス内の電線確認 3 2022/11/20 10:03
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
放射線取扱主任者令和5年度 物...
-
ガスタービンとガスエンジン、...
-
仮に自動車がAI化されても、私...
-
量子技術の社会実装、って、具...
-
低圧絶縁抵抗測定について教え...
-
配線の色の意味
-
グラフは横軸がすべり、縦軸が...
-
よろしくお願いします。 乾電池...
-
問1 複数の増幅回路を縦続接続...
-
工業 機械製図について この赤...
-
【ハケ】ダスター刷毛とラスタ...
-
ペースメーカに悪影響を与える...
-
【工業】ホツパーと漏斗(ジョ...
-
豆電球の明るさを調整したい。...
-
皆さん、おはようございます♪ ...
-
【電気設計者に質問です】なぜ...
-
乗用車にタイヤ・ホイールを取...
-
他励式インバータは交流電源を...
-
標本化周波数の図示
-
電子回路の記号
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三相交流回路の意味がチンプン...
-
燃料電池を三次電池と言わない...
-
なんで
-
低圧絶縁抵抗測定について教え...
-
「Fパラメータ」が出力端「開放」「...
-
よろしくお願いします。 乾電池...
-
電子回路の記号
-
直流回路の電力測定について 電...
-
【工学】プランジャーとシリン...
-
IPCPネゴシエーションについて
-
皆さん、おはようございます♪ ...
-
電動糸紡ぎ機とドラムカーダー...
-
電気工学と電子工学の学科選択...
-
板の表面の平面度が2005.7μm、...
-
ラップに表裏はあるのでしょうか?
-
絶縁抵抗試験と耐電圧試験
-
九州大学工学部gpaについて
-
プリウスにphevやソーラーpanel...
-
5段階スピードエレキモーターに...
-
しかしながら使用可能なGPIOは...
おすすめ情報