Operacje mikrokontrolera 8051

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

1. Wprowadzić i uruchomić program:

L00

LCALL LCD_CLR

; wywołanie czyszczenia wyświetlacza

LJMP L00

MOV A, #02H

; wpisanie do akumulatora liczby 2

3. Zmodyfikować program tak, aby obliczenia mogły być przeprowadzane wielokrotnie, bez ponownego uruchamiania programu.

ADD A, #03H

; dodanie do akumulatora liczby 3

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

4. Wprowadzić i uruchomić program odejmowania z poŜyczką L00

LCALL LCD_CLR

;wywołanie czyszczenia wyświetlacza

LJMP L00

LCALL W_KEY

;pobranie numeru klawisza z klawiatury

.END

MOV R0, A

;zapisanie A w R0

2. Wprowadzić i uruchomić program

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

LCALL LCD_CLR

;wywołanie czyszczenia wyświetlacza

LCALL W_KEY

;pobranie numeru klawisza z klawiatury

MOV A, #2DH

;wpisanie do akumulatora znaku „-”

MOV R0, A

;zapisanie A w R0

LCALL WR_DATA

; wywołanie wyświetlenia liczby

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

z akumulatora jako znaku

MOV A, #2BH

;wpisanie do akumulatora znaku „+”

LCALL W_KEY

;pobranie numeru klawisza z klawiatury

LCALL WR_DATA

; wywołanie wyświetlenia liczby

MOV R1, A

;zapisanie A w R0

z akumulatora jako znaku

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

LCALL W_KEY

;pobranie numeru klawisza z klawiatury

MOV A, #3DH

;wpisanie do akumulatora znaku „=”

MOV R1, A

;zapisanie A w R0

LCALL WR_DATA

; wywołanie wyświetlenia liczby

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

z akumulatora jako znaku

MOV A, #3DH

;wpisanie do akumulatora znaku „=”

MOV A, R0

;zapisanie do akumulatora zawartości R0

LCALL WR_DATA

; wywołanie wyświetlenia liczby

SUBB A, R1

;odjęcie od akumulatora zawartości R1

z akumulatora jako znaku

LCALL WR_HEX

;wywołanie wyświetlenia liczby z akumulatora

MOV A, R0

;zapisanie do akumulatora zawartości R0

L00:

ADD A, R1

;dodanie do akumulatora zawartości R1

LJMP L00

5. Zmodyfikować program tak, aby obliczenia mogły być przeprowadzane wielokrotnie, bez ponownego uruchamiania programu.

6. Zmodyfikować i uruchomić program odejmowania bez poŜyczki (zastosować rozkaz zerowania bitu przeniesienia CLR C).

7. Sprawdzić reprezentację liczb ujemnych (kod uzupełnienie do dwóch) przez wykonanie operacji odejmowania dającej jako wynik liczbę ujemną.

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.