Ride51: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
Řádek 66: | Řádek 66: | ||
Rešení: | Rešení: | ||
<source lang="asm"> | |||
ADR1: MOV A,R4 | MOV R3,#10 | ||
MOV R4,#0fh | |||
MOV@R0,A | MOV R0,#20h | ||
ADR1: MOV A,R4 | |||
INC R0 | MOV@R0,A | ||
INC R0 | |||
DJNZ R3, ADR1 | DJNZ R3, ADR1 | ||
NOP | |||
NOP | END | ||
END | |||
</source> | |||
'''První příkaz''' | '''První příkaz''' | ||
<source lang="asm"> | |||
MOV R3,#10 | |||
</source> | |||
''Přesune hodnotu 10(hexadecimálně 0A) do registru R3. V programu určuje kolikrát se bude opakovat cyklus'' | ''Přesune hodnotu 10(hexadecimálně 0A) do registru R3. V programu určuje kolikrát se bude opakovat cyklus'' | ||
Řádek 95: | Řádek 93: | ||
'''Druhý příkaz''' | '''Druhý příkaz''' | ||
<source lang="asm"> | |||
MOV R4,#0fh | |||
</source> | |||
''Přesune hodnotu která se bude zapisovat(0fh) do registru R4'' | ''Přesune hodnotu která se bude zapisovat(0fh) do registru R4'' | ||
Řádek 103: | Řádek 103: | ||
'''Třetí příkaz''' | '''Třetí příkaz''' | ||
<source lang="asm"> | |||
MOV R0,#20h | |||
</source> | |||
''Přesune do registru R0 hodnotu 20( hodnota ,kde se zacne zapisovat 0fh)'' | ''Přesune do registru R0 hodnotu 20( hodnota ,kde se zacne zapisovat 0fh)'' | ||
Řádek 111: | Řádek 112: | ||
'''Čtvrtý příkaz''' | '''Čtvrtý příkaz''' | ||
<source lang="asm"> | |||
ADR1: MOV A,R4 | |||
</source> | |||
''ADR1 je návěští(Návěstí umístěné před instrukcí se používá jako pro definici bodu v programu, na který můžeme skočit). '' | ''ADR1 je návěští(Návěstí umístěné před instrukcí se používá jako pro definici bodu v programu, na který můžeme skočit). '' | ||
Řádek 121: | Řádek 123: | ||
'''Pátý příkaz''' | '''Pátý příkaz''' | ||
<source lang="asm"> | |||
MOV@R0,A | |||
</source> | |||
''Zapíše hodnotu uloženou v akumulátoru(0fh) do místa které je uložené v registru R0(20)'' | ''Zapíše hodnotu uloženou v akumulátoru(0fh) do místa které je uložené v registru R0(20)'' | ||
Řádek 129: | Řádek 132: | ||
'''Šestý příkaz''' | '''Šestý příkaz''' | ||
<source lang="asm"> | |||
INC R0 | |||
</source> | |||
''Incrementace R0 - Připočte hodnotu 1 k hodnotě uložené v registru R0'' | ''Incrementace R0 - Připočte hodnotu 1 k hodnotě uložené v registru R0'' | ||
Řádek 137: | Řádek 141: | ||
'''Sedmý příkaz''' | '''Sedmý příkaz''' | ||
<source lang="asm"> | |||
DJNZ R3, ADR1 | |||
</source> | |||
''Skok zpátky na na návěští ADR1. To znaméná že program se opakuje a do registru R0, kterému se díky inkrementaci zvyšuje hodnota se pořád zapisuje hodnota f0h) '' | ''Skok zpátky na na návěští ADR1. To znaméná že program se opakuje a do registru R0, kterému se díky inkrementaci zvyšuje hodnota se pořád zapisuje hodnota f0h) '' | ||
Verze z 26. 5. 2011, 13:50
Instalace programu
Potvrzení podmínek
Zobrazení souboru readme.txt
Výběr verze programu
Pojmenování programu
Umístění programu
Založení nového projektu
Vytvoření souboru z programem
Svázání souboru z projektem
Kvůli simulaci programu a vytvoření jeho .hex souboru musíme program svázat se založeným projektem. To se dělá následujíím způsobem
Poté co máte soubor svázaný z projektem můžete začít psát program.
Simulace programu
K tomu abyste si ověřili zda váš program funguje, můžete v RIDE 51 nasimulovat jeho chování. Simulace se pouští tímto způsobem
Pokud máte v programu chybu program chybu rozpozná a ukáže
K simulaci je potřebna mít zapnutou strukturu registrů
Nyní klávesou F7 nebo tlačítkem v rozhraní krokujete program. V simulaci se program vykonává. V struktuře registrů můžete vidět, jak se mění jejich hodnoty podle programu.
Ukázka příkladu
Příklad: Pomocí cyklu vyplňte hodnotou 0fh pole od 20 do 30.
Rešení:
MOV R3,#10
MOV R4,#0fh
MOV R0,#20h
ADR1: MOV A,R4
MOV@R0,A
INC R0
DJNZ R3, ADR1
NOP
END
První příkaz
MOV R3,#10
Přesune hodnotu 10(hexadecimálně 0A) do registru R3. V programu určuje kolikrát se bude opakovat cyklus
Druhý příkaz
MOV R4,#0fh
Přesune hodnotu která se bude zapisovat(0fh) do registru R4
Třetí příkaz
MOV R0,#20h
Přesune do registru R0 hodnotu 20( hodnota ,kde se zacne zapisovat 0fh)
Čtvrtý příkaz
ADR1: MOV A,R4
ADR1 je návěští(Návěstí umístěné před instrukcí se používá jako pro definici bodu v programu, na který můžeme skočit).
MOV A,R4 přesune hodnotu zapsanou v registru R4 do akumulátoru
Pátý příkaz
MOV@R0,A
Zapíše hodnotu uloženou v akumulátoru(0fh) do místa které je uložené v registru R0(20)
Šestý příkaz
INC R0
Incrementace R0 - Připočte hodnotu 1 k hodnotě uložené v registru R0
Sedmý příkaz
DJNZ R3, ADR1
Skok zpátky na na návěští ADR1. To znaméná že program se opakuje a do registru R0, kterému se díky inkrementaci zvyšuje hodnota se pořád zapisuje hodnota f0h)
Porgram po provedení všech 10 cyklů
- Microcontroller project Timer/ Counter Mode 2 : 8 bit Auto Reload
- Cornell University ECE 4760 Designing with Microcontrollers Final Projects
www:
- free 8051 Microcontroller tool downloads RKit-Eval51 pro vývoj v asm či C
- Download ftp SPS
- 8051 Tutorial