Я пытаюсь прочитать информацию из инициализированной EEPROM в PIC16F84 (которая смоделирована в MPLAB), и не могу понять, почему в отладчике я всегда получаю двоичное «1010» (= 0x0A в шестнадцатеричном формате), а в EEPROM есть 3 значения. Я их не правильно инициализировал или может другие значения расставили в другом порядке? список p=16F84 основание счисления шестнадцатеричное
;---------------------------------------------------------------------
RP0 equ 5
STATUS equ 0x03
EEDATA equ 0x08
EEADR equ 0x09
EECON1 equ 0x88
RD equ 0
;----------------------------------------------------------------------
counter equ 0x10
pointer equ 0x15
;----------------------------------------------------------------------
BANK0 macro
bcf STATUS, RP0
endm
BANK1 macro
bsf STATUS, RP0
endm
;----------------------------------------------------------------------
org 0x2100 ; EEPROM Data
de b'1010', b'0110', b'0001'
org 0x0000
goto start
start:
BANK0
clrw ; WREG = 0
movlw 3 ; WREG = 3
movwf counter ; counter = WREG => 3
init:
clrw ; WREG = 0
read_data:
incf pointer, 1 ; pointer += 1
movf pointer, 0 ; WREG = pointer
movfw EEADR ; get address
BANK1
bsf EECON1, RD ; read
BANK0
movf EEDATA, W ; WREG = EEDATA
goto read_data
done_loop:
goto done_loop
end