pic 16f628 yardım..

Başlatan cengizhan1453, 14 Ağustos 2012, 01:24:01

cengizhan1453

Sa. Site de daha yeniyim. bu işlerlede yeni uğrşmaya başladım. Bir sorum olacak.



Resimde pic 16f628. 1. bacağa buton bağlı. pic'in üstünde(18. bacağın üstünde) diyot var. 7805 sağ yanındaki anahtar , sol yanındaki besleme. 6,7,8,9,10,11,12,13,15,16,17,18 bacaklara 100 ohm dirençle ledlere gidiyor.


basit bir  program :

TRISA=%0000100
TRISB=%00000000
PORTA=0
PORTB=0
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT

Basla:

PORTB=1
PAUSE 500
PORTB=0
PAUSE 500
GOTO Basla
END

dahili osilatör kullanmak istiyorum.
Devreyi bir türlü çalıştıramadım. Acaba programı atarken dahili osilatör için bi ayar yamam gerekiyo mu? Son olarak pic16f628a kullanırken osilatör kodunu değiştirmem gerekiyo mu? Yardım ederseniz sevinirim.

ozgurelkt

4 nolu uç MCLR ucudur. onu +5 volta bir direnç üzerinden bağlamanız gerekiyor. Yada dijital giriş çıkış olarak kullanacaksanız. konfigürasyondan 5. biti sıfır yapmalısınız. onuda herhalde _MCLRE_OFF şeklinde yapıyorduk.

ete

Programını aşağıdaki şekilde değiştir çalışır.

@ DEVICE pic16F628                      	     'işlemci 16F628                                
@ DEVICE pic16F628, WDT_OFF              'Watch Dog timer kapalı
@ DEVICE pic16F628, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628, PROTECT_OFF     'Kod Koruma kapalı
@ DEVICE pic16F628, MCLR_OFF               'MCLR pini kullanılıyor.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak 
DEFINE OSC 4
CMCON=7
TRISA=%00000100
TRISB=%00000000
PORTA=0
PORTB=0


Basla:

PORTB=1
PAUSE 500
PORTB=0
PAUSE 500
GOTO Basla
END

Buton koymuşsun ama programda kullanmamışsın.
16F628 in A portu default olarak komparatörler aktif açılır. Butonu orada kullanabilmek için komparatörleri iptal etmen gerekir bunun da komutu CMCON=7 dir.
Ayrıca TRISA da bir bit eksik yazmışsın bu derlemede sorun çıkartabilir.
MCLR pinine bir şey bağlamadığın için onuda devre dışı bırakmak lazım. Sigorta ayarlarındaki MCLR_OFF bu işi yapmaktadır.

Kolay Gelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

cengizhan1453

Yardımınız için teşekkür ederim dediğiniz gibi programı değiştirdim. bu seferde B portunun sadece 0. biti yanıp yanıp sönüyor. diğeri çıkış yok.(voltmetrenin bi ucunu picin cıkısına bi ucunu eksiye bağlandığında. diğer ucu eksi yerine artıya bağarsam 0. bit calışıyor diğerleri sürekli çıkış olaarak gözüküyor.) Programlarken pickit 2 yi kullanıyorum.

[IMG]http://img860.imageshack.us/img860/2215/91066387.png[/img]

programladıktan sonraki görüntüsü.pici otomatik algılıyor. Mcrl yi secip secmemem fark etmiyor. acaba programı atarken mi yanlış yapıyoru? programlama kartımın resmi :



Reklam olmasın diye link vermedim sorun olmassa linkde verebilirim.

ete

Bu sonuc son derece normal çünkü yalnızca portb.0 icin komut vermisin.
Portb= 1 deyince ne bekliyordun? 
Sayet butun bitlerin high olmasini istersen,
Portb=255  seklinde komut kullanman gerek.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

cengizhan1453

Gerçekten çok teşekkür ederim sayenizde oldu :)