DTMF kontrol programı picbasic

Başlatan hkalaycioglu, 23 Mart 2010, 20:31:58

hkalaycioglu

iyi aksamlar ben bir program yazmaya calıstım kac gundur  kafayı yedım ısın ıcınden cıkamadım programın amacı dtmf kod cozucuden portb3 portb2 portb1 portb0 uclarına gelen * (yıldız) tusuna basıldıgında portb nın 4 unu aktıf edecek ve aynı zamanda portb nın 0 ından bır ton sesı uretecek ve # (kare) tusuna basıldıgında hem portb nın 4 unu hemde porta nın sıfırından gelen tonu kesecek bır program yazmam lazım bır turlu beceremedım program asağıda oldugu gıbıdır

TRISB = %00001111                                   
TRISA = %00000
B0 VAR BYTE
SAYI var byte
 
GEL: 
   SAYI=0
   SAYI.0=PORTB.3
   SAYI.1=PORTB.2
   SAYI.2=PORTB.1
   SAYI.3=PORTB.0
iF SAYI=11 OR B0=01 THEN AC
IF SAYI=12 THEN KAPAT
IF SAYI!=11 OR SAYI!=12 THEN GEL
GOTO GEL

AC:
IF SAYI=12 THEN KAPAT

write 00,1
pause 100
HIGH PORTB.4
gosub ses

GOTO GEL

KAPAT:
LOW PORTB.4
wRITE 00,0
pause 100
goto gel

ses:
sound PORTA.0,[100,10,50,10]
IF SAYI!=11 THEN AC
IF SAYI=12 THEN KAPAT
return



yardımcı olacak arkadaslara sımdıden tesekkur ederım  ıyı aksamlar       

Ruzgarbey

TRISB = %00001111                                   
TRISA = %00000
B0 VAR BYTE
SAYI var byte

GEL: 
READ 0,B0
   SAYI=0
   SAYI.0=PORTB.3
   SAYI.1=PORTB.2
   SAYI.2=PORTB.1
   SAYI.3=PORTB.0
IF SAYI=11 AND B0=0 THEN
write 0,1
PAUSEUS 100
HIGH PORTB.4
gosub ses
END IF

IF SAYI=12 AND B0=1 THEN
LOW PORTB.4
WRITE 0,0
PAUSEUS 100
ENDIF
GOTO GEL

ses:
sound PORTB.0,[100,10,50,10]
return


yazdıklarından anladığım kadarı ile en basit bu şekilde oluyor.eğer sistem açık olduğunda yani dtmf den alınan sayı * iken ve portb.4 high iken portb.0 dan devamlı ses göndermek istiyorsan GEL etiketinin sonunda bulunan goto Gel komutundan önce IF B0=1 Then Gosub ses    komutu ilave edersin.saygılarımla kolay gelsin..
Hayatta En Hakiki Mürşid İlimdir. M.K. ATATÜRK

hkalaycioglu

#2
ruzgarbey cevabınız ıcın tesekkur ederım verdıgınız kod guzel bır sekılde calısıyor yalnız sound kısmına portanın sıfırı yazılacagına portb nın sıfırı yazılmıs onun harıcınde guzel calısıyor

Ruzgarbey

Alıntı yapılan: hkalaycioglu - 25 Mart 2010, 16:44:57
ruzgarbey cevabınız ıcın tesekkur ederım verdıgınız kod guzel bır sekılde calısıyor yalnız sound kısmına portanın sıfırı yazılacagına portb nın sıfırı yazılmıs onun harıcınde guzel calısıyor
tekrar merhaba.sorunuzun açıklama bölümünde portb.0 dan soun almak istediğinizi yazdığınız için bende o şekilde yapmıştım.siz kendinize göre düzenleyebilirsiniz.kodun işe yaramasına sevindim.kolay gelsin..
Hayatta En Hakiki Mürşid İlimdir. M.K. ATATÜRK