英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 读写PIC18F452单片机內部EEPROM的实例 [打印本页]

作者: winnie    时间: 2009-5-6 10:11
标题: 读写PIC18F452单片机內部EEPROM的实例
list        p=18f452
                   #include        <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




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2