Este proyecto se trata de una alarma temporizada, utilizando
el microprocesador Z-80 de Zilog.
El funcionamiento del circuito
es muy sencillo. El conteo del tiempo se visualiza en los cuatro displays (minutos y segundos) en forma ascendente
hasta el límite elegido previamente en el software. Al llegar el conteo a su valor
máximo, se envía un pulso bajo al puerto PA0, el cual activará al driver
de un relé en modo NA.
Entonces se cierra el circuito de la bateria en serie con la bocina,
la cual sonará por 7 segundos, para luego iniciar de nuevo el ciclo. También se puede reiniciar el
ciclo utilizando el pulsador del circuito RESET.
ORG 0000H LD A,80H OUT (03H),A LD BC,0000H LD A,01H OUT (00H),A SALTO: LD A,C ADD A,01H DAA LD C,A LD A,B ADC A,00H DAA LD B,A LD D,0CH ST1: LD E,FFH ST2: LD A,C AND 0FH OR E0H OUT (01H),A LD A,C RLCA RLCA RLCA RLCA AND 0FH OR D0H OUT (01H),A LD A,C CP 60H JP NZ,CONT1 CALL CERAR1 CONT1: LD A,B AND 0FH OR B0H OUT (01H),A LD A,B RLCA RLCA RLCA RLCA AND 0FH OR 70H OUT (01H),A LD A,B CP 40H JP NZ,CONT2 CALL CERAR2 JP SALTO CONT2: DEC E LD H,00H LD H,00H JP NZ,ST2 DEC D LD H,00H JP NZ,ST1 JP SALTO CERAR1: LD C,00H LD A,B ADD A,01H DAA LD B,A RET CERAR2: LD B,00H LD C,00H CALL BOCINA RET BOCINA: LD A,00H OUT (00H),A LD A,06H ST5: LD H,CFH ST4: LD L,FFH ST3: DEC L JP NZ,ST3 DEC H JP NZ,ST4 DEC A JP NZ,ST5 LD A,01H OUT (00H),A RET END
Como verán es muy fácil modificar el programa para cambiar los
límites del conteo, así como la duración del timbre, pues todos estos tiempos
están establecidos mediante software timers.
MUY RARO:
Si es que te diste cuenta al ver los diagramas circuitales, ¡NO UTILIZAMOS RAM SIENDO QUE EL PROGRAMA
ESTA LLENO DE SALTOS!. Este circuito no debería funcionar (contar) sin una RAM, sin embargo (y por error
lo probamos sin RAM) nos funcionó a nosotros. Este es un gran misterio, todavía
no pudimos encontrar una respuesta. Parece ser que nuestro microprocesador era raro... :) Será un caso único?
Si tienes alguna idea de explicar ésto escríbeme aquí