pic 16f84a program sorunu ?

cyberengr

Üye
Katılım
6 Kas 2008
Mesajlar
11
Puanları
1
Yaş
40
arkadaşlar 3gündür uğraşıyorum çıldırma aşamasına geldim lütfen yardım edin.
pic16f84a entegresiyle sitemizde bulunan pic öğreniyorum kitabını iyice anladıktan sonra çok basit olan portb yi çıkış olarak atayarak led yakmak istiyorum ama kitaptaki aynı kodu yazıp derleyip içine atmama rağmen b portunun hiçbir pininden sinyal alamıyorum aynı şeyi a içinde denedim olmadı. acaba pic mi bozuk diyorum ancak program atabiliyorum içine başarılı bi şekilde nerde hata yapıyorum bozuk olup olmadığını nasıl anlarım lütfen yardım edin
 
Moderatör tarafında düzenlendi:
pic'in çalısması ıcın gereklı uc adımı hıcbır zaman unutma.
1.)MCLR ucunu 330r ıle +5v a bagla.
2.)Beslemesini vermeyi unutma.:)
3.)Osilator devresını yapmayı unutma.

yazdıgın programda; portb yi cıkıs olarak tanımlamayı unutma.(Trisb=0)
olusturdugun hex kodu pic e yukle calısacaktır.Kolay gelsin
 
program kodları

LIST P=16F84A
PORTB EQU 0X06
STATUS EQU 0X03
START
BSF STATUS, 5
CLRF 0X86
BCF STATUS, 5
MOVLW 0X07
MOVWF PORTB
END
boşluklar var ancak burada koyamıyorum
 
Moderatör tarafında düzenlendi:
Ya onun yerine şu kodları yazsan daha kolaylaşır işin kütüphaneyi oluşturma ile:
LIST P=16F84A
INCLUDE "P16F84A.INC";bu equ tanımlamalarından seni kurtarır.
CLRF PORTB
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
MOVLW H'07'
DONGU
GOTO DONGU
END
;eğer devrede sıkıntı yaşıyosan bana mesaj et elimden geldiğince yardımcı olurum.
 
dostum entegren yanmışsa el yakacak derecede ısınır
breadboard üstüne kurmuşsan temas etmeme olasılığı vardır entegrenin sürekli reset atması gibi durumlar yaşanabiliyor
osilatör konfigrasyonunu ayarlamamış olabilirsin
verdiğin 5vu 7805 gibi tam regüleli bir kaynaktan alman gerekir
birde ıc progdaki ilk ayarlar var onunla ilgili ayarlar var bir kereye mahsus yapmak gerekiyor
benim öğrenirken başıma gelener bunlar inşallah çalıştırırsın devreyi bende öğreneli 6 ay filan oldu ama çok zevkli bir
kolay gelsin
 
az önce programı incelerken farkettim programında bekleme süreleri yok demek istediğim şu programda led yansın bir süre sonra sönsün istiyorsun fakat programda ledi yak dediğinde 10 mikrosaniye yanıyor çünkü program satırı ortalama 10 mikrosaniyede geçer gider ledi yakmak için mantık şu

ledi yak
bekle
ledi söndür bekle
başa dön

ZAMAN

MOVLW 0XFF ;W kaydedicisine heksadesimal FF değerini yükle

MOVWF SAY1 ;W kaydedicisindeki değeri SAY1'e yaz

TEKRAR1

MOVLW 0XFF ;W kaydedicisine heksadesimal FF değerini yükle

MOVWF SAY2 ;W kaydedicisindeki değeri SAY2'e yaz

TEKRAR2

DECFSZ SAY2,F ;SAY2'den 1 çıkar tekrar SAY2'ye kaydet. SAY2 sıfır mı?

GOTO TEKRAR2 ;HAYIR -TEKRAR2 etiketine git

DECFSZ SAY1,F ;EVET -SAY1'den 1 çıkar tekrar SAY1'ye kaydet. SAY1 sıfır mı?

GOTO TEKRAR1 ;HAYIR -TEKRAR1 etiketine git

RETURN ;Alt programı bitir

burada zaman isimli bir alt program oluşturulmuş write a bir rakam üklüyorsun sonra başka bir registera rakam yüklüyorsun birbirinden çıkarıp sıfır oldumu diye bakıyorsun sıfır olduğunda alt program sona eriyor piclerde durma komutu olmadığı için bu şekilde zaman kaybı yaratıoruz. tam programı bilerek vermedim çünkü ezberci mantık olur o zaman bu alt programı al ledini programda yaktıktan sonra programı bu alt programa gönder aynı işlemi ledi söndürdükten sonra da yap bu arada alt programa gitmek için kullandığımız komut call komutu senin programında led yanıyor fakat hemen sönüyor sen göremiyorsun

kolay gelsin
 
Merhaba arkadaşlar,

Pic16F84 için kitaplarda yer alan basit programlayıcı devresini yaptım.

Mpasm ile kitaptan aldığım kodları derledim.

PicUp ile veri göndermeye çalışıyorum fakat pic'le hiç bir etkileşim olmuyor.
Erase ve Programlarma girişimleri hata veriyor.

Pic16F84-A olduğu için mi acaba ?

yardım lütfen :)
 
picin çalışabilmesi için gerekli uygulamaları yap yukarıda yazılanlar üzerine bir pull up devreis 4 yani mcrl ye bağla sonra 4 mhz lik bir kristal osilatör kullanman gerekir ve birde tabi + ve - vermen gerekir
 

Forum istatistikleri

Konular
129,880
Mesajlar
931,002
Kullanıcılar
452,759
Son üye
imot

Yeni konular

Çevrimiçi üyeler

Geri
Üst