新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 讀寫PIC18F452內(nèi)部EEPROM的實例源程序

讀寫PIC18F452內(nèi)部EEPROM的實例源程序

作者: 時間:2012-11-29 來源:網(wǎng)絡(luò) 收藏

讀寫

list p=18f452
#i nclude P18F452.INC>
;
;---- 18F452 RAM LOCATIONS ------
Data_EE_Addr EQU 0X000
Data_EE_Data EQU 0X001
EEPROM_Buffer equ 0x02
;--------VECTORS------------

org 0x00
bra START

;-------PROGRAM--------------

org 0x20
START
rcall INIT
;
;---- Test the WRITE EEPROM Routine ----
;
clrf Data_EE_Addr ; set EEPROM start address at 0x00
movlw '0' ; Load a ASCII code "0" to W
movwf Data_EE_Data
EE_Write
rcall IN_DATA_EEW
incf Data_EE_Data,F ; 0x30+ N
incf Data_EE_Addr,F ; Point to next EEPROM Address
btfss Data_EE_Addr,5 ; Write 32 bytes ?
goto EE_Write
;
;---- Test the READ EEPROM Routine ----
;
clrf FSR0H ; Set RAM point to 0x010
movlw 0x10
movwf FSR0L
;
clrf Data_EE_Addr
EE_Read
rcall READ_EEPROM
movwf POSTINC0 ; move W --> RAM then point + 1
;
incf Data_EE_Addr,F ; Point to next EEPROM Address
btfss Data_EE_Addr,5 ; Read 32 bytes ?
goto EE_Read
;
LSTOP
GOTO LSTOP
;
;------ INTERNAL EEPROM READ ------
;
READ_EEPROM
movff Data_EE_Addr,EEADR
;
; bcf INTCON,GIE
bcf EECON1,EEPGD
bsf EECON1,RD
movf EEDATA,W
; bsf INTCON,GIE
return
;
;----INTERNAL EEPROM WRITE-----
;
IN_DATA_EEW
movff Data_EE_Addr,EEADR
movff Data_EE_Data,EEDATA
;
BCF EECON1,EEPGD
BCF EECON1,CFGS ; There are difference with data sheet

; BCF INTCON,GIE

BSF EECON1,WREN
;
MOVLW 0X55
MOVWF EECON2
MOVLW 0XAA
MOVWF EECON2
BSF EECON1,WR
;
; BSF INTCON,GIE

LOOP1 BTFSS PIR2, EEIF
GOTO LOOP1
;
BCF EECON1,WREN
BCF PIR2,EEIF

RETURN

;---------INITIAL----------------
INIT
BCF PIR2,EEIF
BCF PIE2,EEIE
RETURN
;--------------------------------
END



評論


技術(shù)專區(qū)

關(guān)閉