Çıkışımı Lojik 0 yapamıyorum Lojik 1 de kalıyor

musti463

Üye
Katılım
9 Şub 2008
Mesajlar
105
Puanları
1
Merhaba,bir devre üzerinde uğraşmaktayım devreyi proteusta sorunsuz bir şekilde kurdum ve çalıştırdım fakat gerçeğe dökünce bi sorun oluştu pic16f675 in a2 pinini verdiğim komutla lojik1 yaptırdıktan sonra aynı pini lojik0 yap komutu gönderdiğimde lojik0 olmuyor, lojik1 de kalıyor fakat proteusta böyle bir sorunum olmamıştı sebebini bilen arkadaşlarımız cevaplarsa sevinirim
 
Merhaba
16F675'in Data bilgilerine ulaşamadım.PORTA,2 pininin özelliklerine bakmanız lazım.Yazılıma da bir göz atmak gerekir.Not asm ile yazılmışsa yardımcı olmaya çalışırım.
 
Kod:
#include <12f675.h>


#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOPUT,NOCPD


#use fast_io(p)


int A,B,C,D,sayac;




void main()
{


setup_timer_1(T1_DISABLED);


setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);




set_tris_p(0b000011);


output_p(0);


for(;;)
{


enbas:


A=input(pin_a0);
B=input(pin_a1);


///////////////////////GİRİŞ////////////////////////


if(A==1 && B==0)
{
C++;
for(;;)
{


A=input(pin_a0);
B=input(pin_a1);


if(A==1&&B==1)
{goto aa;}




}




aa:




if(A==1 && B==1)
{
C++;
for(;;)
{


A=input(pin_a0);
B=input(pin_a1);


if(A==0&&B==1)
{goto bb;}




}




bb:




if(A==0&&B==1)
{
C++;


for(;;)
{


A=input(pin_a0);
B=input(pin_a1);


if(A==0&&B==0)
{goto cc;}


}






cc:




if(C==3)
{
sayac++;
C=0;
}


if(sayac>0)
{
output_high(pin_a2);
goto enbas;
}
}
}
}








///////////////////////////////////////ÇIKIŞ/////////////////////////////






if(A==0 && B==1)
{
D++;
for(;;)
{


A=input(pin_a0);
B=input(pin_a1);


if(A==1&&B==1)
{goto dd;}




}




dd:




if(A==1 && B==1)
{
D++;
for(;;)
{


A=input(pin_a0);
B=input(pin_a1);


if(A==1&&B==0)
{goto ee;}




}




ee:




if(A==1&&B==0)
{
D++;


for(;;)
{


A=input(pin_a0);
B=input(pin_a1);


if(A==0&&B==0)
{goto ff;}


}






ff:




if(D==3)
{
sayac--;
D=0;
}


if(sayac==0)
{
output_low(pin_a2);
goto enbas;
}




}


}}














}}


buda 16f675 datasheet http://akizukidenshi.com/download/PIC12F675.pdf
 
//set_tris_p(0b000011);


//output_p(0);


dostum,buradaki "p" leri yanlış mı yazdın yoksa programındada bu şekilde mi? ve output komutunun parantez içinin de hex yada binary olduğunu belirtmen gerekmezmi?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…