• No se han encontrado resultados

LTO DE INGENIE RIA

N/A
N/A
Protected

Academic year: 2018

Share "LTO DE INGENIE RIA"

Copied!
108
0
0

Texto completo

(1)

UN W E RSIDAD

AUTO

NOlvfk

h3

ETRO F OLITL4NA4

UNIDAD IYTAFAUAFA

IN GENIE RÍA E LECTRÓ

NICA

/

F RClYE LTO DE INGENIE RIA

ELEGTRONICA I

Y 11

129305

1

.

‘1

SISTEMA AUTOMATIZADO PARA

PERFORACIÓN DE TABLILLAS DE CIRCUITO

IMPRESO

Asesor es:

(2)

Y

4

José Garcia nares

Maria Zuñiga

T

r

ejü

Diaria Laur a Kr o epfly Saury

Silveriu Bautista Fragoso

(3)

I. OBJETIVOS

F,ealir:ar disefici e irriplaiitaci6n de c-üritrüi digital de un taiadrci rrtüxi parala perfclraciót-t de tarjetas de Circuito

Impresü basado enuri rciicrüc:ünti-üladür 5031.

Itttpiaritaciht-1 de Soft ware p x a realizar una iriterfaz de

(4)

11. DISEÑO

El

dia.gra.ma a bloques del siguiente sir;tema ., muestra a

grandes rasgos la estructura. basica del perforador

‘-7

Interface

(5)

DESCRIPCIdN DE LAS ETAPAS

Sistema mínimo 803 1

Consiste en el kit de 803 1.

El diagrama de este sistema se muestrd. en l a figura 2

L a función de esta etapa

es

controlar elmanejo de los motürex que cünstituyrrt l a parte b&ica de la etapa

mecdnica y püsteriorrriente controlará la irtterfaz de comunicación con una compiutador a.. con

el

pr ophsito de aumentar la eficiencia

e n

la erttraday adquisición de datos

coordenadas de perforación).

Interface de potencia

Este bloque esta formado princi~taknertte put- do, etapas

que son:

Lbgica d e control

y

actuador.

El problema principal al diseñar el perforador fué el movimiento del taladro efí 3 ejes, de manera que

se

pudiera perforar sobre cualquier punto en un plano.

Para solucionar dicho problema recurrimos a sistemas mechnicos empleados comercialmente, como son:

graficadores

e

impresoras, los cuales mueven una plumilla

ü una cabeza de impresión sobre un plano o semiplano y

(6)
(7)

L a etapa de Ihgtca de coritrol tiene como principal objetivo el controlar

el

movimiento de los inotores de pas o unip olar e 5.

Esta lhgtca funciona hisicmlente sobre.

un

cortta.dor (iip/dowti],

el

m a l proporciona el sentido de a.vance y la direccih

e n

un niotor,, asi como

el

número de pascis, recihiendu l o s hilos de c:cintrol del Sistema aiínimo 5031.

Enlafigura

3

se muestraun diagtatrta de esta etapa

El actuador cütistd de un circuito de conmutacitin básico,

el mal se encarga de polarizar alternativamente un devanado por paso delmotor en el sentido que se haya

establecido en la logica de control, esto

se

logra por medio de cuatro hilos.

El diagrama correjpondiente a esta etapa se muestra en la figir a 3.

Sistema Mécanico

En este sistema se utilizaun carro que transporta

el

taladro alo largo del e j e X , otro carro que llevala tarjeta

sobre el eje Y , con l o cual

se tiene

el movimiento

cornpleto sobre

el

plano

X i .

Fara lograr la perforación se diseño un FiSterna de

engranes que mueven toda la plataforma de l a tarjeta

sobre el eje Z, de tal manera que el taladro puede

'

(8)
(9)

111.

SOFTWARE PARA EL

SISTEMA

MfPrIMO

La ircterfaz del perforador c:on la FC se realiza por medio del sistema minim,. L o cual quiere decir que hay

un

software en el sistema rninimo

y

otro en la PC y ambos se

cotrcurtican et-tire sí p a r a controlar finalmente alperfordor.

El scifiware del sistema mitiirno consta basica.mertte de L ., partes:

a) Cümunicaciíit-c con la F L [sistema minima

->

F

C]

b) Control del perforador [sistemaminimo

->

perforador)

Descripción del software del 8031 para Za comunicación con la PC.

Sistema minimo

->

PC.

La FC rrcartda l a inforrriaciún de las coürderiadas hacia el

sistema minimü. E l

C P U

del 8031 se da. c:iierita. de la

llegada. de estos da.tos y l o s marida amemüria FAh4 del sistema rnirtimo. L a ubicacion de los datos en memoria

FLkhrl ya esta predeterminada

y

puede variarse. Por lü tartto el 8L131 ya sabe en que direcciones almacenará los

datos que le llegan. Almismo tiempo que los datos se empiezan a alma.c:enar en el sitio indicado, pcit- ütro lado

se tiene

un

procedimiercto que mandalos datos de la memoria

M M

hacia el perforador.

Se revisa si hayrriás datos en el

PPI,

silos h a y estos datos

se colocan en la siguiente casilla de memoria. Para ubicar

las direcziones de memoria que contienen los datos se

(10)

Debido G. que el buffer d e da.?us es reducido se irrlplmto

una e s ? r u c ? ~ a de datos d e cola cirmlat que fut-tc:iiona i::utt

2 ap~-ititadores. El primero apunta a la siguiente püsicitlt-i d e donde se puede introducir un datci de 1cis que llegan de la. FC.

El

segundo ay~iii-it~ior dice c:ml es el siguiente

datri que puede torcriar-sse p x a llevarlo

al

perfciia.dor. (handk ei primer apntador llega ai finai del bu:fer se

regresa al piintcipio

pxra

seguir esc:rik&xtdci. El seeundo n-5

a.yiuntadnr puede adelmtirse rietqire y mando

no

reha-se al primero. De igual fcirnia el qnirttador 2 SE! va

"cutnienda " lcis datos 37 ' ~ c i adelüt-itan3u:;e.. cuandci llega al

final del kmffer se remesir 8.2 al principio y pueden seguir así riiientras n o alca.nce al apiuntador 1.

&ando termina. d e perforar el sisienla minimo envía un

mensaje

la.

PC diciendo que h a terminado la

perfot-acihn, y que esta listo para ia prbsirm

(11)

I

TOR Y ECTR EN EL. UFiIG

UN PRCD

;VUELVE A CHECRR

<

i

ACIDNES

**

**********

!

i I

COMIENZAe NOV DPTE, #LETHE2 2 D E W L I EDA EL M€NSAJ& ' Er ~

ACALL PESFLEGA 1

A, DESPL O I

CJNE A, XW$ELO,€T1001

MOV A, DE@FHI

CJNE A, IhlSEH1,EfIQOi

SSMP ET1002

MT3V DPL, DECP'LO

NOV OPH,PESF"I

NUVX A,BI)FTW

~

I I ET

1 I

I ACALL COOHDE I

I NC DPTR I

K & L t OVFL ~

NOV DcPjPLa, RL I

MOV DESPH1,DPH

CJMF ETIOOZ

(12)

MOV B

,

WXJM

, ET10073 RET I

i

pEwmw: CJNE

,

CJNE 5n-W

o ACALL DIR

i W L L PA8

8 DJNZ

,

DJNZ I

C JNE H5,%0Ot.llETIOl4 CJNE R4,#0OH,ETIOl4 SJMP E T I O l S

ETIOII: 5ETB

E T l O l , ACw,. DIRY

,

ETfUlF: ACALL PAIBOY

m,

R 4 , E

S E T E P1.3 4 .

E T I Q f S : RET

' P A W X : MOV

,

WSH

I @T1019: SETB .O

ACALL RETMQDPr

CLW Pl.O

I ACALL

m m m

DJNZ R3, E T f O l q

RET

I

DIWP M V

JNB

CLR

Mov

XRL

X R L A,

w m

(13)

JNP A?cC . 7 , ET r(324

CLR F 1 . c .

XRL A, #OFFH

ADD A, # O l H

MUV R5. A

MCV A,R5 1

> MOV A, 64

JNC ET I O 1 b

XRL A, tCiFFH

MQV R4,A

MOV H4,CI RET

FiDD A , # C i l H

GJMP

t

1

2 1

EfI016: XRL I

i

STI024: INC R 4

~ Q R # PUSH 07n

I

PUSH QbH

I

MOV 1

I

I

Rb,ETIO21

DJNZ R7

,

ET1022 I

POP OBH 1

W P 07H

RET

(14)

Descripción del software del sistema mínimo para el

control del perforador

Sistema mínimo --:> perforador

En l a primera sección

se

define las direcciones donde se

kyardanlos datos provenientes de l a P C y las direcciones

de los optoelectricos.

Después se realiza una rutina p a r a inicializar los motores,

checa si

el

motor s erst6 en el origen, sino l o regresa

hasta que lo posiciona en el ürigeti, de igual forma para el

motor :7.

Enseguida se comienza con las perforaciones, se

despliega en el display elmensaje "INICIO" y se espera hasta que se presionala tecla dato para iriciar.

L a rutina siguiente se encarga de mciver el taladro sobre el eje x, se perfora y liuego 5e buscala siguiente posición. Elmovimiento anterior

se

reliza también para el eje y.

E l rciü-Amientu sobre el eje z se t-ealiza al final y en esta rutina se cuerda. el riimero de perforacicines.

Después se listar1 todas las rutinas bikica para implantar las rutinas generales ardes tnencionadas.

A continuacibn se mueswa ellistado completo de las

(15)

AVDCET SYSTEMS SR51 CROSS ASCEHBI.ER - VFRSIIIN 1.1611

SOURCE FILE NAHE: PROY.PAS

em^ 0170 le79 1878 1871 fib72 1177 087E

l S B #

0.309

6410

8389 ZAEE

8500

11510 C291 1512 C285

(5114 912880

ES17 Ed

ESP8 F5FE

051A 2PFlfl7 6560 DI12 f56F MF6 0511 E0

0512 F5FO

1514 W 1 0 4

1517 DI28 1519 M F 6

lslB 7591EA

651E W 5 C E 1521 71w

1523 DlDü

6525 B4IAFB 1528 Bt156fl

DATO EOU DlRlI EQU OlRI, EQU D6 EQU Dl EQU

D2 EQU DI EQU TECLA EQU DATO1 EQU DECPLECA EQU ASIETE EQU DESPBUF EQU OPTOELE EQU

;PIRECCION QUE GUARDA EL DATO INlRODUClDO

05PII 07Pll AIPII 87R1 1i7111 0i;11 0i7H 07Ell

ISRQH :DIRECCION DON@E SE ENCUENTRA EL ler. DATO

04 I RII

ü3BDIt

28BFII

0 3 n w

;@IRECCION DONDE SE ENCUENTRAN LOS OPTOELE.

CLR P1.1 CLR P1.3

nov DPIR, IDPTOELE

nnv B,A INICIAX: MOVX A,BDPTR

JB B,i,FlIO!? ACALL PACOY

CJñP IHlClAX INICIAY: MOVX A,@DI'TR

HOV B,A

ET1633 JE E.0,CüRIEHZA ACALL PASOY

SJHP INlClAY ;

; f11111111111111111111I11111

; 11 FIN DE INICIALIZACION Et

; 11111111111ff111111lt1ll~*l

;CtRCA AL DPTR LA DlRECClON DE LOS OPTO

;CARGA EL VALOR DE LOS OPTO

:CIIECA SI EL MOTOR X ESTA EN EL ORIGEN ;SI NO, REGRESA UN PASO

;VUELVE A CHECAR

;CAECA SI EL HOTDR Y ESTA EN EL ORIGEN

;SI NO, REGRESA UN PASO ;VUELVE A CHECAR

; I I ~ ~ ~ ~ ~ ~ I ~ ~ I ~ ~ I ~ I ~ I I ~ I I ~ I ~ ~ I I I ~ I ~ N ~ ~ ~ I ~ I I ~ ~ ~ ~ I

; 1 1 COMIENZA RUTINA DE INTROWCCION DE DATOS 1 1

; 1l111111i11111l11i11111l1l111~111t111111111111

COMENZA: HOV PI, IlEAH

WOY DPTR,ILETREI ;DECPLEGA EL HENSAJE 'Int dAt'

ACALL DESFLECA

ETlE1l: ACALL RECILIATO ;ESPERA HASTA PRECIONAR LA

' CJNE A,lEBAH,ETIIüI ;TECM '1'

HOV DPTR,lDATOI :CARCA AL DPTR CON LA DlRECClOW DDNDE SE GUARDAN LOS DATOS PAGE 1

(16)

AVOCET SYSTEAS 8151 CROSS-ACSEHBLER - VERSION I. IM

SOURCE FILE NAAE: PROY.PAS

8520 D I M 152F E57E 0531 B41A02 0534 8115

0539 B M D 0538 DlFF 053D DlAA 153F E57E I541 8418E7 I544 FllB I546 8IF3

1548 74FF

054A F I

15% 841~02

1540 911506 Is4E 71Dg

Is51 DlDü 1552 846AFB

1555 r n 8

1557 DlDE Is59 M C

1558 911510 155E 78H

15w 79n

1582 7Dll

IS64 E1

1585 UFF12

1568 8127

1561 851113

WA3

B E 811A Is71 1111 1572 BlFI 1574 w2

1576 81F6

1578 DllB

ACALL INTDAT MOV A,TECLA

CJNE A,IOIAH,ETlRO3

SIMP ETIOB4

ETIO13: CJNE A, 1OüB11, ET1164

SJMP ET1005 ETIIO4: IICALL LlnPlA2

ACALL INTOAT

CJNE A, IWBH, ET1012 ACALL ERROR

SJnP ET1004

nov A,TECLA

ETIBO5: IiOV A,i6FFIl

novx BDPTR,A

; INTROWCE DATO

;CHECA SI YA TERillNlO DE INTROWCIR EL DATO X

;SI NO, CHECA SI YA TERNINO DE INTROWCIR TODOS LOS DATOS

;LIRPIA LAS DIR DIRL, DlRH Y DESPLEGA MENSAJE

; INTRODUCE DATO

;CHECA SI SE PRECIDH LA TECLA 'I'

;SI SE PRESIOND DESPLtEGiI 'ERROR' ;SI NO, SIGUE CON LA INT. DE DATOS ;YA TERHIND. ESCRlüE FIN DE DA1OS

1 1 1 l l f l 1 l f l l i l l l l l l l 1 1 l v u n 1 ? * * ~ ~ 1 1

1 1 FIN DE INTRODUCCION DE DATOS 4 1

I1lflll€lllllll1ltll)1111)111111(1

11111111111111111~l1111111

11 INICIA PERFORACIONES 11

; 1 1 1 l 1 l 1 1 1 1 1 1 1 1 1 1 1 1 1 1 t l l l l l

i

MOV DPTR,ILETREZ +DESPLIEGA EL NENSAJE 'Inicio'

ACUL DECPLECA

ET1116: ACALL RECIDATO ;SE ESPERA HASTA PRESIONAR

CJHE A,IüIM,ETIflIG ¡LA TECLA 'I' PARA INICIAR ET1143: iiOV R6,i1üBll

ET1138: ACALL PASOZF

DJHZ R6,ET1638

o

; 11 M V E EL TALADRO SOBRE EL EJE X II ;

AOV OPTR,IDATOl

)Iov R8,1101H

HOY RI,IOIOH

AOV R5,1101H

CJNE A,IOFFH,ETIOR8

SIMP ET1819 ETIIOB: CJWE A,OOM,ETIOIO

IK DPTR CJHP ETlOll ETlOlI: I C ET1112

ACN.1 MYORK

SJHP ET1013 ET1112: ACALL " O R X ET1113: ACUL HUEVX i

;

**

FIN DE iIüVlHlENT0 X *I

ET1117: rmVX A,BDPTR

tCARGA AL WTR CON LA DIR DEL fer. DATO

;PARA C h R AL WS HOTORES EM EL ORIGEN $INICI)iLIU WC REG. 1,1 Y 5

¡CARCA EL PRlllEll DATO

1CHECA SI YA SE tE~iW0 DE PERFORAR

;COMPARA EL DATO UiN RI PARA CALCüi.AR LA llVRlA POSICION

¡si ES LA nim CARGA EL SIGUIENTE DATD

¡SI NO, u1IIPARA SI Es HEWOR O HAYOR

¡SI ES MFOR, ADELANTA EL NOTOR X

iSl NO, REGRESA AL MOTOR X

(17)

AVOCET SYSTEHS 8151 CROSS-ACSEHBLER - VERSION 1. IsH

SOURCE FILE NAHE: PROY.PAS PAGE 3

657A EO

0578 B5010.3

057E A3 ü57F 818A

tS8l 4814 OS83 BlFC 1585 8102

0587 DI62

1589 DllF

: 4 4 NUEVE EL TALADRO SOBRE EL EJE Y 11

;

ETIOII: MOVX A,@@PIR ;CARGA EL DATO Y

CJNE A,IRIH,ETIüI4

SJNP ET1115

ACALL MAYORY ;SI ES MAYOR, ADELANTA EL HOTOR Y SIMP ET1817

;COMPARALO CON EL REG AI PARA CALCULAR EL NUEVA POSICION INC DFTR ;SI ES LA nisnA CARICA EL SIGUIENTE DATO

ET1114: IC ET1816 ;SI NO, COMPARA SI ES RENOR O MAYOR

ETIO16: ACALL MENORY ;SI NO, REGRESA AL IiOlOR Y

ET1017: ACALL HUEVY i

; M I FIN DE IiOVlIilENTO Y @ *

; 4 4 HUEVE EL TALADRO COBRE EL EJE I, Y CUENTA EL NUMERO DE PERFORACIONES 41

i

1588 DI74 ET1015: ACALL NUllPERF ;CUENTA EL NUilERO DE PERFORACIONES REALIZADAS 058D DI43 ACALL IiUEVI ;BAJA Y SUBE EL TALADRO

i

; I* FIN DE ROVlRlENTO I Y NUHERO DE PERFORACIONES 4 4

1

;

; 4 f ~ l f l f f f f f f l 4 4 4 4 l l 4 f 4 4 m f m

; 11 FIN DE PERFORACIONES I *

; ~ m f l f l t f 4 f f l f f 4 4 f ~ l f f l ~ ; l f

15% 81D3 SJHP ET1807

8591 C291 1593 881102

15% 8013

#Se8 E8

E89 DIO8

KIND C293

0512 M13 KIA4 E9

#SA5 DIIF 85A7 DZ93 KIA9 C295

#SA8 ?E88

R A D BIDE

6sAF DEFC

úSB1 0295

6583 9M5C6

ED0 Dlüü

HBA M8A62

KIM) 8106

HV MIBF6

ñ c 2 10518

man DZ~I

EBF wn2

1586 iim

i ET1069:

ET1 045:

ETlH46:

ET 1117:

ET1 1148:

ET1 139:

ETII44:

ET 1142:

CLR PI.l

CJNE R#,llüHH,ETI645 C J W ET1046 MOV A,R0 ACALL WEVX CETB PI.1 CLR P1.3

CJNE Rl,llHüH,ETlW7 SJMP ET1048 MOV A,RI

ACALL WEVY

SET8 P1.3 CLR P1.5

HOV R6,IBBBH ACALL PASOZF DJNZ R6,ETl639 SET8 P1.5

MOV DPTR, iI.ETRE7 ACALL DESPLEGA A C A U RECIOATO CJNE A, tlOAH, ET1142 C J W ET1043 CJNE A,t688H,ETI644

UMP COMIENZA

(18)

AVOCET CYSTENS 8151 CROSS-ASSENBUR - VERSION I . llll

SOURCE FILE NAnE: PROY.PAS

ISCS 22

0SC6 8786AFAB üSCA ABEFABA3

05CE CFAB87FF O502 AIW7FF 0SD6 CFAEEFA7

05DA EFAJFFFF

1SDE 7815

#SE2 BlEB #SE4 C294 #SE6 8x8 #SE8 ü8F6

QSEA 22 ~ L E P ~ 2 9 4

#SE8 7CFF 05ED CCFE

(SEF 22

AFI FA

AFI C3

tSF2 88

OSF3 AB12 15FS 22

05~6 ce

A F 7 C3 0SFB 53

15FD C291

15FB 22

OSFC FA

fm c3

ESFE W

RET

LETRE7: OB 18711,IR6tl,BAFII,OABH

I ABH, EEFH, úAB11, #A311 i

; 1 1 FIN DE PROGRAMA PRINCIPAL I 1

; 1 1 1 1 1 ~ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ~ l 1 I ~ l l l l ~ 1

;

LETREl: DB ~CFII,flABH,O87ll,RFFll DB IAlH,li8&!I,887H,üFFll LETRE2: DB úCFH,flA8II,BEFII, @ A N

DB OEFII, Mi, IFFH, K F H

;

: 1 1 RUTINA UUE GENERA UN FASO PARA LA ELEVACION DE LA PLATMOMA 11 :

PASOZF: WOV R3,16051i

ETld41: SETB Pl.4

ACALL RETARDOF CLR P1.4 ACALL RETARDOF

DIN2 R3,ETIfII RET

DB

; 111111111111111111111ll1~111lll

; 11 RUTINA QUE GEiiERA UN RETARDO PARA LA ELEVACIDN 11

RETARDOF: nov R~,IIFFH

ETl641: DJNZ R4,ETlbiI

;

i *I RUTlM QUE CALCULA EL DESPLAZANlE!4TO ASCENOENTE On. MOTOR X 11

RET

i

MAYORX: NOV R2,A

CLR C

CUBB A,RI NDV R#,flK!H RET

c

11 RUTINA QUE CALCULA EL DESPLAZAMIENTO DECRECIE~TE DEL HOTOR I 11

i

IIENORI: XCH A,RB

CLU c

CUBE A,R#

CUI P1.I

RET

i

I It RUTINA QUE CALCULA EL DESPUZAIIIENTO ASC!NfEiiTE DEL MOTOR I 11

i

HAYORY: MOV R2,A

CLR c

CUB8 A,R1

(19)

AVOCET CYSTFMC 8151 CROSS-ACSEI(BLER -

SOURCE FILE NAHE: PROY.FAS

VFRCION I . IM

15FF A982 MOV R1,OflAl

,, 8611 22 RET

1612 c9

1613 c3

8644 89 1615 C293 8617 22

46u) DI12 161A 14

1618 B4MFA

161E A3

161F 0291

O611 22

8612 7ü15

1614 D290

$616 DI36

1618 c291

RIA Di36 16iC üBF6 161E 22

161F DI29

1621 14

1622 BIIIFA

1625 A3

1626 D283

1628 22

wm

7815

1628 D282

162D Di36

$68 c282

1631 DI36 16J3 DüF6

6635 22

i '

; i f RUTINA QUE CALCULA EL DESPLAZAiiiENTO DECRECIENTE DEL MTOR Y 11

IENORY: XCll A,RI

CLR c

CLR P1.3

RET

sunn v i

i

i

IIUEVX: ACALL PACOX

; I I RUTINA auE MUEVE AL nuion x

DEC A

INC DPTR SET8 P i . l

RET

CJNE A,IBPOII,~UEVX

i

; 11 RUTINA QUE GENERA UN PACO EN EL MOTOR X #I

PACOX: iiüV R3,115H

ET11i8: SUB PI.#

ACALL RETAR CLR P i . 0 ACALL RETAR DJNZ R3,ETIIiIO RET

,

i

; 8 8 RUTINA QUE WEVE AL MOTOR I I i

;

WEVY: ACALL PASOY

DEC A

IK DPTR CETB P1.3

RET

CJWE A,i0ómi,HUEVY c

;

; iiRUT~M auE GENERA UN PASO EN EL MOTOR Y ii

PACOY: HOV R3,11lü511

ETi119: CETB P1.2 ACALl RETAR CLR P1.2 ACALL RETAR DIN2 R3,ET1619

RET

;

; 11 RUINA QUE QWERA Uii RETARDO PARA EL PASO DE LOS MfORES i

;

(20)

AVOCET CYCTERC 81151 CROSS-ASSEMILER - VERSION I. ldll

SOURCE FILE NAiiE: PROY.PAS

1636 C M 5

0638 7F62

063A 7DFF

d 6 X bDFE

ü63E DFFA

A64R 1MOS

8642 ::

0643 7E15

1645 C296 1647 D15A

1648 DEFC

1648 8295 164D DI67

164F 7E15

1651 D15A

1653 DEFC

1655 8295 1657 D296

1659 22

1651 7B15 165C D294

665E DI67

ow

c294 1662 DI67

166) DBF6 166622

1667 c115

1660 7c31

16611 7061

166D DüFE 166F DCFA

1671 DHS

1673 22

1674 ClEl 1676 C18J 1678 C M 2

167A BW6A2

167D 7109

RETAR: PUSH ü05H

ETlfl37: ROV R5,IPiFH

ETl028: DJN2 A'J,ETliVB

DJNZ R7,ETlfl:

GLT

nov RI,IPR:II

por o m

; 11 RIITINA Q U E ilUEVE FL IlOiOR i 1 )

HUEVZ: MOV R6,1R151l

ETl035: ACALL PACO2 CLR P I A

DJNZ R6,ETIR35 CPL P1.5 ACALL RETARNI

tlOY 116,161511

DJWZ R6,ETIü36 CPL P1.5 SET8 P1.6 RET

ET11136: ACALL PASOZ

:

; 11 RUTINA QUE GENERA UN PAZ0 EN EL MOTOR 2 I I :

PASOZ: HOV R3,i@üSH

ET1121: CETR P1.4 ACALL RETARDO

CLR P1.1

ACAU RETARW DJNZ R3,ET1821

RET

;

; 1) RUTINA QUE GENERA UN RETARDO PARA EL PASO DEL NOTOR 2 11

RETARDO: PUSH 015H 4

HOY R4,1031H

ETi123: HOY R5,1166"

Fl1122: DJWZ R5,ETlüZZ DJNZ R4,ET1123 POP 115H

RET t

,

; 11 RUTINA QUE MUESTRA EN EL DISPLAY EN " E R O DE PERFORACIONES

; REALIZADAS 11

AWERF: PUSH ACC PUSH DI" PUSH DPL

lloV DPTR, ILETRE6 ACALL DESPLEGA

,

(21)

---

AVOCET SYSTEMS ~ # S I CROSS-ASCEHBLER - VERCIOII I. tan

SOURCE FILE NANE: ~ROY.PAC

067F ED

1681 54Fñ I682 C4

1683 91 i ñ 1685 F571

1887 ED

16BB 54F

668A gill

W F571 668E OD 168F ED

#690 541F

1692 B41A14

1695 EO

ñ96 2416 ffiüü FD

1699 1189 1698 M82 169D DUM

669F DIU

nov A,R'J

AN1 A,IOFRII

C U P A

ACALL ASIETE

nov

DI,A

nov

A,RS

nov DE,A AN1 A,IORFH ACALL ASIETE

INC R5 HOV A,R5 AHL A,10@FH

CJNE A, IMAH, ET I032

HOY A,& ADD A,ll#Gll

ET1632: A C A U DECPBUF

nov RS,A

POP DPL

POP DPH

POP ACC

RET

E6ii

22

16A2 Be86AF8FBE LETREG: IBCH,086H,#AFH,1801

MA6 FFFFFFFF DB IFFII,OFFH,OFFH,IIFM

i

;**

RUTINA QUE REClüE LAS COORDENAOAC DE LAC PERFORACIONES A REALIZAR

**

1

16AA DJDB INTDAT: ACALl RECIDATO 66AC 84112 CJNE A,1#1iBl1,ET1624

1681 MOA13 ET1024: UNE A,l6lAH,ET1126

16u FIE4 ACALL DECIIL

16ü6 E556 miV A,DhTO

6688 84D512 CJNE A,llD511,ET1127

16Eü 8fED SJHP INTDAT

66BD 4462 ET1127: 1C ET1128

16CI E551 ET1628: ñ0V A,DATO 16C3 FI HOVX OIIPTR, A

16C4 A3 INC DPTR

w c 5 8119 S J W ET1625

16c7 DID1 ET1126: ACALL DICDEC

16c9 B406DE CJNE A,I#IIRI, INTDAT

16GC F13ü ACALL RECDIR 16CE BODA CJHP INTDAT

6 6 M 22 ET1625: RET

BAF 811F sinp aim

06BF 81EB sinp INTDAT

i

; # I RUTlWA 4UE CHECA SI LA TECLA PRESIONADA ES UII DIGIT0

**

PAGE 7

o

&DI E57E DIGOEC: IiOV A,TECLA

1606 04 DIV AB

(22)

AVOCET SYSTENS 8151 CROSS-ASSENBLER -

SOURCE FILE NME: PROY.PAS

VERSION I. IN!

16D7 22

ü6DB 757EFF

KDü E57E 16DD B4FF02

16EO 8lFB 06E2 22

16E3 Cfl83

&E5 C182 16E7 9116F7 M E A 11D0 16EC 757810

O W 757911 6 F 2 D682

16F4 WB3

6 F 6 22

RET i

;ti RUTINA QUE ESPERA MCTA QUE SE PRESIONE UNA TECLA I f

i

RECIDATO: MOV TECLA, lflrFll ETII30: NOV A,TEI.LA

CINE A,l6iFH,EiI#29 SJHP ET1130 ET1129: RET

i

; i t RUTINA QUE LIMPIA DIRL, OlRll Y DESPLIEGA EL MENSAJE ‘CoorX’ )I i

LIMPlAl: PUSH DFII PUSH DPL

MOY DPTR, llETRE3 ACALL DESILECI MOV DIRH,IOIRH MOV DIRL,Iü#IH POP DPL POP Di” RET

16F7 C6A3A3AF LETRE3: DB IC6H,#A3H,IAM,1AFH

KFB 89C1CIcO DB 089H,OC8H,OC1H,6C~

i

; i f RUTINA PUE LIHPIA DIRL, DlRH Y DESPLIEGA EL HENSAJE ‘CoorY’ SI

M F F

16FF C183 LlMPlA2: PUSH DPH

nri c182 PUSH DPL

1713 911713 HOY DPTR, lLETRE4 1718 7108 ACALL DESPLEGA 1718 757811 iiOV DIRH,I#IüH

171E Dl82 POP DPL fl711 D183 POP DPH

1112 22 RET

6713 cM3A3AF LETRE4: DB 1C6H,flA3H,#AM,OAFH 1717 BICICüCl DB WIH, úCOH,ICOH, 1COH

17m 757Bw nov DIRL,IOBIH

I .

1718 C183 071D C m 2 171F W 7 2 E 1722 71üQ

1724 DIM

1726 BYFFB 1729 M82

O728 W33

1721) 22

172E FF86AFAF 1732 A3AFFFFF

Iii RUTINA QUE DESPLIEGA EL MENSAJE ’ERROR’ CUANW EXISTA i t

i

ERROR: PUSH DPH PUSH DPL

ACALL DESPLECA

EiII3I: ACAU RECIDATO

UNE A,1O#FH,ETIIJI POP DPL

POP DPH RET

LETRES: DB CFH,#&H,OAFH,üAFH DB IA3H,IAFH,IFFH,IFTH

nov DPTR, ILETRES

(23)

AVOCET CVSTEnC 8051 CROSS-ASSEHOLER - VERSION I. IIH

SOURCE FILE NINE: PROV.PAS

1736 057172

(739 857171

173c E578

673E 54F1 1741 F5i8

1742 E570 1744 75Fll1 6747 84

1740 F5FI

1 7 M E578 174C 25FI ü74E F578

1750 F153 I752 22

6753 E579

E755 F162

11757 257E

1758 F579

1758 9111

675D F571 075F 7189

6761 22

1762 C4

1763 54FI

1765 22

nE6 75511 1769 E578

1760 75FIM

176E A4 1761: F551 1771 E579 1773 c4 6774 54üF

1776 75FllA 1779 A4 n 7 A 2551

177c F551 #77E E578

1784 SIIF

1782 651

17.94 F551

1788 22

IIM

i

;in RUTINA QUE DESPLIEGA V ALiiACEtiA LA TECLA QUE SE PRESIONO i

RECD~R: nov DZ,DI b0V D1,Dú HOY A,DIRII AN1 A,IIFBH

nov DIRH,A nov A,DIRI.

nov 8 , t i m

DIV AB NOV ü,A HOY A,DIRtI

ADD A,B

ACALL IIEX21DIG RET

nov DIRH,~

HEXZIDIG:

nov

A,DIRL ACALL RECORRE

ADD A,TECLA

NOW DIRL,A A C A U M E T E

NOY M,A

ACALL DECPBUF RET

RECORRE: CYAP A

rUn A,tüFdH RET

i

; i r RUTINA QUE COnülERTE EL DATO IWTRODUCIO A HEXADECINAL if

:

DECIHAL: HOV DAT0,IIflIH HOV A,DIRH M V 8,116411

M V DATO,A

CYAP A AN1 A,liBFH NOV ü,túüAH

IWL AB ADD A,DATO HOY DATO,A HOY A,DIRL A m A,IIüFH ADD A,DATO MIY DAT0,A RET

END

nu, AB

nov A,DIRL

(24)

AVOCET CYSTEHC 8151 CROCS-ACCE1(BLER -

SOURCE FILE NAHE: FkOY.PAC

- - - - sYnBoL TABLE - - - -

1GFF 1GFF ACC IüEO ASIETE 1410

8 IIFO COHIENZA 1518 M 1171 DI 1871 02 1172

07 1177 DATO 1151

DATO1 1511

DECPBUF 13B9 DECPLEGA 13D9 DIGDEC 16DI

DlRH 61178

DlRL 1079

DPH 1483

DPL 1182

ERROR 1718 DEcinAL 1766

ETlü8l ET I 112 ET1003 ET I014

ET1105 ET1116 ET I 117 ET1118 ET1109 ETI0IO ET1011 ET1012 ET1013 ET1014 ET1615 ET1116 ET1117 ET1118 ET1119 ET1021 ET1821 1523 O528 8536 1538 1548 1550 0564 156A 1591. 157% 157A 1576 0578 0581 1588 11587 0589 0614 1628 163c m c

VERSION

1.m

PAGE I1

ETIP2% ET11123 ET1024 €TI825

ET I826

ET I827 ETlüZ8 ET I029 ET1030 ETlAJl ET I832

ET1033 ET I835 ET1036 ET1137 ET I M 8 ET1639 ET1048 ET1041 ET1042 ETIP43 RG6D 066B 8681 06M 66C7 168D 16C1 16E2 16DB 1724 8699 8514 11647 8651 163A R557 05AD 85EI 15ED ü58F 8555 c .

ET1044 O588

ET1145 15B8 ET1146 1598 ET1147 15A1

ET1148 15A7 HEXZIDIC 1753 INlClAX 1517

INICIAI 1511 INTDAT 16AA

LETREI 15CE LETREZ 05Dü

LETRE3 ffiF7 LETRE4 1713 LETRE5 672E LETRÉG &A2 LETRE7 15C6

LlHPlAl ü6E3

LllPlA2 16FF

MYORX 15FI

MYORY 15FC

HENORX 15F6

iiENORY 1662

HUEVI 6618

WVV 161F

MlNZ 1643

"PERF 0674

PI 1091

PASOX 1612 PACOY 6629 PASO2 165A

PACOZF 15DE RECDIR 0736 RECIDATO 06Ds

(25)

IV. DESCRIPCIÓN

DEL

SOFIWARE

CONTENIDO EN

LA

PC.

L a ultima parte del sistema es el software que se encuentra en la PC.

El objetivo principal de este software

es

comunicarse con el kit del 8031 para controlar la entrada de datos hacia el perforador, y la interfaz

con

el usuario para facilitar la

entrada de

los

datos.

El sistema consta básicamente de ¿os partes:

a)

Interfaz

con

80?1

b)

interfaz con el usuario

Descripción de l a interfaz con el 803 1.

Una

vez

que

se

tienen

los

datos, la

estructura

de datos

adecuada y con la información en el formato que la

requiere el 8031. Se envíanlos datos por medio del puerto paralelo de la PC al puerto paralelo del Kit del 803 1.

El funcionamiento de larutina de envío es idéntico ai de las rutinas para comunicación de FC conimpresoras, es

,

decir

se

maneja. un protocolo de handshake mediante señales de strobe,busy y acknowledge.

La. rutina espera a que el dispositivo no

se

encuentre ocupado para enviar un dato, y despuis esperarecibir la señal de acnowledge l a mal indica que el dato ha sido

(26)

El

tamaño de los datos para cada coordenada es de

2

bytes pero el envío es de byte por byte, enviindose priemro el byte menos significativo y posteriormente el más significativo.

En cada rutina de envío se manda la coordenada X y la coordenada

Y .

Los

datos que se envían al kit requieren encontrarse en

un formato especiald. Este formato consiste en expresar cada perforación mediante coordenadas

X,

Y

relativas.

Además estas coordenadas deben expresarse ennúmero de pasos de motor. Paralograr

lo

interior se realizanlas siguientes actividades:

Al leer

los

datos del archivo se almacenan en una

estructura de datos de tipo stream de caracter temporal..

los

datos del archivo vienen ya en coordenadas

>.,Y

absolutas y en alguna de las siguientes unidades: milimetro s,centimetr os

o

pulgadas.

El siguiente paso consiste en convertir las unidades de las coordenadas enpasos de

motor.

Esto se realiza de

acuerdo a la unidad original de los datos.

Posteriormente se copianlos datos de la estructura de datos inicial

a

otra estructura de datos de tipo stream, la cual contiene las coordenadas relativa:., es decir., que en el proceso de copia se convierten las coordenadas

(27)

Descripción d e la

interfaz

con el usuario. 1

F'a.rainicia.r

la.

erttraita de datu.;, der.de la PC elusuario debe llamar al programa Fi1.c

Posteriormente aparecen en la pantalla dos ventana::.

L a

prirriera

ventana tiene el nombre de FILITRON, con

el cual hemos bautizado a este sisterria.

L a segunda ventana contiene el menú principal, con las

siguientes opciones Archivo, Teclado, Transmisión,

Ayuda

y

Salir.

En principio se dehe dar la opción que elusuario desee, ya se que tenga.los datos de las coordenadas

en

Archivo

6 los quieraindicar por medio Teclado.

L a secuencia de opciones que debe seguir elusuario si ya tiene

el

archivo es :

Archivo: Cuando

se

selecciona esta opción aparece una ventana en la czial se pide e1 nombre del archivo que

contiene las coordenadas.una

vez

que elusuario h a

proporcionado

este

nombre. Se pide que seleccione alpina 4 de las tres unidades disponibles esta selección l e

hace de acuerdo a!a siguiente tabla.:

opci6n elegida unidades

11 centimetros

1 millmetr

o

s

? pulgadas

Al dar este dato. El programa regresa al menu principal.

(28)

Teclado: El usi-mio debe editar

en

esta ventana las

cc1ordenada.s pa.rra

la.

rierfnra.ci6n. La.5 tedas d e edicihn

sun.

insert: conmuta los modos d e inserción y sobreesctitura.

delete: Gorra el car6der que esta encima del cursor. backspace: borra el carkter a la izquierda del

cursctr.

end: coloca el Lcursor al final del campo. home: coloca el cixsür al inicio del campo.

tab: salta al campo siguiente shift-tab: salta al campo anterior.

page up: salta alapagina de captura amteriur. page down: salta a l a pagtna de c&tura siguiente.

esc: termina la captura.

E: importante aclarar que las coordenas capturadas deben ser absolu?as.

IJt-ta-vez que se han proporciona.do los dalos de las

cüurdenada5.. ya :ea por arctrdo o pur teclado. Nos ubicamüs nuevamente en el men<i prinqal.

L a opción a elegtr en este momento es Trartmiidri

Transmisión:

En

esta. ü p d n se pregun?a. elnumero de

?a.ttIilla.z que se desem perforar., ya que e l usuario puede

desear que

se

perforen

más

de ulna tablilla cot-t 1a.s misttias

cüordenadaj. For

lo

tanto el usuario debe dar este dato. Una vez que el sistema y a sabe cuantas tablillas debe

p erfür ar .

A p

a.r e ce un letrero que dice pr e sione cualquier

tecla p a r a corttini.1a.r. Finalmente aparece unletrero que

(29)

Aparece otro letrero

el

cual indica que se debe poner la

siguiente tablilla y una vez que la.ta.blilla esta lista se debe

oprirttir Icxialquier tecla para transrnitir los datüs de la

siwiertte

.-

tablilla. Esta Última a c c h debe repetirse hasta

terminar de perforar todas l a . ~ tablillas. Cuando se

terminan el programa regresa al menii principal.

Ayuda: Si se tiene alguna duda del funcionamiento del

sistema se puede seleccionar esta opción y aparecerd una ventana que contiene 1n.s indicaciones #3. seguir.

Salir:

Al

seleccionar esta op"óri

se

regresa al sistema

oper a.tim.

A continuacion se propor"onauna lista de los archicros de software necesarios para implantar el sistema, junto con una breve explicación de

las

rutinas que contienen.

Este &digo se implantü en lenguaje C

com3to.c Contiene las rutinas de comunicacihn con

el

puertci par alelo.

Incluye:

hoyos-def: definiciones de la estructura de

datos para las coordenada.5.

comqto.cie: constantes para la rutina de cümunicaciún.

conv - kit.c Contiene lar rutinas de cnnversihn de coordenadas. Incluye:

(30)

1ectura.c Contiene las rutinas para interpretar el

fürmato del archivo que deja Orcad y leerlo enla estruciura de dahs en memoria.

Se espera que

este

archivo tenga

en

un

futuro

rutinas para l a lectura de diferentes

fürmatos de archivos de descripción de perforaciones. Inciuye.

stream-def: definicibn de la estructura de

datos stream.

hoy os. d ef.

sir e am. c Contiene el código p a r a la impiaritacih del

TDA,stream. Incluye: sire am. d e f

hoyos.def

Contiene

el

manejador de tnenús del sistema

y las invücaciones a las funciones

principales del sistema. Realiz a glübalmente

la

interfaz de usuario. Incluye:

scrni0.h: archivo de encabezadci para las

rutinas básicas de manejü de parhlla. iouti1.h: archivo de encabezado p a r a las

rutinas basicas de rnanejo de entradu(sa1ida. str1st.h: archivü de encabezado para las rutinas basicas de manejü

del

tdñ lista de cadenas.

smenu.h archim de encabeza-do para las

rutinas basicas de manejü de meriús.

edici6n.h: archivo de encahezadü para las rutinas basicas de manejo de captura.

pagh: archivo de encabezado parallas

rutinas basicas de triarteiü de pa@-tas de

c.apkir a. str eam.def hoy o s. def

(31)

ioutil. c

P

0PUP.C

snnio.

c

smenu. c

edicion. c

Contiene la implaritacilón de las rutinas

iouti1.h

b&i-.- _. ~ d , r de eritra.da y salida. Incluye.

Contiene la implantacihn de

las

rutinas

b6sica; de manejo de ventanas. Incluye.

iouti1.h s crnio . h

Contiene

la.

implantacih de las rutinas

ioutil. h 5crnio.h

ha-'-. iiLas d e manejo de pantalla. Incluye

Contiene la implantación de las rutinas

básicas de manejo de mer&. Incluye.

iouti1.h scrni0.h 5rnenu.h

Contiene la implantación de

las

rutinas básicas de manejo de capturas. incluye.

iouti1.h

scrni0.h

edicion.h

Chitime la implantaciíiri de las rutinas

basicas de manejo de paana.s

.-

de captura. Incluye :

iouti1.h

scrnio . h

(32)

str1st.c Contiene la implantación de las rutinas basilcas de manejo del tda lista de cadena

1nc:liiye :

str1rt.h

A continuación

se

muestra ellistado completo de las

(33)

/c m g t o - c t e i

Censtantes p a r a l a cornunicacion can e l pciei.to par.aie!n + ; ~

# d e f i n e LFT1 c i

! #define LPT2 1

¡ #dkfine ENVIa-FTO C)

i # d e f i n e INI-PTD t

!

,

(34)

t y p e d e f S t t - ' . t C t

float x, y, d r i l l ;

3 hoyo;

.

,

(35)
(36)
(37)
(38)
(39)
(40)

/*********R..**:.***************.****.**~**~..~.i. *-4.i.**.*., ******.E.*

,

.- - .

pa$.?, 3 ; p a q u e t e de mnr,~.jo d r c&

***************************~***.*:*.CtX+.~-**** L . * * I C

(41)
(42)

~

, ,

í

I..**

...

!* I x. i.

Interfaz p a r a las rutinas de men#

. . .

typedE-f snum :simple, p u l l d o w n , submenu; menutype;

(43)
(44)
(45)
(46)
(47)
(48)
(49)
(50)

I

i n t membei-str-1st (chat- *s, s t r l i s t 5 t r 1 1 s t r l i s t * m l )

/*****I+*+t********X***************************************************~** I

****+

.*

...

D e t z t m i i i a 51. una c a d e n a p e t - t e n e c e u no a l i s t a

i n t j:

cjtrelew I?;

e. data.=s;

j=l;

*m 1 =5 t r 1 .- :. h n

.

f i rs t ;

w h i l e í * m l ! = N U L L )

i f < C ~ R B t -s I. ein i i +:I 1 .'. ...-.'..dn

.

e 1 em. e ? : t-.etur;n j ;

j i; -i +*,n ). :j = i * m i .-

.

ne:: t ;

3

r e t CI 1.1'1 ::> ;

i 3

l i l t d & l s . t i l S t < ; n t p r s%t*l't5t s t V 1 )

. . .

. . . E l i m i n a una c a d e n a de l a p o s i c i " n e s p e c i f i c a d a d e n t r o de l a l i s t a

.?

s t r l i 5 t t l ? t l . 2 ; in ,C ,j :

i.f ( a t i 1 = = r . ~ u ~ ~ j !-e~-~gp-:-, p;

e l s e .:

i f ( (p:i.O) Z& (p:;=~trl->hn.numelernl j

i f (st t-1->hn. n&nelem==l)

.:

d e l s t r e l e m i s t r l - : h n . f i r ~ . t - > d n . e l e m ) ; f r e e í í c h a r * ) s t i 1 -?hn I f i r5 t ? ;

st I* 1 -?hn

.

.f i rs t=NULL ; stt-l-:-hn. l a s t = N U L L ; 3

else

i f ( p = = i )

t 1 =s t t- 1 -:?hn. f i rst -)dn. ne:.: t ;

d e 1 e t re1 em ( st r 1 ->hn. f i t-st.-:.:-dn. e 1 em) ;

f r-ee i i c h a r.* > s t r- 1 ->hn

.

f i PS t j ;

t; p.. :L .- ". .... hn. f i rst=.t 1; 3

e l s e

i f íp==si:rl.-

(51)

i n t m e m b e t * s t r l a t ( c h a r * e , 5 t r l i s t stt.1, s t r i i s t * m l )

. . .

*****

****-c.’* ***..>c*.I.+.*.C* f**.**CI**+***************~***************************./

Dr+:?imiria S I uria c a d e n a p e r t e n e c e o n o a l i s t a

r

i n t j ;

streíem e ;

e . d a t a = s ;

j = l ;

*ml=stt-l->hn. f i r s t ; w h i l e ( * m l ! = N U L L )

.:

i f <, 1 ní, ri .t :-el. em í ! i m 1 !.

J * .~ ;

d n . e l e r n , e Y rciturn j :

: .*,n i 1 = *,TI i ; - .::4n. ne?: t ;

ret u t’n O j i

I

i n t & 3 ~ ; i $ ; . ~ . ~ ~ p, s t i - l i s t -L-. =,$,I 1 )

/***.*II*Y****+*****X**~***********************.****************************

. . .

Eliinina una c a d e n a d e l a p o 5 i c i ” n e s p e c i f i c a d a d e n t r o d e l a l i s t a

-i

d e 1 s t re 1 em í s t r 1

-

> hn

.

f i rs t -? dn

.

e 1 em ) ;

free í f c h a r * : 5 t e - 1 -.:.hn I f i rs t ; s t r l - . * . h n . f i r s t = N U L L ;

st r 1 -;.hn. 1 as t =NULL;

3 @ i S E

‘i

i f ( p = = l :

t 1 =s t r 1

-

::.hn

.

f i rs t -*.dn. ne>: t ;

d e l s t r e l e m i s t r l - > h n . f i r s t - : > d n . e l e m ) ; f í r e e í ( c h a r * i s t r l - > . h n . f i r s t : ;

sti.-:.-:>hn. fir.st=tl;

fnr-:j=2, t l = s t r l - > h n . f i t - á t : js:p: :.t.t, tl=tl--::.dn.nei:t:; d e 15 t re lem I t, 1 --::.dn

.

n e :x t -+drb. e 1 em; j

f ree í i char-* ) t 1 -.:,dn

.

ne :.: t i ; t!.-:,drt. next=NULL;

5 t r 1 - :> h n

.

1 a 5 t = t 1 ;

. - . . . . ~ ,.--. .

(52)

A c ~ ~ q i 3 uric1 cacle .:a si f i n a l d e una l i s t a d e c a d e n a s

*******.s*******+s,+s*******************************************************,'

c

,

. - , s t r 1 is t t 1 ;

1

strelem e;

i f ( + s t t - 1 = = w L L ) 1 1

ma.:len,e. l e n i ;

r-, t I T , 5 5 : t. 1. !. = h a , ' a ; i n t d l . , i n t k ~ y , i n t p , á t P 1 i s t ; *st,-1)

/ * * * * * , + * * * * * * * * * . ~ - * * * * * * * * * * * * * ~ * . ~ * * * * * . * S * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * . ~

I n s e r t a una c a d e n a y una l l a v e en i a l 1 5 t ñ d e c a d e n a s en una p o s i t i"n e s p e c i f i c a d a

...

s t t - 1 i s t t 1 , t 12:

i n : j ;

s t ~ e l e m e;

i f ( p < l ) r e t u r n O;

i f í*s t r l==NULL)

L

i f ( ! m a k e s t r l s t ( l t l ) ) r e t u r n O;

i f i ! a p p e n d s t r . l s t i s , d l k e y , & t l ) ) r e t u r n O; *st r i=t i ;

>

else

i f i p:::' í *st r-1) ->hn

.

nume .:

i f í ! a p p e n d s t r l s t ( i , d 3

else

f

em i

, k e y , s t r I ) > r e t u r n O;

128305

a = m a k e s t r e l e m ( s , 3 l , k e y ) ; i f í ! m a k e s t r n o d e ( e , & t l ) ) ;

i * s t r 1 ) -> h n

.

ma;.: 1 en=MAX ( i f.5.t i" 1 i .-I> hr,

.

ma;.: 1 e n , e. 1 en > ;

i f ( p = = l >

.t 1--, dn

.

- n e x t = (*st r 1 > -::: h n

.

f i ;-.st ;

i *5t r 1 ) -::*hn. f i rst=t 1 ;

(53)

- .

b

/ X f i 1: t i 8 i t t It X X 1; '!

F-0PuP.C !

H w r r u i e n t a e para crear ventanas popup

' I t ~ t 1 C * l t 8 i t 8 ~ & l ( i I i & t 8 S 8 t t t 8 t S & L ~ 8 t t t 8 8 8 t 8 8 8 t 8 8 k 8 t 8 8 8 8 L 8 8 I 8 I ; t l I $ 8 8 t 8 8 / '

lud. (rtdáefi. h>

nclude <alloc.h>

hc lude *ser ni o. h"

n c l ude "i out i 1. h I'

efine MIN-W-WT 3

efine HIN-W-HT 3 ef ine W X - W - W T 80 efine MAX-W-HT 25 efine CENTER-W -1 efino CilRñENT-bi -2

tr bare-window=NüLL; tr active-window=NULL;

(54)

p t r teripi

f <brre,wlndow-NUU) r e t u r n O;

81s. if (activo-window ! - base-window)

{

temp-acti ve-window;

selectwindow (base-wi ndow) ;

p u t s t r a t r a b s ( 0 , 24, '"I

,

base-wi ndow- : . w n i j a t r , €30) :

se1 e c t w i ndow (temp) ;

3

e l s e putstratrabsCO, 24, "I'

,

base-window-iwndatr, 861 ;

e t u r n 1 ;

tStlll1 Funciones que el u s u a r i o puede i n v o c a r t:t1lttl21ltl1SXtl$l1~~~8/

.t

8 t t ~ t X l 8 t t L : 8 8 ~ ~ ~ t l ~ t ~ : t t ~ t t 8 l t 8 t ~ ~ l 8 8 t t t 8 i 8 t t $ ~ t t : l t t 8 t ~ l l $ : t 8 t : k ~ t l l t 8

& s i g n a v a l o r e s i n i c i a l e s a l a s v a r i a b l e s i n t e r n a s

E s t a f u n c i o n e s crean una ventana por omisi+?, "Base windaw", que r w p r o o o n t a t o d a l a p a n t a l l a .

Debe i n v o c a r s e antes d e c u a l q u i e r o t r a de e s t e paquete

i n i t w i :id¿cis <

.

-I 6 :

: t t t t t L : i L : f t % 8 t t t t ~ t t t t l t * * t t i t X t * S l t t t t t ~ L : f ~ L : L : 8 t t t L : t i 8 ~ t ~ t i ~ $ 8 t t ~ t t $ t ~ ~ k , '

ong vp;

fp = i e t s c r p t r ( - l ) ;

f (!make_window-node(kba%e-window) 1 r e t u r r ? O;

sase-wi ndow-.-

base-wi ndow-:jyh=27;

; a s ~ . . . w i ~ I ~ o < H - 'I:<* =Q7:

)ase-window-;.%save =where:cabsi) ;

) r s e - w i ndow- )ysave r w h s w a b s ( ) ;

jtrcpy <base-window->nar, UBi.%O Window") i

/.--ni ndow->wtype -psuodo;

tare-window-iwndatr ~ % ~ r e ~ L b a s e ~ w i n d o w - > y % a v e I tbase-windou- > x r a v e J . a t t r ;

irmm-wi n d o w - >f 1 d a t r

-

1 12 1

!are-window->brdatr =baSa_wi ndow->wndatr ; k s e - w i n d o w - X i t a t r =1121

lase-wi ndow- >prmptatr = 15; lase-wi ndow->box t y p e =O;

i t k t o p =base-window;

i c t i ve-window *base-window;

If (vp~aOxb66üL)

, a 5 e _ w : r e l o v l ~ - . : y x . i 2 --I ;

def c o l o r 5 = nonoco¡ws; e r r c o l o r s = i n v c o l o r s ; w r r i c o l o r s = i n v c d o r s ; msgcalors = i n v c o l o r s ;

' e t u r n 1;

it p0pupwlridowii<i: x 5 i i i t y j i r : t w i 7 ink. ¡it, L L t r 3n, Z I - . ~ ~ biindutwti.pi .NL*

: t l 8 i t ~ t ~ t t t t ~ t 8 ~ 8 8 ~ t 1 ~ t 1 t l 8 t ~ t t t ~ 1 ~ t ~ L : 8 ~ t $ ~ t L 1 ~ ~ t l ~ t t ~ t $ t t t X ~ : l 1 l l S t ~ t ~ t ~

Crea una vantandi x columna y r r n p l d n i wd aricho ht rituri.i; In nombre w t t i p o , Lcp a t r i b u t o s de color twnd a p u n t a d w 51 la verttarld creada

v a l o r e s e s p e c i a l e s p a r a l o s argumentos " - I r.rnc.-* 1 , .m,e.c%.e= n.. 1 a<,-..--+*,.

,.

(55)

a .ctu.l x

y -2 usa l a coordenada a c t u a l y

8 8 t 8 8 8 8 8 & l & 8 8 8 8 8 8 8 8 8 S t t t S * S t t t t t * S t t t l t r ~ & 8 8 8 l & ~ 8 8 8 8 8 8 8 8 8 8 & ~ 8 8 8 8 8 8 8 8 8 8 8 ~

wtr w i

i n t 1 , >(wow, y w o w l t e x e l p t r t p ;

t e x e l t i

i f ( ! p u s h - w i n d o w - n o d e ( & w ) ) r e t u r n O;

i f (wd:MIN-W-WT) wd=MIN-W-WT;

i f ( h t (MIN-W-HT 1 h t = M I N - W - H T 3 i f (wd>MAX-W-WT) wd=MAX-W-WTI

i f (ht>PIAX-W-HT) ht=MAX-W-HT;

W->XW = w d i

w->yh l h t i

if (x==CENTER-W) x = (MAX-W-WT-wd) 1 2 ;

e i s s i f (x==CUkWENT-Wi

.:

1

i f ( w t != v t p t i : < = w h e r e x a b s ! ! ; Pise ::=where>: (!;

i f ( w t = = v t p t ) %+=act i v e - w i n d o w - > x u l + l i

i f (v==CENTER-W) y=(MfAX-bJ-HT-ht) 12;

c l 5 e 1 f (v-=CURRENT_bi!

1 f (wt ! = v t p t J y s w h e r e y a b s < ) ; oi 5e y = w h c r e y ( ) ;

3

i f ( w t = = v t p t ) y+=act i v e - w i n d o w - > y u l +I ;

i f ( : : * : O ) x=O;

i f <y,:ci;, ,y=<!;

l f ( w t ' = v t p t l

i:

i f í(x+Wd-1)>79) x e - w d i

i i ííy+ht-i) >24) y m 2 S - h t i >

i f ( W t - v t p t )

C

w - h a r r = x l

i f t w d > w - > r i r r i w->xu1 = w - i x a r r ; el se H- > x u l = w - . > x a r r - w d + l ; i f <ht*2>=y)

<

w - > a r r o w b u f f COI. a t t r = c p - > . ~ c d a t . ? r IZB:

w - > a r r o w b u f f t ü 3 . c h = O x l e i

w - > a r r o w b u f f t i 1 . a t t r = c p - > w n d a t r c i 2 6 ; w->rrroubuff t l 3 . c h = O x b 3 ;

w - > y u l = y+31 w - > y a r r = y+1;

3.

el 5e

c

w - > a r r o w b u f f C O I . a t t r = c p - 'wndatrcl25;

w - ) a r r o w l u f f COI. ch K k b 3 ;

w - s a r r o > , ú u f f C 1 3 . a t t r = c p - i w r : & k r +I-;;

w.- ? a r r - c w b L i f f i i 2. ct: 'w;: I f ;

w-; y u l =w- > y a r r - h t ;

3 :

L.,.. :,.ar;- y - : ;

>

else C w - > x u l = x ; w-;, ,,.

#*-\ld*.,m~*Ll+ 9

1 I

(56)

I

. .-.

it r mvwÍ ndow (Wt r Iw>

r88t888t8$8~$8~8t)Y8~~~888P*IPt8Lt8Mt~$t88I8t$88tl:$~l:Il*l8~888~88St8Lt8t&8/

w t r q, prevwi

. n t b w n p a p p d , n l , m2, nU, m41

f ttw==NULL) r e t u r n O; )revw= (&h)->prev; ~eenpopped=ü;

jo<.

i t 8 8 8 8 ~ ~ M 8 8 O l $ 8 t 8 ~ ~ f 8 t t t t * S t t & t 8 M t 8 8 8 t 8 l 8 8 l 8 8 8 8 8 8 8 8 ~ l I ~ 8 8 8 ~ 8 8 8 8 l ~ 8 l

Elimíma una vonkana y todhr i*r que se mtwmtran oncima di o l l a

i f ( s t k t o p - > w t y p r - = v t p t ) s w a p - ~ r r ~ ~ ( s t k t o p ) ; ~wapvra~n<otktiop, s t k t o p - > p i c p t r 1 t

q=st k t o p ;

i f ( q = * p r e v w ) beenpopped=l; s t k t o p s s t ktop- >under ;

l f ( q = = s w )

d i spose-wi ndow-node ( & q ) ; tceai,;

e l s e d i spose-window-nods . ? . J J ; > W h i l e ( 1 ) :

s t k top- ,over=NULL;

i f (brrnpopped I w l r c twr ndow ( s t k t o p ) ; el se sei ectwr ndow (pr evw) ;

r e t u r n 1 ;

. .~

(57)

f (w==NULL) r e t u r n 0 ;

tcti v e - w i n d o w - ~ x s a v e - w h e r e x O ; icti ve-window->yaave=wherey ( ) ;

iul=w->xul ; tul =w->yul1

:w=w->x w ; /h-;w->yh;

w i n d o w ( x u l + i , y U l + l , xul+xw-2, yul+yh-2) i

?1 se

i f (yh==3)

C

u i n d o w ( x u l + l . vul+l. uul+xw-2, yul+yh-1) I

2 1 se

I

_ i

i

w i n d o w í x u l , y u l , xul+xw-1, y u l + y h ) i 3

: t e x t c o l o r (u->wndatr i ;

~ c t o x y ( w - h s a v e , w - i y s a v e ) ; icti ve-wi ndowrw;

- e t u r n I :

(58)

n t b t , u , y ;

f ( a i <.tt r=&;

el yc at.tr-=w->brdatr- j

f ibaxt.ype) bt=boxtypel

# s e bt.=w->boxtypo$

f ( t a l t ; i t . t r = t a ;

el r e ?.it !~ r,:::iw >t i t a t r i

o x ( w - : : . . u:, ,.r-'xy.~i, E ~ ' - ~ ~ ~ , w->yh, b t , a t t r ) ;

enters; I- . x u i , w . - . . , , ~ l , w->xul+w->xw-l, w->yul, w->name, t a t t r j i

wprr ci

q= i w p ' , r malloctrizeuf (window-packet));

i f tq=:::NULLi r e t u r n O ?

t w - 4 :

q.- ;. 1 ~I : t - = : l . L i - :

q-:PvL"-=! I L L :

return 1 .

. .

(59)

or < i = C i ; ( í < = l ) ; i + + )

t=&mcr een Ew->yarr+L 3 t w - > w u r 3 ; tmp98t ;

S t : = w - - : a r r o w b u f f t i 3; w- >arrowbuf f t i I-tmp;

l i d uwapvramíwptr w, t e x e l p t r b )

: t t t : ~ t C l t k t r ~ t t t X \ 8 t ~ : : t 8 k t t 8 8 ~ t ~ k t ~ t ~ 8 ~ ~ 8 8 8 8 ~ 8 8 t ~ 8 8 8 : 8 8 t t ~ $ 8 8 8 8 8 8 8 8 8 8 1

1 n : e r c : m r b i a la imagen de v i d e o de la ventana con a1 imagen d e t r a s .

da l a ventana

: 8 8 t ~ t ~ t t ~ 8 S t t t 8 t 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 k 8 8 8 8 8 8 8 8 8 ~ ~ 8 8 8 8 8 ~ 8 8 8 8 ~ 8 8 8 8 8 ~ ~ 8 8 8 8 8 8 8 8 8 8 /

:exe'.ptr t p ;

'kit. : .

.I.

:í-. . ?; : : s t a r t . y c i t a r t ;

.f ( ! ~ - > w t y p e ! = psuedoj

.

..

. I

. 2 ..: ,

..

-,

..

>:?=i.J-% L i l + w - > x w-1: .. ~ . = . J , . , . d.

,

+.; . v , . k - i ;

.: 1: :~-'..>-' . . _ : I * y s t w t : : w - i y u l ;

i f (Iw-:.boxtype)

c . . xs.:art.++; ys:a-t.++; y2-3 .. - , .. ..&

,

:.

f u r í y = ; y s t a r t ; y . = , , - ; y t t J

c

for í x : = x s t a r t

,

t p = & < r c r n n C y l t x r t a r t 3 : x < =xZ; x++) c

tp*Phtp ;

t'tp+i-=8b;

8tr ++et p2 : >

3 i

(60)

:aid c : i q i i i.5t imencidesc .*.sin) ;

v o i d c i s p b a i i i n t a t t r , menudesc *sm!;

vcjid n:eni..s:.ze:int nc, i n t n r , i n t h i e . s t r l i s t sl, c h a r *t, senudesc *sm, i n t *wd);

- + - . t i ; 3 v.-.^.; L.ir. - . ,,~m;:hat--(menctclesc *sir' ; ' C ,

!? t c t i r

s t a t i i s t a t i c s t a t i c s t a t i c s t a t i c s t a t i c s t a t i c s t a t i c

s t a t i c stat:[ .- , a i i c r;.tatic s t a t i c

5: *

<.,!. .. l,.i..i..- Cmeniide~,: * 5 m ) :

ir! :.r coi;; % i i i t colnci, menudesc *.smi i

i n t b a r l m x i i n t i , menudesc +sin) ;

i n t b a r l o c y í i n t i , menudesc *sm);

v ~ ~ i d a d j s i z r ( m e n u d e s c *sm, i n t nc, i n t n r ) ; v c 8 i d a d j i ( m r n u d e s c *sm, i n t *i);

v o i d homebarimenudesc *sm); v o i d endbarinenud.esc +sm) ; v o i d pgupbar(menudesc * s m ) ; v c 8 i d pydnbar (menudesc +sm) ; ' v c : i G upbat- Inenudesc *sin> ; ',+!::. ;ci i.c?~r!barimeniidess *+m) ;

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de