5145


Politechnika Lubelska

w Lublinie

Laboratorium Techniki Mikroprocesorowej

Ćwiczenie Nr 3

Nazwisko: Mitura

Niegowski

Imię: Marek

Mirosław

Semestr

V

Grupa

ED 5.5

Rok akad.

1999/2000

Temat ćwiczenia: Pamięć wewnętrzna RAM.

Organizacja i wykorzystanie stosu.

Data wykonania:

99.10.22

Ocena

Celem ćwiczenia jest zapoznanie się z wewnętrzną pamięcią RAM (pamięć o dostępie swobodnym), która może być zarówno odczytywana jak i zapisywana. W systemie mikroprocesorowym służy ona do przechowywania danych.

Zadanie 1.

W tym zadaniu zostanie dokonana operacja rejestrowego i bezpośredniego adresowania akumulatora:

LJMP START

ORG 100H

START:

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

MOV A,#10H ;wpisz liczbę do A

LCALL WRITE_HEX ;podprogram systemu

;liczba z akumulatora na wyświetlacz LCD

MOV ACC,#20H ;wpisz liczbę do ACC

LCALL WRITE_HEX

LJMP $

Stosując pracę krokową przy użyciu komputera wpisuję zawartość rejestru stanu PSW oraz stan wyświetlacza LCD do poniższej tabeli:

Bit

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0

LCD

Flaga

CY

AC

F0

RS1

RS0

OV

-

P

-

1

0

0

0

0

0

0

0

0

-

2

0

0

0

0

0

0

0

1

-

3

0

1

0

1

0

0

0

0

10

4

0

1

0

1

0

0

0

1

10

5

0

1

0

1

0

0

0

0

1020

Zadanie 2.

Modyfikując program z zadania 1 można dokonać adresowania bezpośredniego wybranych bitów akumulatora. Odpowiedni program zamieszczam poniżej:

LJMP START

ORG 100H

START:

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

MOV A,#10H ;wpisz liczbę do A

SETB ACC.4 ;ustaw bit 4 akumulatora

LCALL WRITE_HEX ;podprogram systemu

;liczba z akumulatora na wyświetlacz LCD

MOV ACC,#20H ;wpisz liczbę do ACC

SETB ACC.3 ;ustaw bit 3 akumulatora

LCALL WRITE_HEX

LJMP $

Adresowanie poszczególnych bitów akumulatora zmienia jedynie zawartość wyświetlacza LCD:

Bit

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0

LCD

Flaga

CY

AC

F0

RS1

RS0

OV

-

P

-

1

0

0

0

0

0

0

0

0

-

2

0

0

0

0

0

0

0

1

0

3

0

1

0

1

0

0

0

0

31

4

0

1

0

1

0

0

0

1

31

5

0

1

0

1

0

0

0

0

3129

Zadanie 3.

Akumulator umieszczony jest pod adresem 0E0H. Przy adresowaniu rejestrowym akumulator oznaczamy przez A (rozkazy nie zawierają w swoim kodzie jego adresu), natomiast przy adresowaniu bezpośrednim przez ACC (adres umieszczony w kodzie rozkazu). Przy oznaczeniu A lub ACC zostanie zapisany cały adres natomiast przy zapisie np.:

SETB ACC.x zostanie ustawiony bit x akumulatora (adresowanie bitowe).

Zadanie 4.

Następny program przedstawia posługiwanie się rejestrami R0-R7 zamiast innymi komórkami pamięci, co jest czasami bardzo wygodne i efektywne. W tym przykładzie zastosowano adresowanie bezpośrednie przy zapisie danych i adresowanie rejestrowe przy odczycie danych.

Listing programu przedstawia się następująco:

B0R7 EQU 7 ;rejestr R7 z banku 0

B1R7 EQU 8+7 ;rejestr R7 z banku 1

B2R7 EQU 10H+7 ;rejestr R7 z banku 2

B3R7 EQU 18H+7 ;rejestr R7 z banku 3

LJMP START

ORG 100H

START:

MOV B0R7,#0 ;wpisz numer banku

MOV B1R7,#1 ;do rejestru R7

MOV B2R7,#2

MOV B3R7,#3

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

;bank 0

MOV A,R7 ;A <- R7=0

LCALL WRITE_HEX ;akumulator na LCD

SETB RS0 ;bank 1

MOV A,R7 ;A <- R7=1

LCALL WRITE_HEX

SETB RS1 ;bank 3

MOV A,R7 ;A <- R7=3

LCALL WRITE_HEX

CLR RS0 ;bank 2

MOV A,R7 ;A <- R7=2

LCALL WRITE_HEX

LJMP $

Stosując pracę krokową zaobserwowałem stan akumulatora, rejestru stanu PSW oraz stan wyświetlacza LCD, co przedstawia poniższa tabela:

Bit

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0

LCD

A

Flaga

CY

AC

F0

RS1

RS0

OV

-

P

-

-

1

0

0

0

0

0

0

0

0

-

00

2

0

1

0

1

0

0

0

0

00

21

3

0

1

0

1

1

0

0

0

00

21

4

0

1

0

1

1

0

0

1

00

01

5

0

1

0

1

1

0

0

1

0001

19

6

0

1

1

0

0

0

1

1

0001

19

7

0

1

1

0

0

0

1

0

0001

03

8

0

1

1

0

0

0

1

0

000103

FF

9

0

1

0

1

1

0

1

0

000103

FF

10

0

1

0

1

1

0

1

1

000103

02

11

0

1

0

1

1

0

1

0

00010302

81

Zawartość rejestrów R7 w poszczególnych bankach przedstawia poniższa tabela:

Bit

7

6

5

4

3

2

1

0

Bank 0

0

0

0

0

0

0

0

0

Bank 1

0

0

0

0

0

0

0

1

Bank 2

0

0

0

0

0

0

1

0

Bank 3

0

0

0

0

0

0

1

1

Zadanie 5.

Poniższy przykład przedstawia inny sposób adresowania - adresowanie pośrednie, w którym przestrzeń bitowa zostanie zapełniona zawartością EEH:

LJMP START

ORG 100H

START:

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

MOV 13H,#55H ;do komórki pamięci 13H

;wpisz liczbę 55H

;(13H) <- 55H

MOV A,13H ;do akumulatora przepisz

;zawartość komórki 13H

;A <- (13H)=55H

LCALL WRITE_HEX ;akumulator na LCD

MOV R0,#10H ;do R0 wpisz liczbę 10H

;która będzie adresem

MOV R2,#8 ;do R2 wpisz liczbę 8

;-licznik pętli

LOOP: ;ustaw 10 komórek pamięci

;od adresu 10H czyli

;obszar 10H..17H

MOV @R0,#11101110B ;wpisz liczbę EEH pod adres

;umieszczony w R0

INC R0 ;zwiększ adres

DJNZ R2,LOOP ;powtórz zapis n-razy

;zgodnie z licznikiem

MOV A,13H ;A <- (13H)=EE

LCALL WRITE_HEX ;akumulator na LCD

LJMP $

Zadanie 6.

Poniższy program przedstawia adresowanie bitowe. Ustawia on zawartość komórki 21 na 3H i wyświetla ją na wyświetlaczu LCD:

LJMP START

ORG 100H

START:

LCALL LCD_CLR

MOV 21H,#0 ;zeruj komórkę 21H

;(21H) <- 0

MOV A,21H ;A <- (21H)=0

LCALL WRITE_HEX

SETB 21H.0 ;ustaw bit 0 komórki 21H

SETB 21H.1 ;ustaw bit 1 komórki 21H

MOV A,21H ;A <- (21H)=3

LCALL WRITE_HEX

LJMP $

Zadanie 7.

Kolejny przykład dotyczy pamięci podręcznej (przykład 5.1). Listing programu:

LJMP START

ORG 100H

START:

LCALL LCD_CLR

MOV A,#'D' ;wpisz do A kod litery D

PUSH ACC ;przechowaj akumulator

;na stosie

LCALL WRITE_DATA ;wyświetl jako znak

;czyli litera D

MOV A,#'=' ;wpisz znak równości

LCALL WRITE_DATA

POP ACC ;pobierz wartość ze stosu

;do akumulatora

LCALL WRITE_HEX ;wyświetl jako liczbę

;- kod litery D = 44H

SJMP $

Stosując pracę krokową odczytałem zawartość akumulatora, rejestru stanu PSW, wskaźnika stosu, co przedstawia poniższa tabela:

A

PSW

SP

00

00

00

21

00

07

44

00

08

21

80

08

3D

81

08

21

80

08

44

80

07

21

80

07



Wyszukiwarka

Podobne podstrony:
M 5145 Jacket
5145
5145
5145
5145
L 5145 Jacket
5145
5145
5145
AVT 5145

więcej podobnych podstron