;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
');
//-->