background image

Politechnika          Białostocka

Wydział Elektryczny

Katedra Automatyki i Elektroniki

 

 

 

Sprawozdanie z zajęć laboratoryjnych 

Mikrokontrolery 1 

Kod: ES1A520 303 

Ćwiczenie numer:  

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 

 

 

background image

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. 

 

 

background image

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. 

 

 

background image

 

 

 

background image

 

###########################################################################  
#  
#  

#  

 

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