Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.03.08
Prihlásený: 30.03.08
Príspevky: 1
Témy: 1
Príspevok NapísalOffline : 30.03.2008 18:22

Hladam niekoho ochotneho kto by mi pomohol popisat riadky programu aby som vedel co ktory riadok programu znamena, je to program ktory na zaklade vopred znamej vzdialenosti ma vypocitat rychlost z bodu A do bodu B a zobrazit to na 4segmentovom displej, po privedeni log. 1 na vstup INT-0 sa ma zacat pocitanie casu az po zaregistrovani log. 1 na vystupe INT-1, a z daneho casu sa potom vypocita rychlost.
;Program vyrata a zobrazi rychlost na zaklade zmeraneho casu a znamej
;vzdialenosti

org 0000h ;nastavenie pociatku programu
sdat equ 0b1h ;p3.1
clk equ 0b0h ;p3.0
ajmp 100h ;zaciatok na 100h

;obsluha prerusenia int 0 + jeho zakazanie
org 0003h
acall 30h
clr 0a8h
reti

;obsluha prerusenia int 1 + jeho zakazanie
org 0013h
acall 30h
clr 0aah
reti

;spustenie a zastavenie casovaca
org 30h
jbc 8eh,5H
setb 8eh
ret

;zaciatok programu
org 100h
clr clk
clr 0afh ;zakazanie preruseni, nastavenie sp,tmod,th1 a tl1
mov 81h,#50h
mov r0,#0h
mov 89h,#10h
mov 8dh,#0fch
mov 8bh,#17h
anl 88h,#0aah ;zastavenie casovacov nastavenie it na log.0
orl 0a8h,#85h ;povolenie extern.preruseni
clr 80h ;pomocny bit na pretecenie rozsahu
opakuj:
jnb 8eh,opakuj ;cakanie na interupt
rataj:
jb 8fh,130h ;zaratanie pretecenia
jb 80h,100h ;pretecenie rozsahu=navrat na zaciatok
jb 8eh,rataj ;cakanie na druhy interupt

;kontrola,ci aspon raz pretieklo
clr 0d7h
mov a,#0ffh
add a,r0
jnc 100h ;ak ani raz,vrat sa na zaciatok
jmp pokrac

;podprogram pre obsluzenie pretecenia casovaca
org 130h ;nastavenie th1,tl1
mov 8dh,#0fch
mov a,#19h ;zaratanie uz napocitanych impulzov v tl1
add a,8bh
mov 8bh,a
clr 8fh ;tf=0 a inkrementacia r0
mov a,#01h
add a,r0 ;v r0 je počet pretečení, teda vlastne počet milisekund
mov r0,a
clr 0d7h ;vymazanie cy
add a,#1h ;kontrola r0<252
jnc skonci
setb 80h ;pretecenie rozsahu
skonci:
jmp rataj

;pokracovanie programu po preskoceni podprogramu
;vlozenie hodnoty z casovaca do registru r1
pokrac:
mov a,08dh ;beriem spodne 2 bity z th1
anl a,#3h
mov b,#40h ;posuvam ich na horne 2 bity
mul ab
mov r1,a
mov a,08bh ;odcitam 13h(17-4,lebo prerusenie trva 4 cykly)
clr 0d7h ;ako pociatocnu hodnotu v casovaci
subb a,#13h
mov r7,a ;v r7 bude korekcia poslednych dvoch bitov
anl a,#0fch ;beriem hornych 6 bitov z tl1
mov b,#4h ;posuvam ich na spodnych 6 bitov
div ab
add a,r1
mov r1,a
mov a,#03h ;ulozenie korekcie
anl a,r7
mov r7,a

;hlavny vypocet rychlosti
mov r2,#0eah ;nastavenie vzdialenosti 6,5 cm
mov r3,#0h
call pomoc ;zistenie celej casti
mov 31h,r4
call desatiny ;posunutie na desatiny
call pomoc ;vyratanie desatin
mov 35h,r4
call desatiny ;posunutie na stotiny
call pomoc ;vyratanie stotin
mov 36h,r4
call desatiny ;posunutie na tisiciny
call pomoc ;vyratanie tisicin
mov 37h,r4
jmp preskoc ;preskocenie podprogramov
tabznak: db 3fh,06h,05bh,4fh,66h,6dh,7dh,07h,7fh,6fh

;podprogram pre posunutie desatinnej casti na jednotky
desatiny:
mov b,#0ah
mov a,r3
mul ab ;roznasobenie spodnych bytov
mov r3,a
mov r5,b
mov b,#0ah
mov a,r2
clr 0d2h
mul ab ;roznasobenie hornych bytov
add a,r5
jb 0d2h,posun ;ak pretecenie,potom zaokruhli
mov r2,a
jmp fine
posun:
mov r2,b
mov r3,a
fine:
ret

;podprogram pre delenie za pomoci odpocitavania
pomoc:
mov r4,#0h
odcitaj:
mov a,r2
clr 0d7h ;kontrola,ci r2>r0
subb a,r0
jc mensi
mov 39h,r2
mov a,r0
cjne a,39h,nerov ;kontrola ,ci sa nerovnaju r2 a r0
mov a,r3 ;ak r2=r0 a r3<r1 potom uz nerataj
clr 0d7h
subb a,r1
jc mensi

nerov:
mov a,r3 ;odcitanie nizsich bytov
subb a,r1
mov r3,a

mov a,r2 ;odcitanie vyssich bytov
subb a,r0
mov r2,a
inc r4 ;inkrementacia r4 a cyklenie
jmp odcitaj

mensi:
mov a,r7 ;korekcia poslednych dvoch bitov
mov b,r4
mul ab ;zistenie,ze kolko sme nezaratali
mov r6,b
mov b,#4h ;beriem horne 6 bity z r7
div ab
mov r5,a
mov b,#40h ;beriem dolne dva bity,ak pretieklo
mov a,r6
mul ab
add a,r5
xch a,r3 ;odcitam od desatin korekciu,ak pretecie,potom upravim aj jednotky
clr 0d7h
subb a,r3
mov r3,a
jnc konec
dec r4
konec:
ret

;pokracovanie programu,rozlozenie celej casti na stovky,desiatky a jednotky
preskoc:
mov a,31h
mov b,#0ah
div ab ;predelenie 10 a zistim jednotky
mov 34h,b

mov b,#0ah
div ab ;predelenie 10 a zistim desiatky
mov 33h,b

mov b,#0ah
div ab ;predelenie 10 a zistim stovky
mov 32h,b

;zistenie zobrazovanych 4 cislic
mov a,32h
mov 38h,#3h ;poloha desatinnej bodky
cjne a,#0h,zobraz ;ak nemame stovky,potom zobrazuj od desiatok

desiatky:
mov 38,#2h ;poloha desatinnej bodky
mov 32h,33h
mov 33h,34h
mov 34h,35h
mov 35h,36h
mov a,32h
cjne a,#0h,zobraz ;ak nemame desiatky,potom zobrazuj od jednotiek

jednotky:
mov 32h,33h
mov 38h,#1h ;poloha desatinnej bodky
mov 33h,34h
mov 34h,36h
mov 35h,37h

;priprava a zobrazenie cislic
zobraz:
mov a,32h ;dekoduj prvy znak
mov dptr,#tabznak
movc a,@a+dptr
mov 32h,a
mov a,33h ;dekoduj druhy znak
mov dptr,#tabznak
movc a,@a+dptr
mov 33h,a
mov a,34h ;dekoduj treti znak
mov dptr,#tabznak
movc a,@a+dptr
mov 34h,a
mov a,35h ;dekoduj stvrty znak
mov dptr,#tabznak
movc a,@a+dptr
mov 35h,a

;vytvorenie prvych dielcich 8 bitov
mov 36h,#0h ;nulovanie zobrazovanej cislice
mov a,32h
jnb acc.4,s1 ;skusanie,ci ma E4 segment svietit
xrl 36h,#80h ;ak ano,potom ho zasviet
s1: jnb acc.3,s2 ;D4
xrl 36h,#40h
s2: jnb acc.2,s3 ;c4
xrl 36h,#20h
s3: mov a,38h ;skumanie polohy desatinnej bodky
cjne a,#1h,s4
xrl 36h,#10h ;ak tam patri,zobraz ju

s4:mov a,33h
jnb acc.4,s5 ;skusanie,ci ma E3 segment svietit
xrl 36h,#8h ;ak ano,potom ho zasviet
s5: jnb acc.3,s6 ;D3
xrl 36h,#4h
s6: jnb acc.2,s7 ;c3
xrl 36h,#2h
s7: mov a,38h ;skumanie polohy desatinnej bodky
cjne a,#2h,s8
xrl 36h,#1h ;ak tam patri,zobraz ju

;vytvorenie druhych dielcich 8 bitov
s8: mov 37h,#0h ;nulovanie zobrazovanej cislice
mov a,34h
jnb acc.4,s21 ;skusanie,ci ma E2 segment svietit
xrl 37h,#80h ;ak ano,potom ho zasviet
s21: jnb acc.3,s22 ;D2
xrl 37h,#40h
s22: jnb acc.2,s23 ;c2
xrl 37h,#20h
s23: mov a,38h ;skumanie polohy desatinnej bodky
cjne a,#3h,s24
xrl 37h,#10h ;ak tam patri,zobraz ju

s24:mov a,35h
jnb acc.4,s25 ;skusanie,ci ma E1 segment svietit
xrl 37h,#8h ;ak ano,potom ho zasviet
s25: jnb acc.3,s26 ;D1
xrl 37h,#4h
s26: jnb acc.2,s28 ;c1
xrl 37h,#2h

;vytvorenie tretich dielcich 8 bitov
s28: mov 39h,#0h ;nulovanie zobrazovanej cislice
mov a,35h
jnb acc.1,s31 ;skusanie,ci ma B1 segment svietit
xrl 39h,#80h ;ak ano,potom ho zasviet
s31: jnb acc.0,s32 ;A1
xrl 39h,#40h
s32: jnb acc.5,s33 ;F1
xrl 39h,#20h
s33: jnb acc.6,s34 ;G1
xrl 39h,#10h

s34: mov a,34h
jnb acc.1,s35 ;skusanie,ci ma A2 segment svietit
xrl 39h,#8h ;ak ano,potom ho zasviet
s35: jnb acc.0,s36 ;B2
xrl 39h,#4h
s36: jnb acc.5,s37 ;C2
xrl 39h,#2h
s37: jnb acc.6,s38 ;G2
xrl 39h,#1h

;vytvorenie stvrtych dielcich 8 bitov
s38: mov 40h,#0h ;nulovanie zobrazovanej cislice
mov a,33h
jnb acc.1,s41 ;skusanie,ci ma B3 segment svietit
xrl 40h,#80h ;ak ano,potom ho zasviet
s41: jnb acc.0,s42 ;A3
xrl 40h,#40h
s42: jnb acc.5,s43 ;F3
xrl 40h,#20h
s43: jnb acc.6,s44 ;G3
xrl 40h,#10h

s44: mov a,32h
jnb acc.1,s45 ;skusanie,ci ma A4 segment svietit
xrl 40h,#8h ;ak ano,potom ho zasviet
s45: jnb acc.0,s46 ;B4
xrl 40h,#4h
s46: jnb acc.5,s47 ;C4
xrl 40h,#2h
s47: jnb acc.6,s48 ;G4
xrl 40h,#1h
s48: ;vysielanie 35bitov + start bit
setb sdat
setb clk ;vysielanie start bitu
mov r1,#9
g91: djnz r1,g91 ;opakovani cyklu dle obsahu registru r1
clr clk
mov r1,#9
g92: djnz r1,g92
setb clk ;nevyuzity 18.vyvod
mov r1,#9
g93: djnz r1,g93
clr clk
mov a,36h
nop
nop
mov r0,#8 ;prve 8 bity
g1: acall monitor
djnz r0,g1
mov a,37h
mov r0,#8 ;druhe 8 bity
g2: acall monit
djnz r0,g2
setb clk ;nevyuzity 40.vyvod
mov r1,#9
g94: djnz r1,g94
clr clk
mov a,39h
mov r0,#8 ;tretie 8 bity
g3: acall monit
djnz r0,g3
mov a,40h
mov r0,#8 ;stvrte 8 bity
g4: acall monit
djnz r0,g4
nop
clr sdat
mov r1,#6
g95: djnz r1,g95
opak: setb clk
mov r1,#9
g96: djnz r1,g96
clr clk
mov r1,#8
g97: djnz r1,g97
ajmp opak

monitor:
mov r1,#3
g98: djnz r1,g98
jb acc.7,g11
clr sdat
ajmp g12
g11: setb sdat
nop
nop
g12: rl a
setb clk
mov r1,#9
g99: djnz r1,g99
clr clk
ret ;navrat z podprogramu

monit:
clr 0d7h
mov a,#7
subb a,r0
jc g22
nop
nop
g22: jb acc.7,g23
clr sdat
ajmp g24
g23: setb sdat
nop
nop
g24: rl a
setb clk
mov r1,#9
g89: djnz r1,g89
clr clk
ret

end


Odpovedať na tému [ Príspevok: 1 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. opis obrazok

v Ostatné

10

1078

11.01.2007 17:23

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. opíš mi uTorrent

v Sieťové a internetové programy

4

667

09.04.2008 23:29

Seth Sparrow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zadaný opis textu z obrázku nesúhlasí

v Služby a webstránky

1

286

23.03.2015 19:53

liqua1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prenesenie programu

v Ostatné programy

4

475

19.03.2011 18:38

Rayiner Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Preklad programu

v Ostatné programy

1

461

22.02.2015 13:47

ac.milan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výber programu

v Grafické programy

1

380

18.01.2012 2:30

jtbs Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. názov programu...?

v Počítačové hry

4

482

25.08.2011 15:32

Mego Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Záchrana programu

v Ostatné programy

3

276

10.11.2014 8:42

kllr007 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zdielanie programu

v Ostatné programy

7

1537

26.11.2018 15:05

patro16 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Spouštění programů

v Operačné systémy Microsoft

3

362

30.07.2008 12:57

Sup Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Spustenie programu

v Assembler, C, C++, Pascal, Java

0

930

13.10.2006 9:19

addamz Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. instalacia programu

v Ostatné programy

1

617

21.10.2009 19:56

majky358 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. odstranenie programu

v Ostatné programy

1

797

12.01.2008 10:30

Mandy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Uzatvaranie programu.

v Assembler, C, C++, Pascal, Java

6

717

03.10.2009 16:49

arnie16 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PREKLAD PROGRAMU

v Ponuka práce

0

609

22.02.2015 17:08

GROCHPTE Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba programu

v Assembler, C, C++, Pascal, Java

1

418

09.05.2009 19:46

fonseka Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra