avatar_PayasLiqenc31

16F628A program çalışmıyor lütfen yardım?

Başlatan PayasLiqenc31, 29 Temmuz 2017, 19:16:29

PayasLiqenc31

Selamün aleyküm öncelikle...

16F628A ile bir program yazdım fakat bi türlü istediğim gibi çalıştıramadım. Genel olarak anlatayım.

Portb'nin 1.bitine 5v gelince portb'nin 2.biti çıkış verecek ve 5sn beklemeden sonra portb'nin 3.biti çıkış verecek. Ve en son portb'nin 4.bitine 5v gelince portb'nin 3.biti çıkış vermeyi kesecek. En son kapatma komutu verince yani portb'nin 1.bitine verdiğim 5v kesince kontağı yani portb'nin 2.biti çıkışı kapatacak. Programı kullanım amacım ise şöyle;

Bu devreyi motosikletim için yapacağım. Ben komut verince kontak açılacak 5 sonra marşa basılacak ve motosiklet şarj etmeye başlayınca marşa basmayı bırakacak. Devre bu şekilde ama ne yaptıysam çalıştıramadım. Devrede dahili osilatör kullandım ve devreyi kurdum. Ben komut verince kontak açılıyor fakat marşa basılmıyor. Marş pininde çok düşük bir gerilim görüyorum(0.11v gibi). Baskı devrede herhangi bir sorun yok. Devrede röleler kullandım ve npn transistörlerle sürdüm. Sorunu bulamadım lütfen yardımcı olun, program da burada;

   LIST       P=16F628A
   INCLUDE      "P16F628A.INC"

__CONFIG   _INTOSC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _CP_OFF

   SAYAC1      EQU      H'21'
   SAYAC2      EQU      H'22'
   SAYAC3      EQU      H'23'
   BSF      STATUS,5
   MOVLW      b'00010010'
   MOVWF      TRISB
   BCF      STATUS,5
   CLRF      PORTB
   CLRW
KOMUT
   BTFSS      PORTB,1
   GOTO      KOMUT
KONTAKVEMARS
   BSF      PORTB,2
   CALL      GECIKME
   BSF      PORTB,3
   GOTO      SARJ
SARJ
   BTFSS      PORTB,4
   GOTO      SARJ
   BCF      PORTB,3
KONTROL
   BTFSC      PORTB,1
   GOTO      KONTROL
   BCF      PORTB,2
   GOTO      KOMUT
GECIKME
   MOVLW      H'20'
   MOVWF      SAYAC1
DONGU1
   MOVLW      H'20'
   MOVLW      SAYAC2
DONGU2
   MOVLW      H'20'
   MOVWF      SAYAC3
DONDUR
   DECFSZ      SAYAC3
   GOTO      DONDUR
   DECFSZ      SAYAC2
   GOTO      DONGU2
   DECFSZ      SAYAC1
   GOTO      DONGU1
   RETURN      
   END

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

Programda da sorun gözükmüyor. Marş ın çektiği akım ölçü lmeli ona uygun bir röle takılmalı. Besleme aynı zamanda marşı besleyen hattan alınmamalı. Çünki marş asıldığı zaman muhtemelen pic reset atıyor. Daha az akım çeken bir elemanla deneme yapılmalı.
Ete

PayasLiqenc31

Alıntı yapılan: mehmet - 30 Temmuz 2017, 01:54:09
ASM ile yapılması mecburi mi?
ASM ile yapılması zorunlu değil lakin bize lisede bu asm işkencesini öğrettiler ve şuan diğer dilleri öğrenmeye pek vaktim yok maalesef. Öğrenciyim ve devreyi tamamlamam gerekiyor. Eğer birisi diğer herhangi bir dille aynen bu şekilde programı yazıp kodları ve derlediği hex'i bana verirse çok minnettar olurum, çok duamı alır. Lütfen yardımcı olun :( :( :(

PayasLiqenc31

Alıntı yapılan: ete - 30 Temmuz 2017, 12:01:46
Programda da sorun gözükmüyor. Marş ın çektiği akım ölçü lmeli ona uygun bir röle takılmalı. Besleme aynı zamanda marşı besleyen hattan alınmamalı. Çünki marş asıldığı zaman muhtemelen pic reset atıyor. Daha az akım çeken bir elemanla deneme yapılmalı.
Ete
Hocam rölelerin hepsi 12v ile çalışıyor. bütün hepsinin +12si direk beslemeye bağlı ve şaseleri transistörlere bağlı. devrede toplam 5 tane aynından röle var ve bunlarda sıkıntı yok. Ayrıyeten zaten röleleri motosiklete bağlamadan deneme yapıyorum, daha bağlamadım yani. Rölenin marşa asılıp asılmaması pıc'i etkilemez diye düşünüyorum çünkü transistör ile sürdüm. Devrede pıc 7805 ile besleniyor. voltaj 4.5 - 5 arası oluyor. Ana besleme zaten motosikletin aküsü olacak yani 12V 6.5A. Ben daha Motosiklete bağlamadan elimdeki yapmış olduğum power supply güç kaynağı ile deniyorum ama sonuç böyle işte. Ve hocam pıc'in voltaja bağlı olarak resetleme yapmasını engelleyemez miyiz? Son olarak devreye ilk enerji verdiğimde pıc komut gelmeden işlem yapmaya yani kontağı açmaya başlıyor. Bu durumları aşamaz mıyız sigorta ayarları veya programa kod ekleyerek?

Teşekkürler, saygılar...

ete

Asıl sorun tam olarak nedir pek anlamadım. Sorun genel anlamda vardır diye varsayımlar üzerinden konuşuyoruz.
Ortada bir devre şeması yok. Özellikle PORTB.1 ve PORTB.4 nasıl bağlı yada buralara neler bağlı görmek gerekir.
Bu pinlerin HIGH olmasını bekliyorsun. Bu durumda ilgili pinler LOW da beklemesi gerekir. Yani pinlerde Pull-Down direnci bağlı olmalı. Acaba varmı bu direnç yok ise sistem ilgili pinleri high kabul edebilir ve direk işlem yapmaya başlar.

Ete

PayasLiqenc31

Alıntı yapılan: ete - 30 Temmuz 2017, 20:36:36
Asıl sorun tam olarak nedir pek anlamadım. Sorun genel anlamda vardır diye varsayımlar üzerinden konuşuyoruz.
Ortada bir devre şeması yok. Özellikle PORTB.1 ve PORTB.4 nasıl bağlı yada buralara neler bağlı görmek gerekir.
Bu pinlerin HIGH olmasını bekliyorsun. Bu durumda ilgili pinler LOW da beklemesi gerekir. Yani pinlerde Pull-Down direnci bağlı olmalı. Acaba varmı bu direnç yok ise sistem ilgili pinleri high kabul edebilir ve direk işlem yapmaya başlar.

Ete
Hocam doğru söylüyorsunuz ama elimde olanları açıklamaya çalışıyorum size. portb.1'e başka bir pıc'ten komut geliyor. orada sıkıntı yok. Portb.4'e ise yine bir röle üzerinden 7805ten aldığım +5v veriyorum. Pull-Down dirençleri hiç kullanmadım. Pull-Down dirençlerini de ekleyip size tekrar dönüş yaparım duruma göre.

sinby

Muhtemelen pic giriş portlarından parazit alıyordur. bu nedenle kendiliğinden işlem yapabilir. bunu yazılımla önleyebilirsiniz. girişe 5v 200ms boyunca girdiğinde giriş 1 sayılsın şeklinde bir yazılım yazarak bu sorun çözülebilir. Röle kontaklarını bıraktığı anda pic resetleniyorda olabilir. bunu anlamak için röle yerine önce led bağlayıp devrenin düzgün çalıştığını kontrol edin.   şayet sorun röle kontaklarının oluşturduğu parazitlerdense pic besleme çıkış ve pic girişe 100nf bağlayın rölelere ters diyot ve yüksek akımın geçtiği yolları ve röleleri picten uzakta tutun.

PayasLiqenc31

Alıntı yapılan: sinby - 31 Temmuz 2017, 00:30:27
Muhtemelen pic giriş portlarından parazit alıyordur. bu nedenle kendiliğinden işlem yapabilir. bunu yazılımla önleyebilirsiniz. girişe 5v 200ms boyunca girdiğinde giriş 1 sayılsın şeklinde bir yazılım yazarak bu sorun çözülebilir. Röle kontaklarını bıraktığı anda pic resetleniyorda olabilir. bunu anlamak için röle yerine önce led bağlayıp devrenin düzgün çalıştığını kontrol edin.   şayet sorun röle kontaklarının oluşturduğu parazitlerdense pic besleme çıkış ve pic girişe 100nf bağlayın rölelere ters diyot ve yüksek akımın geçtiği yolları ve röleleri picten uzakta tutun.
Yeteri kadar 100N kullandım devrede. Röle hiç çekmiyor. Pıc'e seri led ve ledi de transistöre bağladım zaten. Rölelerin bobin uçlarına 1N4001 de ekledim. Zaten devre bu şekilde olduğu halde sorun yaşıyorum. Bütün kompenentleri yenileri ile değiştirdim sonuç aynı. Kontak ledi ve rölesi düzgün çalışırken marş ledi anlık olarak yanıverip sönüyor ve röle hiç çekmiyor. programda kontak ve marş pinlerini değiştirdiğim zaman marşı kontak, kontağı marş yaptığımda yine aynı sorunu yaşıyorum. Yani kontak açılıyor fakat marş ledi anlık yanıp röle hiç çalışmıyor. Burdan yola çıkarak bağlantıda ve devrede sorun olmadığını düşünüp sorunun programda olduğunu düşünüyorum lakin programda da hiçbir sıkıntı görünmüyor. ISIS simülasyonda da sorunsuz çalışıyor. Ne oluyor, sorun ne hala anlayamıyorum :(

Maxim

hep aynı sorun, bu şekilde biryere varamazsınız
eksiksiz devre şemasını ekleyin (hatta proteus dosyasını koyun)

PayasLiqenc31

#10
Alıntı yapılan: Maxim - 31 Temmuz 2017, 10:57:42
hep aynı sorun, bu şekilde biryere varamazsınız
eksiksiz devre şemasını ekleyin (hatta proteus dosyasını koyun)

pull-down dirençlerini ekleyince devreyi çalıştırdım, herkese teşekkür ederim...

Powered by EzPortal