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