Led İle Yapılmış Türk Bayrağı Devresi'ne Yakıp Söndürme Programı Arıyorum PIC16F84

bulut2632

Üye
Katılım
12 Mar 2010
Mesajlar
2
Puanları
1
Led İle Yapılmış Türk Bayrağı Devresi'ne Yakıp Söndürme Programı Arıyorum( PIC16F84)
 
PIC başlangıç uygulaması. İki ledli flip-flop devresinin PIC ile yapılması.




AÇIKLAMALAR
Basit bir flip-flop uygulamasının pic işlemciler ile nasıl yapılacağını anlatan bu uygulama pic dünyasına ilk giriş için idealdir. Temel ve basit komutlar ile program kolayca hazırlanmaktadır. İhtiyaç olan PIC asembly derleyici ve PIC programlayıcıdır. Bunlar sitenin PIC bölümünde çeşitleriyle beraber bulunmaktadır.

Devrede PIC16F84 ün 6(PORTB,0) ve 7(PORTB,1) uçları birer 470 ohmluk koruma dirençleri ile LED lere bağlıdır. BCF ve BSF komutları ile bu uçlar "0" veya "1" yapılarak flip-flop algoritması gerçekleştirilmiştir. Devrede 4MHz lik kristal kullanılarak PIC kristal osilatörle çalıştırılmıştır. U2 (7805) entegresi PIC'in çalışma gerilimi olan(+2,,,+6V) 5V'u üretmektedir. R3 direnci ile /MCLR ucu +5V' verilmiştir

DEVRENİN AÇIK ŞEMASI

DEVRENİN BASKILI DEVRE ÇİZİMİ


DEVRENİN ASM PROGRAMI
;****************************************************************************
;PIC0001.ASM PIC16F84 ILE IKI LEDLI FLIP-FLOP UYGULAMASI
;01.2000 HUSEYIN SERIMER
;****************************************************************************
;****************************************************************************
; PROGRAM BASLANGICINDA ISLEMCI ILE ILGILI TANIMLAMALAR YAPILMALIDIR
;****************************************************************************
TANIMLAMALAR:
list p=16F84 ; DERLEYICIYE ISLEMCI TANITILIR
#include <p16F84.inc> ; 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'11111100' ; RB2-7=GIRIS VE RB0,1=CIKIS
MOVWF TRISB
MOVLW B'00011111' ; RA0-5=GIRIS
MOVWF TRISA
BCF STATUS, RP0 ; BANK 0 GECILIR




;****************************************************************************
; FLIP-FLOP ALGORITMASI
;****************************************************************************
FLIP_FLOP:

BCF PORTB,0 ;LED1 SONUK
BSF PORTB,1 ;LED2 YANIK
;veya
; MOVLW B'00000010'
; MOVWF PORTB


CALL BEKLET_100MS ; 0.5Sn ICIN 5 KERE TEKRARLANIR
CALL BEKLET_100MS
CALL BEKLET_100MS
CALL BEKLET_100MS
CALL BEKLET_100MS

BSF PORTB,0 ;LED1 YANIK
BCF PORTB,1 ;LED2 SONUK

;veya
; MOVLW B'00000001'
; MOVWF PORTB


CALL BEKLET_100MS ; 0.5Sn ICIN 5 KERE TEKRARLANIR
CALL BEKLET_100MS
CALL BEKLET_100MS
CALL BEKLET_100MS
CALL BEKLET_100MS

GOTO FLIP_FLOP ;FLIP_FLOP ALGORITMASI TEKRARLANIR


;****************************************************************************
; 4MHz CLOCK ICIN BEKLETME RUTINLERI
; BU RUTIN CALL ILE FLIP_FLOP DONGUSUNDEN CAGIRILIR
;****************************************************************************
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
 

Forum istatistikleri

Konular
128,179
Mesajlar
915,658
Kullanıcılar
449,940
Son üye
yavuzturan

Yeni konular

Çevrimiçi üyeler

Geri
Üst