Prosím, tedy jaký závěr bych si z toho měl tedy pobrat když jsem naznačil kde to chci aplikovat. Děkuji
Příspěvky odeslané z IP adresy 78.110.208.–
Děkuji za rychlé upřesnění. A jinak ty komentéře k tomu je to dostačující?
Zdravím, mám hotová program v Assembleru pro procesor 8051 a potřeboval bych ho popsat k dokumentaci. Zde je zadání a vlastní kód:
Ve vnější paměti dat je uloženo 32 čísel. Čísla jsou uvažována se znaménkem.
Sestavte program, který vypočte kolik procent čísel je kladných, kolik je záporných a kolik procent je nul. Výsledky se ukládají do vnitřní paměti dat.
;vytvoreni cisel v CODE pameti
ORG 1000H
DB 3,6,1,5,4,2,7,13,8,14,10H,9,11,15,12,16,85H,86H,80H,00,8,7,4,2,4,8,28,99H,23,31,84H,22
org 0000
jmp 100H
org 100H
MOV SP,#80H ;uklizení zasobníku do hornich 128 bitů paměti
;------------------------------------------------------------------------------------------------------------
MOV DPTR, #1000H; Do dptr jsem si ulozil adresu prvniho prvku
MOV R0,#32D;
CYKLUS1:
MOV A, #0; K adrese prvního prvku se přičte 0 aby se dostal první prvek
MOVC A,@A + DPTR ; vyčtení z vnitřní paměti
MOVX @DPTR,A ; vkládání do vnější paměti
INC DPTR; ; přičte k hodnotě registru DPTR +1
DJNZ R0,CYKLUS1; ;dekrementuje R0, pokud se rovná 0 pokoračuje dále
MOV R0,#32D; ;přiřadí do R0 32D
MOV DPTR, #1000H; ;přiřadí do DPTR 1000H
MOV R1,#0; ;abych mel ze zacatku vsude nuly
MOV R2,#0;
MOV R3,#0;
CYKLUS2:
MOVX A,@DPTR; ;vyčte další číslo
INC DPTR; ;přičte se a načte se další
JZ nula; ;zkontroluje se jestli se nevyčetla 0
JBC ACC.7,zaporna; ; pokud se najde znamenkový bit skočí a vymaže
INC R2 ; kladná čísla
JMP ZNOVU
nula:
INC R1; nuly
JMP ZNOVU
zaporna:
JZ nula; záporná čísla, testuje zápornou nulu
INC R3
JMP ZNOVU
ZNOVU:
DJNZ R0,CYKLUS2
MOV A,R1;
LCALL Procenta ;volá funkci procenta
MOV R1,A;
MOV A,R2;
LCALL Procenta
MOV R2,A;
MOV A,R3;
LCALL Procenta
MOV R3,A;
STOP: JMP $
Procenta:
MOV B,#25D; ;vynasobení 25
MUL AB;
MOV R0,B; ;Bcko se uschová
MOV B,#8D ;Bcko se vydělí 8
DIV AB; ;celočíselné dělení
XCH A,R0; ;prohození A s R0
MOV B,#32D ;vynasobení konstantou 32
MUL AB;
ADD A,R0; ;sčítání
RET
END
Program by měl bý funkční. Chtěl bych se tedy zeptat zda je to dobře okomentováno a ještě mi není jasná funkce procenta. Proč se to vynásobí 25 a pak dělí 8my? Mohl by mi tu funkci prosím někdo objasnit?
Děkuji
To DragonBehemont : chodim do LBC na TUL, já to už mam, ale prostě to nejede. Mam to nakreslený, ale nic to nedělá.. nevim, jestli jsem pochopil správnej princip:( Jinak to je jen "malá" semestrálka samozřejmě.
Ahoj. Mám takový problém, jako 1. semestrální práci jsem dostal navrhnout program - alarm v budově, který budu simulovat na PLC Siemens Logo. Zadání jsem pochopil, tak nějak jsem si napsal i jak by to mělo fungovat, ale neumim to přepsat do bloků, který pak nastavim v tom PLC:-( Věřim, že to je jednoduchý, ale nějak mi to nejde...:-( A jak na pravdivostní tabulku v tomhle případě, to mně taky nenapadlo:-( Jestli mi můžete někdo pomoct? Byl bych vděčný klidně za schéma zapojení na papíře, do toho programu pro simulaci si to už nějak snad dám...!
Zadání:
Příjdeme do budovy, otevřeme dveře a máme 30s na to, abychom odkódovali. Pokud se povede, vypnout se ostaní zóny a alarm je deaktivní, když se nepovede, spustí se alarm na 60s a pak se vypne. Při odchodu zakódujeme a máme 30s na to, abychom zavřeli dveře. Když zakódujeme úspěšně a zavřeme, spustí se zóny a zabezepčovačka beží, když zakódujeme špatně je neaktivní a pokud nestihneme po zakódování zavřít do 30s dveře, spustí se alarm. A když je zakódováno a příjde lupič, rozbije např. okno, nebo otevře dveře, tak se spustí alarm.
- odkódování/zakodování, kontakt dveří, rozbití okna atd.. simuluji pomocí vstupů - tlačítek
- na ledky zobrazuji alarm, zakodováno, odkodovano atd..
icq: 331-430-402
Díky!