PIC16F84 ile Led Efekt Devresi Mplab ve İsis videosu

Başlatan gevv, 19 Mart 2008, 11:15:08

gevv

Devrenin bitmiş hali
http://www.youtube.com/watch?v=_CYU-_t6M-M

PIC16F84 ile gerçekleştirilmiş Çok basit bir uygulama PIC programlamada yeni başlayan Kişiler için faydalı olabilir

Yapım aşamasında mplab ve isis similasyonunda yapılan işlemlerin Videosunu   Buradan indirebilirsiniz




Programı MPLAP  ile yazdıktan sonra programı ASM uzantısında kaydedip klavyede Alt+F10 tuşlarına bastığınızda MPLAB yazılan ASM kodlarını HEX koduna çevirir (Derler). Eğer ASM kodlarında hata varsa ERROR komutu ile hataları gösterir. ERROR komutunun satrırna çift tıkladığınızda hatalı satırı gösterir. Hatalar düzeltildikten sonra derleme işlemi tekrar yapılır. Derleme işlemi yapıldıktan sonra programın HEX kodları ASM kodlarının kayıtlı olduğu yerde oluşur.

Ayrıca Pic Programı Derleme MPASM Hata Mesajları Hakkında Detaylı bir Yazıya Buradan ulaşabilirsiniz

Devrenin asm hex ve isis similasyon dsn dosyasını Buradan indirebilirsiniz

LIST	P=16F84			;16F84 PIC'ini kullanacağım
INCLUDE	"P16F84.INC"	;16f84'ün dosyalarını tanıttım
SAY1	EQU	0X0C			;SAY1 adlı kaydedici oluşturdum
SAY2	EQU	0X0D			;SAY2 adlı kaydedici oluşturdum
BSF		STATUS,5		;BANK1'e geç
CLRF	TRISB			;PORTB çıkış olarak ayarlandı
BCF		STATUS,5		;BANK0'e geç
CLRF	PORTB			;PORTB'yi temizle
BASLA
CALL	ZAMAN			;ZAMAN adlı alt programını çağır
BSF		PORTB,0			;PORTB'nin 0. bitini HİGH yap
CALL	ZAMAN			;ZAMAN adlı alt programını çağır
BCF		PORTB,0			;PORTB'nin 0. bitini LOW yap
BSF		PORTB,1			;PORTB'nin 1. bitini HİGH yap
CALL	ZAMAN			;ZAMAN adlı alt programını çağır
BCF		PORTB,1			;PORTB'nin 1. bitini LOW yap
BSF	PORTB,2				;PORTB'nin 2. bitini HİGH yap
CALL	ZAMAN			;ZAMAN adlı alt programını çağır
BCF		PORTB,2			;PORTB'nin 2. bitini LOW yap
CALL	ZAMAN			;ZAMAN adlı alt programını çağır
MOVLW	0X07			;W kaydedicisine heksadesimal 07 değerini yükle
MOVWF	PORTB			;W	kaydedicisindeki değeri PORT'ye çık
CALL	ZAMAN			;ZAMAN adlı alt programını çağır
CLRF	PORTB			;PORTB'yi temizle
GOTO	BASLA			;BASLA	adlı	etikete git
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
END						;Programın sonu


Uygulama bana ait değildir Ramazan Kardeşim yaptı :)
 

METAFOR

Gerçekten harika anlatmışsın teşekkür ederim. Çok faydalı olacağına inanıyorum. Az bir temelle başlamak için güzel bir referans.

gevv

Teşekkürler :) pek harika değil bence ama hiç yoktan iyidir ramazan kardeşim okulda uğraşmış şimdi çoğu bilgisini unutmuş :D bende yeni başladım birde erdo kardeşmide programlamaya bulaştırdık :) zamanla daha iyi anlatımlar hazırlarız İnşallah