;; Fill RAM Title "PIC18F452 counting program" list p=18F452, f=inhx32 #include ORG 00H GOTO START ORG 1CH START LFSR FSR0,20H MOVLW 1 NEXT MOVWF POSTINC0 INCF WREG BTFSS FSR0L,4 GOTO NEXT HERE BRA HERE END ;; Copy RAM - RAM Title "PIC18F452 counting program" list p=18F452, f=inhx32 #include ORG 00H GOTO START ORG 1CH START LFSR FSR0,20H LFSR FSR1,30H NEXT MOVF POSTINC0,W MOVWF POSTINC1 BTFSS FSR0L,4 GOTO NEXT GOTO START END ;; Copy RAM - EEPROM Title "PIC18F452 counting program" list p=18F452, f=inhx32 #include ADR_EEP EQU 00H ORG 00H GOTO START ORG 1CH START LFSR FSR0,20H MOVLW 1 NEXT1 MOVWF POSTINC0 INCF WREG BTFSS FSR0L,4 GOTO NEXT1 LFSR FSR0,20H MOVLW 40H MOVWF ADR_EEP NEXT2 MOVF ADR_EEP,W MOVWF EEADR MOVF POSTINC0,W MOVWF EEDATA BCF EECON1, EEPGD ; Point to DATA memory BCF EECON1, CFGS ; Access program FLASH or Data EEPROM memory BSF EECON1, WREN ; Enable writes BCF INTCON, GIE ; Disable interrupts Required MOVLW 55H ; Sequence MOVWF EECON2 ; Write 55h MOVLW 0xAA ; MOVWF EECON2 ; Write AAh BSF EECON1, WR ; Set WR bit to begin write INCF ADR_EEP,F LOOP BTFSS PIR2,EEIF GOTO LOOP BCF PIR2,EEIF BTFSS FSR0L,4 GOTO NEXT2 BSF INTCON, GIE ; Enable Interrupts HERE BRA HERE END