hey guys.i set up a counterand im trying to write these values to the eeprom of the pic16f690 and then read the value. the read which is outputted to port C,where leds should display them. i taken the eeprom code from the data sheet however it does not work. i have pasted my code below. please could somebody help me. thank you
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
cblock 0x70
DATA_EE_ADDR
DATA_EE_DATA
dly0
dly1
endc
org 0
nop
; intialise output ports
banksel ANSEL
movlw 0x00
movwf ANSEL
banksel ANSELH
movlw 0x00
movwf ANSELH
banksel TRISC
movlw 0xF0
movwf TRISC
movlw 0xF0
movwf DATA_EE_DATA
movlw 0x00
movwf DATA_EE_ADDR
WRITE
banksel EEADR
movf DATA_EE_ADDR
movwf EEADR
movf DATA_EE_DATA
movf EEDAT
banksel EECON1
bcf EECON1,EEPGD
bsf EECON1,WREN
bcf INTCON,GIE
btfsc INTCON,GIE
goto $-2
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
bsf INTCON,GIE
;SLEEP
;bcf EECON1,WREN
banksel PIR2
movlw 0x01
movwf PIR2
;incf DATA_EE_DATA
READ
banksel EEADR
movf DATA_EE_ADDR,W
movf EEADR
banksel EECON1
bcf EECON1,EEPGD
bsf EECON1,RD
banksel EEDAT
movf EEDAT,W
banksel PORTC
movwf PORTC
incf DATA_EE_DATA
;delay code
;movlw H'F0'
;movwf dly1
;movlw H'0F'
;movwf dly0
;OndelayLoop
;decfsz dly0,f -Waste time.
;goto OndelayLoop -The Inner loop takes 3instructions per loop * 256 loopss = 768 instructions
;decfsz dly1,f -The outer loop takes and additional 3 instructions per lap * 256 loops
;goto OndelayLoop
goto WRITE
end
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
cblock 0x70
DATA_EE_ADDR
DATA_EE_DATA
dly0
dly1
endc
org 0
nop
; intialise output ports
banksel ANSEL
movlw 0x00
movwf ANSEL
banksel ANSELH
movlw 0x00
movwf ANSELH
banksel TRISC
movlw 0xF0
movwf TRISC
movlw 0xF0
movwf DATA_EE_DATA
movlw 0x00
movwf DATA_EE_ADDR
WRITE
banksel EEADR
movf DATA_EE_ADDR
movwf EEADR
movf DATA_EE_DATA
movf EEDAT
banksel EECON1
bcf EECON1,EEPGD
bsf EECON1,WREN
bcf INTCON,GIE
btfsc INTCON,GIE
goto $-2
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
bsf INTCON,GIE
;SLEEP
;bcf EECON1,WREN
banksel PIR2
movlw 0x01
movwf PIR2
;incf DATA_EE_DATA
READ
banksel EEADR
movf DATA_EE_ADDR,W
movf EEADR
banksel EECON1
bcf EECON1,EEPGD
bsf EECON1,RD
banksel EEDAT
movf EEDAT,W
banksel PORTC
movwf PORTC
incf DATA_EE_DATA
;delay code
;movlw H'F0'
;movwf dly1
;movlw H'0F'
;movwf dly0
;OndelayLoop
;decfsz dly0,f -Waste time.
;goto OndelayLoop -The Inner loop takes 3instructions per loop * 256 loopss = 768 instructions
;decfsz dly1,f -The outer loop takes and additional 3 instructions per lap * 256 loops
;goto OndelayLoop
goto WRITE
end