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.
–
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.