;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