書込み
 WRITMOVFBANCHI,0 ;書込み番地をWレジスタへ
CALL WADRES ;番地書込みルーチンを呼ぶ
MOVF SUCHI,0 ;書込みデータをWレジスタへ
CALL WDATA ;データ書込みルーチンを呼ぶ
RETURN
 WADRES BSF STATUS,RP1 ;バンク 2
MOVWF EEADR ;書込み番地をEEADRに入れる
BCF STATUS,RP1 ;バンク 0
RETURN
 WDATA BSF STATUS,RP1 ;バンク 2
MOVWF EEDATA ;書込みデータをEEDATAに入れる
BSF STATUS,RP0 ;バンク 3
BCF EECON1,EEPGD ;EEPGD=0 データメモリにアクセス 
BSF EECON1,WREN ;WREN=1 書込み実行可
MOVLW H’55’ ;書込みシーケンス
MOVWF EECON2
MOVLW H’AA’
MOVWF EECON2
BSF EECON1,WR ;WR=1 書込み開始
BCF STATUS,RP1 ;バンク 0
BCF STATUS,RP0
 WRITCK BTFSS PIR2,EEIF ;EEIF=1 になったら書込み終了
GOTO WRITCK ;EEIF=0 なら未完、WRITCKへ
BCF PIR2,EEIF ;EEIF をクリヤする
RETURN
 読出し
 READ MOVF BANCHI,0 ;読み出す番地をWレジスタへ入れる
CALL READ2 ;読出しルーチンを呼ぶ
MOVWF SUCHI ;読み出したデータをSUCHIに入れる
RETURN
 READ2 BSF STATUS,RP1 ;バンク 2
BCF STATUS,RP0
MOVWF EEADR ;読み出す番地をEEADRに入れる
BSF STATUS,RP0 ;バンク 3
BCF EECON1,EEPGD ;EEPGD=0 データメモリにアクセスする
BSF EECON1,RD ;RD=1 読出し開始
BCF STATUS,RP0 ;バンク 2
MOVF EEDATA,W ;読み出したデータをWレジスタに入れる
BCF STATUS,RP1 ;バンク 0
RETURN
   PIC目次へ  トップページへ
  PIC16F877 の EEPROM 書込み、読出し

PIC16F877
のEEPROMデータメモリへの書込み、読出しのための動作確認済み参考プログラムは次のとおりです。 バンク切替に注意が必要です。

 注 意
 ”BANCHI” は EEPROM の H’00’からH’FF’までの番地を入れるレジスタです。
 ”SUCHI”  は EEPROM の書込みデータを入れるレジスタです。
  WRIT,READの呼出しはバンク 0 のプログラムから行います。