Ride51
Řádka 66: | Řádka 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'' | ||
Řádka 95: | Řádka 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'' | ||
Řádka 103: | Řádka 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)'' | ||
Řádka 111: | Řádka 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). '' | ||
Řádka 121: | Řádka 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)'' | ||
Řádka 129: | Řádka 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'' | ||
Řádka 137: | Řádka 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, 15: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