Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

PIC16F876A PORTA sorunu

Başlatan kralsam, 25 Temmuz 2013, 12:31:57

kralsam

Selamlar,

Arkadaşlar pic16f876a nın A portunu çıkış kullanmaya çalışıyorum ama nedense bir türlü olmuyor. Asıl amacım 12 butondan hangisine basıldığını displayde gösterme işlemi. C portunun yarısını giriş yarısını çıkış kullanmamada izin verilmiyor.

Bu sorun neden kaynaklanabilir. Bu arada ADC kapalı.

setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   
   set_tris_b(0xFF);
   set_tris_c(0x0F);
   set_tris_a(0x00);
 
   
   
   output_a(0x00);
   output_c(0x00);
   
   
   
   
   c=0;
   
   while(TRUE)
   {
      
      c = input_c()&0x0F;
      c = c<<8;
      c = c|input_b();
     

      if(c_tmp !=c)   
         switch(c)
         {
            case 0x0001:
              
               output_a(0x11);
              
            break;
            case 0x0002:
              
               output_a(0x12);
              
            break;
            case 0x0004:
               
               output_a(0x13);
               
            break;
            case 0x0008:
              
               output_a(0x14);
               
            break;
            case 0x0010:
              
               output_a(0x15);
               
            break;
            case 0x0020:
               
               output_a(0x16);
               
            break;
            case 0x0040:
              
                 Output_a(0x17);
               
            break;
            case 0x0080:
               
               output_a(0x18);
              
            break;
            case 0x0100:
              
               output_a(0x19);
              
            break;
            case 0x0200:
              
               output_a(0x30);
            
            break;
            case 0x0400:
              
               output_a(0x31);
             
            break;
            case 0x0800:
               
               output_a(0x32);
              
            break;
            case 0x1000:
              
               output_a(0x33);
               
            break;
            default:
               output_a(0x10);
            break;
         }
         

     c_tmp = c;
     c = 0;
   }

RaMu

ccs c de output_c(x0x00) fonksiyonu kullandığında c portunu tamamen çıkış yapıp port_c ye 00 değerini yükler.
Aynı şekilde input fonksiyonuda tüm portu giriş yapar.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

kralsam

a portu neden çalışmıyor peki?

sadogan

#USE FAST_IO (A) yapmış olabilirmisin.
portun girişmi çıkışmı olacağını kullanıcıya bırakıyor.
input ve output yaperken ilgili tristen öncelikle yönlendirme yapılması gerekiyor.
yada #use standard_io(A) eklerseniz ccs kendisi yönlendirme yapıyor
port daha yavaş çalışıyor.

kralsam

Hocam artık programlayıcıdan şüphe ettim. Programı siliyorum. İçinde hala eski program var. Programlayıcı aldıracağım yarına. Bu arada istanbulda orjinal microchip programlayıcı satan bir yer var mı?

kralsam

Arkadaşlar sorun programlayıcıdan çıktı.(Brenner8) Ayrıca devreyi toplatmak için verdiğim kişi bağlantılarda kısa devre yapmış.
Sorun çözüldü.
Yorumlarınız için teşekkürler.

İyi çalışmalar.