16f84 veya benzeri bir entegre 8 giriş 8 çıkış uygulamak

Başlatan adige, 05 Haziran 2009, 00:22:48

adige

merhaba arkadaslar.. acilen basit bir asm dosyasına ıhtıyacım var.. pic16f84 veya bu tarz bir entegreyle ses kontrolu yapmam gerek..
kısaca acıklayım..

pic i programlıycaz ve pic ın tanımlanan bacagına enerjı geldıgınde cıkısa bır darbe (0.2 - 0.3 sn ) gonderıcek hepsı bu.. acılen yardımcı olursanız gercekten cok sevınırım..

gevv

http://www.tmyo.edu.tr/upload/5126pic.pdf

[IMG]http://img200.imageshack.us/img200/6535/httpwwwtmyoedu.jpg[/img]

Alıntı YapDENEY 2: TMR0 Kesmesinin Kullanımı

PortB’nin 0. bit’ine bağlı LED’i flash yaptıran program. LED‟in yanıp sönme aralıklarındaki gecikmeyi TMR0 sayıcısı yapmaktadır. Bu program dijital çıkış sinyali (kare dalga) üretmek için kullanılmıştır. TMR0‟ın sinyal kaynağı olarak dahili komut saykılı kullanılmış ve TMR0 oranı 1/256 seçilmiştir. Kristal osilatör kullanılan ;uygulamalarda kesme gecikmesi çok kısa olduğundan LED‟in flash yapması görülmeyebilir. Bu durumda RB0 ucuna osilaskop bağlayarak çıkış izlenebilir. Eğer RC osilatör ;kullanılıyorsa seçilen R ve C değerleri değiştirilip frekans çok düşürülürse LED‟in yanıp söndüğü görülür.


LIST P=16F84
INCLUDE \"P16F84.INC\"
BSF STATUS,5
CLRF TRISB

BASLA

CLRWDT ; Prescaler atama işlemine hazırla
MOVLW B\'11010111\' ; TMR0ı, yeni prescaler değerini ve ;sinyal kaynağını seç
MOVWF OPTION_REG ; Option registere yaz
BCF STATUS,5 ; Bank0 a geç
CLRF PORTB ; PortB?nin tüm çıkışlarını 0 yap
YAK BSF PORTB,0 ; LEDi yak
CALL GECIKME ; Gecikme alt programını çağır
SONDUR BCF PORTB,0 ; LEDi söndür
CALL GECIKME ; Gecikme alt programını çağır
GOTO YAK ; Yakıp-söndürmeye devam et
GECIKME CLRF TMR0 ; TMR0ı, h00a kur, saymaya başla
T_BIT BTFSS TMR0,5 ; TMR0ın 5. biti 1 mi?
GOTO T_BIT ; Hayır, 5. biti tekrar test et
RETURN END


Kod üzerinde biraz değişiklik yapılarak kullanılabilir pic çıkışına led yerine buzer bağlarsınız

adige

ilginiz icin tesekkur ederim.. evet bıraz degısıklık yapılması gereklı ama pic e yenı basladıgım ıcın henuz adam akıllı bi degısıklık yapabılecek konumda degılım.. bıraz ugrasıyım bakalım..

aslına bakarsanız benım tam olarak yapmak ıstedıgım sey pic e 8 gırıs 8 cıkıs uygulamak (PORTA=1, PORTB=0) pic ın gırıs pınlerınden herhangıbırıne sınyal geldıgı zaman ılgılı cıkısı 0.2 yada 0,3 sn lık darbe uretecek.. aynı zamanda picin giriş pinlerıne birden fazla sınyal gelırse birincıl sınyal sonlanana kadar dıger sınyallerı gozardı edılmesını saglamak.. yanı bırden fazla sınyal gelse bıle pic sadece tek cıkıs verıcek...

neyse ılgınız ıcın tekrar tesekkur ederım sanırım bu benı bayaa ugrastırıcak..

gevv

#3
Ne yazıkki benimde programlama bilgim yok biraz uğraşsanız çözersiniz http://rapidshare.com/files/73202007/microcontroller.rar.html dosya içinde assembly  hakkında Türkçe bilgiler ve bolca uygulama var


Zaten anca bu tip zorunlu durumlarda öğreniliyor daha iyi anlaşılıyor :)

Hızlı Yanıt

Not: Bu konu bir moderatör tarafından onaylanmadan görüntülenmeyecektir.

Adı:
E-Posta:
Doğrulama:
Lütfen bu kutuyu boş bırakın:
IRFP250 Nedir:
kısayollar: göndermek için alt+s veya önizleme yapmak için alt+p'ye basın