viernes, 21 de mayo de 2010

Digitales II – Ascensor

Este es la aplicacion para un ascensor, creo que lo utilice para un proyecto del laboratorio de controles pero recuerdo.

   1:       DEFSEG absseg, START=0000H, ABSOLUTE


   2:       SEG absseg


   3:             


   4:          ORG 0000h


   5:          LD SP,3DFFH


   6:   


   7:          LD A,11001111B


   8:          OUT (CA),A


   9:   


  10:          LD A,0FFH


  11:          OUT (CA),A


  12:   


  13:          LD A,11001111B


  14:          OUT (CB),A


  15:          LD A,0


  16:          OUT (CB),A


  17:          


  18:          LD A,0


  19:          OUT (PB),A


  20:          LD IY,DONDE


  21:  ; AHORA SE VERIFICA SI SE PRESIONO ALGO


  22:  ESPERAR:        CALL RETRASO        


  23:          IN A,(PA)


  24:          AND 00000111B


  25:          CP 0


  26:          JP Z,ESPERAR


  27:  ; SE COMPARA CON CERO PORQUE ESO INDICA QUE NO SE PRESIONO NADA EN LA BOTONERA


  28:          DEC A


  29:          LD HL,DONDE


  30:          SUB (HL)


  31:          JP C,BAJA


  32:  ; SI HAY CARRY INDICA QUE EL ASCENSOR DE ENCUENTRA POR ENCIMA DE DONDE SE REALIZO LA LLAMADA


  33:          CP 0


  34:          JP Z,ESPERAR


  35:  ; EN ESTE CASO SE COMPARA CON CERO PORQUE ESO INDICA QUE SE PRESIONO EL BOTON DEL PISO DONDE


  36:  ; YA SE ENCUENTRA EL ASCENSOR, ES DECIR QUE NO TIENE QUE SUBIR NI BAJAR


  37:   


  38:          LD B,A


  39:  LAZO01:         IN A,(PA)


  40:          BIT 3,A


  41:          JP NZ,ABRE3


  42:  ; SI EL BIT 3 SE PONE EN 1 INDICA QUE ALGUIEN CRUZO LAS PUERTAS DEL ASCENSOR CUANDO SE ESTABAN CERRANDO LAS PUERTAS


  43:          CALL CERRAR


  44:          IN A,(PA)


  45:          BIT 5,A


  46:          JP Z,LAZO01


  47:  ; SE EJECUTA LA FUNCION CERRAR MIENTRAS QUE EL SENSOR DE CIERRE (BIT 5) DE PUERTAS SEA 0


  48:          CALL APAGAR


  49:      


  50:  SUBE:                   CALL SUBIR


  51:          CALL RETRASO


  52:          DJNZ SUBE


  53:          CALL APAGAR


  54:  ABRE:                   CALL ABRIR


  55:          IN A,(PA)


  56:          BIT 4,A


  57:          JP Z,ABRE


  58:  ; SE EJECUTA LA FUNCION ABRIR MIENTRAS QUE EL SENSOR DE APERTURA( BIT 4) DE PUERTAS SEA 0


  59:          CALL APAGAR


  60:          JP ESPERAR


  61:   


  62:  BAJA:                   NEG


  63:          LD B,A


  64:   


  65:  LAZO02:         IN A,(PA)


  66:          BIT 3,A


  67:          JP NZ,ABRE4


  68:          CALL CERRAR


  69:          IN A,(PA)


  70:          BIT 5,A


  71:          JP Z,LAZO02


  72:          CALL APAGAR


  73:   


  74:  LAZO10:                 CALL BAJAR


  75:          CALL RETRASO


  76:          DJNZ LAZO10


  77:          CALL APAGAR


  78:  ABRE2:                  CALL ABRIR


  79:          IN A,(PA)


  80:          BIT 4,A


  81:          JP Z,ABRE2


  82:          CALL APAGAR


  83:          JP ESPERAR


  84:   


  85:  ABRE3:          CALL ABRIR


  86:          IN A,(PA)


  87:          BIT 4,A


  88:          JP Z,ABRE3


  89:          CALL APAGAR


  90:          CALL RETRASO


  91:          JP LAZO01


  92:   


  93:  ABRE4:          CALL ABRIR


  94:          IN A,(PA)


  95:          BIT 4,A


  96:          JP Z,ABRE4


  97:          CALL APAGAR


  98:          CALL RETRASO


  99:          JP LAZO02


 100:      


 101:  ABRIR:                  LD HL,PUERTOB


 102:          LD A,(HL)


 103:          SET 6,A


 104:          RES 5,A


 105:          LD (HL),A


 106:          OUT (PB),A


 107:          RET


 108:   


 109:  CERRAR:         LD HL,PUERTOB   


 110:          LD A,(HL)


 111:          SET 5,A


 112:          RES 6,A


 113:          LD (HL),A


 114:          OUT (PB),A


 115:          RET             


 116:   


 117:  APAGAR:         LD HL,PUERTOB


 118:          LD A,(HL)


 119:          RES 6,A


 120:          RES 5,A


 121:          RES 4,A


 122:          RES 3,A


 123:          LD (HL),A


 124:          OUT (PB),A


 125:          RET


 126:   


 127:  SUBIR:          LD HL,PUERTOB


 128:          INC (HL)


 129:          LD A,(HL)


 130:          SET 4,A


 131:          RES 3,A


 132:          LD (HL),A


 133:          OUT (PB),A


 134:          INC (IY)


 135:          RET


 136:   


 137:  BAJAR:          LD HL,PUERTOB


 138:          DEC (HL)


 139:          LD A,(HL)


 140:          SET 3,A


 141:          RES 4,A


 142:          LD (HL),A


 143:          OUT (PB),A


 144:          DEC (IY)


 145:          RET


 146:   


 147:  RETRASO:        PUSH BC


 148:          PUSH AF


 149:          LD B,50


 150:          LD C,0


 151:  RETRA:          LD A,3


 152:          ADD C


 153:          LD C,A


 154:          DJNZ RETRA


 155:          POP AF


 156:          POP BC


 157:          RET


 158:          


 159:   


 160:          ORG 500H


 161:   


 162:  PA              EQU 04H


 163:  PB              EQU 05H


 164:  CA              EQU 06H


 165:  CB              EQU 07H


 166:  PUERTOB         DB 0


 167:  DONDE           DB 0


 168:   


 169:          END


No hay comentarios:

Publicar un comentario