Sprawozdanie z zajęć laboratoryjnych
Mikrokontrolery 1
Kod: ES1A520 303
Ćwiczenie numer: 2
Temat: Badanie 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
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.
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.
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.
Prezentacja i analiza wyników badań.
Podczas przeprowadzonych zajęć laboratoryjnych korzystaliśmy z kom pilota Keil Visio
Rysunek 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.