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,149
Mesajlar
915,477
Kullanıcılar
449,891
Son üye
Ercan29

Yeni konular

Geri
Üst