Anonymní profil David – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil David – Programujte.comAnonymní profil David – Programujte.com

 

Příspěvky odeslané z IP adresy 78.110.208.–

Honza
Analogová technika › Koupě relé-parametry?
31. 3. 2013   #174164

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

David
Assembler › Rada s vysvětlením funkčního…
8. 12. 2012   #168418

Děkuji za rychlé upřesnění. A jinak ty komentéře k tomu je to dostačující?

David
Assembler › Rada s vysvětlením funkčního…
8. 12. 2012   #168415

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

Krookous
Číslicová technika › Návrh Alarmu budovy pro simu…
15. 10. 2009   #117368

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

Krookous
Číslicová technika › Návrh Alarmu budovy pro simu…
15. 10. 2009   #117358

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!

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý