TECHNIKA CYFROWA - sprawko lab 1, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, laboratoria


Technika cyfrowa

Laboratorium

Temat: Pamięci mikrokontrolera

Paweł Wańtowski 7.III.2006, Wrocław

Grzegorz Smychowski

Zadania do wykonania

Zadanie 1.

Celem zadania jest napisanie programu, alokowanego w pamięci CODE (począwszy od adresu 0000h), który utworzy 6-elementową tablicę TAB1 również w pamięci CODE (począwszy od pierwszego wolnego adresu poza obszarem zajmowanym przez program), a następnie wykona na niej określone operacje kopiowania. Pierwszą z tych operacji jest skopiowanie tablicy TAB1 do tablicy TAB2 tworzonej w pamięci IRAM, umieszczonej w zakresie adresacji pomiędzy 00h a 7Fh (ze względu na to, iż adresy od 80h do FFh są zarezerwowane dla rejestrów funkcji specjalnych SFR, tablica TAB2 musi być umieszczona pomiędzy 00h a 7Fh, czyli w obszarze pierwszych 128 z 256 bajtów pamięci IRAM). Operacja ta wykorzystuje polecenie MOV, zaś odwołanie do obszaru adresowego pamięci IRAM ma postać D:0xXX. Drugą operacją jest skopiowanie tablicy TAB1 do tablicy TAB3 tworzonej w pamięci XRAM; operacja ta wykorzystuje polecenie MOVC zaś odwołanie do obszaru adresowego pamięci XRAM ma postać X:0xXXXX. TAB3 będzie się zatem znajdować w obszarze pamięci o zakresie adresacji od 0000h do FFFFh (czyli będzie mieścić się pomiędzy bajtem 0 a 65535, gdyż pamięć XRAM ma pojemność 64 kilobajty). Trzecią, ostatnią operacją jest skopiowanie tablicy TAB2 (znajdującej się w pamięci IRAM) do tablicy TAB4, tworzonej w pamięci XRAM. Wykorzystuje się do tego celu polecenie MOVX. Tablica TAB1 będzie tworzona poleceniem DB (definiowanie jednego bajtu na każdy element tablicy) i będzie mieć postać TAB1: 1, 3, 2, 9, 0, 2.

Zadanie 2.

Zadanie to polega na wykonaniu na tablicy TAB3 takich operacji arytmetycznych, które spowodują zmianę jej zawartości z 1, 3, 2, 9, 0, 2 na 1, 3, 2, 8, 3, 3, a następnie zapisanie zmienionej tablicy w tablicy TAB5, znajdującej się również w pamięci XRAM. Posłuży do tego polecenie MOVX oraz odwołanie do obszaru adresowego postaci X:0xXXXX.

Zadanie 3.

Celem zadania jest utworzenie programu dokonującego konwersji liczb z naturalnego kodu binarnego na BCD. Ma to na celu ułatwienie odczytu wartości liczbowych z wyświetlacza LCD.

Opis realizacji

ad. Zadanie 1.

Realizacja założeń zadania powiodła się. Wykorzystanie poleceń MOV oraz MOVC pozwoliło na utworzenie tablic w określonych rodzajach pamięci mikrokontrolera. Nieodzowne okazało się wykorzystania etykiet w celu utworzenia pętli inkrementujących wartości R0 i DPTR. Wykorzystanie pętli pozwala na kopiowanie bloku danych do różnych obszarów pamięci. Schemat blokowy programu został umieszczony na stronie 3.

ad. Zadanie 2

Schemat blokowy programu został umieszczony na stronie 3.

ad. Zadanie 3

Poprawność wykonania tego zadania, określonego jako zadanie domowe, z powodu braku makiety nie mogła zostać doświadczalnie potwierdzona. Niemniej jednak w celu możliwości sprawdzenia na laboratorium przygotowany został program dokonujący konwersji z systemu dziesiętnego na BCD. Program zakłada korzystanie z tablic utworzonych w poprzednich zadaniach, a istotny fragment listingu umieszczony jest poniżej,

MOV R1,#60H ;adres zrodlowej tablicy w XDATA

MOV R0,#90H ;adres docelowy w XDATA

MOVX A,@R1

MOV B,#10

DIV AB

MOVX @R0,A

MOV A,B

INC R0

MOVX @R0,A

LD EQU 63

LJMP START

ORG 100h

START:

LCALL LCD_CLR

MOV A,#LD

MOV B,#10

DIV AB

SWAP A

ADD A,B

LCALL WRITE_HEX

Uwagi końcowe

Z powodu braku czasu wykonane zostało zadanie 1 oraz fragmentarycznie zadanie 2 (zgodnie z zaleceniem prowadzącego zajęcia, zadanie to ma być dokończone na początku kolejnych zajęć laboratoryjnych). Ćwiczenie laboratoryjne pozwoliło zapoznać się ze sposobami kopiowania danych do różnych rodzajów pamięci mikrokontrolera oraz konstruowaniem pętli w języku asemblera, istotne też było doświadczalne przekonanie się o specyfice rejestrów R0 oraz R1 w porównaniu z pozostałymi rejestrami Ri.



Wyszukiwarka