;------------------------------------------------------------- ;Aplicación -> BAS14CHOCO ;Fecha -> MAR 13 2003 ;------------------------------------------------------------- MIDA 14 scan equ 99 ;programa principal inicio-------------------------- inicio ld scan jz lea jmp ini0 lea call leavar ini0 ld sensor1 out 120 ld sensor out 119 ld temdat ;129 si muestra peso es 1 jnz ini1 jmp ini2 ini1 call display ini2 call menu ld sensor jz notome ;si 0 resetea sensor1 jmp siga notome reset sensor1 out 120 siga ld sensor xor sensor1 out sentem ld sentem jz fin ;si ya tomo peso y mientras sensor no vaya a 0 ld sensor out 119 call dat0 ;toma peso jmp fin ;programa principal fin ---------------------------- ;======================== S U B R U T I N A S =============================================== ;display rutina inicio ----------------------------- display movrf 0 ;muestra el peso en gramo stof peso movrf 1 stof pesof clear disrf peso 41 com 0 clear disrf pesof 41 com 1 ld sensor out 119 ret ;display rutina final ------------------------------- ;toma de datos inicio--------------------------------------- dat0 clear disri tempro 3 com 2 reset 126 set 124 reset sentem2 reset sentem1 dat22 ld sentem1 timr 48 tiempo out sentem2 set sentem1 call display ld sensor jz dat33 ld sentem2 jz dat22 movrf 0 ;muestra el peso en gramos stof peso movrf 1 stof pesot movrf peso1 ;mueve pesos de 6a5 5a4 4a3 3a2 2a1 1a0 stof peso0 movrf peso2 stof peso1 movrf peso3 stof peso2 movrf peso4 stof peso3 movrf peso5 stof peso4 movrf peso6 stof peso5 movrf pesot stof peso6 movrf peso ;calcula la diferencia de peso con la tara 6 anterior movrf peso1 ;para 6 pesos de tara ejemplo si quiere 5 ponga peso2 subf stof pesof clear ;muestra el peso promedio final cada promed muestras(10) disrf pesomm 41 com 2 ;calculo promedios finales movri promed movri tempro cpgei profin movci 0 stoi tempro movcf 0 stof pesom profin movrf pesmax ;pesomax es mayor que pesof acepta y prefuntqa por minimo movrf pesof cpgef profin0 jmp dat23 profin0 movrf pesof ;peso mayor minimo acepta y calcula movrf pesmin cpgef profin00 jmp dat23 profin00 inc tempro 1 movrf pesom movrf pesof addf stof pesom set 126 movri promed movri tempro cpei profin1 jmp dat23 profin1 movrf pesom movif tempro divf stof pesomm clear ;muestra el peso promedio final cada promed muestras(10) disrf pesomm 41 com 2 dat23 clear disrf peso 41 com 0 clear disrf pesof 41 com 1 clear disrf pesof 41 com 3 set sensor1 out 120 dat33 reset 124 ret ;toma de datos final----------------------------------------- ;subrutinas menu inicio------------------------------- menu ink 30 ;enter calibracion jnz cali ink 31 ;clear tara jnz tara ink 32 ;arriba parametros basculas jnz prop ink 33 ;peso arriba o abajo y estabilidad factor jnz stab jmp menuf cali func 8 bascu jmp menuf tara func 7 bascu func 7 basc1 jmp menuf prop func 9 0 jmp menuf stab clear disri setdisp 1 com 1 ini 2 ;si 0 peso en dat0 si 1 en ppal stoi setdisp movri setdisp movci 1 cpei stab1 jmp stab2 stab1 set temdat ;peso en ppal reset cero reset 123 set 121 jmp stab3 stab2 reset temdat ;peso en dat0 set cero set 123 reset 121 stab3 clear disri tiempo 4 com 1 ini 2 ;si 0 no cambia el valor de setdesv stoi setdest movri setdest movci 0 cpgi stab4 jmp menuf stab4 movri setdest stoi tiempo menuf ret ;subrutinas menu fin------------------------------- ;================================================================================== leavar nop ;[REG_RELAYS] sensor equ 1 ;sensor producto sentem equ 127 ;aux sentem1 equ 131 ;aux sentem2 equ 132 ;aux sensor1 equ 128 ;aux temdat equ 129 ;es 1 cuando se ven display en prog ppal si 0 se ve e tomaadatos dat0 cero equ 130 ;es 1 est no sale hasta led118 off si 0 sale no importa led118 ;VARIABLES PARA EST led118 equ 118 finad equ 110 ;fin de conversion a/d ;[REG_INTEGERS] bascu equ 200 basc1 equ 201 setdisp equ 156 ;temporal para setdesv si es cero no la cambia tiempo equ 157 ;tiempo de espera para tomar peso de cada muestra setdest equ 158 ;aux para cambiar los menus??? promed equ 159 ;numero de muestras para hacer la media final tempro equ 160 ;aux de promed ;[REG_FLOATS] peso equ 0 ;peso balanza pesot equ 1 peso0 equ 3 ;pesos de tara este es el primero o hace x muestras peso1 equ 4 peso2 equ 5 peso3 equ 6 peso4 equ 7 peso5 equ 8 peso6 equ 9 ;ultimo peso pesof equ 10 ;peso de calculo para 6 taras anteriores pesom equ 11 ;peso promedio pesmax equ 12 pesmin equ 13 pesomm equ 14 ;[TIM] ;[CNT] ;[NOP] ;[textos] & lite "&" ;VARIABLES PARA INICIAR ----------------------------------------------- movcf 540 stof pesmax movcf 460 stof pesmin movci 100 stoi promed movci 0 stoi tempro movci 7 stoi tiempo reset temdat ;display en toma peso set cero ;est no sale sino con led118 off set 123 ;si es 1 es toma peso en linea si 121 en 1 toma depeso en ppal movci 0 stoi setdisp ; para toma peso en ppal o dat0 si 0 en dat0 movci 0 stoi bascu ;ident bascula para tarar y parametros movci 1 stoi basc1 ret fin end