viernes, 21 de mayo de 2010

Digitales II – Prof. Ochoa

El enunciado de este programa era para llevar el crono de una competencia en una piscina, se usa interrupciones de puerto  y CTC

   1:          ORG 2000H


   2:          LD SP,3DFFH


   3:          LD A,11001111B ; modo tres 


   4:          OUT (CA),A


   5:          LD A,0FFH; todas entradas


   6:          OUT (CA),A


   7:  ERROR:        IN A,(DA)


   8:          CP 0FFH


   9:          JP NZ,ERROR


  10:          LD A,0FFH ; vector de interrupcion


  11:          OUT (CA),A


  12:          LD A,10000111B ; PALABRA DE CONTROL DE INTERRUPCIONES DEL PUERTO


  13:          OUT (CA),A


  14:   


  15:          ; CONFIGURANDO LOS CTC


  16:          LD A,8


  17:          OUT (00H),A


  18:          LD A,10101111B


  19:          OUT (00H),A


  20:          LD A,10101111B


  21:          OUT (01H),A


  22:          LD A,10101111B


  23:          OUT (02H),A


  24:          LD A,10101111B


  25:          OUT (03H),A


  26:          ; CONFIGURO EL SISTEMA


  27:          LD A,26H


  28:          LD I,A


  29:          IM 2


  30:  ESPERAR:    EI


  31:          HALT


  32:          JR ESPERAR


  33:          


  34:          ORG 2700H


  35:  LAZO01:        IN A,(DA)


  36:          BIT 7,A


  37:          JP Z,CARRIL4


  38:          BIT 6,A


  39:          JP Z,CARRIL3


  40:          BIT 5,A


  41:          JP Z,CARRIL2


  42:          BIT 4,A


  43:          JP Z,CARRIL1


  44:          BIT 3,A


  45:          JP Z,FCARRIL4


  46:          BIT 2,A


  47:          JP Z,FCARRIL3


  48:          BIT 1,A


  49:          JP Z,FCARRIL2


  50:          LD A,10101111B


  51:          OUT (03H),A


  52:          RETI                


  53:          


  54:  CARRIL4:    LD A,69


  55:          OUT (00H),A


  56:          LD IY,RELOJ00


  57:          LD (IY),0


  58:          LD (IY+1),0


  59:          LD (IY+2),0


  60:          JP VOLVER


  61:  CARRIL3:    LD A,69


  62:          OUT (01H),A


  63:          LD IY,RELOJ01


  64:          LD (IY),0


  65:          LD (IY+1),0


  66:          LD (IY+2),0


  67:          JP VOLVER


  68:   


  69:  CARRIL2:    LD A,69


  70:          OUT (02H),A


  71:          LD IY,RELOJ02


  72:          LD (IY),0


  73:          LD (IY+1),0


  74:          LD (IY+2),0


  75:          JP VOLVER


  76:  CARRIL1:    LD A,69


  77:          OUT (03H),A


  78:          LD IY,RELOJ03


  79:          LD (IY),0


  80:          LD (IY+1),0


  81:          LD (IY+2),0


  82:          JP VOLVER


  83:  FCARRIL3:    LD A,10101111B


  84:          OUT (01H),A


  85:          JP VOLVER


  86:  FCARRIL4:    LD A,10101111B


  87:          OUT (00H),A


  88:          JP VOLVER


  89:  FCARRIL2:    LD A,10101111B


  90:          OUT (02H),A        


  91:  VOLVER:        RETI


  92:   


  93:          ORG 2800H


  94:          PUSH IY


  95:          PUSH IX


  96:          LD IX,RELOJ4


  97:          LD IY,RELOJ00


  98:          CALL RELOJ


  99:          CALL TRANS


 100:          POP IX


 101:          POP IY


 102:          RETI


 103:   


 104:          ORG 3000H


 105:          PUSH IY


 106:          PUSH IX


 107:          LD IX,RELOJ3


 108:          LD IY,RELOJ01


 109:          CALL RELOJ


 110:          CALL TRANS


 111:          POP IX


 112:          POP IY


 113:          RETI


 114:   


 115:          ORG 3200H


 116:          PUSH IY


 117:          PUSH IX


 118:          LD IX,RELOJ2


 119:          LD IY,RELOJ02


 120:          CALL RELOJ


 121:          CALL TRANS


 122:          POP IX


 123:          POP IY


 124:          RETI


 125:   


 126:          ORG 3400H


 127:          PUSH IY


 128:          PUSH IX


 129:          LD IX,RELOJ1


 130:          LD IY,RELOJ03


 131:          CALL RELOJ


 132:          CALL TRANS


 133:          POP IX


 134:          POP IY


 135:          RETI


 136:   


 137:  RELOJ:        INC (IY+2)


 138:          LD A,(IY+2)


 139:          CALL CHECK


 140:          LD (IY+2),A


 141:          CP 0A0H


 142:          JP NC,MINUTO


 143:          JP AQUI


 144:  MINUTO:        LD (IY+2),0


 145:          INC (IY+1)


 146:          LD A,(IY+1)


 147:          CALL CHECK


 148:          LD (IY+1),A


 149:          CP 60H


 150:          JP NC,HORA


 151:          JP AQUI


 152:  HORA:        LD (IY+1),0


 153:          INC (IY)


 154:          LD A,(IY)


 155:          CALL CHECK


 156:          LD (IY),A


 157:          CP 60H


 158:          JP C,AQUI


 159:          LD (IY),1


 160:          JP AQUI


 161:  CHECK:        CP 0AH


 162:          CALL Z,SUMA


 163:          CP 1AH


 164:          CALL Z,SUMA


 165:          CP 2AH


 166:          CALL Z,SUMA


 167:          CP 3AH


 168:          CALL Z,SUMA


 169:          CP 4AH


 170:          CALL Z,SUMA


 171:          CP 5AH


 172:          CALL Z,SUMA


 173:          CP 6AH


 174:          CALL Z,SUMA


 175:          CP 7AH


 176:          CALL Z,SUMA


 177:          CP 8AH


 178:          CALL Z,SUMA


 179:          CP 9AH


 180:          CALL Z,SUMA


 181:          RET


 182:  SUMA:        ADD 6


 183:  AQUI:        RET


 184:   


 185:  TRANS:        


 186:          LD C,(IY+2)


 187:          LD A,C


 188:          AND 0FH


 189:          OR 30H


 190:          LD (IX+7),A


 191:          LD A,C


 192:          RLCA


 193:          RLCA


 194:          RLCA


 195:          RLCA


 196:          AND 0FH


 197:          OR 30H


 198:          LD (IX+6),A


 199:   


 200:          LD C,(IY+1)


 201:          LD A,C


 202:          AND 0FH


 203:          OR 30H


 204:          LD (IX+4),A


 205:          LD A,C


 206:          RLCA


 207:          RLCA


 208:          RLCA


 209:          RLCA


 210:          AND 0FH


 211:          OR 30H


 212:          LD (IX+3),A


 213:   


 214:          LD C,(IY+0)


 215:          LD A,C


 216:          AND 0FH


 217:          OR 30H


 218:          LD (IX+1),A


 219:          LD A,C


 220:          RLCA


 221:          RLCA


 222:          RLCA


 223:          RLCA


 224:          AND 0FH


 225:          OR 30H


 226:          LD (IX+0),A


 227:          RET


 228:          


 229:          ORG 2500H


 230:  RELOJ1        DB "00:00:00"


 231:  RELOJ2        DB "00:00:00"


 232:  RELOJ3        DB "00:00:00"


 233:  RELOJ4        DB "00:00:00"


 234:  RELOJ00        DB 0,0,0


 235:  RELOJ01        DB 0,0,0


 236:  RELOJ02        DB 0,0,0


 237:  RELOJ03        DB 0,0,0


 238:  CA        EQU 06H


 239:  DA        EQU 04H


 240:   


 241:          ORG 2600H


 242:          DW 2700H,0,0,0


 243:          DW 2800H,3000H,3200H,3400H


 244:          END


 245:  ;LAB. DE DIGITALES II


No hay comentarios:

Publicar un comentario