Instrukcja V1 x id 217247 Nieznany

background image

1

1.

Spis tre

ś

ci








Spis treści ................................................................................................................................... 1
Dane techniczne i możliwości programu ................................................................................... 2

Ograniczenia........................................................................................................................... 2
Możliwości programu ............................................................................................................ 2

Zawartość okna programu .......................................................................................................... 2
Ustawienia symulatora ............................................................................................................... 3

Pierwsze uruchomienie .......................................................................................................... 3
Okno ustawień........................................................................................................................ 3

Uruchamianie symulacja programu ........................................................................................... 4

Wczytywanie programu ......................................................................................................... 4

Wczytywanie z pliku HEX................................................................................................. 4
Wczytanie z pliku ASM i kompilacja ................................................................................ 4
Ręczna edycja programu .................................................................................................... 4

Praca w trybie ciągłym ........................................................................................................... 4
Praca w trybie krokowym ...................................................................................................... 4
Praca ciągła z pułapką ............................................................................................................ 5
Podgląd i modyfikacja zawartości pamięci SRAM................................................................ 5

Część dolna pamięci........................................................................................................... 5
Część górna pamięci (rejestry SFR)................................................................................... 6

Podgląd stanu liczników......................................................................................................... 6
Kontrola czasu rzeczywistego ................................................................................................ 7

Narzędzia dodatkowe ................................................................................................................. 7

Wyprowadzenia zewnętrzne .................................................................................................. 7
Wyświetlacz 7-segmentowy................................................................................................... 8
Kontrolki – przyciski monostabilne ....................................................................................... 8
Terminal UART ..................................................................................................................... 9

Zachowywanie ustawień środowiska symulacji....................................................................... 10
Przykład.................................................................................................................................... 10

background image

2

2.

Dane techniczne i mo

ż

liwo

ś

ci programu

2.1.

Ograniczenia

Na program pisany, którego działanie ma być symulowane, nałożone są pewne ograniczenia,
wynikające z konstrukcji mikrokontrolera 89C51. Niniejszy program symulacyjny jest pod
każdym względem zgodny z restrykcjami zawartymi w danych technicznych wyżej
wspomnianego układu. Najważniejszym ograniczeniem jest rozmiar programu, który nie
może przekraczać 4kB.
Emulator 8051 w wersji 1:
- nie obsługuje zewnętrznej pamięci ROM,
- nie obsługuje zewnętrznej pamięci XRAM.
Innym ważnym ograniczeniem jest szybkość symulacji. Najwyższa (domyślna) symulowana
częstotliwość to 12kHz (co daje 1000 instrukcji w ciągu sekundy). Program wyposażony jest
jednak w narzędzia umożliwiające śledzenie wykonywania programu w czasie rzeczywistym.

2.2.

Mo

ż

liwo

ś

ci programu

Niniejszy program umożliwia debugging programu oraz kontrolę jego przebiegu poprzez:
- podgląd i możliwość modyfikacji dolnego obszaru pamięci SRAM (bez ograniczeń),
- podgląd i możliwość modyfikacji obszaru rejestrów SFR (bez ograniczeń),
- możliwość interakcji z mikrokontrolerem, poprzez podgląd i wymuszanie zmian
rzeczywistych stanów wyprowadzeń zewnętrznych (wyjścia z otwartym kolektorem),
- komunikację z programem poprzez symulowany interfejs UART oraz dołączony do
symulatora wirtualny terminal,
- Tworzenie uproszczonego systemu z użyciem wyświetlacza 7-segmentowego (bez
dekodera) oraz tablicy przycisków monostabilnych (każdy posiadaa swój indywidualny opis).
Całość układu okna, stanu programu można zachować w pliku w celu późniejszego powrotu
do symulacji.

3.

Zawarto

ść

okna programu

10

1

2

4

5

6

7

8

9

3

11

12

13

14

15

16

background image

3

1 – Wczytaj plik z programem (Intel-HEX lub nieskompilowany ASM)
2 – Otwórz plik MTS (plik symulatora, z zachowanymi parametrami symulacji oraz układem
okien i stanów kontrolek, zachowany wcześniej przez użytkownika)
3 – Zapis pliku MTS (zachowanie bieżącego stanu symulacji(
4 – Rozpoczyna symulacje programu w trybie ciągłym
5 – Wstrzymuje symulację programu
6 – Zatrzymuje symulację (ponownie inicjuje wirtualny mikrokontroler)
7 – Wykonuje jedna instrukcję
8 – Uruchamia program w trybie pracy „z pułapką” (tj. gdy wskaźnik programu przyjmie
wcześniej zdefiniowaną wartość, wykonywanie programu zostanie wstrzymane).
9 – Ustawienie szybkości odświeżania podglądu stanów rejestrów, pamięci, itd. (liczba
odświeżeń / sek.). Nie należy mylić z ustaleniem szybkości symulacji.
10 – Pasek menu
11 – Pokaż okno podglądu / modyfikacji zawartości rejestrów SFR
12 – Pokaż okno podglądu / modyfikacji zawartości dolnego obszaru RAM,
13 – Pokaz okno podglądu / modyfikacji stanu wyprowadzeń zewnętrznych
14 – Pokaż okno terminala UART
15 – Pokaż okno wyświetlacza 7-segmentowego
16 – Pokaż okno z łącznikami monostabilnymi

4.

Ustawienia symulatora

4.1.

Pierwsze uruchomienie

Przy pierwszym uruchomieniu programu, użytkownik zostanie zapytany:
1 – o chęć skojarzenia plików MTS z symulatorem. Pliki MTS to pliki w formacje
wewnętrznym programu symulacyjnego. Są zapisywane przez użytkownika i zawierają
wszystkie ustawienia środowiska symulacyjnego, łącznie ze stanem rejestru i wskaźnika
programu, czasomierza, etc., oraz ścieżką do pliku z zawartością programu Intel-HEX;
2 – o chęć skojarzenia z symulatorem plików HEX. Jeżeli użytkownik korzysta z różnych
programów symulacyjnych, w szczególności symulujących inne układy programowalne niż
8051, kojarzenie plików HEX z „Emulatorem 8051” jest niewskazane. Należy uwzględniać
preferencje użytkownika.

4.2.

Okno ustawie

ń

Uwaga: Wszystkie ustawienia po zatwierdzeniu ich przyciskiem OK. zostaną zachowane w
rejestrze systemu Windows.
Dostęp: Menu Narzędzia -> Ustawienia
Okno ustawień umożliwia dostosowanie do własnych potrzeb kilka wybranych parametrów
symulatora. Widoczne od góry:
- Terminal UART – umożliwia wybór sposobu działania terminala UART. Jeżeli użytkownik
symuluje programy pisane w językach wyższego poziomu (np. C, Basic) zalecanym
ustawieniem (dla instrukcji Print i Input) jest „wyświetlaj tylko dane przychodzące”.
- Po wczytaniu programu. Po wczytaniu pliku programu domyślnie użytkownik jest pytany o
chęć wyzerowania (ponownej inicjacji) mikrokontrolera. W tej ramce istnieje możliwość
zadeklarowania chęci każdorazowego pytania, każdorazowego zerowania lub pozostawiania
zawartości pamięci SRAM w stanie z chwili poprzedzającej moment przeładowania
zawartości pamięci ROM.
- Po kompilacji. Jeżeli użytkownik używa wbudowanego edytora kodu programu, lub
wczytuje nie skompilowane pliki ASM, po kompilacji program pyta o chęć przejrzenia
wygenerowanego pliku wydruku. (jest to jedyna możliwość weryfikacji poprawności

background image

4

zapisu/kompilacji programu). W tej ramce można zadeklarować chęć każdorazowego pytania,
każdorazowego wyświetlania lub pomijania tej możliwości.
W dwóch ostatnich ramkach możliwe jest skojarzenie z symulatorem plików MTS lub/i HEX,
lub likwidacja skojarzenia.

5.

Uruchamianie symulacja programu

5.1.

Wczytywanie programu

5.1.1.

Wczytywanie z pliku HEX

Menu Plik -> Wczytaj ROM…
W otwartym oknie wskazać plik z zawartością programu (plik w formacie Intel-HEX). Po
zatwierdzeniu przyciskiem Otwórz program z wybranego pliku zostanie wczytany do
wewnętrznej pamięci symulowanego mikrokontrolera. Zostanie także wyświetlone okno ze
zdekompilowaną zawartością programu.

5.1.2.

Wczytanie z pliku ASM i kompilacja

Menu Plik -> Wczytaj ROM…
W otwartym oknie wskazać plik z zawartością programu (plik w formacie tekstowym, z
rozszerzeniem .ASM). Po zatwierdzeniu przyciskiem Otwórz program zostanie
automatycznie skompilowany, i – jak podczas wczytywania pliku HEX – zostanie wczytany
do pamięci ROM symulowanego mikrokontrolera. Dodatkowo, wyświetlone zostanie okno z
zawartością pliku ASM. Możliwa będzie zmiana programu oraz ponowna jego kompilacja
(patrz nast. podrozdział).

5.1.3.

R

ę

czna edycja programu

Możliwe jest bieżące pisanie oraz symulowanie programu. Dostęp: menu Narzędzia ->
Edytor kodu.
Po otwarciu okna edytora kodu na pasku menu okna symulatora ukaże się dodatkowa pozycja
„Asembler”. Po rozwinięciu tego menu ukaże się opcja „Kompiluj i wczytaj do pamięci”. Po
jej kliknięciu, zawartość edytora kodu zostanie zapisana w pliku tymczasowym ASM, który
zostanie poddany kompilacji. Po skompilowaniu, program zostanie wczytany do pamięci
ROM symulowanego mikrokontrolera.
Uwag: Jeżeli wcześniej wczytywany był plik ASM, następnie użytkownik zmieniał zawartość
programu w oknie edytora kodu, po kompilacji zawartość oryginalnego pliku ASM nie
ulegnie zmianie. Jest to istotne – w celu zapisu zawartości zmodyfikowanego programu
należy jego treść skopiować z edytora kodu (poprzez zaznaczenie całości, i wciśnięcie
kombinacji klawiszy [Control] + [C] oraz wklejeniu skopiowanej treści do edytora
tekstowego (np. Notatnika) i zapisaniu jej w odpowiednim pliku.

5.2.

Praca w trybie ci

ą

głym

Po kliknięciu przycisku

wirtualny mikrokontroler zostanie uruchomiony. Wykonywanie

programu można wstrzymać (przycisk

) lub zatrzymać przyciskiem

, co spowoduje

ponowne zainicjowanie mikrokontrolera (bez kasowania zawartości pamięci ROM).

5.3.

Praca w trybie krokowym

Wykonanie programu „krok po kroku” możliwe jest przy użyciu przycisku

. Pojedyncze

jego kliknięcie spowoduje wykonanie jednej (bieżącej) instrukcji programu. Jeżeli widoczne

background image

5

jest okno programu, a użytkownik nie kliknął pojedynczo w liście prezentującej
zdekompilowany program, zostanie wykonana aktualnie zaznaczona instrukcja. Możliwa jest
zmiana zawartości wskaźnika programu, poprzez dwukrotne kliknięcie na pożądanej
instrukcji w w.w. liście i odpowiedniej odpowiedzi na wyświetlone zapytanie). Aktualna
zawartość wskaźnika PC jest widoczna w oknie kontroli czasu (Menu Widok -> Przebieg
programu
).

5.4.

Praca ci

ą

gła z pułapk

ą

Warunkiem możliwości pracy ciągłej „z pułapka” jest widoczność okna ze
zdekompilowanym programem. Jeżeli okno to nie jest widoczne, należy wybrać z menu:
Widok -> Zasoby wewnętrzne -> zdekompilowany program.
W w.w. oknie należy wskazać pojedynczym kliknięciem myszy rozkaz, na którym ma zostać
wstrzymane wykonywanie programu. (Wybrany rozkaz NIE zostanie wykonany). Następnie

należy uruchomić wykonywanie programu „z pułapką” przy pomocy przycisku

5.5.

Podgl

ą

d i modyfikacja zawarto

ś

ci pami

ę

ci SRAM

5.5.1.

Cz

ęść

dolna pami

ę

ci

Menu Widok -> Zasoby wewnętrzne -> Pamięć RAM (dolny obszar).


U dołu okna widoczne są pola wyboru opcji HEX i DEC. Umożliwiają przełączanie podstawy
wyświetlanych liczb (szesnastkowy / dziesiętny).
Dwukrotne kliknięcie którejkolwiek komórki pamięci powoduje wyświetlenie okna jak na
poniższym obrazku.

background image

6

Umożliwia ono podgląd adresu wybranej komórki i jej zawartości. Pozwala także zmienić
zawartość – nową liczbę wpisuje się w pole tekstowe u dołu okienka. Akceptowane są
następujące formaty wpisywania:
- dziesiętny – np. 17d lub 56
- szesnastkowy – np. 15h
- binarny – npp. 01100110b

5.5.2.

Cz

ęść

górna pami

ę

ci (rejestry SFR)

Menu Widok -> Zasoby wewnętrzne -> Rejestry SFR.

W oknie podglądu/edycji zawartości SFR, podobnie jak w przypadku edycji zaw. Dolnego
obszaru pamięci ram – dwukrotne kliknięcie na polu z liczbową zawartością wybranego
rejestru powoduje ukazanie się okienka edycji jego zawartości. Dodatkowo, dwukrotne
kliknięcie na wybranym bicie dowolnego rejestru powoduje zmianę jego stanu na przeciwny.

5.6.

Podgl

ą

d stanu liczników

Menu Widok -> Układy peryferyjne wewnętrzne -> Timer0 oraz Timer1.

background image

7


Okienka umożliwiają obserwację i zrozumienie aktualnego stanu układów licznikowych.
Umożliwiają zmianę parametrów pracy liczników, odczyt i zmianę stanu ich rejestrów.
Pojedyncze kliknięcie na danej pozycje listy informującej o trybie pracy licznika powoduje
zmianę odpowiednich bitów w rejestrze TMOD, przez to zmianę trybu pracy licznika.

5.7.

Kontrola czasu rzeczywistego

Menu Widok -> przebieg programu.


W oknie kontroli przebiegu programu możliwa jest kontrola rzeczywistego czasu
upływającego podczas wykonywania programu. Licznik czasu można zerować przyciskiem
„X” umieszczonym tuż obok niego, w dowolnym momencie wykonywania, lub wstrzymania
wyk. Programu. W celu zapewnienia prawidłowości pracy licznika czasu, oraz wskaźnika
szybkości układu UART, należy ustawić w polu (liście) u góry okna częstotliwość przebiegu
taktującego (lub oscylatora) jaki przewidziany jest w układzie, którego oprogramowanie jest
uruchamiane w symulatorze.

6.

Narz

ę

dzia dodatkowe

6.1.

Wyprowadzenia zewn

ę

trzne

Menu Widok -> Wyprowadzenia.

background image

8

W tym oknie możliwa jest obserwacja stanu wyprowadzeń zewnętrznych. Możliwe jest także
wymuszanie zmiany ich rzeczywistego stanu – pojedyncze kliknięcie kontrolki danego
wyprowadzenia powoduje zanegowanie jego stanu. Warto przypomnieć, że 8051 posiada
wyjścia z otwartym kolektorem i tak też (tzn. jako iloczyn „na drucie”) należy rozumieć
„zmianę stanu zewnętrznego”.
Jeśli zmienić stan wyprowadzenia RESET na wysoki, tak jak w rzeczywistości –
mikrokontroler zostanie wyzerowany.

6.2.

Wy

ś

wietlacz 7-segmentowy

Menu Widok -> układy peryferyjne zewnętrzne -> wyświetlacz 7-seegmentowy,

W powyżej zaprezentowanym oknie możliwa jest graficzna reprezentacja stanu wybranych
pinów w formie znaków na 7-segmentowym wyświetlaczu LED. Są to wyświetlacza „o
wspólnej anodzie”. Warunkiem świecenia n-tej diody k-tego bloku jest stan wysoki na
anodzie k-tego bloku i stan niski na linii n-tego segmentu. Konfiguracja powiązań
poszczególnych linii z odpowiednimi pinami odbywa się poprzez wybór odpowiedniej
pozycji z list widocznych w w.w. oknie, lub wpisanie nazw pinów za pomocą klawiatury. W
tym drugim przypadku możliwe jest stosowanie notacji przyspieszającej pisanie – przykład:
P1.0 = p,10 = p10

6.3.

Kontrolki – przyciski monostabilne

Menu Widok -> układy peryferyjne zewnętrzne -> przyciski monostabilne.

background image

9

Wyżej pokazane okno służy do tworzenia symulowanego interfejsu użytkownika. Ułatwia
komunikację z użytkownikiem, gdy program jest uruchamiany wyłącznie w symulatorze.
Każdy przycisk posiada możliwość powiązania go z jednym z wyprowadzeń mikrokontrolera,
oraz opatrzenia go etykieta opisująca jego funkcję. Konfiguracji powiązań z
wyprowadzeniami dokonuje się jak w przypadku wyświetlacza 7-segmentowego (patrz dział
poprzedni).
Wciśnięcie przycisku sygnalizowane jest świeceniem „lampki” w górnej połówce każdego
klawisza i jest równoznaczne z wymuszeniem stanu niskiego na linii powiązanej z daną
kontrolką.

6.4.

Terminal UART

Menu Narzędzia -> Terminal UART.

Okno terminala służy do komunikacji z programami terminalowymi. Przykładowo, użycie
instrukcji Print w językach wyższego poziomu (np. Bascom, C) powoduje wysłanie
zdefiniowanego ciągu danych przez UART. Dane te odbierane są przez terminal, który w
emulatorze symulowany jest w wyżej pokazanym oknie.
Terminal jest urządzeniem wejścia-wyjścia, a więc możliwe jest także wysyłanie danych z
terminala do mikrokontrolera. Ciąg danych należy wpisać w polu tekstowym u dołu okna
terminala i zatwierdzić przyciskiem „Wyślij”.
U góry okna terminala wyświetlony jest bieżący parametr „Baud Rate” (szybkość
komunikacji, uzależniona nastawami w odpowiednich rejestrach mikrokontrolera oraz
częstotliwością generatora zegarowego; jest to powiązane z ustawieniem w oknie kontroli
czasu rzeczywistego).
Ponieważ wysłanie i odbiór bajtu danych wymaga (zależnie od BR) upłynięcia dużej liczby
cykli maszynowych, a symulacja odbywa się z częstotliwością max. 1kHz, możliwe jest
zignorowanie ustawionej w mikrokontrolerze szybkości transmisji. Domyślnie po otwarciu
okna terminala ustawienie to jest aktywne. Poprzez zaznaczenia pola wyboru „Symulowana
rzeczywista szybkość transmisji” na powrót wymusza się na symulatorze odczekiwanie
odpowiedniej ilości cykli maszynowych niezbędnej do przesłania każdego bajtu informacji
(co znacznie spowalnia interakcje terminala z użytkownikiem).

background image

10



7.

Zachowywanie ustawie

ń

ś

rodowiska symulacji

Możliwe jest zachowanie w pliku konfiguracji okien oraz stanu symulacji. Z menu Plik
wybiera się w tym celu pozycję Zapisz ustawienia symulatora. Należy wybrać lokalizacje i
nazwę pliku oraz zatwierdzić wybór przyciskiem „Zapisz”. W pliku zachowywane są:
- pozycja wszystkich otwartych okien,
- stan rejestrów SFR, oraz pamięci RAM i wskaźnika programu,
- ścieżka do pliku z zawartością programu.
Uwaga: Nie zachowywany jest stan systemu przerwań!
Po wczytaniu zapisanego wcześniej pliku symulacji, zostanie odtworzony stan symulatora,
oraz wczytany plik programu, którego ścieżka została zapisana w pliku symulatora. Uwaga:
Plik programu najpierw poszukiwany jest w tej samej lokalizacji, w której znajduje się
otwierany plik symulacji. Jeżeli nie zostanie tam znaleziony, poszukiwany jest bezpośrednio
w lokalizacji zapisanej w pliku symulacji. Umożliwia to przenoszenie plików symulacji (wraz
z plikami programu) między komputerami. Jedynym warunkiem jest to, aby plik programu
umieszczony w katalogu wraz z plikiem symulacji miał taką samą nazwę jak plik programu
zapisany „bezpośrednio zapisanej” lokalizacji.





8.

Przykład

Poniżej zostanie zaprezentowany przykładowy sposób zasymulowania prostego programu.
Program ten będzie zliczał impulsy pochodzące od jednej z kontrolek pochodzącej z tablicy
przycisków monostabilnych i wyświetlał wynik na pojedynczym bloku wyświetlacza 7-
segmentowego. Poniżej widać listing wspomnianego programu. Należy przepisać go do
edytora kodu (Menu Narzędzia -> Edytor kodu). Następnie, z menu Asembler wybrać
pozycję Kompiluj i wczytaj do pamięci. Po kompilacji, na ekranie ukaże się zapytanie o
chęć przejrzenia pliku wydruku. Jest to jedyna możliwość weryfikacji poprawności
asemblacji i kompilacji, ponieważ symulator nie otrzymuje od kompilatora informacji o
poprawności przebiegu asemblacji i kompilacji. Jeśli wybierzemy „tak” otworzy się okno
notatnika z wczytanym plikiem wydruku, który można przeanalizować w celu weryfikacji
poprawności kodowania programu.

background image

11

JMP

START

ORG

3h

PUSH ACC

MOV

A, R0

INC

A

MOV

B, #10d

DIV

AB

XCH

A, B

MOV

R0, A

POP

ACC

CALL DISPLAY

RETI

ORG

100h

START:

MOV

R0, #0

CALL DISPLAY

MOV

TCON, #00000001b

MOV

IE, #10000001b


LOOP: LJMP $

DISPLAY:

PUSH ACC

MOV

DPTR, #TABLE

MOV

A, R0

MOVC A, @a+DPTR

MOV

P0, A

POP

ACC

RET

TABLE:

DB

00000011B

DB

10011111B

DB

00100101B

DB

00001101B

DB

10011001B

DB

01001001B

DB

01000001B

DB

00011111B

DB

00000001B

DB

00001001B

END


Po wczytaniu skompilowanego programu do pamięci ROM, można zająć się kreowaniem
ś

rodowiska symulacji.

Program wykorzystuje przerwanie zewnętrzne INT0, skonfigurowane jako układ wyzwalany
zboczem opadającym na linii INT0. Wywołajmy okno z tablica przycisków (Menu Widok ->
układy peryferyjne zewnętrzne -> przyciski monostabilne). Użyjemy pierwszego
przycisku. W liście konfigurującej powiązanie pierwszego przycisku z danym
wyprowadzeniem wybieramy (lub wpisujemy za pomocą klawiatury) P3.2
Otwórzmy teraz okno wyświetlacza 7-segmentowego (Menu Widok -> układy peryferyjne
zewnętrzne
-> wyświetlacz 7-segmentowy). Z pierwszej od góry listy wybierzmy Vcc.
Wybór ten oznacza, że anoda pierwszego od prawej stron modułu jest zasilona. Katody
połączymy z wyprowadzeniami portu P0, który jest używany przez przykładowy program do
komunikacji z wyświetlaczem. Katoda a przyłączona do P0.7, katoda b do P0.6, …, katoda g

do P0.1.Po uruchomieniu symulacji przyciskiem

na wyświetlaczu ukaże się cyfra zero.

Każde przyciśnięcie klawisza powiązanego z P3.2 spowoduje inkrementację wyświetlanej
liczby (modulo 10).


Wyszukiwarka

Podobne podstrony:
D5 instrukcja v1 5 id 130749 Nieznany
BoeBot v1 0 id 91312 Nieznany (2)
Instrukcja ESRI id 216707 Nieznany
instrukcja laboratoryjna id 216 Nieznany
Instruktaz stanowiskowy id 2176 Nieznany
INSTRUKCJA obserwacja id 217027 Nieznany
Instrukcja 12 id 215508 Nieznany
Final v1 id 171205 Nieznany
INSTRUKCJA BHP 4 id 215697 Nieznany
KOS instrukcja 7 TM id 248303 Nieznany
instrukcja DTC id 216677 Nieznany
ANSYS AI Nastran v1 0 id 65570 Nieznany (2)
Instrukcja Lab4 id 216877 Nieznany
INSTRUKCJE Cwiczenie 1 id 71952 Nieznany
5 Instrukcja if id 39694 Nieznany
Instrumenty pochodne id 217770 Nieznany
Instrukcja UV2 id 217242 Nieznany
lab2 Instrukcja P2 C P id 75048 Nieznany
instrukcja 10 id 215506 Nieznany

więcej podobnych podstron