16f877a çalışmıyor

Başlatan hasankomur, 03 Ağustos 2012, 15:52:24

hasankomur

Hayırlı günler;

Elimde 16f877a pic var. Birkaç proje yaptım çalıştı. Fakat şimdi içine attığım hiç bir  program çalışmıyor. Programlayıcıya ilk taktığımda programlayıcı 16f84, yeniden tanıma işlemi yaptığımda ise 16f877a olarak görüyor. Sizce pic yanmış mıdır ? Daha önce 16f877a yakmıştım. :) Programlayıcı görmüyordu onu, bunu görüyor.

serhat1990

İçine hex atabiliyormusunuz . ?
Eğer atabiliyorsanız pic'in io portlarında bir sorun oluşmuş olabilir. Bunu söylerken donanımlarınızda veya yazılımınızda sıkıntı olabileceği ihtimalini düşünmedim. Çünkü program devre şeması vs yok.

hasankomur

Evet hex atabiliyorum.

en basitinden

#include <16f877a.h>
#fuses xt,noput,nowdt,noprotect,nodebug,nowrt,nocpd,nolvp,nobrownout
#use delay(clock=4000000)
#use fast_io(a)

void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   
   set_tris_a(0x00);
   output_a(0);
   
   while(1){
   output_high(pin_a0);
   }
}

serhat1990

Programında bir sıkıntı gözükmüyor. Kullanmak istediğin io pinlerinde daha önceden bir hasar oluşmuş olabilir. Yada osilatör kısmında bir hatan olabilir. Devre şeması ekleyebilirmisin.

hasankomur

Devre şemasını şuan ekleyemem ama kısaca anlatayım. Pic 'in 1. pinine 10k ,11. ve 32. pinine +5V ,12. ve 31. pini şase, 13-14 4Mhz osilatör 22pf ile

serhat1990

Söylediğin bilgilere istinaden bağlantında bir sıkıntı gözükmüyor.  Dediğim gibi io portlarında yada osilatör sinyal ile ilgili bir problem olabilir. İyi çalışmalar.

hasankomur

Yardımınız için teşekkürler.

elbinaz

#7
Bende de böyle bir sorun var .ilk anda çalışıyor sonra susuyor .(pwm üretmiyor) neden olabilir?
mcrl (1. pindeki) c kaldırdım yalnız o yok.
sanırım buldum 11 32 c yanlış

serhat1990

Devre şeman tam olarak belli olmuyor. Kondansatörden dolayı böyle yapacağını düşünmüyorum . Başka birşey olabilir. Kod ve devre şemasını koyarsan daha iyi yardımcı olabiliriz.

elbinaz

#9
Kod normal pwm başka bir şey yok ama yine koyalım devrede nasıl gözükmez

// program osiloskopta çalıştı brennerla attım
#include <16F877A.h>
#device ADC=10
#use delay(clock=20000000)
#fuses NOWDT, NOPROTECT, NODEBUG, NOBROWNOUT, HS
#use fast_io(C)
#use fast_io(A)
#include <stdlib.h>
#define use_portb_lcd TRUE  //B YE BAĞLI LCD
#include <lcd.c>
//float feedback,error,pre_error,integral,derivative; 
//float control,setpoint,Kp,Ki,Kd,P,I,D,dt;
//int count;
void main()
{
  setup_psp(PSP_DISABLED);                 // Configre for PWM mode
  setup_timer_1(T1_DISABLED);                 // Configre for PWM mode
  setup_adc_ports(NO_ANALOGS);               //analog giriş yok
  setup_CCP1(CCP_PWM);                 // Configre for PWM mode
  setup_timer_2(T2_DIV_BY_4,24,1);   // prescale=16, PR2=255, postscale=1
  set_pwm1_duty(16);                  // - 50 khz yaptım
 
 
  set_tris_a(0b00011111);              // RA0 -> RA4 as input
  set_tris_c(0x00);                    // Port C as output
 
  while(1)
  {
}
}


baktınız mı?
brenner da bunu veriyor pici yaktım herhalde bu devrede /yakmamışım
# this PIC-ID 0x0000 is not in database
şimdi program attım ama pwm yine sıfır
devre de grnd hatası var gördüm halledecez