[ Pobierz całość w formacie PDF ]

łanie danych pomiędzy procesorem mięci przez zapisanie w niej, odczyt wadliwej komórki.
a zewnętrzną pamięcią danych, umiesz- i weryfikację wartości testowej: czyli W przypadku przetestowania całego
czoną na płytce komputerka  układ U4. dwóch liczb: 55h i AAh. Wybrano właś- zakresu pamięci wypisany zostaje komu-
Otóż wspólnie napiszemy prostą proce- nie takie liczby, bowiem jak pewnie za- nikat o zakończeniu:  End  koniec.
durę testującą wszystkie komórki tej pa- uważyłeś są one kombinacjami zer i jedy- Zauważmy że testowany obszar za-
mięci, z dodatkowym wyświetlaniem na nej na przemian: 55h = 01010101b, a AAh czyna się od adresu 8100h, a nie np.
wyświetlaczu aktualnie testowanego = 10101010h, co pozwala na spraw- 8000h, dlaczego? Otóż pamiętajmy że
adresu i ewentualnych błędów. Wyko- dzenie wszystkich 8 miu bitów danej w obszarze 8000h....8040h znajduje się
rzystamy przy tym m.in. instrukcję komórki pamięci. kod naszego programu, toteż gdybyśmy
MOVX, a pamięć będziemy adresować  w trzeciej części inkrementowany jest wpisali jako wartość początkową adres
z wykorzystaniem pełnego 16 bitowego adres wskaznika DPTR po czym jeżeli 8000h, program zostałby zamazany
adresu. nie przekracza on założonego obszaru i komputerek zawiesiłby się.
Popatrzmy zatem i przeanalizujmy lis- pamięci (8100h...9FFFh) wykonywany Ta sama uwaga dotyczy adresu koń-
ting przykładowego programu, realizują- jest skok na początek procedury i tes- cowego, w przypadku pamięci 8kB
cego procedurę testowania pamięci. towana jest następna komórka. (6264). Posiadacze komputerków
Program zasadniczo składa się W przypadku wykrycia błędu następu- z 32kB RAM (62256) mogą zakończyć
z 3 części: je skok do etykiety  blad w której testowanie pamięci na adresie FFFFh.
ELEKTRONIKA DLA WSZYSTKICH 12/97 41
Też to potrafisz
T
e
ż
t
o
p
o
t
r
a
f
i
s
z
W takim przypadku należy nieco zmody- a następnie przekompilować program DPTR (inną niż proponowana: 8100h).
fikować program, sposób w dalszej zródłowy jeszcze raz. Wtedy w momen- W tym miejscy uwaga:  pójście wyżej
części artykułu. cie gdy po inkrementacji DPTR będzie adresu 8041h spowoduje zamazanie
Uwaga, przed rozpoczeciem wpisywa- = 0000h (przekroczy FFFFh czyli ostatni części kodu programu testującego  patrz
nie programu upewnij siÄ™ czy zwora JP3 adres w RAM) warunek : listing 1.
znajduje się w pozycji  8000h . mov A, DPH Jeżeli denerwuje Cię szybkie przemia-
jnz next tanie testowanego adresu, możesz to
Dla komputerowców: i tak będzie spełniony bez skasowanej linii spowolnić wpisując w linii pod adresem
Przedstawiony program znajduje się i w efekcie nastąpi skok na koniec programu. 8006h większą wartość do akumulatora.
na dyskietce kursu (AVT 2250/D) jako Reguła: wartość wpisana do A * 2 mi-
zbiór LEKCJA3.S03. Dla nie posiadających PC ta: lisekundy = opóznienie po teście każdej
Należy go skompilować jak poprzed- Tak jak poprzednio należy wstukać kod komórki.
nie lekcje wydając komendę programu począwszy od adresu 8000h, Komputerowcy moga zmodyfikować
DO LEKCJA3 lub użyć bezpośrednio korzystając z gotowych bajtów kodu poda- tę linię w programie LEKCJA3.S03
komendy kompilatora: nych w drugiej kolumnie listingu 1, czyli: np. mov A, #99h
> PASM51 LEKCJA3.S03 /H /L  12, 02, 74, 90, 81, 00 .... itd. .....
co spowoduje utworzenie zbioru wynikowego W przypadku chęci przetestowania pa- przy takiej wartości procedura testująca
w postaci Intel HEX, gotowego do przesłania mięci 32kB (U4  62256) należy pominąć linię będzie trwała niesamowicie długo (moż-
do komputerka poprzez łącze szeregowe. z listingu pod adresem 8024h, wpisując na się zdrzemnąć).
Dodatkowy zbiór LEKCJA3.LST jest w miejsce bajtów : Pozostali moga modyfikować opóznie-
listingiem programu przedstawionym 64, A0 nie poprzez wpisanie do komórki o adre-
w artykule. bajty sie 8007h (funkcja  Edit monitora) do-
W przypadku chęci przetestowania pa- 00, 00 wolną wartość z zakresu 1...FFh (1...255)
mięci 32kB (posiadacze U4  62256) na- czyli dwie instrukcje NOP (puste). i próbowac od nowa.
leży wykasować linię : Dodatkowo można poeksperymento- Wesołej zabawy !
S
Å‚
a
w
o
m
i
r
S
u
r
o
w
i
Å„
s
k
i
8024 64A0 xrl A,#A0h ;testujemy RAM wać z początkową wartością wskaznika Sławomir Surowiński
CPU 8052.DEF
;***************************************************************
; Lekcja 3: Testowanie zewnetrznej pamieci danych U4
;***************************************************************
include const.inc
include bios.inc ;deklaracje dla kompilatora
8000 org 8000h ;kod programu od adresu 8000h
8000 120274 lcall CLS ;wyczyszczenie wyswietlacza
8003 908100 mov DPTR,#8100h ;testujemy od adresu 8100h do 9FFFh
8006 next:
8006 7405 mov A,#5 ;male opoznienie (ok. 10ms)
8008 120295 lcall DELAY ;abys mogl zaobserwowac zmiane adresu
800B 75F001 mov B,#1 ;od pozycji 1 wyswietlacza
800E 12025F lcall DPTR4HEX ;wypisz aktualnie testowany adres RAM
8011 test55:
8011 7455 mov A,#55h ;zaladowanie 1 liczby testowej (01010101b)
8013 F0 movx @DPTR,A ;i zapisanie jej w zewn. RAM
8014 E0 movx A,@DPTR ;i odczyt spod tego samego adresu
8015 6455 xrl A,#55h ;sprawdzenie danej ze wzorcem
8017 701A jnz blad ;jezeli sie nie zgadza to blad komorki
8019 testAA:
8019 74AA mov A,#AAh ;zaladowanie 2 liczby testowej (10101010b)
801B F0 movx @DPTR,A ;i zapisanie jej w zewn. RAM
801C E0 movx A,@DPTR ;i odczyt spod tego samego adresu
801D 64AA xrl A,#AAh ;sprawdzenie danej ze wzorcem
801F 7012 jnz blad ;jezeli sie nie zgadza to blad komorki
8021 A3 inc DPTR ;zwiekszenie wskaznika adresu o 1
8022 E583 mov A,DPH ;spr. czy nie koniec testowanego adresu
8024 64A0 xrl A,#A0h ;testujemy RAM do adresu A000h
8026 70DE jnz next ;jezeli nie to testuj nastepna komorka
8028 koniec:
8028 757D79 mov DL6,#_E
802B 757E54 mov DL7,#_n ;na koniec milutki napis  End  koniec
802E 757F5E mov DL8,#_D ;informujacy ze koniec testu
8031 8009 sjmp stop ;i skok na koniec programu
;                                          
;ta czesc programu zadziala gdy bedzie blad jakiejs komorki RAM
8033 757D79 blad: mov DL6,#_E
8036 757E50 mov DL7,#_r ;niemmily komunikat ze pod adresem z DPTR
8039 757F50 mov DL8,#_r ;jest blad pamieci RAM  napis  Err
803C 7571E0 stop: mov blinks,#E0h ;aby napis  End lub  Err bedzie mrygal
803F 80FE stop2: sjmp stop2 ;i stop programu (klawisz M  powrot)
8041 END
42 ELEKTRONIKA DLA WSZYSTKICH 12/97 [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • gim12gda.pev.pl






  • Formularz

    POst

    Post*

    **Add some explanations if needed