Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin

Transkript

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin
PIC Programlama Örnekleri - 1
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.
PIC Mikroislemcisinin Programlanmasi:
PIC Mikroislemcilerinin programlanabilmesi için asagidaki adimlarin izlenmesi
gerekmektedir. Bu adimlarin bazilari devre ilk kez kullanilacak ise yapilmasi gerekenleri
içermektedir. Ilgili adimlar (Sadece bir kez yapilacak) ibaresi ile belirtilmistir.
A. http://www.eng.bahcesehir.edu.tr/courses/02-03/spring/cse1104/handouts.html
internet sayfasindan gerekli dosyayi bilgisayariniza indirin. (Sadece bir kez
yapilacak)
B. Bu program sikistirilmis bir program yükleme dosyasidir. Dosyaya çift tiklayarak
yükleme islemini baslatin. Yüklemi islemi üç ayri yazilimin yüklenmesini
içermektedir. Bunlardan ilki kullanici tarafindan yazilan uygulamayi PIC
Mikroislemcisine yüklemek için kullanilacak olan ProPIC programlayici yazilimi,
ikincisi PIC Mikroislemcisi için uygulama gelistirmenizi saglayak olan MPLAB®
yazilimi, sonuncusu ise programlama yaziliminin bilgisayarinizin LPT portuna
erisimini saglamak için kullanilacak sürücü yazilimi olan DLPortIO. (Sadece bir kez
yapilacak)
C. Yüklemenin sonunda, sürücü yazilimi bilgisayarinizi tekrar baslatmak isteyecektir.
Ekrana gelen uyari kutucuguna onay vereriniz. Aksi takdirde islemciyi
programlamak için kullanacagimiz yazilim, bilgisayarinizi tekrar baslatincaya kadar
çalismayacaktir. (Sadece bir kez yapilacak)
2 - PIC Programlama El Kitabi
Sekil 1: Yüklenmis ProPIC, MPLAB® ve DLPortIO sürücü yazilimi
D. MPLAB® yazilimini kullanarak uygulamanizi gelistirin ve derleyin. Derleme islemi
.HEX soyadli makine kodu içeren bir dosya olusturacaktir. Bu dosya Window
isletim sistemlerinin çalistirilabilir dosyalari olan .EXE dosyalari gibi düsünülebilir.
E. Programlayici devreyi, bilgisayarinizin LPT (Printer) portuna, birlikte verilen güç
kaynagini da elektrik sebekesine baglayiniz.
Sekil 2: Programlayicinin bilgisayara baglanmasi
F. Uygulamanizi derledikten sonra START>Programs>ProPIC menüsünden ProPIC
adli simgeye tiklayarak programlama yazilimini çalistiriniz.
Sekil 3: ProPIC yaziliminin görünümü
G. ProPIC bilgisayarin çesitli portlarini kullanabilmektedir. Bu denenle bizim
kullandigimiz programlayici devre ile çalisabilmesi için dogru portun seçilmesi
gerekir. Port>PP 0378 menüsüne tiklayarak LPT portunu seçin. Ekrana gelecek
PIC Programlama Örnekleri - 3
küçük bir pencerede programlayici devreyi seçmeniz istenmektedir. Buradan
“AN589 based” seçenegini seçip pencereyi kapatin. (Sadece bir kez yapilacak)
Not: Çesitli aksakliklar (devrenin bozuk olmasi, LPT portuna baglanmamasi,
devreye elektrik verilmemesi vs.) sonucu programlayici devre belirtilen portta
bulunamazsa, asagidakine benzer bir uyari kutucugu görüntülenecektir.
H. Programlayicinin File>Open File menüsünden derlenmis durumdaki (.HEX)
dosyasini bularak açiniz.
Sekil 4: Derlenmis dosyanin ProPIC'e yüklenmesi
.HEX dosyasini açtikdan sonra ana ekrandaki “Write All” dügmesine basarak gelistirdiginiz
uygulamayi PIC Mikroislemcisine yükleyebilirsiniz.
4 - PIC Programlama Örnekleri
PIC Programlama Örnekleri
Uygulama – 1
Pic’e enerji verildiginde PORTA’nin uçlarina bagli butonlardan hangisi basili tutulursa,
PORTB‘de o butona karsilik gelen LED’i söndüren uygulama.
Akis Semasi:
Kaynak Kodu:
PORTA
PORTB
STATUS
TRISA
TRISB
LIST
EQU
EQU
EQU
EQU
EQU
P=16F84
h’05’
h’06’
h’03’
h’85’
h’86’
CLRF
BSF
CLRF
MOVLW
MOVWF
BCF
PORTB
STATUS,5
TRISB
h’FF’
TRISA
STATUS,5
;PortB’ye bagli ledleri sondur
;Bank1’e geç
;PortB’nin uclarini Cikis yap
;W registere h’FF’ yuklenir
;PortA’nin uclarini Giris yap
;Bank0 gec
MOVF
MOVWF
PORTA,W
PORTB
;PortA yi okuyu sonucu W’ yaz
;Butonlarin durumunu portB de goster
GOTO
END
DONGU
BASLA:
DONGU:
PIC Programlama Örnekleri - 5
Uygulama – 2
PortB’nin 0. Bitine bagli LED’i,A portunun 1.bitindeki butona basilinca yakan uygulama.
Akis Semasi:
Kaynak Kodu:
PORTA
PORTB
STATUS
TRISA
TRISB
LIST
EQU
EQU
EQU
EQU
EQU
P=16F84
h’05’
h’06’
h’03’
h’85’
h’86’
CLRF
BSF
CLRF
MOVLW
MOVWF
BCF
PORTB
STATUS,5
TRISB
h’FF’
TRISA
STATUS,5
BTFSC
GOTO
BSF
PORTA,1
PA_TEST
PORTB,0
GOTO
END
DONGU
PA_TEST:
DONGU:
;A portunun 1. bitini test et
;0 degilse tekrar test et
;B portunun 0.bitini 1(set) yap
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.
Program-2 deki flowcart kullanilabilir yapilmasi gereken degisiklik uygulanir.
Kaynak Kodu:
PORTA
PORTB
STATUS
TRISA
TRISB
LIST
EQU
EQU
EQU
EQU
EQU
P=16F84
h’05’
h’06’
h’03’
h’85’
h’86’
CLRF
BFS
CLRF
MOVLW
MOVWF
BCF
PORTB
STATUS,5
TRISB
h’FF’
TRISA
STATUS,5
BTFSS
GOTO
MOVLW
MOVWF
PORTA,4
PA_TEST
h’0F’
PORTB
GOTO
END
DONGU
PA_TEST:
DONGU:
;PortA nin 4.biti 1 mi?
;hayir,test et
;W’ ye b’00001111’ yukle
; W’yide PortBye gonder
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:
SAYAC
LIST
INCLUDE
P=16F84
“P16F84.INC”
EQU
h’0C’
CLRF
BSF
CLRF
MOVLW
MOVWF
BCF
PORTB
STATUS,5
TRISB
h’FF’
TRISA
STATUS,5
8 - PIC Programlama Örnekleri
BASLA:
MOVLW
MOVWF
d’10’
SAYAC
;W’ye decimal 10 yukle
;SAYACA’da W’yi
BTFSC
GOTO
PORTA,1
TEST
;porta nin 1.biti 1 mi?
;hayir,TEST ‘e don
TEST:
NOP
NOP
NOP
DECFSZ
GOTO
BSF
END
;gecikme zamani
SAYAC,F
TEST
PORTB,0
;SAYAC = 0 ?
;hayir
;portB’nin 0 bitini 1 yap
PIC Programlama Örnekleri - 9
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:
SAYAC1
SAYAC2
LIST
INCLUDE
P16F84
“P16F84.INC”
EQU
EQU
CLRF
BSF
CLRF
MOVLW
MOVWF
BCF
h’0C’
h’0D’
PORTB
STATUS,5
TRISB
h’FF’
TRISA
STATUS,5
;SAYAC1 ‘e adres atandi
;SAYAC2 ‘ye adres atandi
MOVLW
MOVWF
h’0A’
SAYAC1
;W’ye h’10’^yuklenir
;W’de SAYAC1’e
BTFSC
GOTO
PORTA,1
TEST
;PortA’nin 1.biti 0 mi?
;hayir,TEST
MOVLW
MOVWF
h’FF’
SAYAC2
;evet,W’ye h’FF’ yuklenir
;W’de SAYAC2 ye atanir
NOP
NOP
NOP
DECFSZ
GOTO
SAYAC2,F
GECIKME
;(SAYAC’?SAYAC’-1)=0 ?
DECFSZ
GOTO
GOTO
SAYAC1,F
YAK
BASLA
;(SAYAC1?SAYAC!-1)=0 ?
MOVF
MOVWF
GOTO
END
SAYAC1,W
PORTB
TEST
BASLA:
TEST:
GECIKME:
AZALT:
YAK:
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:
SAYAC1
SAYAC2
LIST
INCLUDE
P=16F84
“P16F84.INC”
EQU
EQU
h’0C’
h’0D’
CLRF
BSF
CLRF
BCF
PORTB
STATUS,5
TRISB
STATUS,5
MOVLW
MOVWF
h’00’
PORTB
CALL
GECIKME
MOVLW
MOVWF
h’FF’
PORTB
CALL
GOTO
GECIKME
TEKTRAR
TEKRAR:
12 - PIC Programlama Örnekleri
GECIKME:
MOVLW
MOVWF
h’FF’
SAYAC1
MOVLW
MOVWF
h’FF’
SAYAC2
DECFSZ
GOTO
DECFSZ
GOTO
RETURN
END
SAYAC2,F
DONGU2
SAYAC1,F
DONGU1
DONGU1:
DONGU2:
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:
SAYAC1
SAYAC2
LIST
INCLUDE
P16F84
“P16F84.INC”
EQU
EQU
h’0C’
h’0D’
CLRF
BSF
BCF
CLRF
BCF
PORTB
STATUS,5
STATUS,0
TRISB
STATUS,5
MOVLW
MOVWF
h’01’
PORTB
CALL
RLF
BTFSS
GOTO
GECIKME
PORTB,F
STATUS,0
TEKRAR
GOTO
DONGU
MOVLW
MOVWF
h’FF’
SAYAC1
MOVLW
MOVWF
h’FF’
SAYAC2
TEKRAR:
DONGU:
GECIKME:
DONGU1:
14 - PIC Programlama Örnekleri
DONGU2:
DECFSZ
GOTO
DECFSZ
GOTO
RETURN
END
SAYAC2,F
DONGU2
SAYAC1,F
DONGU1
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:
SAYAC1
SAYAC2
LIST
INCLUDE
P16F84
“P16F84.INC”
EQU
EQU
h’0C’
h’0D’
CLRF
BSF
BCF
CLRF
BCF
PORTB
STATUS,5
STATUS,0
TRISB
STATUS,5
MOVLW
MOVWF
h’01’
PORTB
CALL
RLF
BTFSS
GOTO
GECIKME
PORTB,F
PORTB,7
SOL
CALL
RRF
BTFSS
GOTO
GOTO
GECIKME
PORTB,F
PORTB,0
SAG
SOL
MOVLW
MOVWF
h’FF’
SAYAC1
MOVLW
MOVWF
h’FF’
SAYAC2
DECFSZ
GOTO
DECFSZ
GOTO
RETURN
END
SAYAC2,F
DONGU2
SAYAC1,F
DONGU1
SOL:
SAG:
GECIKME:
DONGU1:
DONGU2:
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
INCLUDE
P16F84
“P16F84.INC”
CLRF
BSF
BCF
CLRF
BCF
PORTB
STATUS,5
STATUS,0
TRISB
STATUS,5
MOVLW
XORWF
BTFSS
GOTO
b’00011001’
PORTA,W
STATUS,2
TEST_PA
MOVLW
MOVWF
h’FF’
PORTB
GOTO
END
DONGU
TEST_PA:
YAK:
DONGU:

Benzer belgeler

pıc ders notları 3

pıc ders notları 3 NOT: Maske seçimi işlemi için W da bulunan sayının bilinmesine gerek yoktur. Hangi sıradaki bitlerin (burada 5,6,7 idi) 1 yapılacağının bilinmesi yeterlidir. Soruda “sayı W dadır” denildiği için pr...

Detaylı

Mikroişlemci Kontrollu Prototip Trafik Lambaları ve Geri Sayıcı

Mikroişlemci Kontrollu Prototip Trafik Lambaları ve Geri Sayıcı kadar popüler olmasi onun çok iyi bir islemci olmasindan ziyade program belleginin EEPROM (elektrikle silinip programlanabilen bellek) olmasindan kaynaklanmaktadir. Seri olarak dört adet kabloyla p...

Detaylı

pıc ders notları 2

pıc ders notları 2 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.

Detaylı