PIC16F84Aについて、そしてその入出力機能が変化したら?

PIC16F84Aとは、私が最も愛用しているマイコンである。
一番の特徴は、「基本的に1ピンにつき1機能」であるところだ。そのため、リセット入力専用端子、周波数制御専用端子も存在するのだ。
1つのピンに様々な機能を詰め込むのがPICマイコンだが、PIC16F84AというPICマイコンはかなりの異色である。

もちろんピンの入出力設定も出来、ピンを入力端子か出力端子のどちらかにすることが出来る。


以下のプログラムがあるとする。

bsf STATUS,RP0 ;バンク1に切り替え
movlw 01Fh ;ポートAのモードの設定
movwf TRISA ;ポートAを入力モードに
clrf TRISB  ;ポートBを出力モードに設定
bcf STATUS,RP0 ;バンク0に切り替え
clrf PORTA ;ポートAのデータをクリア
clrf PORTB ;ポートBのデータをクリア
movf PORTA,W ;ポートAの入力データをワーキングレジスタに格納
movwf PORTB ;ワーキングレジスタ内のデータをポートBに出力

もしPORTAを入力専用端子、PORTBを出力専用端子とするならば、以下のようになるだろう。

clrf PORTA ;ポートAのデータをクリア
clrf PORTB ;ポートBのデータをクリア
IN             ;ポートAの入力データをワーキングレジスタに格納
OUT          ;ワーキングレジスタ内のデータをポートBに出力

そう、「movf PORTA,W」が「IN」に、「movwf PORTB」が「OUT」になるだろう。