Elektronik / Mikrodenetleyici Projeleri/

PIC16F84A İle 4 Programlı 8 Ledli Animasyon Devresi

Kullanılan mikrodenetleyici pic 16f84a 4 Farklı Çalışma programı var 8 adet led kullanılmış anahtar kapatıldığında program çalışmaya başlıyor her anahtar ledlerin farklı şekilde yanması sağlıyor tüm kaynak dosyalar proteus isis simülasyon .DSN ares pcb .LYT Assembly .asm picbasic .bas

Led Animasyon devresinin çalışma örnekleri

Devre Şeması

Proteus İsis üzerinde Devrenin kurulması ve Çalıştırılması

Bilgisayarımızda isis programını açıp çalıştırdığımızda aşağıdaki gibi boş bir ekran gelecek

Ekranın solunda kalan devices yazan kısımdaki ‘p ’ tuşuna fare ile tıklayarak pick diveces ekranının açılmasını sağlanır. Buradan devre için gerekli malzemeleri alırız.

Pick dveces içindeki kütüphane arama motoruna gerekli olan malzemenin ismini yazarak elemanı çağırabiliriz. İlk önce direnç den başlayarak keywords kutucuğunun içine “resistor” yazdığımızda aşağıdaki ekran karşımıza gelecektir.

Buradan istenen özellikteki direnç seçildikten sonra sağ alt kısımda bulunan “ok” butonuna basarak elemanı tasarım platformundaki elman kutusuna taşımış olduk.

Kondansatör içinde aynı şekilde keywords kutucuğunun içine “capasitor” yazdığımızda aşağıdaki ekran karşımıza gelir ve aynı işlemleri tekrar uygulayarak kopasitörü elman kutusuna taşırız.

Ledleri almak içinde yukarıda ki gibi keywords kutucuğuna “led “ yazarak aşağıda gözüktüğü gibi led kütüphane dosyalarını çağıralır. Eğer kullanılacak ledlerin gözle görünür bir şekilde yanmasını istiyorsanız “category” başlığı altındaki “optoeloktronic”dosyası seçin ve karşınıza çıkan ledlerin hangi renkte olmasını terçih edin.

Devremizde pic kullanındığımızdan dolayı kristale ihtiyacımız var. Bunuda aynen yukarıdaki gibi kütüphane dosyalrında “crystal” olarak tarattırdığımızda karşımıza aşağıdaki ekran gelecektir.kristalide yukarıda diğer elmanlar gibi seçerek elman kutumuza alıyoruz.

Devremizdeki butonları almak için kütüphane dosyalarında “buton” u taratırız ve karşımıza aşağıdaki ekran gelir.

Devremizi beslemek için doğru akım kayanğına ihtiyacımız var bunun için ben batarya kullanıcağım ama başka yolları da vardır. Bataryayı almak için kütüphane dosyalarında “battery” i taratırız ve karaşımıza aşağıdaki gibi bir ekran gelir.

Devremizde en son eleman olarak pic 16f84 ‘ü çağıracağız.kütüphane dosyalarından “pic16f84” diyerekten tarattıdığımızda karşımıza 16f84A gelmektedir . 16f84 ile 16f84A nin arasında bir fark olmadığından dolayı bunu kullanabiliriz.aşağıda ekranda görüldüğü gibi ekran karşımıza gelir ve oradan ok tuşuna tıklayarak pic’i elman kutusuna atarız.

Devrede bize gerekli olacak elemanları seçtikten sonra aşağıdaki şekilde görüldüğü gibi elmanlar hepsi “devices” elemanlar kutusunun içinde yer alacak

Yukarıdaki elman kutusundan elemanları alarak tasarım platformunda devreyi kurarız. Devre için gerekli olan topraklamaları ise inter-sheet terminal tuşunu secerek devices kutusundan alınız.

Simulasyona geçmeden önce son adım olarak pic içine atılması gereken hex dosyadır. Pic in icine hex dosyayı atmak için aşağıda da gözüktüğü gibi pic’in özellikler menüsü açılır. Buradan “program file” satırındaki dosya işaretine tıklanır ve yüklenilmesiistene hex dosya için “aç” penceresi gelir buradan hex dosyası alınır ve soğ üsteki okey e basılır .

Assembly .asm Programı

;****************************************************************************
;PIC0003.ASM PIC16F84 4 PROGRAMLI 8 LEDLI ISIK SOVU UYGULAMASI

;****************************************************************************
;****************************************************************************
;	PROGRAM BASLANGICINDA ISLEMCI ILE ILGILI TANIMLAMALAR YAPILMALIDIR
;****************************************************************************
TANIMLAMALAR:
	list      p=16F84             	; DERLEYICIYE ISLEMCI TANITILIR
	#include          	; PIC16F84 TANIMLAMA DOSYASI


	__CONFIG   _CP_OFF & _WDT_ON & _PWRTE_ON & _XT_OSC

;****************************************************************************
;	PROGRAMDA KULLANILAN DEGISKENLER TANIMLANMALIDIR
;	DEGISKEN TANIMLARKEN DESISKENIN ALACAGI DEGER VEYA HANGI 
;	RAM HUCRESI OLDUGUNU GOSTERMEK YETERLIDIR
;	EQU... ESITLE ANLAMINDADIR
;****************************************************************************
DEGISKENLER:
	lsb		equ	H'0020'
	msb		equ	H'0021'


BASLANGIC:
;****************************************************************************
;	ISLEMCI RESETLENDIGINDE TUM UCLARI GIRIS DURUMUNDADIR
;	ISLEMCI UCLARINI ISTENILEN DURUMA AYARLAMAK GEREKIR
;	BU ISLEM GEREKTIGINDE PROGRAMIN BASKA ADIMLARINDA DA YAPILABILIR
;	TRISA VE TRISB KAYDEDICILERI PIC16F84 UN RAM HAFIZA BOLGESININ IKINCI
;	PORTA VE PORTB NIN UCLARININ HANGISININ	GIRIS HANGISININ CIKIS 
;	OLACAGINI BELIRTIR 0=CIKIS, 1=GIRIS. 
;****************************************************************************
PORTLARI_AYARLA:
	CLRF	PORTB			; RESET portb
	CLRF	PORTA			; RESET portA

	BSF	STATUS, RP0		; BANK 1 GECILIR
	MOVLW	B'00000000'		; RB0..7=CIKIS
	MOVWF	TRISB
	MOVLW	B'00011111'		; RA0-5=GIRIS
	MOVWF	TRISA
	BCF	STATUS, RP0		; BANK 0 GECILIR



;****************************************************************************
;	4 KONUMLU ISIK SOVU PROGRAMI
;****************************************************************************	

PROGRAM:

TEST_PORTA:
	BTFSS	PORTA,0
	GOTO	ALG1			;PORTA,0="0" ISE ALG1 PROGRAMINA GIDER
	NOP

	BTFSS	PORTA,1
	GOTO	ALG2			;PORTA,0="0" ISE ALG2 PROGRAMINA GIDER
	NOP

	BTFSS	PORTA,2
	GOTO	ALG3			;PORTA,0="0" ISE ALG3 PROGRAMINA GIDER
	NOP

	BTFSS	PORTA,3			;PORTA,0="0" ISE ALG4 PROGRAMINA GIDER
	GOTO	ALG4
	NOP

; PORTA NIN HICBIR UCU "0" DEGILSE SADECE 1.LED YANIK BEKLER
	MOVLW	B'00000001'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CLRDWT
	GOTO PROGRAM		;ALGORITMA TEKRARLANIR


ALG1:
	;*********************************************************************
	;	SAGDAN SOLA YURUYEN ISIK ALGORITMASI
	;*********************************************************************
				;1.ADIM
	MOVLW	B'00000001'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;2.ADIM
	MOVLW	B'00000010'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;3.ADIM
	MOVLW	B'00000100'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;4.ADIM
	MOVLW	B'00001000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;5.ADIM
	MOVLW	B'00010000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;6.ADIM
	MOVLW	B'00100000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;7.ADIM
	MOVLW	B'01000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;8.ADIM
	MOVLW	B'10000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

	GOTO PROGRAM		;ALGORITMA TEKRARLANIR
ALG2:
	;*********************************************************************
	;	SOLDAN SAGA YURUYEN ISIK ALGORITMASI
	;*********************************************************************
				;1.ADIM
	MOVLW	B'10000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;2.ADIM
	MOVLW	B'01000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;3.ADIM
	MOVLW	B'00100000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;4.ADIM
	MOVLW	B'00010000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;5.ADIM
	MOVLW	B'00001000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;6.ADIM
	MOVLW	B'00000100'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;7.ADIM
	MOVLW	B'00000010'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;8.ADIM
	MOVLW	B'00000001'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

	GOTO PROGRAM		;ALGORITMA TEKRARLANIR

ALG3:
	;*********************************************************************
	;	ALG3 ISIK ALGORITMASI
	;*********************************************************************
				;1.ADIM
	MOVLW	B'00000001'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;2.ADIM
	MOVLW	B'00000011'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;3.ADIM
	MOVLW	B'00000111'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;4.ADIM
	MOVLW	B'00001111'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;5.ADIM
	MOVLW	B'00011111'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;6.ADIM
	MOVLW	B'00111111'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;7.ADIM
	MOVLW	B'01111111'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;8.ADIM
	MOVLW	B'11111111'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;9.ADIM
	MOVLW	B'11111110'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;10.ADIM
	MOVLW	B'11111100'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME


				;11ADIM
	MOVLW	B'11111000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;12.ADIM
	MOVLW	B'11110000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;13.ADIM
	MOVLW	B'11100000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;14.ADIM
	MOVLW	B'11000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;15.ADIM
	MOVLW	B'10000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;16.ADIM
	MOVLW	B'00000000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

	GOTO PROGRAM		;ALGORITMA TEKRARLANIR

ALG4:
	;*********************************************************************
	;	ALG4 ISIK ALGORITMASI
	;*********************************************************************
				;1.ADIM
	MOVLW	B'10000001'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;2.ADIM
	MOVLW	B'01000010'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;3.ADIM
	MOVLW	B'00100100'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;4.ADIM
	MOVLW	B'00011000'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;5.ADIM
	MOVLW	B'00100100'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

				;6.ADIM
	MOVLW	B'01000010'	;AKU YE SABIT BIR SAYI YUKLENIR
	MOVWF	PORTB		;AKUDEKI SAYI PORTB YE YUKLENIR
	CALL	BEKLET_100MS	; 0.1Sn BEKLETME

	GOTO PROGRAM		;ALGORITMA TEKRARLANIR


;****************************************************************************
;	4MHz CLOCK ICIN BEKLETME RUTINLERI
;****************************************************************************
BEKLET_100MS:
	DLY_100MS		;YAKLASIK 100 MILI SANIYE
		CLRWDT
	        movlw   D'200'
        	movwf   msb
		GOTO	DLY1
	DLY1
		movlw   D'168'
	        movwf   lsb
	DLY2			;YAKLASIK 3 MICRO SANIYE
		decfsz  lsb,F	;1 INS
	        goto    DLY2	;2 INS
	        decfsz  msb,F	;1 INS
        	goto    DLY1	;2 INS
	RETURN

;****************************************************************************
;	PROGRAMI SONLANDIRMAK ICIN PROGRAM SONUNA END YAZILIR
;****************************************************************************
END

Hazırlayan: Selçuk Bayrak proje dosyaları PIC16F84A İle 4 Programlı 8 Ledli Animasyon Devresi

Dosya indirme LINK listesi (TXT formatında) link-3239.zip şifre-pass: 320volt.com

Emeği geçen kişilere Teşekkürler

  1. lokman 2008/12/20
  2. ibrahim 2009/03/11
  3. mehmet 2009/11/17
  4. emesut 2010/02/24
  5. Emre 2010/08/01
  6. Göktuğ 2011/12/04
  7. koral 2012/03/11
  8. Murat 2012/07/21
  9. furkan 2013/09/23
  10. Emir GÜL 2017/04/23
  11. Onur Çevlik 2017/04/26

Yorum

Soru: