目次>8章.機能が豊富なPICを使う(PIC16F88)>(2)PIC16F84AからPIC16F88への移行
PIC16F84AからPIC16F88への移行
作成日2006.11.4 変更日2008.9.28
PIC16F84AからPIC16F88に移行する方法について記載します。
ピン互換がありますので、プログラムの一部を変えることで単純移行が可能です。
PIC16F88の新しい機能を使う場合は、別途その機能を使うための設定を追加する必要があります。
	| PIC16F84AからPIC16F88への移行 | 
| ・ | PIC16F88は、PIC16F84Aと比べて以下の4点の違いがあります。(単純移行する場合)ピン互換がありますので、プログラムを修正するだけで単純移行が可能です。
 (ただし、EEPROMなどの機能使用時はSFRの構成が異なりますので要注意です。)
 
		・秋月電子のPICプログラマV4を最新化する・・・2008.9.28追記
		・PICの機種指定(listとinclude文)
		・コンフィグレーションビットが異なる
		・汎用RAM(GPR)の先頭アドレスが異なる
		・AN機能があり、電源ON時やリセット時にANが有効になっている
	
 
	  | (1)秋月電子のPICプログラマV4を最新化する・・・2008.9.28追記 |  | 
			秋月電子のPICプログラマV4をお使いの場合は最新版にアップして下さい。古いバージョンでは、PIC16F88に書き込めない場合があるようです。
 
	   |  | (2)PICの機種指定(listとinclude文) |  | PIC16F84Aの場合
			
			
			| LIST |  | P=PIC16F84A |  | ; LIST宣言で使用するPICを16F84Aと定義する。 |  | INCLUDE |  | P16F84A.INC |  | ; 設定ファイルp16f84a.incを読み込む。 | 
 PIC16F88の場合
			
			
			| LIST |  | P=PIC16F88 |  | ; LIST宣言で使用するPICを16F88と定義する。 |  | INCLUDE |  | P16F88.INC |  | ; 設定ファイルp16f88.incを読み込む。 | 
 
	   |  | (3)コンフィグレーションビットが異なる |  | PIC16F84Aの場合
			
			
			| __CONFIG |  | _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF | 
 PIC16F88の場合(赤の部分を追記します)
			
			
			| __CONFIG |  | _CONFIG1, |  | _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF & _CPD_OFF & _DEBUG_OFF | 
 
	   |  | (4)汎用RAM(GPR)の先頭アドレスが異なる |  | 
		  従って、EQU命令やCBLOCK命令のオペランドを変更する必要があります。汎用RAM(GPR)の先頭アドレスが以下のように異なっています。
		  
			
		 
		 それぞれの変更例を載せます。赤の部分が変更箇所です。
		
			
				|  | PIC16F84の場合 | PIC16F88の場合 |  | EQU命令 | 
						| SAVE_ST |  | EQU |  | 0Ch |  | SAVE_W |  | EQU |  | 0Dh |  | COUNTER |  | EQU |  | 0Eh |  | 
						| SAVE_ST |  | EQU |  | 020h |  | SAVE_W |  | EQU |  | 021h |  | COUNTER |  | EQU |  | 022h |  |  | CBLOCK 命令
 | 
						|  | CBLOCK |  | 0Ch |  |  | SAVE_ST |  |  |  |  | SAVE_W |  |  |  |  | COUNTER |  |  |  |  | ENDC |  |  |  | 
						|  | CBLOCK |  | 020h |  |  | SAVE_ST |  |  |  |  | SAVE_W |  |  |  |  | COUNTER |  |  |  |  | ENDC |  |  |  | 
 
	   |  | (5)AN機能があり、電源ON時やリセット時にANが有効になっている |  | PIC16F88はAN機能があり、電源ON時やリセット時に全てのポートがANモードになっています。 このため、初期処理でANSELレジスタの全ビットをOFFにして、デジタルモードに設定する必要があります。
 
 初期処理の例
			
			
			| BSF |  | STATUS,RP0 |  | ;■バンク1に切替え |  | CLRF |  | ANSEL |  | ;A/D未使用 |  | BCF |  | STATUS,RP0 |  | ;■バンク0に切替え | 
 
	 |  | 
