2003年12月28日(日)
PIC16F628は84の機能アップ版と考えておりますが、84との違いや機能追加部分の使用や設定方法をまとめてみました。ちなみにPIC16F627との違いはプログラムメモリだけのようです。 PIC16F627は1024Byte/PIC16F628は2048Byte
●PIC16F628 端子接続図
PIC16F84の機能アップ版ということで、ほとんどがピンコンパチとなっております。
内部クロックで動作させる場合は15、16ピンもI/Oとして使用できます。但しクロックは4MHZが最大です。
更にPIC16F84でMCLRピンだった4ピンもRA5で使用可能となっております。但し入力オンリーです。
注意しなければいけないのは10ピンのRB4/PGMで低電圧プログラミングを使用しない場合はLVPをOFFにする事です。
CONFIGで指定しないとセットされてしまい、I/Oポートとして動作しませんでした。
ポート設定
●TRISA
TRISAはバンク1の85hに存在し、PORTAの各ポートを入力にするのか出力にするのかを設定します。
したがってバンク1に切り替えて、TRISAをセットしバンク0に戻すようにします。TRISAの設定は1で入力 0で出力です。実際には次のようにプログラミングします。
bsf STATUS,RP0 ;SET BANK1
bcf STATUS,RP1 ;
movlw B'00010000' ;RA5以外全て出力に設定
movwf TRISA
bcf STATUS,RP0 ; SET BANK0
bcf STATUS,RP1 ;
●PORTA
PORTAは実際に各端子の状態が入ります。出力する時は目的のピットに1を立てます。
RA0のみに1を立てるには次のようにプログラミングします。
bsf PORTA,0
●CMCON
PORTAのAN0-AN3は、コンパレーター入力を兼用しており、通常のデジタル信号を扱う場合にはマスクする必要があります。
この設定をするのが、CMCONレジスターで実際には次のようにプログラミングします。
movlw b'00000111'
movwf CMCON ; CMCON = CM0/CM1/CM2 ON (COMPARATOR OFF)
●TRISB
TRISBはバンク1の86hと186hに存在しPORTBの各ポートを入力にするのか出力にするのかを設定します。設定は1で入力 0で出力です。
●PORTB
PORTBは実際に各端子の状態が入ります。出力する時は目的のピットに1を立てます。
次回はタイマ−の設定を解説します。(TMR1)
|