5335


™ ® ©

Politechnika Lubelska

Laboratorium podstaw systemów mikroprocesorowych

w Lublinie

Ćwiczenie nr 1,2

Nazwisko:

Garbacz

Kuźma

Imię:

Tomasz

Jacek

Semestr

V

Grupa

ED 5.3

Rok akademicki

1997/98

Temat ćwiczenia:

Pamięć wewnętrzna RAM.

Data wykonania

24.10.97

Ocena:

1. Cel ćwiczenia :

Zapoznanie się ze sposobami adresowania pamięci.

;************************************************

;LEKCJA 3 - PAMIĘĆ WEWNĘTRZNA RAM

;PRZYKŁAD 1 - AKUMULATOR

;************************************************

LJMP START

ORG 100H

START:

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

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

LCALL WRITE_HEX ;podprogram systemuDSM-51

;liczba z akumulatora

;na wyświetlacz LCD

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

LCALL WRITE_HEX ;akumulator na LCD

LJMP $

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

-

-

-

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

31

-

0

0

0

0

0

0

0

0

10

30

0

0

0

0

0

0

0

0

1

102

32

-

0

0

0

0

0

0

0

0

1020

30

Powyższy program ma na celu ukazanie sposobów wprowadzania danych do akumulatora (rejestru specjalnego).

;************************************************

;LEKCJA 3 - PAMIĘĆ WEWNĘTRZNA RAM

;PRZYKŁAD 1 - AKUMULATOR

;************************************************

LJMP START

ORG 100H

START:

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

CLR A

SETB ACC.5 ;ustawianie bitu #5 akumulatora (wpisanie 10H)

LCALL WRITE_HEX ;podprogram systemuDSM-51

;liczba z akumulatora

;na wyświetlacz LCD

CLR A ;zerowanie zawartości akumulatora

setb ACC.6 ;ustawianie bitu #6 akumulatora (wpisanie 20H)

LCALL WRITE_HEX ;akumulator na LCD

LJMP

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

-

-

-

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

31

-

0

0

0

0

0

0

0

0

10

30

0

0

0

0

0

0

0

0

1

102

32

-

0

0

0

0

0

0

0

0

1020

30

Zarówno adresowanie bezpośrednie wprowadzanie danych do akumulatora (przykład 1), jak również ustawianie poszczególnych bitów akumulatora (przykład powyższy) dają te same wyniki.

;************************************************

;LEKCJA 3 - PAMIĘĆ WEWNĘTRZNA RAM

;PRZYKŁAD 3 - REJESTRY R0..R7

;************************************************

KOM EQU EEH

LJMP START

ORG 100H

START:

MOV R7,KOM ;wpisz numer banku

MOV R0,30H

MOV R1,#10

LOOP:

MOV @R0,R7

INC R0

DJNZ R1,LOOP

LJMP $

Program powyższy powoduje wpisanie do rejestru #7 zawartości komórki EEH a następnie zapełnia tą zawartością dziesięć kolejnych komórek pamięci począwszy od adresu 30H.

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

-

-

0

0

0

0

0

0

0

0

0

30

0

0

0

0

0

0

0

1

01

31

0

0

0

0

0

0

0

1

013

33

0

0

0

0

0

0

0

1

0132

32

Bit

7

6

5

4

3

2

1

0

Bank0

00

40

00

06

FF

FF

00

00

Bank1

01

01

00

00

00

00

00

00

Bank2

02

FF

FF

FF

FF

FF

FF

FF

Bank3

03

FF

FF

FF

FF

FF

FF

FF

Program powoduje wpisanie do rejestru #7 poszczególnych banków ich numerów (ilustruje to tabela). Następnie ustawiając kolejno poszczególne banki zostają wprowadzone do akumulatora zawartości rejestru #7 kolejnych banków. Dane znajdujące się w akumulatorze są wyświetlane na wyświetlaczu LCD.

LJMP START

ORG 100H

START:

LCALL LCD_CLR

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

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

SETB 9 ;ustaw bit 9

;czyli bit 1 komórki 21H

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

LCALL WRITE_HEX

LJMP $

Program powyższy powoduje wpisanie wartości 3H do komórki pamięci 21H oraz wyprowadzenie zawartości tej komórki na wyświetlacz.



Wyszukiwarka

Podobne podstrony:
5335
5335
5335
5335
5335
5335
5335
5335

więcej podobnych podstron