Pamięć wewnętrzna mikrokontrolera 8051

2. Zmodyfikować program tak, aby po zakończeniu odliczania dioda LED nie była zapalana.

1. Wprowadzić i uruchomić program liczący wstecz i zapalający diodę LED po 3. Wprowadzić i uruchomić program wpisujący do akumulatora zawartość osiągnięciu wartości zerowej licznika

rejestru R1 z banku rejestrów 0, po naciśnięciu klawisza 0 oraz zawartość rejestru R1 z banku rejestrów 2, po naciśnięciu innego klawisza.

MOV R1, #0FH

;zapisanie do rejestru R1 wartości 15

MOV A, R1

;zapisanie do akumulatora zawarto

SETB RS1

;wybranie banku rejestrów 2

ści R1

MOV R0, A

;zapisanie A w R0

MOV R1, #05H

;zapisanie do rejestru R1 wartości 5

CLR RS1

;wybranie banku rejestrów 0

L00:

MOV R1, #07H

;zapisanie do rejestru R1 wartości 7

LCALL LCD_CLR

;wywołanie czyszczenia wy

świetlacza

MOV A, R0

;zapisanie do akumulatora zawarto

LCALL W_KEY

;pobranie numeru klawisza z klawiatury do ści R0

LCALL WR_HEX

;wywołanie wy

akumulatora

świetlenia liczby z akumulatora

JZ L01

;skok do etykiety L01, gdy akumulator=0

MOV A, R0

;zapisanie do akumulatora zawarto

SETB RS1

;wybranie banku rejestrów 2

ści R0

JZ L01

;skok do L01, gdy akumulator=0

L01

DEC A

;dekrementacja A

MOV R0, A

;zapisanie A w R0

MOV A, R1

;zapisanie do akumulatora zawartości R1

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora MOV A, #0AH

LCALL DEL_100

; wywołanie opó

L00

źnienie A*ms

LJMP L00

LJMP L00

L01:

4. Zmodyfikować program tak, aby liczył wstecz z interwałem jednej sekundy, do zera, od jednej z dwóch wartości zapisanych w rejestrach R1, w bankach 0

CLR

P1.7

; zapalenie diody

i 2, a wybór banku odbywa się przez naciśnięcie przycisku uruchamiającego zliczanie (naciśnięcie przycisku 0 powoduje wybór banku 0, naciśnięcie L02:

kaŜdego innego wybór banku 2).

LJMP L02

5. Wprowadzić i uruchomić program liczący w przód, od 00H do 0FH, z interwałem 0,5 sekundy i wyświetlaniem wyniku na wyświetlaczu LCD, który po zakończeniu zliczania oczekuje na naciśnięcie klawisza. Naciśnięcie pierwszego klawisza ma spowodować wznowienie zliczania, naciśnięcie drugiego klawisz ma zakończyć działanie programu.

Mnemoniki z parametrami

–

wybór parametru ([←], [→], [↑], [↓]) i akceptacja ([↵]),

–

Rr (jeden z ośmiu rejestrów R0..R7),

–

@Ri (jeden z dwu rejestrów @R1, @R2),

–

dir (wybór rejestru specjalnego lub edycja adresu komórki pamięci),

–

#d8 (edycja dwucyfrowej liczny szesnastkowej),

–

#d16 (edycja czterocyfrowej liczny szesnastkowej),

–

bit (wybór bitu rejestru specjalnego),

–

addr (wybór etykiety L0..L3F),

–

addr w rozkazie LCALL (wybór podprogramu lub etykiety),

–

addr w dyrektywie ORG (edycja czterocyfrowej liczby szesnastkowej)

–

rel (wybór etykiety L0..L3F).

Uruchomienie programu

–

MAIN,

–

RUN.

Zatrzymanie programu

–

RESET RAM.

Uwaga: Nie naciskać przycisku RESET ROM, spowodowałoby to usunięcie wprowadzonego programu z pamięci.