Politechnika Białostocka
Wydział Elektryczny
Katedra Automatyki i Elektroniki
Sprawozdanie z zajęć laboratoryjnych
Mikrokontrolery 1
Kod: ES1A520 303
Ćwiczenie numer: 2
Temat: Bad
anie możliwości arytmetycznych mikrokomputera 8051
Wykonujący ćwiczenie: Świderski Piotr
Marcin Pietryczuk
Sylwester Radziszewski
Studia stacjonarne I stopnia
Kierunek: Elektrotechnika
Specjalność: Automatyka Przemysłowa
i Technika Mikroprocesorowa
Semestr V Grupa laboratoryjna : 3
Prowadzący ćwiczenie:
dr inż. Lech Grodzki
...........................
OCENA
17.10.12.
Data wykonania ćwiczenia
..............................................
Data i podpis prowadzącego
1.
Cel ćwiczenia.
Opanowanie technik realizacji złożonych operacji arytmetycznych na poziomie
asemblera. Doskonalenie praktycznych umiejętności w wykorzystaniu różnych technik
przekazywania informacji pomiędzy procesem wywołującym, a procesem wywoływanym.
2.
Metodyka badań.
2.1. Stanowisko badawcze.
Ćwiczenie przeprowadzane jest w dwuosobowych grupach przy stanowisku komputerowym.
Na komputerze jest zainstalowane środowisko uruchomieniowe Keil µVision. Studenci piszą
i uruchamiają swoje programy w indywidualnych podkartotekach (np. pon1215), założonych
w kartotece D:\8051\LAB na zajęciach wprowadzających. Do tych podkartotek należy
skopiować oprogramowanie narzędziowe i pliki pomocnicze z głównego katalogu.
2.2. Przebieg ćwiczenia
1. Przygotowanie procedur realizujących zadane przez prowadzącego obliczenia
arytmetyczne, wykorzystujące operacje mnożenia lub dzielenia.
Przykładowe zadania:
• mnożenie liczb wielobajtowych bez znaków;
2. Napisanie krótkiego programu wykorzystującego przygotowaną procedurę.
Należy zwrócić uwagę na właściwy dobór techniki wymiany informacji pomiędzy
programem wywołującym a wywoływaną procedurą.
3. Dokonanie asemblacji powyższego programu z wygenerowaniem pliku raportu z
asemblacji (*.LST) i pliku z kodem wynikowym (*.HEX):
4. Przeprowadzenie symulacji pracy przygotowanego programu name.HEX
w celu przetestowania poprawności rozwiązania postawionego zadania.
2.3. Prezentacja i analiza wyników badań.
Podczas przeprowadzonych zajęć laboratoryjnych korzystaliśmy z kom pilota Keil Visio
Rysunek 1 Program zapisany w języku asembler, Keil µVision.
###########################################################################
#
#
#
Program Mnożący liczby w kodzie 2BNB x 1BNB
#
#
#
###########################################################################
mov R7, #10101010b
;wprowadzenie danych
mov R6, #10101010b
;wprowadzenie danych
mov R5, #10011001b
;wprowadzenie danych
mov a,R6
;załadowanie R6 do akumulatora
mov b,R5
;załadowanie R5 do rejestru b
mul ab
;mnożenie dwóch liczb
mov R2,a
;załadowanie z akumulatora do R2
mov R3,b
;załadowanie z rejestru b do R3
mov a,R7
;załadowanie R7 do akumulatora
mov b,R5
;załadowanie R5 do rejestru b
mul ab
;mnożenie dwóch liczb
add a,R3
;dodawaniu liczb z akumulatora i
rejestru R3
mov R3,a
;załadowanie z akumulatora do R3
clr a
;czyszczenie akumulatora
addc a,b
;dodawanie z przeniesieniem
mov R4,a
;załadowanie z akumulatora do R2
end
;koniec programu
Wnioski.
W przeprowadzonym ćwiczeniu poznaliśmy zasadę sposób pisania kodu w języku
assembler polegającym na mnożeniu liczb BNB. Język maszynowy ma bardzo bogate
możliwości wykonywania szeregu działań arytmetyki
.