プロが教える店舗&オフィスのセキュリティ対策術

PIC16F84の中身がどう配線され、スイッチがどうついてるのかわかりません。入力ポ-トRA0~RA3と出力RB1~RB7のスイッチと配線の構造がどうなっているかわかりません。RA0とRB0が線がつながっているかわかりません.教えてください。

「PIC」の質問画像

A 回答 (4件)

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 に書いてありますが、上記がその動作を示す説明になります。
    • good
    • 0

■マニュアルを読んで勉強して下さい。

    • good
    • 0

PIC16F84 は日本語マニュアルが公開されています。


https://www.microchip.co.jp/download/dl_download …

このリンクがもしうまく開かなかったら、
Microchip Japan 社のホームページ  https://www.microchip.co.jp/  から
「日本語資料」のページに入り、検索枠に 「16F8」 と入力すると出てきます。
    • good
    • 0

内部構造は企業秘密ですから非公開です。


等価回路ならデーターシートを見れば書いてあります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!