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 ALGO22: 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,DONDE30: 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,A39: 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 PUERTAS43: 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 048: CALL APAGAR
49: 50: SUBE: CALL SUBIR
51: CALL RETRASO
52: DJNZ SUBE53: 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 059: 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,ABRE468: CALL CERRAR
69: IN A,(PA)
70: BIT 5,A 71: JP Z,LAZO0272: CALL APAGAR
73: 74: LAZO10: CALL BAJAR
75: CALL RETRASO
76: DJNZ LAZO1077: CALL APAGAR
78: ABRE2: CALL ABRIR
79: IN A,(PA)
80: BIT 4,A 81: JP Z,ABRE282: CALL APAGAR
83: JP ESPERAR 84: 85: ABRE3: CALL ABRIR
86: IN A,(PA)
87: BIT 4,A 88: JP Z,ABRE389: CALL APAGAR
90: CALL RETRASO
91: JP LAZO01 92: 93: ABRE4: CALL ABRIR
94: IN A,(PA)
95: BIT 4,A 96: JP Z,ABRE497: 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