AT89C2051 - Generatore di Ultrasuoni programmabile Nota: Collegare le uscite A e B con due resistenze da 5 - 10 Kohm ai + 5V, nel caso si volesse pilotare le basi di due normali transistor (NPN) bipolari. ;IK1WJQ Assembler 51 - AT89C2051 GENERATORE DI ULTRASUONI ;USCITE P3.0, P3.1 E P1.0 - P1.7 COMANDO 10 LED ;USCITE P3.4, P3.5 FREQUENZA (20 - 40) KHZ IN CONTROFASE ;INGRESSO P3.7 PULSANTE GENERATORE PASSO PASSO ;INGRESSO P3.2, P3.3 COMMUTATORE 4 POSIZIONI ;PASSO SCANSIONE AUTOMATICA GENERATORE 1,3 KHZ ;COMPLETA SCANSIONE IN UN SECONDO DTL0 EQU 16 PUL EQU P3.7 PEP EQU P3.2 CAS EQU P3.3 ORG 0000H AJMP INI ORG 000BH ;INT T0 XRL P3,#00110000B ;FREQ. 2 FASI RETI ORG 001BH ;INT T1 RETI INI: MOV P3,#11001111B MOV P1,#255 MOV SP,#99 MOV PSW,#0 ;BANCO 0 MOV TMOD,#18 ;T0 8 BIT AUTO T1 16 BIT SETB ET0 ;INT T0 PRIORITA' SETB PT0 ;ATTIVA INT. T0 MOV P1,#0 ;ACCENSIONE 10 LED ANL P3,#11111100B ACALL RIT1 ;RIT 0,66 SEC MOV P1,#255 ;SPEGNE 10 LED ORL P3,#3 MOV DTL0,#226 ;IMPOSTA 20 KHZ MOV TH0,DTL0 ;CARICA TH0 PER TL0 MOV P3,#11101111B ;PREPARA XOR USCITA SETB TR0 ;ATTIVA T0 SETB EA ;E INT GENERALE LED: CLR P3.1 ;LED1 ACALL FTX SETB P3.1 CLR P3.0 ;LED2 ACALL FTX SETB P3.0 CLR P1.7 ;LED3 ACALL FTX SETB P1.7 CLR P1.6 ;LED4 ACALL FTX SETB P1.6 CLR P1.5 ;LED5 ACALL FTX SETB P1.5 CLR P1.4 ;LED6 ACALL FTX SETB P1.4 CLR P1.3 ;LED7 ACALL FTX SETB P1.3 CLR P1.2 ;LED8 ACALL FTX SETB P1.2 CLR P1.1 ;LED9 ACALL FTX SETB P1.1 CLR P1.0 ;LED10 ACALL FTX SETB P1.0 AJMP LED FTX: JNB PEP,APEP ;PASSO PASSO JNB CAS,CASO ;CASUALE PTX: ACALL RITX ;RIT PER 15 PASSI AL SEC INC DTL0 MOV TH0,DTL0 PUSH ACC MOV ACC,DTL0 CJNE A,#242,FFTX ;CONTROLLO FINE A 40 KHZ MOV DTL0,#226 ;RIPOSIZIONA 20 KHZ MOV TH0,DTL0 FFTX: POP ACC RET APEP: JNB CAS,AEP2 ;SALTA PASSO PASSO/2 AJMP MPEP AEP2: AJMP PEP2 CASO: MOV DPTR,#NRC ;DPTR PUNTA TABELLA CASUALE MOV R2,#144 ;CONTATORE NRC LNC: MOV DTL0,#226 CLR A MOVC A,@A+DPTR MOV R3,ACC ;SALVA DATO DPTR ADD A,DTL0 MOV TH0,ACC ;IMPOSTA T0 MOV ACC,R3 SWAP A ;PREPARA 10 LED CASUALI ORL A,R3 MOV P1,ACC ANL A,#00000011B ORL A,#11101100B MOV P3,ACC ACALL RITX ;RITARDO 66 MSEC INC DPTR DJNZ R2,LNC JB CAS,ALED AJMP CASO ALED: RET MPEP: ORL P3,#3 MOV P1,#254 ;LED 10 ACCESO ACALL RIT1 ACALL RIT1 ;RITARDO 1,3 SEC JB PUL,$ ;ASPETTA PULSANTE ACALL RITX ;PASSO PASSO JNB PUL,$ ORL P3,#3 ;SPEGNE LED ORL P1,#255 MOV R6,#8 ;NUMERO LED DI P1 MOV R5,#2 ;NUMERO DI PASSAGGI MOV DTL0,#226 MOV TH0,DTL0 LED1: CLR P3.1 ;LED1 JB PUL,$ ACALL RITX JNB PUL,$ ACALL PTX SETB P3.1 CLR P3.0 ;LED2 JB PUL,$ ACALL RITX JNB PUL,$ ACALL PTX SETB P3.0 MOV ACC,#127 FPAS: MOV P1,ACC ;8 LED RR A ;SPOSTA 1 BIT 8 VOLTE JB PUL,$ ACALL RITX JNB PUL,$ ACALL PTX DJNZ R6,FPAS MOV R6,#3 ;ULTIMI 3 PASSI DJNZ R5,LED1 SETB P1.5 CLR P1.4 ;ULTIMO LED JB PUL,$ ;ASPETTA PULSANTE ACALL RITX JNB PUL,$ ACALL RIT1 RET PEP2: ORL P3,#3 ;FREQUENZA / 2 MOV P1,#252 ;LED 9 E 10 ACCESI ACALL RIT1 ;0,6 SEC RITARDO JB PUL,$ ACALL RITX ACALL RITX JNB PUL,$ ORL P1,#255 MOV R6,#8 MOV R5,#2 MOV DTL0,#195 MOV TH0,DTL0 LE1: CLR P3.1 ;LED 1 JB PUL,$ ACALL RITX JNB PUL,$ ACALL PT2 SETB P3.1 CLR P3.0 ;LED 2 JB PUL,$ ACALL RITX JNB PUL,$ ACALL PT2 SETB P3.0 MOV ACC,#127 FPA2: MOV P1,ACC ;8 LED RR A JB PUL,$ ACALL RITX JNB PUL,$ ACALL PT2 DJNZ R6,FPA2 MOV R6,#3 ;ULTIMI 3 PASSI DJNZ R5,LE1 SETB P1.5 CLR P1.4 JB PUL,$ ;ULTIMO LED ACALL RITX JNB PUL,$ ACALL RIT1 RET PT2: ACALL RITX ACALL RITX ;16 PASSI INC DTL0 INC DTL0 MOV TH0,DTL0 PUSH ACC MOV ACC,DTL0 CJNE A,#227,FFT2 ;CONTROLLO SUPERAMENTO KHZ MOV DTL0,#195 ;POSIZIONA 10 KHZ MOV TH0,DTL0 FFT2: POP ACC RET RIT0: PUSH ACC ;RITARDO 1 M.SEC MOV ACC,#245 ;14,7456 MHZ QUARZO PAU: NOP NOP NOP DJNZ ACC,PAU POP ACC RET RITX: PUSH B ;RITARDO 66 MSEC MOV B,#66 PAUX: ACALL RIT0 DJNZ B,PAUX POP B RET RIT1: MOV R7,#10 ;RITARDO 0,66 SEC PAU2: ACALL RITX DJNZ R7,PAU2 RET NRC: DB 0,3,5,15,12,8,13,6,1,9,11,10,4,2,7,14 ;9 X 16 DB 1,4,6,0,13,9,14,7,2,10,12,11,5,3,8,15 ;= 144 DB 2,5,7,1,14,10,15,8,3,11,13,12,6,4,9,0 DB 3,6,8,2,15,11,0,9,4,12,14,13,7,5,10,1 DB 4,7,9,3,0,12,1,10,5,13,15,14,8,6,11,2 DB 6,9,11,5,2,14,3,12,7,15,1,0,10,8,13,4 DB 9,12,14,8,5,2,6,15,10,2,4,3,13,11,0,7 DB 13,0,2,12,9,5,10,3,14,6,15,7,1,8,4,11 DB 8,11,13,7,4,0,5,14,9,1,10,2,12,3,15,6 END 73, Emilio - ik1wjq. (Vai a pagina1)