mida 14 ;------------------------------------------------------------- ;Aplicación -> modificacion para uso de las torretas o semaforos con ; sirena,utilizando las salidas digitales 102 y 103 ;Fecha -> agosto 12/2004 ;------------------------------------------------------------- scan equ 99 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp ini0 &lea call &leavar ini0 nop ld inirem jnz ini000 reset pricava reset abor ini000 ld inirem jnz ini10 reset led118 call peba ;peso basico jmp fin ini10 set led118 call cava ;caja vacia ld aboini ;caso en cava al iniciao proc se haya termin en lv jnz fin ld abor jnz afin call pere ;peso referencia ld abor jnz afin call peca ;pesa caja jmp fin afin reset pricava reset abor fin end ;------------------------------------------- ;peba. peso basico y entrada a menu peba nop ink clear ;si clear tare jz peba10 func 7 pesota peba10 call diba ;display basico ld izqui jz pebaf call menu ;si.... pebaf ret ;----------------------------------------- ;cava. caja vacia cava nop cava00 reset aboini set procpes ;activa indicador proceso pesado ld inirem ;rechequeo inirem por si se desconecto en lv jz cava20 cava1 ld clear ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz cava11 set abor reset procpes clear com 1 clear com 2 jmp cavaf cava11 clear ;display caja vacia disl cajvac com 1 clear disl cajvac1 com 2 ld pricava ;pregunta si reconocio primer caja vacia jz cava11b call diba cava11a movrf peso movrf pemica cplef cava11a movrf cavafi stof pecaja jmp cavaf cava11b call diba ld clear jz cava11c call tara cava11c ld boton ;taro manual? jz cava1 ;no.. sigo esperando cava12 ld boton ;se queda aqui hasta que se suelte el boton jnz cava12 set pricava ;indica primer caja vacia movrf peso ;se guarda el peso de la tara stof pecaja movrf pecaja stof cavafi call tara ;unica tara jmp cavaf cava20 set aboini ;....se desconecto del lv!!! cavaf ret ;----------------------------------------- ;pere. pesado de unidades de referencia pere nop clear disl uni com 1 clear disri unipes 4 com 2 call diba movrf pesunii ;valor de peso de uni con tolerancias movif unitol mulf movcf 100 divf stof peunto movrf pesunii ;peso mayor con tolerancia movrf peunto addf stof peunmax movrf pesunii ;peso menor con tolerancia movrf peunto subf stof peunmin pere2 ld clear ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz pere21 pere20 set abor reset procpes clear com 1 clear com 2 jmp peref pere21 call diba movrf peso ;el peso es menor al de tole? movrf peunmin cplf pere3 movrf peso ;el peso en mayor al de tole? movrf peunmax cpgf pere4 jmp pere5 pere3 set led123 ;peso por debajo enciende led y queda en loop !!!!!!!!!!!!!!!! reset led121 reset led122 jmp pere2 pere4 set led121 ;peso por encima enciende led y queda en loop !!!!!!!!!!!!!!! reset led122 reset led123 jmp pere2 pere5 call diba reset led121 ;enciende el led del centro,verde set led122 reset led123 ld led122 ;acepta si el led122 verde esta ensendido jz pere2 movrf peso ;peso de referencia de # unidades stof peret movif unicaj movrf peret ;peso esperado de la caja mulf movif unipes divf stof pereu movrf pereu ;valor de peso esperado de ujni control movif unitol mulf movcf 100 divf stof peunto movrf pereu ;peso mayor con tolerancia movrf peunto addf stof peunmax movrf pereu ;peso menor con tolerancia movrf peunto subf stof peunmin peref ret ;----------------------------------------- ;peca. pesado caja peca nop peca00 ld clear ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz peca0 set abor reset procpes clear com 1 clear com 2 jmp pecaf peca0 reset led122 movrf peso movcf 8 ;8 kilos cpgf peca1 ;si el peso sobre la vascula es menor de 8Kg suena la alarma set luz103 ;luz roja prende peca1 movrf peso ;determina las unidades sobre balanza movrf peret divf stof unac movrf unac ;unidades sobre balanza en entero stofi unaci movrf peso ;el peso es menor al de tole? movrf peunmin cplf peca11 movrf peso ;el peso en mayor al de tole? movrf peunmax cpgf peca12 jmp peca13 peca11 set led123 ;peso por debajo enciende led y queda en loop !!!!!!!!!!!!!!!! reset led121 reset led122 jmp peca2 peca12 set led121 ;peso por encima enciende led y queda en loop !!!!!!!!!!!!!!! reset led122 reset led123 jmp peca3 peca13 call dili reset led121 ;enciende el led del centro set led122 reset luz103 ;apaga luz roja reset led123 jmp peca4 movri unicaj ;las unidades son iguales....? movri unaci cpei peca2 jmp peca3 peca2 call dica ;si........... jmp peca peca3 call dica ;faltan...faltan..o sobran... jmp peca ;en loop !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! peca4 ld boton jz peca ;en loop mientras boton!!!!!!!!!!!!!!!!!!! peca41 ld boton ;se queda aqui hasta que se suelte el boton jnz peca41 set luz102 ;enciende luz verde que permite sacar caja movrf peso ;peso de unidades actuales stof pefuni movrf pecaja ;suma de tara+neto=bruto movrf pefuni addf stof pesobru movif unicaj stof unidado movrf numcaji stof numcajo peca6 movrf peso movcf 1 cpgf peca6 reset procpes ;reset proceso pesado activo set fincaj ;activa rele fin de caja pecaf clear com 0 clear com 1 clear com 2 reset led122 reset luz102 ret ;------------------------------- ;diba. display basico solo el peso en com 0 diba nop clear disrf peso 42 com 0 dibaf ret ;----------------------------------------------- ;dica. display llenado de cajas dica nop ;peso actual clear disrf peso 42 com 0 clear ;unidades actuales disrf unac 40 com 1 movif unicaj movif unipes divf stof unicon clear ;unidades de control totales disrf unicon 40 com 2 dicaf ret ;----------------------------------------------- ;dili. display llenado de cajas listo dili nop ;peso actual clear disrf peso 42 com 0 clear ;unidades actuales disrf unac 40 com 1 clear disl listo com 2 dilif ret ;--------------------------------------------- ;menu. calibracion, configuracion, estabilidad menu nop clear ;muestra aviso menu disl men com 0 clear ;muestra aviso c/e disl ec com 1 ld enter ;se oprime cualquier tecla? or clear or arriba or izqui jz menu ;sino... se queda en loop ld clear ;oprimo clear? jnz menu10 jmp menu20 menu10 clear com 0 clear com 1 clear com 2 jmp menuf ;si....se salio a peba menu20 ld enter ;oprime enter? jnz menu30 jmp menu40 menu30 func 8 0 ;si....calibra jmp menu menu40 ld arriba ;oprime arriba? and izqui ;y izqui jnz menu50 jmp menu menu50 func 9 0 ;si...parametriza jmp menu menuf ret ;--------------------------------------- ;tempo. temporizador generico para tiempos cortos ;parametros: temtie=registro valor de tiempo tempo reset temaux1 reset temaux2 tempo1 ld temaux1 timr timtem temtie out temaux2 set temaux1 ld temaux2 jz tempo1 tempof ret ;------------------------------------------ ;tara. tarado automatico entre tolerancias ;param. taramen=tolerancia menor, taramas=tole mayor tara movrf peso movrf taramen cplf tara1 movrf peso movrf taramas cpgf tara1 jmp taraf tara1 call tarat jmp tara taraf ret tarat func 7 pesota clear disl tare com 2 setri temtie 10 call tempo clear disrf peso 42 com 0 taratf ret ;------------------------------------ &leavar ;[REG_RELAYS] boton equ 1 ;entrada 1 boton externo enter equ 30 clear equ 31 arriba equ 32 izqui equ 33 luz102 equ 102 ;luz verde del semaforo,indica caja aceptada luz103 equ 103 ;luz roja del semaforo, caja no aceptada led118 equ 119 ;rojo en merck y verde en protabaco led121 equ 121 ;led de peso unidades control bajo en pere led122 equ 122 ;led de peso unidades control bien en pere led123 equ 123 ;led de peso unidades control alto en pere temaux1 equ 150 ;aux en tempo temaux2 equ 151 inirem equ 301 ;inicia pesado en ppal del lv fincaj equ 302 ;fin caja al lv abor equ 303 ;abortar procpes equ 304 ;proceso de pesado activo aboini equ 305 ;reinicio proceso pesado pricava equ 307 ;indica caja vacia reconocida ;[REG_INTEGERS] temtie equ 100 ;tiempo en tempo taramen equ 151 ;tole menor de tara ej. -0.01 en tara taramas equ 152 ;tole mayor tara ej. 0.01 en tara pesota equ 153 ;en este reg. esta el # balanza a tarar unaci equ 154 ;unidades sobre balanza entero en peca unitol equ 300 ;tolerancia peso referencia del lv unipes equ 301 ;# unidades a controlar del lv unicaj equ 302 ;# unidades en caja del lv pesobru2 equ 303 pro1 equ 310 ;nombre producto del lv ;[REG_FLOATS] peso equ 0 ;peso del canal numcaji equ 100 ;# de caja del lv pesunii equ 101 ;peso de unidades a controlar de lv numcajo equ 105 ;# de caja al lv pefuni equ 106 ;peso neto al lv pecaja equ 107 ;peso tara al lv unidado equ 108 ;# unidades en caja al lv pesobru equ 109 ;peso bruto de la caja pesobru1 equ 110 peunto equ 120 ;peso =/- de la tolerancia unidades en pere peunmax equ 121 ;peso maximo permitido de unidades en pere peunmin equ 122 ;peso minimo permitido de unidades en pere peret equ 123 ;peso de referencia de # unidades en pere pereu equ 124 ;peso de referencia por unidad en pere unac equ 125 ;unidades sobre la balanza en peca unicon equ 126 ;unidades de control a mostrar en peca cavafi equ 127 ;peso de caja vacia pemica equ 128 ;peso minimo de caja vacia ;[TIM] timtem equ 48 ;temporizador en tempo ;[CNT] ;[NOP] ;[TEXTOS] men lite "nenu" ;menu ec lite "E/C" ;menu cajvac lite "caja" ;cava cajvac1 lite "vaci" ;cava tare lite "tare" ;cava manu lite "menu" ;cava uni lite "unid" ;pere listo lite "list" ;dili saldl lite "sald" ;disa plat lite "plat" ;cava cerouno lite "(01)" diez7 lite "(17)" diez7s lite "17" diez lite "(10)" 3cero lite "000" 2cero lite "00" gra lite "Kg" tre7s lite "37" tre7 lite "(37)" ;inicio variables setri 127 70 setri pesota 0 ;registro de balanza movcf 0.01 ;max y min de tarado stof taramas ;en tara movcf -0.01 stof taramen movcf -0.400 stof pemica ;peso que debe haber el la vascula para aceptar caja vacia movci 1 ;estado para pruebas locales movri 1100 cpei leavara jmp &leavarf leavara call vartem &leavarf ret ;---------------------------------------------------------- vartem ;temporales de prueba entra cuando el registro entero 1100 eeprom esta en 1 setri unipes 10 setri unitol 2 setri unicaj 20 movcf 1 stof pesunii vartemf ret ;-----------------------------------------------