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
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...
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...
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.