Przykład procedury zapisu do EEPROM AT89S8252 w asemblerze - jak to zrobić?
Re: procedura zapisu do eeprom at89s8252
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
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