PIC16F84Aとは、私が最も愛用しているマイコンである。
一番の特徴は、「基本的に1ピンにつき1機能」であるところだ。そのため、リセット入力専用端子、周波数制御専用端子も存在するのだ。
もちろんピンの入出力設定も出来、ピンを入力端子か出力端子のどちらかにすることが出来る。
以下のプログラムがあるとする。
bsf STATUS,RP0 ;バンク1に切り替え
movlw 01Fh ;ポートAのモードの設定
movwf TRISA ;ポートAを入力モードに
clrf TRISB ;ポートBを出力モードに設定
bcf STATUS,RP0 ;バンク0に切り替え
clrf TRISB ;ポートBを出力モードに設定
bcf STATUS,RP0 ;バンク0に切り替え
clrf PORTA ;ポートAのデータをクリア
clrf PORTB ;ポートBのデータをクリア
movf PORTA,W ;ポートAの入力データをワーキングレジスタに格納
movwf PORTB ;ワーキングレジスタ内のデータをポートBに出力
もしPORTAを入力専用端子、PORTBを出力専用端子とするならば、以下のようになるだろう。