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.