Badanie pamięci wewnętrznej mikrosterownika 8051 Mikroste

Transkrypt

Badanie pamięci wewnętrznej mikrosterownika 8051 Mikroste
Instrukcja do ćwiczenia <nr ćw>/bpw51a/lumisk/29.09.2008
T.: Badanie pamięci wewnętrznej mikrosterownika 8051
Mikrosterownik 8051 posiada 128 B wewnętrznej pamięci danych. Komórki tej pamięci można
adresować w trybie bezpośrednim direct, podając adres. Adres można podawać w dowolnym
systemie liczbowym, jednak zaleca się korzystanie z systemu szesnastkowego. Poniższy program
pokazuje zapis liczby 1 do pierwszej komórki pamięci (o adresie 0).
MOV
00H,#1
Komórki o adresach od 20 do 2F mogą być adresowane w trybie bitowym. Przykładowo, aby
ustawić bit 4 w komórce 21 można zastosować kod
SETB
21H.4
7F
09-7E
Ostatnia komórka pamięci
118 komórek
08
↑Stos
07
R7
03-06
4 komórki
02
R2
01
R1
00
R0 – pierwsza komórka pamięci
Rys. 1: mapa pamięci wewnętrznej mikrosterownika 8051 po restarcie
Po restarcie aktywny jest bank rejestrów roboczych o numerze 0. Oznacza to, że zapis do rejestru
R1spowoduje zapis do komórki o adresie 01. Czyli rozkazy MOV R1,#10 i MOV 1,#10 dadzą taki
sam efekt – pojawienie się liczby 10 w pamięci wewnętrznej pod adresem 1. PO restarcie
wierzchołek stosu, określony w rejestrze SP, ustawiony jest na adres 07, co oznacza, że zapis na stos
instrukcją PUSH spowoduje zapisanie pod adres 08. Kolejny zapis powoduje zapis do komórki 09,
itp. Gdy zachodzi potrzeba skorzystania z innych banków, a jest ich cztery, należy zorganizować
stos tak, aby nie kolidował z używanymi bankami. Kolejne banki rejestrów znajdują się za bankiem
0. Do przełączania banków służą bity RS1 i RS0, np. aby używać banku 3 należy ustawić obydwa
bity.
Zadania
1. Ile komórek ma pamięć wewnętrzna? Ile KiB ma pamięć wewnętrzna?
2. Napisz program sprawdzający, czy rejestr R1 ma adres 01.
3. Napisz program zmieniający aktywny bank rejestrów.
4. Napisz program sprawdzający, czy stos rozpoczyna się w komórce 08.
5. Napisz program zmieniający obszar zajmowany przez stos, tak aby stos rozpoczynał się za
ostatnim bankiem rejestrów roboczych.
6. Narysuj pełną mapę pamięci mikrosterownika gdy używane są wszystkie banki i stos
znajduje się poza rejestrami. Rysunek powinien być podobny do rys. 1.