;IK1WJQ PROGRAMMA IN ASSEMBLER Z8
    ;TIM.ASM  Z86E04/8 , PROGRAMMA OROLOGIO CONTA TEMPO PER MEDICINE
    ;PORTE: INGRESSO P31 N.A. - USCITA P00 LED VERDE (FACOLTATIVO)
    ;P02 CICALINO  - QUARZO 2 MHZ
    ;NOTA: ALL'ACCENSIONE RICHIEDE SOLO L'IMPOSTAZIONE DELL'ORA
    ;NEL PROGRAMMA MEMORIZZATE ORE 8,15 E 20
           

         MED1   EQU  16       ;NR TRE VOLTE
         MED2   EQU  17       ;MEMORIA
         MED3   EQU  18
          ORA   EQU  R15      ;REGISTRI
          MIN   EQU  R14
          SEC   EQU  R13
          MSC   EQU  R12      ;MINI SEC

            ORG    000AH
            WORD   #OROL              ;SALTO IRQ5 = OROL

            ORG    000CH

                   LD P01M,#4         ;P0 USCENTE
                   CLR RP             ;R0-R3 COME P0-P3
                   CLR R0
                   LD SPL,#127
                   LD P3M,#1          ;P3 INGRESSO DIGITALE
                   LD P2M,#255        ;P2 INGRESSI
                   LD PRE1,#11001011B ;PRE1=50 CLOCK INTERNO,CONTINUO
                   LD T1,#250         ;2 MHZ / 8 X 50 X 250=100000
                   OR TMR,#0CH        ;CARICA E ABILITA T1
                   DI                 ;NO INT
                   OR IMR,#20H        ;ABILITA INT T1
                   LD R0,#1           ;PROVA LED E 2 BIP
                   CALL RIT1
                   CALL BIP
                   CLR R0             ;SPENTO  2 BIP
                   CALL BIP
                   LD MED1,#8         ;ORE X MEDICINE
                   LD MED2,#15
                   LD MED3,#20
            ASPX:  TM R3,#2           ;ASPETTA COLPO PULSANTE
                   CALL RIT
                   JR NZ,ASPX
             ASP:  LD R0,#1           ;COLPO LED
                   CALL RIT1
                   CLR R0
                   CLR ORA            ;IMPOSTA ORA OROLOGIO
             ASP1: LD R0,#1           ;COLPO LED
                   CALL RIT1
                   CLR R0
                   CALL BIP
                   INC ORA
                   CP ORA,#24
                   JR EQ,ASP
                   TM R3,#2
                   JR Z,ASP1
                   LD R0,#1           ;CHIUSURA IMPOSTAZIONE
                   CLR MIN
                   CLR SEC
                   EI                 ;PARTE OROLOGIO
                   CALL RIT1
            CONT:  CLR R0             ;CONTROLLO
                   NOP                ;RIDUZIONE CONSUMO
                   HALT               ;20 HZ QUARZO 2 MHZ
                   CP MIN,#1          ;PROSEGUE CON MIN=1
                   JR NE,CONT
                   CP ORA,MED1        ;1 MEDICINA
                   JR EQ,SEGN
                   CP ORA,MED2        ;SECONDA
                   JR EQ,SEGN
                   CP ORA,MED3        ;TERZA
                   JR EQ,SEGN
                   JR CONT

            SEGN:  LD R9,#36          ;MEZZO MINUTO ALL
            CBIP:  CP MIN,#1
                   JR NE,CONT         ;RITORNA CON MIN <> 1
                   CALL BIP
                   TM R3,#2           ;TEST STOP BIP
                   JR Z,SIL
                   DJNZ R9,CBIP
                   JR CONT
             SIL:  LD R0,#1           ;1 COLPO LED
                   CALL RIT1
                   CLR R0
                   LD R9,#220         ;ASPETTA 1 MIN
             CRIT: CALL RIT1          ;IN SILENZIO
                   DJNZ R9,CRIT
                   JR CONT
             BIP:  LD R0,#4           ;DURATA BIP CICALINO 0,52 SEC
                   CALL RIT1
                   CALL RIT1
                   LD R0,#0
                   CALL RIT1          ;SILENZIO 0,26 SEC
                   RET

             RIT1: LD R10,#170        ;170 X RIT = 0,26 SEC
             PAU1: CALL RIT
                   DJNZ R10,PAU1
                   RET

             RIT:  LD R11,#63         ;RITARDO 1,5 MSEC
              PAU: NOP
                   NOP
                   DJNZ R11,PAU
                   RET

            OROL:  INC MSC            ;INCREMENTO A 20 HZ
                   CP MSC,#20
                   JR NE,FINE
                   CLR MSC
                   INC SEC
                   TM R3,#2
                   JR Z,BIPX          ;CHIAMA BREVE BIP
             OROX: CP SEC,#60         ;CON PULSANTE PER 
                   JR NE,FINE         ;CONTROLLO FUNZIONAMENTO        
                   CLR SEC
                   INC MIN
                   CP MIN,#60
                   JR NE,FINE
                   CLR MIN
                   INC ORA
                   CP ORA,#24
                   JR NE,FINE
                   CLR ORA
            FINE:  IRET

            BIPX:  LD R0,#4           ;BREVE BIP OGNI SECONDO
                   CALL RIT
                   CLR R0
                   CALL RIT
                   JR OROX

                   END

(Vai a pagina1)