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)