Przykład procedury zapisu do EEPROM AT89S8252 w asemblerze - jak to zrobić?

Re: procedura zapisu do eeprom at89s8252





Poprzedni Następny
Wiadomość
Spis treści
From: "drozdu" <dreah_at_nospam_kki.net.pl>
Subject: Re: procedura zapisu do eeprom at89s8252
Date: Wed, 25 Sep 2002 15:38:43 +0200


W asm zajęłoby to pewnie < 15 bajtów :-)

czy mozna poprosic w takim razie przyklad w asmie ?

pozdr.
LB




Poprzedni Następny
Wiadomość
Spis treści
From: "Bartosz Sarama" <quasimod_at_nospam_poczta.usun.onet.pl>
Subject: Re: procedura zapisu do eeprom at89s8252
Date: Wed, 25 Sep 2002 20:08:00 +0200


Użytkownik "drozdu" <dreah_at_nospam_kki.net.pl> napisał w wiadomości
news:amsehv$1mc$1_at_nospam_news2.tpi.pl...

czy mozna poprosic w takim razie przyklad w asmie ?


Ale się wrobiłem :-)

Do dzieła zatem.

;Kiedy tak czytam pdfa to dochodzę do wniosku, że może trochę więcej
tych bajtów... ;-)

; *****************************************
dseg ;segment danych wewnętrznej RAM

zmienne_rozne: ds 50h ; np 80 bajtów zmiennych

może być też

zmienna1: ds 1 ; zmienna bajtowa
zmienna2: ds 20 ; 20 zmiennych bajtowych
zmienna3: ds 40 ; 10 zmiennych typu int (32bit)

;tak czy owak zajmują ileśtam (X) bajtów w RAM bez przerwy

cseg ;segment kodu programu
; *****************************************
; * funkcja wywoływana z parametrami:
; * ilość danych do zapisania jest w r0
; * a adres pierwszego bajtu w r1
; * adres początkowy do zapisu w eeprom -> w dptr
; *****************************************

zapisz_do_eeprom:
orl wmcon, #018h ;ustawiam EEMWE i EEMEN
;3bajty
zapisz_do_eeprom_0:
mov a, _at_nospam_r1 ;1
movx _at_nospam_dptr, a ;1
inc r1 ;1
dec r0 ;1
zapisz_do_eeprom_czekaj:
mov a, wmcon ;czekaj na koniec zapisu do
eeprom ;2
jnb acc.1, zapisz_do_eeprom_czekaj
;2
cjne r0, #0ffh, zapisz_do_eeprom_0
;3
anl wmcon, #0e7h
;3
ret
;1

; *****************************************

Jeśli czegoś nie pochrzaniłem to powinno działać :-) i zajmować jakieś
18 bajtów.

Cóż.. trochę się pomyliłem z tymi bajtami ;-)))))))))))

Pozdrawiam
Bartosz Sarama