;------------------------------------------------------------- ;Aplicación -> modificaciones al programa de vm ;Fecha -> .. ;------------------------------------------------------------- MIDA 20M scan equ 99 &ini ld scan jz &lea jmp inicio &lea call &leavar ;PROGRAMA PRINCIPAL ----------------------------------------------- inicio Nop reset aborte ld botini jnz ini1 jmp ini2 ini1 setri mensa 1 ;primet tiempo t1 setri arracon 1 call arra ;rutina entrada tiempo barrido movri tietot movci 600 muli stoi tiem1 setri mensa 3 ;tercer tiempo t3 setri arracon 10 call arra ;rutina entrada tiempo proceso movri tietot stoi tiem3 ; setri mensa 4 ;cuarto tiempo t4 ; setri arracon 10 ; call arra ;rutina entrada tiempo proceso ; movri tietot ; stoi tiem4 setri mensa 5 ;temp proceso setri arracon 10 call arra ;rutina entrada proceso movri tietot movci 10 muli stoi tempro setri mensa 6 ;temperatura enfriamiento setri arracon 10 call arra ;rutina entrada enfria movri tietot movci 10 muli stoi temfin jmp ini3 ini2 call disp ;calcula la temp y muestra jmp ini5 ; movri tietot ;si no entro tiempo, no sigue ; movci 0 ; cpgi ini3 ;mayor o igual ; jmp ini5 ini3 call proc ;arranque mota y tempo para arranque de res call preres ;arranque res 1, 2 y 3 ld aborte jnz fin ld res3 jnz ini4 ini4 call cale ;proceso mantener temp hasta final tietot call coci ;proceso cocinado call enfr ini5 ld izq and arr jnz ini6 jmp fin ini6 call cali ;proceso de calibracion fin end ;-------------------------------------------------------------- ;arra ;parametros mensa= # direccion mensaje en diplay ; arracon=tiempo en incrementos ; tietot=tiempo final parametro de salida>guardar en reg tiempo diferente ; arra ;entrada de tiempo proceso movci 1 ;numero iteracc x contador stoi arranum clear dislx mensa ;selecciona el mensaje com 0 arra1 flanc 1 1 ;entrada 1 jnz arra2 jmp arra21 arra2 movri arracon ;entra numero iterac x factor de tiempo movri arranum muli stoi tietot inc arranum 1 ;incrementa iterac clear disl arran loc 3 disri tietot 30 com 0 arra21 ld ent ;termina entrada tiempos jnz arra211 jmp arra22 arra211 ld ent jz arraf jmp arra211 arra22 ld cle ;reinicia iterac a cero jnz arra3 jmp arra1 arra3 movci 1 ;inicia las entradas stoi arranum jmp arra2 arraf ret ;------------------------------------------------------------------- pare clear disl unol com 0 jmp pare paref ;------------------------------------------------------------- ;proc proc proc1 set mota ;prenda motor aire call disp call abor ld aborte jnz procf set mote ; PROCEDIMIENTO T1 NUEVA MODIFICACION !!!!!!!!!!!!!!!!!!!!! proc2 reset auxres1 ;reset auxiliares reset auxres2 proc21 ld auxres1 ;tempo arranque res1 timr timres tiem1 out auxres2 set auxres1 call abor ld aborte jnz procf clear ;aviso en com0 disl arrmota reset 86 com 0 ld auxres2 jnz proc22 jmp proc21 proc22 reset 86 procf ret ;----------------------------------------------------- ;preres preres call abor ld aborte jnz preresf clear ;aviso en com0 disl predis com 0 set res1 ;prende res1 reset mote ;cambio en bussie....!!!!!!!!!!!!!!!!!!!!!!! preres1 reset auxresr1 ;reset auxiliares de res 2 y 3 reset auxresr2 preres31 ld auxresr1 ;tempo arranque res 2 timr timresr tieresr out auxresr2 set auxresr1 ld auxresr2 jnz preres32 jmp preres31 preres32 set res2 ;arranque res2 preres4 reset auxresr1 ;reset auxiliares de res 2 y 3 reset auxresr2 preres41 ld auxresr1 ;tempo arranque res 3 timr timresr tieresr out auxresr2 set auxresr1 ld auxresr2 jnz preres42 jmp preres41 preres42 set res3 ;arranque res3 preresf ret ;---------------------------------------------------- ;cale cale set mota call abor ld aborte jnz calef cale1 ;INICIO DE T2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! reset mote ld 83 jnz cale11 jmp cale12 cale11 clear disl prec ;"precalentando" com 0 jmp cale13 cale12 call disp call abor ld aborte jnz calef cale13 movri temp movri tempro cpgei cale2 jmp cale1 cale2 reset res1 ;llego a tempro inicia tietot reset res2 reset res3 set tieini ;rele inicio tiempo final movri horario ;toma horario movri tiem3 addi stoi tietoth ;tiempo final en form horario movri tietoth ;compara si en mayor a 1439 movci 1439 cpgei cale21 jmp cale3 cale21 movri tietoth ;si es mayor lo resta para nuevo dia movci 1439 subi stoi tietoth cale3 calef ret ;---------------------------------------- ;coci coci set mota call abor ld aborte jnz cocif ;INICIO DE T3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! reset mote ld tieini jnz coci0 jmp cocif coci0 call abor ld aborte jnz cocif ld 83 jnz coci03 ;!!!!!!!!!!!!!!!!!!!!!!! jmp coci02 coci01 call disp jmp coci coci02 movri tietoth ;calcula tiempo que queda movri horario subi stoi tiefal ;tiempo que queda clear disri tiefal 40 com 0 jmp coci ;!!!!!!!!!!!!!!!!!! coci03 movri horario ;termino? movri tietoth cpgei coci1 jmp coci2 coci1 reset tieini ;si...... jmp cocif coci2 call disp movri temp ;no........ movri tempro cpgei coci3 jmp coci4 coci3 reset res1 ;esta caliente.... reset res2 reset res3 jmp coci coci4 call preres ;esta frio..... jmp coci cocif ret ;---------------------------------------------------- ;enfr enfr set mota call abor ld aborte jnz enfrf ;INICIO DE T4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! set mote ld 83 jnz enfr1 jmp enfr2 enfr1 call disp jmp enfr3 enfr2 clear disl enfri com 0 enfr3 call abor ld aborte jnz enfrf set mote reset res1 reset res2 reset res3 movri temp movri temfin cpgi enfr reset mote reset mota movci 0 stoi tietot enfrf ret ;--------------------------------------------------- ;cali cali clear ;calibra temp? disl caltem com 0 ink ent jnz cali1 ink cle jnz cali2 jmp cali cali1 clear ;si... disl dtp1 ;punto bajo loc 3 disri chtem 40 com 0 ink ent jz cali1 cali11 clear disl dtp2 ;punto alto loc 3 disri chtem 40 com 0 ink ent jz cali11 clear ;entre k1 temp disl dk1t com 0 setri temgeni 20 call tempo clear inicf 10 stoi k1t clear ;entre k2 temp disl dk2t com 0 setri temgeni 20 call tempo clear inicf 10 stoi k2t clear ;entre k3 temp disl dk3t com 0 setri temgeni 20 call tempo clear inicf 10 stoi k3t clear ;constante b temp disl dk4t com 0 setri temgeni 20 call tempo clear inicf 30 stoi k4t cali2 cali4 cali51 cali6 cali7 clear ;temp dia disl dtdia com 0 ink ent jnz cali71 ink cle jnz cali8 jmp cali7 cali71 clear com 0 clear inicf 31 stoi tdia cali8 calif ret ;--------------------------------------------- ;db escribe en base de datos cada x minutos db movci 0 movri 60 cpei db00 jmp db0 db00 movci 0 stoi 99 db0 ld auxdb2 jnz db1 jmp db3 db1 write 0 1 db2 reset auxdb1 reset auxdb2 db3 ld auxdb1 timr timdb temdbi out auxdb2 set auxdb1 dbf ret ;------------------------------------------------------- ;disp disp disp1 movri chtem ;puntos por k entero movri k1t muli stoi k1tem movri k1tem movci 10 muli stoi k1tem movri chtem ;puntos por k*1 movri k2t muli stoi k2tem movri chtem ;puntos por k/10 movri k3t muli stoi k3tem movri k3tem movci 10 divi stoi k3tem movri k1tem ;suma temporales a temp final movri k2tem addi stoi tempt movri tempt movri k3tem addi stoi tempt ;TEMPERATURA temporal movri k4t movci 10 muli stoi k4tem movri tempt movri k4tem addi stoi temp ;TEMPERATURA TOTAL clear disl dtemp loc 3 disri temp 41 com 0 jmp dispf disp2 dispf ret ;----------------------------------------- ;abor abor ld botabo ornt motpre jnz abor1 jmp aborf abor1 reset 100 reset 101 reset 102 reset 103 reset 104 set aborte aborf ret ;--------------------------------------------------- ;tempo temporizador generico para tiempos cortos=========== ;parametros: temgeni=registro valor de tiempo ;tempo tempo reset auxgen1 reset auxgen2 tempo1 ld auxgen1 timr timgen temgeni out auxgen2 set auxgen1 call abor ld aborte jnz tempof ld auxgen2 jz tempo1 tempof ret ;--------------------------------- &leavar ;[REG_RELAYS] botini equ 0 ;inicio proceso bottie equ 1 ;boton seleccion tiempo botabo equ 2 ;boton abortar motpre equ 4 ;motor recirculacion encendido res1 equ 100 ;bloque resistencias 1 res2 equ 101 res3 equ 102 mota equ 103 ;motor caudal aire, principal de recirculacion mote equ 104 ;motor todos los motores , vent. filtro hepa, vent. extrac aire cal, damper extra aire cal alar equ 105 ;salida alarma local ;motd equ 106 ;motor damper, damper extraccion ;motx equ 107 ;vent extraccion aire caliente auxtot1 equ 250 ;aux tempo total 1 auxtot2 equ 251 ;aux tempo total 2 auxres1 equ 252 ;aux tempo res 1 auxres2 equ 253 ;aux tempo res 2 auxresr1 equ 254 ;aux tempo resr 1 auxresr2 equ 255 ;aux tempo resr 2 tieini equ 261 auxdb1 equ 262 auxdb2 equ 263 ent equ 60 izq equ 61 cle equ 62 arr equ 63 auxgen1 equ 270 ;de tempo auxgen2 equ 271 auxagu1 equ 272 auxagu2 equ 273 x>a equ 274 xb equ 277 aborte equ 278 ;aux de abortar ;[REG_INTEGERS] horario equ 43 chtem equ 30 ;puntos conversor chhum equ 31 tiebar equ 251 tieenf equ 252 tietoth equ 253 ;tiempo total en form horario tempro equ 254 ;temperatura proceso (250) arracon equ 255 ;de cuanto en cuanto se incrementa el tietot (10min) barrcon equ 256 enfcon equ 257 arranum equ 258 ;numero de iteracciones por arracon barrnum equ 259 enfnum equ 260 temdbi equ 261 ;db, tempo toma de datos tieres equ 262 ;tiempo retardo entrada resistencias tieresr equ 263 ;tiempo retardo 2 y 3 resistencias temfin equ 264 ;temperatura apagado proceso (120) temala equ 265 ;valor que se suma a tempro para alarma (10 grados) tietot equ 269 ;tiempo total del proceso temporal tiem1 equ 270 ;T1 tiem2 equ 271 ;T2 tiem3 equ 272 ;T3 tiem4 equ 273 ;T4 k1t equ 280 ;k*10 k1tem equ 281 k2t equ 282 ;k k2tem equ 283 k3t equ 284 ;k/10 k3tem equ 285 k4t equ 286 ;b de temp tempt equ 287 ;FINAL DE TEMPERATURA temp equ 268 ;se cambia para verlo con el programa de lv camara k4tem equ 299 k1h equ 290 k1hum equ 291 k2h equ 292 k2hum equ 293 k3h equ 294 k3hum equ 295 k4h equ 296 humet equ 297 hume equ 298 ;FINAL DE HUMEDAD temgeni equ 300 ;tiempo de tempo hodia equ 301 ;hora dia honoc equ 302 noc equ 303 tdia equ 304 hdia equ 305 tnoc equ 306 hnoc equ 307 tala equ 308 ;temporal temp para ala hala equ 309 tiefal equ 310 ;tiempo que falta en minutos mensa equ 311 ;numero de mensaje ;[TIM] timtot equ 200 ;temporizador tiempo total proceso timres equ 201 ;temporizador entrada 1 res timresr equ 202 ;temporizador entrada 2 y 3 res timdb equ 203 ;db,toma de datos timgen equ 204 ;[CNT] ;[NOP] t0 lite "T0.XXXM" t1 lite "T1.XXXM" t2 lite "T2.XXXM" t3 lite "T3.XXXM" t4 lite "T4.XXXM" tf lite "TF.XXXC" te lite "TE.XXXC" dispa lite "TIEM. XXX MIN. TEMP. XX.X." arran lite "...XXX" barrn lite "TF.XXXM" enfn lite "TF.XXXM" arran1 lite "TIE PRO" barrn1 lite "TIE BAR" enfn1 lite "TIE ENF" arrmota lite "BARRIDO" predis lite "INI RES" dtp1 lite "t1" dtp2 lite "t2" dhp1 lite "h1" dhp2 lite "h2" caltem lite "T? e/c" calhum lite "H? e/c" dk1t lite "k1 tem" dk2t lite "k2 tem" dk3t lite "k3 tem" dk4t lite "k4 tem" dk1h lite "k1 hum" dk2h lite "k2 hum" dk3h lite "k3 hum" dk4h lite "k4 hum" dtemp lite "T=" dhume lite "H=" dhodia lite "HOD e/c" dhonoc lite "HON e/c" dnoc lite "TNC e/c" dtdia lite "TD e/c" dhdia lite "HD e/c" dtnoc lite "TN e/c" dhnoc lite "HN e/c" agua lite "no agua" sobtem lite "alta T" sobhum lite "alta H" prec lite "prec" enfri lite "enfri" unol lite "uno" dosl lite "dos" ;iniciar variables-------------------------------- file 0,300d,310t,268i,278i,len=500,type=l setri tempro 2500 setri tietot 0 reset aborte movci 0 ;si retardo res en cero movri tieres cpei var1 jmp var11 var1 movci 6000 ;10 minutos !!!!!!!!!!!!!!!!!! stoi tieres var11 movci 0 ;si retardo res de 2 y 3 es cero movri tieresr cpei var12 jmp var2 var12 movci 100 ;10 segundos !!!!!!!!!!!!!!!!!! stoi tieresr var2 movci 0 ;si temp final es cero movri temfin cpei var3 jmp var4 var3 movci 1200 ;120 grados stoi temfin var4 movci 0 ;si temp alarma es cero movri temala cpei var5 jmp var6 var5 movci 10 ;10 grados stoi temala var6 movci 0 movri arracon cpei var7 jmp var8 var7 movci 10 stoi arracon var8 nop varf ret