;program pro model vytahu ; ; ; ; ; ; Bseg vol1 bit 0h ;volba vytahu do 1 vol2 bit 1h ;volba vytahu do 2 vol3 bit 2h ;volba vytahu do 3 autom bit 3h ;automaticky provoz, vi kde je mem1 bit 4h ;pomocne bity mem2 bit 5h mem3 bit 6h mem4 bit 7h auhor bit 8h ;automaticky nahoru audol bit 9h ;automaticky dolu pohor bit 10h ;povel nahoru podol bit 11h ;povel dolu casour bit 12h ;pretekl cas hlidace blik bit 13h ;blikac poz3 bit p1.7 ;koncak vytah v patre3 poz2 bit p1.6 ;koncak vytah v patre2 poz1 bit p1.5 ;koncak vytah v patre1 tlac3 bit p1.4 ;tlacitko do 3 tlac2 bit p1.3 ;tlacitko do 2 tlac1 bit p1.2 ;tlacitko do 1 stopna bit p1.1 ;/stop pohybu dolu stopdo bit p1.0 ;/stop pohybu nahoru runa bit p3.5 ;tlacitko rucne nahoru rudo bit p3.7 ;tlacitko rucne dolu ledv3 bit p3.2 ;ledka volba do 3 ledv2 bit p3.3 ;ledka volba do 2 ledv1 bit p3.4 ;ledka volba do 1 motna bit p3.1 ;motor nahoru motdo bit p3.0 ;motor dolu ends Dseg citac1 data 30h ;pomocny byte casovace citac2 data 31h ;pomocny byte casovace blik1 data 32h ;blikac blik2 data 33h ;blikac citac3 data 34h ;pomocny byte casovace citac4 data 35h ;pomocny byte casovace ends Cseg ends ;%S ;______________________________________________________________________ org 0 ajmp setup ;najeti setupu ;____________________________________________________________ ;____________________________________________________________ ;____________________________________________________________ org 50h setup: mov p0,#255 ;osetreni vystupu mov p3,#255 mov sp,#6fh ;presmerovani zasobniku mov 20h,#0 ;vynuluj bitové merkery mov 21h,#0 mov citac1,#0 ;prednastaveni casovacu mov citac2,#1 mov citac3,#0 mov citac4,#1 mov blik1,#1 mov blik2,#1 sjmp cykl ;____________________________________________________________ ;____________________________________________________________ ;____________________________________________________________ cykl: nop ;========================== ;blikac ;========================== blicek: djnz blik1,autpro djnz blik2,autpro cpl blik mov blik1,#255 mov blik2,#5 ;========================== ;automaticky provoz ;========================== autpro: mov c,poz3 ;jeli jen v pozici 1 anl c,poz2 anl c,/poz1 mov mem1,c mov c,poz2 ;nebo jen v pozici 3 anl c,poz1 anl c,/poz3 mov mem2,c mov c,poz1 ;nebo jen v pozici 2 anl c,poz3 anl c,/poz2 mov mem3,c mov c,mem1 orl c,mem2 orl c,mem3 setaut: jnc resaut setb autom ;pak nastav automaticky provoz resaut: mov c,poz1 ;jsouli koncaky 1 i 2 cpl c anl c,/poz2 mov mem1,c mov c,poz3 ;jsouli koncaky 3 i 2 cpl c anl c,/poz2 mov mem2,c mov c,poz1 ;jsouli koncaky 1 i 3 cpl c anl c,/poz3 mov mem3,c mov c,stopna ;jeli stop nahoru orl c,stopdo ;nebo stop dolu orl c,mem1 ;nebo dvojpoloha 1 a 2 orl c,mem2 ;nebo dvojpoloha 3 a 2 orl c,mem3 ;nebo dvojpoloha 1 a 3 orl c,casour ;nebo casova prodleva pohybu jnc voldo3 clr autom ;pak shod automaticky provoz ;========================== ;volba do tretiho ;========================== voldo3: mov c,poz1 ;jeli v pozici 1 nebo 2 cpl c orl c,/poz2 anl c,/tlac3 ;a zaroven je stiskle tlacitko 3 anl c,/vol2 ;a neni uz navoleno do 2 anl c,/vol1 ;a ani do 1 anl c,/audol ;a nic se nehybe anl c,/auhor jnc revol3 sevol3: setb vol3 ;pak nastav volbu do 3 revol3: mov c,poz3 ;jeli v pozici 3 cpl c orl c,/autom ;nebo je shozeny automat jnc voldo2 clr vol3 ;pak shod volbu do 3 ;========================== ;volba do druheho ;========================== voldo2: mov c,poz1 ;jeli v pozici 1 nebo 3 cpl c orl c,/poz3 anl c,/tlac2 ;a zaroven je stiskle tlacitko 2 anl c,/vol3 ;a neni uz navoleno do 3 anl c,/vol1 ;a ani do 1 anl c,/audol ;a nic se nehybe anl c,/auhor jnc revol2 sevol2: setb vol2 ;pak nastav volbu do 2 revol2: mov c,auhor ;jelli na 2 a vyjel nahoru na 3 anl c,/poz3 mov mem1,c mov c,audol ;nebo jelli na 2 a sjel dolu do 1 anl c,/poz1 orl c,mem1 orl c,/poz2 ;nebo jeli v pozici 2 orl c,/autom ;nebo je shozeny automat jnc voldo1 clr vol2 ;pak shod volbu do 2 ;========================== ;volba do prveho ;========================== voldo1: mov c,poz2 ;jeli v pozici 2 nebo 3 cpl c orl c,/poz3 anl c,/tlac1 ;a zaroven je stiskle tlacitko 1 anl c,/vol3 ;a neni uz navoleno do 3 anl c,/vol2 ;a ani do 2 anl c,/audol ;a nic se nehybe anl c,/auhor jnc revol1 sevol1: setb vol1 ;pak nastav volbu do 1 revol1: mov c,poz1 ;jeli v pozici 1 cpl c orl c,/autom ;nebo je shozeny automat jnc hororo clr vol1 ;pak shod volbu do 1 ;========================== ;automatem nahoru ;========================== hororo: mov c,vol3 ;jeli volba do 3 z pozice 1 anl c,/poz1 mov mem1,c mov c,vol3 ;nebo volba do 3 z pozice 2 anl c,/poz2 mov mem2,c mov c,vol2 ;nebo volba do 2 z pozice 1 anl c,/poz1 mov mem3,c mov c,mem1 ;jeli nektera z moznosti orl c,mem2 orl c,mem3 jnc reshor sethor: setb auhor ;pak nastav automaticky nahoru reshor: mov c,vol1 ;nenili zadna volba cpl c anl c,/vol2 anl c,/vol3 jnc dololo clr auhor ;pak shod automaticky pohyb nahoru ;========================== ;automatem dolu ;========================== dololo: mov c,vol1 ;jeli volba do 1 z pozice 3 anl c,/poz3 mov mem1,c mov c,vol1 ;nebo volba do 1 z pozice 2 anl c,/poz2 mov mem2,c mov c,vol2 ;nebo volba do 2 z pozice 3 anl c,/poz3 mov mem3,c mov c,mem1 ;jeli nektera z moznosti orl c,mem2 orl c,mem3 jnc resdol setdol: setb audol ;pak nastav automaticky dolu resdol: mov c,vol1 ;nenili zadna volba cpl c anl c,/vol2 anl c,/vol3 jnc doluuu clr audol ;pak shod automaticky pohyb dolu ;========================== ;povel dolu ;========================== doluuu: mov c,poz1 ;nenili v zadne pozici anl c,poz2 anl c,poz3 anl c,/autom ;a nenili automat anl c,/rudo ;a je stisk pro rucne dolu orl c,audol ;nebo je automatem dolu anl c,/stopdo ;a neni stop dolu anl c,/pohor ;a neni povel nahoru mov podol,c ;pak povel dolu je aktivni ;========================== ;povel nahoru ;========================== horeee: mov c,poz1 ;nenili v zadne pozici anl c,poz2 anl c,poz3 anl c,/autom ;nenili automat anl c,/runa ;a je stisk pro rucne nahoru orl c,auhor ;nebo je automatem nahoru anl c,/stopna ;a neni stop nahoru anl c,/podol ;a neni povel dolu mov pohor,c ;pak povel nahoru je aktivni ;========================== ;okamzita chyba polohy ;========================== timti0: mov c,poz1 ;nenili v zadne pozici anl c,poz2 anl c,poz3 anl c,/autom ;nenili automat jnc timti1 setb casour ;========================== ;casovani poruchy prodlevy neopusteni pozice ;========================== timti1: jb casour,restim ;jeli casak nahozen ceka na reset mov c,vol1 ;jeli navoleno nejaka volba anl c,/poz2 ;a porad jeste v nejake pozici mov mem1,c mov c,vol1 anl c,/poz3 orl c,mem1 mov mem1,c mov c,vol2 anl c,/poz3 orl c,mem1 mov mem1,c mov c,vol2 anl c,/poz1 orl c,mem1 mov mem1,c mov c,vol3 anl c,/poz2 orl c,mem1 mov mem1,c mov c,vol3 anl c,/poz1 orl c,mem1 jnc restim runtim: djnz citac1,timti2 ;pak citej cas djnz citac2,timti2 setb casour ;cas pretekl asi neodjel sjmp timti2 restim: mov citac1,#255 ;nastaveni casovace asi 1,5s mov citac2,#20 mov c,stopdo ;jeli uplny stop anl c,stopna jnc timti2 clr casour ;pak smaz casak ;========================== ;casovani poruchy prodlevy pri presunu nedojel ;========================== timti2: jb casour,resti2 ;jeli casak nahozen ceka na reset mov c,poz1 ;a nenili v zadne pozici anl c,poz2 anl c,poz3 jnc resti2 runti2: djnz citac3,vystu ;pak citej cas djnz citac4,vystu setb casour ;cas pretekl asi nedojel sjmp vystu resti2: mov citac3,#255 ;nastaveni casovace asi 8s mov citac4,#110 ;========================== ;vystupy ;========================== vystu: mov c,podol ;motor dolu cpl c mov motdo,c ;======== mov c,pohor ;motor nahoru cpl c mov motna,c ;======== mov c,vol1 ;jeli volba1 orl c,casour ;nebo jeli casour anl c,blik ;pak do toho vnes blikani orl c,/poz1 ;jeli v pozici1 pak svit trvale mov ledv1,c ;pak aktivuj ledky displeje 1 (-0-) ;======== mov c,vol2 ;jeli volba2 orl c,casour ;nebo jeli casour anl c,blik ;pak do toho vnes blikani orl c,/poz2 ;jeli v pozici2 pak svit trvale mov ledv2,c ;pak aktivuj ledky displeje 2 (-1-) ;======== mov c,vol3 ;jeli volba3 orl c,casour ;nebo jeli casour anl c,blik ;pak do toho vnes blikani orl c,/poz3 ;jeli v pozici3 pak svit trvale mov ledv3,c ;pak aktivuj ledky displeje 3 (-2-) ;======== ljmp cykl ;____________________________________________________________ ;____________________________________________________________ ;____________________________________________________________ ;%E ends end