Ride51: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Pcejka (diskuse | příspěvky)
Bez shrnutí editace
Pcejka (diskuse | příspěvky)
Bez shrnutí editace
Řádek 66: Řádek 66:
Rešení:
Rešení:
   
   
MOV R3,#10


MOV R4,#0fh
<source lang="asm">
         
MOV R0,#20h


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'''


''MOV R3,#10 ''
<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'''


''MOV R4,#0fh''
<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'''


''MOV R0,#20h''
<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'''


''ADR1: MOV A,R4 ''
<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'''


''MOV@R0,A ''
<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'''


''INC R0 ''
<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'''


''DJNZ R3, ADR1 ''
<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.

Základy programováni 8051

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ů







www:

8051 Předmět: MIT, AplMIT