;PROGRAMMA IN ASSEMBLER 51 DI IK1WJQ DEL 2/10/2001
      ;AT89C2051 CONTROLLORE FILTRO UNIVERSALE PROGRAMMABILE LMF90
  
         DTL0  EQU     16

               ORG     0000H
                       AJMP INI

               ORG     000BH             ;INT T0
                       MOV TL0,DTL0
                       MOV TH0,#255
                       CPL P3.7          ;CLOCK LMF90
                       RETI

               ORG     001BH             ;INT T1
                       RETI

               INI:    NOP
                       MOV P3,#01111110B ;MODO P.B. MANUALE
                       MOV P1,#255
                       MOV SP,#99
                       MOV PSW,#0        ;BANCO 0
                       MOV TMOD,#17      ;T0 T1 16 BIT
                       MOV ACC,#40       ;FILTRO SU 670 HZ 
                       CPL A
                       MOV DTL0,ACC
                       SETB ET0          ;INT T0 PRIORITA'
                       SETB PT0
                       SETB TR0          ;ATTIVA T0
                       SETB EA
                       ACALL RIT1
               MAPB:   MOV P3,#01111110B ;PASSA BANDA
                       AJMP CONT         ;RELE' ATTRATTO
               MAN:    MOV P3,#01011010B ;NOTCH
               CONT:   ACALL RIT1        ;RELE' CADUTO
                       JNB P1.2,MAPB     ;MAN. PASSA BANDA
                       JNB P1.4,AUTOM    ;AUTOMATICO
                       JNB P1.5,RCONT    ;SET 560 HZ PB
                       JNB P1.3,MAN      ;MAN. NOTCH
                       JNB P1.6,ARTM     ;PIU RITARDO   - F
                       JNB P1.7,ARTP     ;MENO RITARDO  + F
                       AJMP CONT

               RCONT:  MOV DTL0,#205     ;560 HZ
                       ACALL RIT1
                       ACALL RIT1
                       AJMP MAPB

              ARTP:    ACALL RITP        ;AUSILIARI
                       AJMP CONT
              ARTM:    ACALL RITM
                       AJMP CONT

              AUTOM:   MOV P3,#01100101B ;PB +F -F AUTOM
                       ACALL PIU         ;LAMPEGGIO LED + E -
                       ACALL MENO
                       JNB P1.7,AUTP     ;PARTE DA FREQ. ALTA
                       JNB P1.6,AUTM     ;PARTE DA FREQ. BASSA
                       JNB P1.2,MAPB     ;MANUALE PB
                       JNB P1.3,MAN      ;NOTCH
                       JNB P1.5,RCONT    ;560 HZ
                       AJMP AUTOM

               AUTP:   MOV DTL0,#252     ;PARTE 3 KHZ
                       CLR P3.4          ;ACCESO -F
                       SETB P3.3         ;SPENTO +F
               RIC:    JNB P1.5,RCONT    ;560 HZ
                       DEC DTL0          ;- FREQ.
                       ACALL RITX        ;1 MSEC
                       MOV ACC,DTL0
                       CJNE A,#160,RIC1
                       AJMP AUTM         ;CHIAMA RICERCA INVERSA
              RIC1:    JNB P3.6,RIC
                       ACALL RIT         ;160 MICROSEC RITARDO
                       JNB P3.6,RIC
                       CLR P3.3          ;ACCESO +F  TROVATO
               AUTX:   ACALL RITX        ;FERMO ATTESA COMANDI
                       JNB P1.7,AUTP     ;+ F   RIPARTE AUTOM.
                       JNB P1.6,AUTM     ;- F
                       JNB P1.2,MAPB     ;MANUALE PB
                       JNB P1.3,MAN      ;NOTCH
                       JNB P1.5,RCONT    ;560 HZ
                       AJMP AUTX

               AUTM:   MOV DTL0,#159     ;PARTE 330 HZ
                       CLR P3.3          ;ACCESO +F
                       SETB P3.4         ;SPENTO -F
                RIC2:  JNB P1.5,RCONT    ;560 HZ
                       INC DTL0          ;+ FREQ.
                       ACALL RITX        ;1 MSEC
                       MOV ACC,DTL0
                       CJNE A,#251,RIC3
                       AJMP AUTP
                RIC3:  JNB P3.6,RIC2
                       ACALL RIT         ;160 uSEC RITARDO
                       JNB P3.6,RIC2
                       CLR P3.4          ;ACCENDE -F TROVATO
                AUMX:  ACALL RITX
                       JNB P1.7,AUTP     ;RIPARTE + FREQ
                       JNB P1.6,AUTM     ; - FREQ.
                       JNB P1.2,AMAP     ;MANUALE PB
                       JNB P1.3,AMAN     ;NOTCH
                       JNB P1.5,ACONT    ;560 HZ
                       AJMP AUMX

              ACONT:   AJMP RCONT
              AMAP:    AJMP MAPB         ;SALTI AUSILIARI
              AMAN:    AJMP MAN

              RIT0:    PUSH ACC          ;RITARDO 1 M.SEC
                       MOV ACC,#249      ;24 MHZ QUARZO
               PAU:    NOP               ;N2 = 24.88 MHZ
                       NOP
                       NOP
                       NOP
                       NOP
                       NOP
                       DJNZ ACC,PAU
                       POP ACC
                       RET

               RIT:    PUSH ACC          ;RITARDO 160 uSEC
                       MOV ACC,#40
                       AJMP PAU

              RITX:    PUSH B            ;RITARDO < 1 MSEC
                       MOV B,#1
                       AJMP PAU0

               PIU:    CLR P3.3          ;ACCENDE + FREQ.
                       ACALL RIT1
                       SETB P3.3         ;SPEGNE LED
               RIT1:   PUSH B            ;0,08 SEC
                       MOV B,#80
               PAU0:   ACALL RIT0
                       DJNZ B,PAU0
                       POP B
                       RET

               MENO:   CLR P3.4          ;ACCENDE - FREQ.
                       ACALL RIT1
                       SETB P3.4         ;SPEGNE LED
                       AJMP RIT1

               RITP:   INC DTL0          ;MENO RITARDO
                       ACALL MENO        ;IMPULSO LED
                       JB P1.6,REGP      ;+ FREQ.
                       INC DTL0
                       INC DTL0          ;+ 3 TL0
               REGP:   MOV ACC,DTL0      ;CONTROLLO LIMITE
                       CLR C
                       SUBB A,#10        ;SE E' > 255
                       JC REGS
                       CLR C
                       MOV ACC,DTL0
                       SUBB A,#252
                       JC REGX
                REGS:  MOV DTL0,#251
                REGX:  RET

                RITM:  DEC DTL0          ;PIU' RITARDO
                       ACALL PIU         ;IMPULSO LED
                       JB P1.7,REGM      ;- FREQ.
                       DEC DTL0
                       DEC DTL0          ;- 3 TL0
                REGM:  MOV ACC,DTL0      ;CONTROLLO LIMITE
                       CLR C
                       SUBB A,#160
                       JNC REGX
                       MOV DTL0,#159
                       RET

                       END

Vai a pagina1