Professional Documents
Culture Documents
EL KITABI
Sistem Gereksinimleri:
PIC programlayicinin kullanilabilmesi için;
• Win98 ve üstü bir isletim sistemi
• Paralel port
• 60 MB veya daha üstü disk alani
gerekmektedir.
Ancak programlama yazilimi sadece PIC16F84 ve PIC16F8XX mikroislemcileri ile birlikte
kullanilabilmektedir.
Uygulama Gelistirme:
Microchip firmasi, PIC Mikroislemcileri ile uygulama gelistirmek için kullanilan MPLAB®
gelistirme ortamini ücretsiz olarak web sitesinden dagitmaktadir. Uygulamanizi bu
gelistirme ortamini kullanarak hazirlayabilirsiniz. Programinizi derlediginizde HEX soyadli
bir dosya olusturulacaktir. Bu dosya, gelistirdiginiz uygulamanin, hedef islemcinin makine
koduna dönüstürülmüs seklidir. PIC Programlayici ile islemciye yazilacak dosya da bu
dosyadir.
Akis Semasi:
Kaynak Kodu:
LIST P=16F84
PORTA EQU h’05’
PORTB EQU h’06’
STATUS EQU h’03’
TRISA EQU h’85’
TRISB EQU h’86’
Uygulama – 2
PortB’nin 0. Bitine bagli LED’i,A portunun 1.bitindeki butona basilinca yakan uygulama.
Akis Semasi:
Kaynak Kodu:
LIST P=16F84
PORTA EQU h’05’
PORTB EQU h’06’
STATUS EQU h’03’
TRISA EQU h’85’
TRISB EQU h’86’
CLRF PORTB
BSF STATUS,5
CLRF TRISB
MOVLW h’FF’
MOVWF TRISA
BCF STATUS,5
PA_TEST:
BTFSC PORTA,1 ;A portunun 1. bitini test et
GOTO PA_TEST ;0 degilse tekrar test et
BSF PORTB,0 ;B portunun 0.bitini 1(set) yap
DONGU:
GOTO DONGU
END
6 - PIC Programlama Örnekleri
Uygulama – 3
A portunun 4.bitine bagli olan buton basili tutularak PIC’e enerji verildiginde,B portundaki
LED’leri sönük tutan, butondan elçekildiginde ilk dört LED’i yakan uygulama.
Kaynak Kodu:
LIST P=16F84
PORTA EQU h’05’
PORTB EQU h’06’
STATUS EQU h’03’
TRISA EQU h’85’
TRISB EQU h’86’
CLRF PORTB
BFS STATUS,5
CLRF TRISB
MOVLW h’FF’
MOVWF TRISA
BCF STATUS,5
PA_TEST:
BTFSS PORTA,4 ;PortA nin 4.biti 1 mi?
GOTO PA_TEST ;hayir,test et
MOVLW h’0F’ ;W’ ye b’00001111’ yukle
MOVWF PORTB ; W’yide PortBye gonder
DONGU:
GOTO DONGU
END
PIC Programlama Örnekleri - 7
Uygulama – 4
A portunun 1.bit’ine bagli butona 10 defa basildiktan sonra B portunun 0.bit’ine bagli olan
LED’i yakan uygulama....
Akis Semasi:
Kaynak Kodu:
LIST P=16F84
INCLUDE “P16F84.INC”
CLRF PORTB
BSF STATUS,5
CLRF TRISB
MOVLW h’FF’
MOVWF TRISA
BCF STATUS,5
8 - PIC Programlama Örnekleri
BASLA:
MOVLW d’10’ ;W’ye decimal 10 yukle
MOVWF SAYAC ;SAYACA’da W’yi
TEST:
BTFSC PORTA,1 ;porta nin 1.biti 1 mi?
GOTO TEST ;hayir,TEST ‘e don
NOP
NOP ;gecikme zamani
NOP
Uygulama – 5
A portunun 1.bitindeki butona bastikça B portundaki LED’leri 9’dan 0’a kadar azaltarak
yakan program.
Akis Semasi:
10 - PIC Programlama Örnekleri
Kaynak Kodu:
LIST P16F84
INCLUDE “P16F84.INC”
BASLA:
MOVLW h’0A’ ;W’ye h’10’^yuklenir
MOVWF SAYAC1 ;W’de SAYAC1’e
TEST:
BTFSC PORTA,1 ;PortA’nin 1.biti 0 mi?
GOTO TEST ;hayir,TEST
AZALT:
DECFSZ SAYAC1,F ;(SAYAC1?SAYAC!-1)=0 ?
GOTO YAK
GOTO BASLA
YAK:
MOVF SAYAC1,W
MOVWF PORTB
GOTO TEST
END
PIC Programlama Örnekleri - 11
Uygulama – 6
Zaman gecikme dongusu uygulayarak PortB’ye bagli olan tüm ledleri belirli bir zaman
araliginda yakip sonduren uygulama. (Alt programlara ornek)
Akis Semasi:
Kaynak Kodu:
LIST P=16F84
INCLUDE “P16F84.INC”
CLRF PORTB
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
TEKRAR:
MOVLW h’00’
MOVWF PORTB
CALL GECIKME
MOVLW h’FF’
MOVWF PORTB
CALL GECIKME
GOTO TEKTRAR
12 - PIC Programlama Örnekleri
GECIKME:
MOVLW h’FF’
MOVWF SAYAC1
DONGU1:
MOVLW h’FF’
MOVWF SAYAC2
DONGU2:
DECFSZ SAYAC2,F
GOTO DONGU2
DECFSZ SAYAC1,F
GOTO DONGU1
RETURN
END
PIC Programlama Örnekleri - 13
Uygulama – 7
PortB’ye bagli 8 led üzerindeki bir led’in yanisini belirli araliklarla kaydiran (LED0 ‘dan
LED7’ye dogru ) uygulama.Yanarak gelen led en sona geldiginde tüm ledler sonuk kalir.
Akis Semasi:
Kaynak Kodu:
LIST P16F84
INCLUDE “P16F84.INC”
CLRF PORTB
BSF STATUS,5
BCF STATUS,0
CLRF TRISB
BCF STATUS,5
MOVLW h’01’
MOVWF PORTB
TEKRAR:
CALL GECIKME
RLF PORTB,F
BTFSS STATUS,0
GOTO TEKRAR
DONGU:
GOTO DONGU
GECIKME:
MOVLW h’FF’
MOVWF SAYAC1
DONGU1:
MOVLW h’FF’
MOVWF SAYAC2
14 - PIC Programlama Örnekleri
DONGU2:
DECFSZ SAYAC2,F
GOTO DONGU2
DECFSZ SAYAC1,F
GOTO DONGU1
RETURN
END
PIC Programlama Örnekleri - 15
Uygulama – 8
PortB ‘ye bagli olan 8 LED üzerinde bir LED’in yanisini saga-sola kaydiran ve bu islemi
surekli olarak tekrarlayan uygulama.
Akis Semasi:
16 - PIC Programlama Örnekleri
Kaynak Kodu:
LIST P16F84
INCLUDE “P16F84.INC”
CLRF PORTB
BSF STATUS,5
BCF STATUS,0
CLRF TRISB
BCF STATUS,5
MOVLW h’01’
MOVWF PORTB
SOL:
CALL GECIKME
RLF PORTB,F
BTFSS PORTB,7
GOTO SOL
SAG:
CALL GECIKME
RRF PORTB,F
BTFSS PORTB,0
GOTO SAG
GOTO SOL
GECIKME:
MOVLW h’FF’
MOVWF SAYAC1
DONGU1:
MOVLW h’FF’
MOVWF SAYAC2
DONGU2:
DECFSZ SAYAC2,F
GOTO DONGU2
DECFSZ SAYAC1,F
GOTO DONGU1
RETURN
END
PIC Programlama Örnekleri - 17
Uygulama – 9
PortA ‘nin 1.ve2. bitlerine bagli olan A1 ve A2 butonlarinin her ikisi birden basili
oldugunda PortB’nin 0.bitine bagli led’i yakan uygulama.
Akis Semasi:
18 - PIC Programlama Örnekleri
Kaynak Kodu:
LIST P16F84
INCLUDE “P16F84.INC”
CLRF PORTB
BSF STATUS,5
BCF STATUS,0
CLRF TRISB
BCF STATUS,5
TEST_PA:
MOVLW b’00011001’
XORWF PORTA,W
BTFSS STATUS,2
GOTO TEST_PA
YAK:
MOVLW h’FF’
MOVWF PORTB
DONGU:
GOTO DONGU
END