Picproje Elektronik Sitesi

DERLEYİCİLER => PICBasic => Konuyu başlatan: ercanatnr - 02 Ağustos 2015, 14:25:21

Başlık: Telefonla Uzaktan Kontrol
Gönderen: ercanatnr - 02 Ağustos 2015, 14:25:21
Merhaba arkadaşlar,
Bir forumda telefon ile uzaktan kontrol devresi buldum. Tam ihtiyaç duyduğum devreydi ancak bazı yerlerini değiştirmem gerekiyordu. Mesela bu devredeki pic programında

#1 1.Röle Çeker
*1 1. Röle Bırakır

şeklinde devam ediyor. Benim yapmak istediğim #1 ile 1. röle çeksin 2-3 sn sonra bıraksın #2 ile 2. röle çeksin 2-3 sn sonra bıraksın şeklinde bir program istiyorum ancak bu programlama dilini bilmediğim için ilerleyemedim sizlerden yardım istiyorum. Kodlar aşağıda


@ DEVICE pic16F628A                                                   
@ DEVICE pic16F628A, WDT_OFF             
@ DEVICE pic16F628A, PWRT_ON
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT             
@ DEVICE pic16F628A, PROTECT_ON         
 
  TRISB=%11111111
  TRISA=%11110000
  PORTA=0
  PORTB=0           
  CMCON=7                                   '
  OPTION_REG.7=0
  STD var  PORTB.0    '1 STD  8870)TONE enable
  E1  var  PORTB.4    'Q1 du 8870
  E2  var  PORTB.3    'Q2 du 8870
  E3  var  PORTB.2    'Q3 du 8870
  E4  var  PORTB.1   'Q4 du 8870

  SIFRE_1 var  PORTA.0    '
  SIFRE_2 var  PORTA.1
  SIFRE_3 var  PORTA.2
  SIFRE_4 var  PORTA.3
 
  b1 VAR BYTE
  b2 VAR BYTE
  b3 VAR BYTE
  TEMP VAR BYTE
  b1=0
  b2=0
  b3=0
     
  c1  var BYTE   '1° code DTMF
  c2  var BYTE   '2° code DTMF
  c3  var BYTE   '3° code DTMF
  c4  var BYTE   '4° code DTMF
  Q1  var BIT
  Q2  var BIT
  Q3  var BIT
  Q4  var BIT
 
  READ 10,temp
  IF TEMP=10 THEN SIFRE_1=1
   IF TEMP=10 THEN SIFRE_2=1
    IF TEMP=10 THEN SIFRE_3=1
     IF TEMP=10 THEN SIFRE_4=1

BASLA:
DTMF1:   
            BUTTON STD,1,255,0,b1,1,DECODER1
            PAUSE 20
    BUTTON STD,0,255,0,b2,1,RAZ         
            GOTO DTMF1
DECODER1:
            Q1=E1
    Q2=E2
    Q3=E3
    Q4=E4
      c1 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4
            GOTO DTMF2
           
DTMF2:
            b3=0
            WHILE b3<75
    BUTTON STD,1,255,0,b1,1,DECODER2
            PAUSE 20
        b3=b3+1
            WEND
            GOTO DTMF1
DECODER2:
            Q1=E1
    Q2=E2
    Q3=E3
    Q4=E4
      c2 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4
            GOTO SIFRE
             
RAZ: 
 
        Q1=0
        Q2=0
    Q3=0
    Q4=0
            GOTO DTMF1
            END
SIFRE:
           PAUSE 10
         IF c1=12 AND c2=1 THEN   
           SIFRE_1=1
           WRITE 10,10:pause 10   
           ENDIF
           IF c1=11 AND c2=1 THEN   
           SIFRE_1=0
           WRITE 10,255:pause 10
           ENDIF    
       IF c1=12 AND c2=2 THEN   
           SIFRE_2=1
           WRITE 10,10:pause 10   
           ENDIF
           IF c1=11 AND c2=2 THEN   
           SIFRE_2=0
           WRITE 10,255:pause 10
           ENDIF    
           IF c1=12 AND c2=3 THEN   
           SIFRE_4=1
           WRITE 10,10:pause 10   
           ENDIF
           IF c1=11 AND c2=3 THEN   
           SIFRE_4=0
           WRITE 10,255:pause 10
           ENDIF    
           IF c1=12 AND c2=4 THEN   
           SIFRE_3=1
           WRITE 10,10:pause 10   
           ENDIF
           IF c1=11 AND c2=4 THEN   
           SIFRE_3=0
           WRITE 10,255:pause 10
           ENDIF
           IF c1=1 AND c2=1 THEN   
           SIFRE_1=1
           SIFRE_2=1
           SIFRE_3=1
           SIFRE_4=1
           WRITE 10,10:pause 10   
           ENDIF
           IF c1=3 AND c2=3 THEN   
           SIFRE_1=0
           SIFRE_2=0
           SIFRE_3=0
           SIFRE_4=0
           WRITE 10,255:pause 10
           ENDIF          
  c1=0
          c2=0
          c3=0
          c4=0
          GOTO DTMF1