Pic ile DTMF kontrol

ercanatnr

Üye
Katılım
19 Ara 2010
Mesajlar
290
Puanları
1
Merhaba başlıkta da belirttiğim gibi pic ile DTMF kontrol devresi yapmaya çalışıyorum. Aşağıdaki kodlar ile

1 Nolu tuşa basınca 1.Röle Çekiyor.
2 Nolu tuşa basınca 1.Röle Bırakıyor.

3 Nolu tuşa basınca 2.Röle Çekiyor
4 Nolu tuşa basınca 2.Röle Bırakıyor.

Bahsettiğim kodlar aşağıda (tek buton ile komut verilen)
Kod:
#include <16F628A.h>

#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(int=4000000)

#int_EXT
void EXT_isr(void)
{
if(input(pin_b1)==1 && input(pin_b2)==0 && input(pin_b3)==0 && input(pin_b4)==0)
{
output_high(pin_a0);
}
if(input(pin_b1)==0 && input(pin_b2)==1 && input(pin_b3)==0 && input(pin_b4)==0)
{
output_low(pin_a0);
}
if(input(pin_b1)==1 && input(pin_b2)==1 && input(pin_b3)==0 && input(pin_b4)==0)
{
output_high(pin_a1);
}
if(input(pin_b1)==0 && input(pin_b2)==0 && input(pin_b3)==1 && input(pin_b4)==0)
{
output_low(pin_a1);
}
}


void main() {
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
setup_oscillator(OSC_4MHZ);

while(TRUE){
//TODO: User Code
}

}

Bu kodlarda herhangi bir sıkıntım yok. Ancak benim yapmak istediğim devre şu şekilde çalışmalı mesela röleleri 2 tuşla kontrol etmeliyim.
ÖRN:

*1 ile 1. röle çeksin
#1ile 1. röle bıraksın

Bunu yapmak istedim ancak yapamadım. Pice gelen bu 2 bilgiyi nasıl okumalıyım. Aklıma if içine başka bir if fonksiyonu açmak geldi ama sağlıksız olur gibime geldi yardımcı olursanız sevinirim.
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,849
Son üye
cagan20

Yeni konular

Çevrimiçi üyeler

Geri
Üst