讀寫PIC18F452內部EEPROM的示例源程序
列表p=18f452
#包括P18F452.INC
;
;---- 18F452 內存位置------
Data_EE_Addr EQU 0X000
Data_EE_Data EQU 0X001
EEPROM_Buffer 等於0x02
;--------向量------------
組織0x00
胸罩開始
; - - - -程序- - - - - - -
組織0x20
開始
調用INIT
;
;---- 測試寫入EEPROM 例程----
;
clrf Data_EE_Addr;將EEPROM 起始地址設置為0x00
movlw '0' ;將ASCII 代碼“0”加載到W
movwf 數據_EE_數據
EE_寫
rcall IN_DATA_EEW
incf Data_EE_Data,F ;0x30+N
incf Data_EE_Addr,F ;指向下一個EEPROM地址
btfss Data_EE_Addr,5 ;寫入32字節?
轉到EE_Write
;
;---- 測試READ EEPROM 例程----
;
clrf FSR0H;將RAM 點設置為0x010
movlw0x10
movwf FSR0L
;
clrf 數據_EE_地址
EE_讀
rcall READ_EEPROM
movwf POSTINC0 ;移動W -- RAM 然後點+ 1
;
incf Data_EE_Addr,F ;指向下一個EEPROM地址
btfss Data_EE_Addr,5 ;讀取32字節?
轉到EE_Read
;
左停止
轉到停止
;
;------ 內部EEPROM 讀取------
;
讀EEPROM
movff Data_EE_Addr,EEADR
;
; bcf INTCON,GIE
bcfEECON1、EEPGD
bsfEECON1,RD
movf EEDATA,W
; BSF INTCON,GIE
返回
;
;----內部EEPROM寫入-----
;
輸入數據EEW
movff Data_EE_Addr,EEADR
movff Data_EE_Data,EEDATA
;
BCFEECON1、EEPGD
BCF EECON1、CFGS;與數據手冊有差異
; BCF INTCON,GIE
BSFEECON1、雷恩
;
MOVLW 0X55
MOVWEECON2
MOVLW 0XAA
MOVWEECON2
BSFEECON1,WR
;
;BSF INTCON,GIE
LOOP1 BTFSS PIR2、EEIF
轉到循環1
;
BCFEECON1、雷恩
BCF PIR2、EEIF
返回
; - - - - -最初的- - - - - - - -
在裏麵
BCF PIR2、EEIF
BCF PIE2、EEIE
返回
;--------------------------------
結尾