mida 64 ;------------------------------------------------------------- ;aplicación -> multitek multidin multitek.prg ;fecha -> agosto 8 2003 ;lee por protocolo libre una respuesta, toma los 32 bits y guarda en fflotaf resultado. ;------------------------------------------------------------- ;parametros reg 600=direccion (1 o2) reg 607=parte de crc (195 o 240) ;[reg_relays] ent equ 340 rx equ 314 mens equ 318 prot equ 319 puls equ 304 scan equ 399 ftxaux1r equ 620 ftxaux2r equ 621 t1 equ 622 t2 equ 623 fauxt1 equ 624 fauxt2 equ 625 ;[reg_integers] tx equ 21 fbit1i equ 610 fbit2i equ 611 fbit3i equ 612 fbit4i equ 613 floci equ 620 faux40i equ 621 faux41i equ 622 fbitadi equ 623 fbitadti equ 624 tiempo equ 625 larmen equ 626 vmue10 equ 627 vmue30 equ 628 vmuet equ 629 ;[reg_floats] fbit1f equ 620 fbit2f equ 621 fbit3f equ 622 fbit4f equ 623 ftotf equ 630 ftxkf equ 631 f1a2f equ 632 fflotaf equ 633 faux35f equ 635 faux37f equ 637 faux38f equ 638 faux39f equ 639 ffin1f equ 640 ffin2f equ 641 ffin3f equ 642 ffin4f equ 643 ffin5f equ 644 ffin6f equ 645 ffin7f equ 646 ffin8f equ 647 ffin9f equ 648 ffin10f equ 649 ffin11f equ 650 ffin12f equ 651 ffin13f equ 652 ffin14f equ 653 ftxb1 equ 660 ftxb2 equ 661 ;[TIM] ftxtim1 equ 270 [TEXTO] fv1 lite "V1= " ;ffin1f fv2 lite "V2= " ;ffin2f fv3 lite "V3= " ;ffin3f fi1 lite "I1= " ;ffin7f fi2 lite "I2= " ;ffin8f fi3 lite "I3= " ;ffin9f fhz lite "Hz= " ;ffin10f foil lite "Psi=" ;ffin11f ftem lite "Tem=" ;ffin12f fvol lite "Bat=" ;ffin13f ;inicio variables------------------------ movci 2 stoi 600 movci 4 stoi 601 movci 0 stoi 602 movci 0 stoi 603 movci 0 stoi 604 movci 28 stoi 605 movci 241 stoi 606 movci 240 stoi 607 movci 61 stoi larmen ;setri tiempo 30 ;====================================== ;======================================= muti movci 1 stoi 21 movri 600 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 601 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 602 com 9 disb 0 2 com 2 movci 1 stoi 21 movri 603 com 9 disb 0 2 com 2 movci 1 stoi 21 movri 604 com 9 disb 0 2 com 2 movci 1 stoi 21 movri 605 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 606 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 607 com 9 disb 0 1 com 2 reset fauxt1 reset fauxt2 muti0 ld fauxt1 timr ftxtim1 20 out fauxt2 set fauxt1 movri larmen movri 22 cpei sal2 ld fauxt2 jz muti0 ;procesa respuesta ======================================== sal2 ld mens and rx out t1 ld t1 jz ffin flocio nop movci 3 stoi floci flo1 clear com 9 flo11 locx floci ;despues de leer aqui se repite la separacion de datos lecb 0 1 stoi fbit1i movif fbit1i stof fbit1f inc floci 1 locx floci lecb 0 1 stoi fbit2i movif fbit2i stof fbit2f inc floci 1 locx floci lecb 0 1 stoi fbit3i movif fbit3i stof fbit3f inc floci 1 locx floci lecb 0 1 stoi fbit4i movif fbit4i stof fbit4f inc floci 1 movrf fbit1f ;comienzan los calculos.... stof f1a2f movrf f1a2f movcf 2 mulf stof f1a2f movrf fbit2f movcf 127 cpgf flo4 jmp flo5 flo4 movrf fbit2f movcf 128 subf stof fbit2f movrf f1a2f movcf 1 addf stof f1a2f ld 301 out 400 flo5 movcf 65536 movrf fbit2f mulf stof fbit2f movcf 256 movrf fbit3f mulf stof fbit3f movcf 1 movrf fbit4f mulf stof fbit4f movrf 0 stof ftotf movrf fbit3f movrf fbit2f addf stof ftotf movrf ftotf movrf fbit4f addf stof ftotf movcf 0.0000001192092896 movrf ftotf mulf stof ftxkf movrf ftxkf stof faux39f movcf 1 movrf ftxkf addf stof ftxkf movcf 1 stof faux38f movrf fbit1f movcf 127 cpgf flo2 jmp flo3 flo2 movcf -1 stof faux38f flo3 movrf f1a2f movcf 127 subf stof f1a2f movrf f1a2f stofi faux40i flo31 movci 0 stoi faux41i movcf 1 stof faux37f flo32 movcf 2 movrf faux37f mulf stof faux37f inc faux41i 1 movri faux41i movri faux40i cpli flo32 movrf faux37f movrf ftxkf mulf stof fflotaf movrf faux38f movrf fflotaf mulf stof fflotaf ;resultado en flotante flo6 movci 7 comienza el llenado de variables en campos movri floci cpei flo61 jmp flo62 flo61 movrf fflotaf stof ffin1f ;voltaje L2-L1 flo62 movci 11 movri floci cpei flo63 jmp flo64 flo63 movrf fflotaf stof ffin2f ;voltaje L3-L2 flo64 movci 15 movri floci cpei flo65 jmp flo66 flo65 movrf fflotaf stof ffin3f ;voltaje L1-L3 flo66 movci 19 movri floci cpei flo67 jmp flo68 flo67 movrf fflotaf stof ffin4f ;voltaje L1 flo68 movci 23 movri floci cpei flo69 jmp flo610 flo69 movrf fflotaf stof ffin5f ;voltaje L2 flo610 movci 27 movri floci cpei flo611 jmp flo612 flo611 movrf fflotaf stof ffin6f ;voltaje L3 flo612 movci 31 movri floci cpei flo613 jmp flo614 flo613 movrf fflotaf stof ffin7f ;corriente L1 flo614 movci 35 movri floci cpei flo615 jmp flo616 flo615 movrf fflotaf stof ffin8f ;corriente L2 flo616 movci 39 movri floci cpei flo617 jmp flo618 flo617 movrf fflotaf stof ffin9f ;corriente L3 flo618 movci 43 movri floci cpei flo619 jmp flo620 flo619 movrf fflotaf stof ffin10f ;frecuencia flo620 movci 47 movri floci cpei flo621 jmp flo622 flo621 movrf fflotaf stof ffin11f ;presion aceite flo622 movci 51 movri floci cpei flo623 jmp flo624 flo623 movrf fflotaf stof ffin12f ;temperatura agua flo624 movci 55 movri floci cpei flo625 jmp flo626 flo625 movrf fflotaf stof ffin13f ;bateria flo626 movci 59 movri floci cpei flo627 jmp flo628 flo627 movrf fflotaf stof ffin14f ;horometro flo628 movri floci movci 61 cpli flo11 ;proceso de muestreo en display con reles de ;10 seg y de 30 seg. mue1 ld 304 ;rele de 10 seg. jnz mue11 jmp mue12 mue11 movci 1 ;es 1 stoi vmue10 jmp mue2 mue12 movci 0 ;es 0 stoi vmue10 mue2 ld 305 ;rele de 30 seg jnz mue21 jmp mue22 mue21 movci 1 ;es 1 stoi vmue30 jmp mue3 mue22 movci 0 ;es 0 stoi vmue30 mue3 movri vmue10 ;sume los 2 movri vmue30 addi stoi vmuet movri vmuet movci 0 cpei mue4 ;si la suma es cero jmp mue5 mue4 clear ;lee corrientes disl fi1 loc 4 disrf ffin7f 30 loc 8 disl fi2 loc 12 disrf ffin8f 30 loc 16 disl fi3 loc 20 disrf ffin9f 30 loc 24 disl fhz loc 28 disrf ffin10f 30 com 0 mue5 movri vmuet movci 1 cpei mue6 ;si la suma es 1 jmp mue7 mue6 clear ;lee voltajes disl fv1 loc 4 disrf ffin1f 30 loc 8 disl fv2 loc 12 disrf ffin2f 30 loc 16 disl fv3 loc 20 disrf ffin3f 30 loc 24 disl fhz loc 28 disrf ffin10f 30 com 0 mue7 movri vmuet movci 2 cpei mue8 ;si la suma es 2 jmp muef mue8 clear ;lee varios disl foil loc 4 disrf ffin11f 30 loc 8 disl ftem loc 12 disrf ffin12f 30 loc 16 disl fvol loc 20 disrf ffin13f 41 loc 24 disl fhz loc 28 disrf ffin10f 30 com 0 muef ffin end