Kuflu Forum  

Go Back   Kuflu Forum > Teknoloji > Programlama Dilleri ve Grafik > Programlama

Konu ile Alakalı Etiketler: iki nokta üst üste, iki nokta üst üste s harfi, pic basic pro asenkron video, picbasicpro asenkron, pic basic programlama dilini indir, pic basic programlama dili, pic basic pro kitap, etiketler, pic basıc programlama dili, resim etiketle, mikro basic pwm kitaplari, pic basic pro dili, basic kesme komutu, pic basic dil, mikrobasic pro pic serin serout,


PIc Basic Pro ile Programlama

Programlama


Yeni Konu aç  Cevapla
LinkBack Seçenekler Stil
Okunmamış 10.10.09, 14:12   #1 (permalink)
..daha çirkin, daha huysuz
 
sha. - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Ağu 2009
Mesajlar: 7583
Ettiği Teşekkür Sayısı: 3865
2965 Konuda 27197 Teşekkür Aldı
sha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond repute
Standart PIc Basic Pro ile Programlama

1.1. Pic Basic Pro Hakkinda : Pic Basic Pro programlama dili mikrochip firmasinin ürettigi mikrodenetleyicileri programlamada kullanilan daha çabuk ve kolay bir dildir. Pic Basic Pro programlama dili ile 8 ile 84 pin arasindaki degisik özelliklerdeki mikrodenetleyiciler için program yazilabilir. Üst seviyeli programlama dilleri sayesinde çok daha rahat ve hizli bir sekilde programlama yapilabilmektedir. Ancak bu programlar çok karmasik sistemlerin çözümünde yetersiz kalabilmektedir.Yüksek seviyeli bu programlama dilleri assembly dili komutlari ile birlikte kullanilabilmektedir. Bu durumda yüksek seviyeli bir pic programlama dili ve PIC assembly dili birlikte kullanildiginda bu sorun ortadan kalkmaktadir.

1.2. Pic Basic Pro Komut Seti : Pic Basic Pro’nun komut seti basic programlama diline çok benzemektedir. Basic programlama dilinde olmayan komutlar da mevcuttur. Çizelge 15’de Pic Basic Pro komutlari görülmektedir.

PIC BASIC PRO programlama dilinin tüm yönleriyle açiklanmasi bir kitap konusu olacagindan burada sadece bu çalisma için gerekli olan komutlar ve bunlarin özelliklerinden bahsedilmistir.

1.2.1. Degiskenler ( Variables ) : PICBASIC programlama dilinde üç tip degisken tipi kullanilmaktadir. Degiskenler BIT, BYTE veya WORD büyüklügünde olabilirler. Örnegin: k VAR byte (byte büyüklügünde K degiskeni)



1.2.2. Etiketler ( Labels ) : Etiketler GOTO veya GOSUB gibi komutlara referans teskil ederler. Bu komutlarin icrasindan sonra program etiketle belirtilen satira dallandirilir. Etiketler herhangi bir kelime olabilir ve sonuna iki nokta üst üste ( : ) konur.


Örnegin: Etiket: HIGH PORTB.4
__________________


d ü n y a b i z i ç i n d ö n m ü y o r s a d u r s u n
k a l s ı n y a ş a m a k
...

.






.



sha. isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Okunmamış 10.10.09, 14:14   #2 (permalink)
..daha çirkin, daha huysuz
 
sha. - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Ağu 2009
Mesajlar: 7583
Ettiği Teşekkür Sayısı: 3865
2965 Konuda 27197 Teşekkür Aldı
sha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond repute
Standart

1.2.3. Nümerik sabitler ( Numeric constants ) : Nümerik sabitler üçsekilde tanimlanirlar. Bunlar decimal, binary ve hexadecimal‘dir. Binary deger tanimlanirken degerin basina ‘%’ ve hexadecimal degerinbasina ‘$’isareti konulur. Decimal deger tanimlanirken herhangi bir isaret kullanilmaz. Örnegin:

100‘decimal deger .

%100 ‘decimal 4 için binary deger.

$100 ‘decimal 256 için hexadecimal deger.

1.2.4. Portlar : PIC’in herhangi bir portunun istenilen pini giris yada çikis olarak tanimlanabilir. Daha sonra istenilen deger ilgili porta yüklenir. Degerin porta yüklenmesi için farkli yollar vardir.

Örnegin:

TRISB = 0 ‘Portb’nin tüm pinlerini çikis olarak tanimlamada kullanilir’

TRISA=1 ‘Portb’nin tüm pinlerini giris olarak tanimlamada kullanilir’

TRISC = %11110000 ‘Portb’nin ilk dört biti çikis,son dört biti giris olarak tanimlamada kullanilir’

Yönlendirilen port pinlerine bilgilerin gönderilmesi için birkaç yol vardir. Örnegin:

PORTB = %11110000 : ‘Portb’nin ilk dört pinine lojik-0 , son dört pinine ise lojik-1degeri gönderilmede kullanilir .’

PORTB = 1 ‘Portb’nin bütün pinlerine lojik-1 degeri gönderilmede kullanilir.’

HIGH PORTB.4 ‘PORTB’nin dördücü pinine lojik-1 degeri gönderilmede kullanilir .’

LOW PORTB.6 ‘PORTB’nin altinci pininelojik-0 degeri gönderilmede kullanilir.’

1.2.5. Zaman gecikmesi ( Pause ) : Pause programi istenilen bir süre beklemeye alir. En fazla 61.535 milisaniyelik bir gecikme saglanabilir. Bu da bir dakikanin biraz üstünde bir degerdir. Pause komutundaki deger milisaniye büyüklügündedir. Örnegin, PAUSE 49000 (49 saniyelik gecikme). Pause komutu bu çalismada komut yazimi anlaminda programi basitlestirmistir. Eger 49 saniyelik gecikmeyi assembly kodunda yazmak gerekseydi, su sekilde yazilmalidir.


LIST = P16F877

INCLUDE “P16F877.INC”

SAYI :2'> EQU H’20’

SAYI1 EQU H’21’

SAYI2 EQU H’22’

GECIKME

MOVLW H’FF’

MOVWF SAYI

DONGU

MOVLW H’FF’

MOVWF SAYI1

DONGU1

MOVLW H’FF’

MOVWF SAYI2

DONGU2

DECFSZSAYI2,F

GOTO DONGU2

DECFSZ SAYI1,F

GOTO DONGU1

DECFSZ SAYI

GOTO DONGU

RETURN


Oysa bu programi PIC BASIC PRO programlama dilinde PAUSE 49000 seklinde tek satirda gerçeklestirmek mümkün olmaktadir. Görüldügü üzere PIC BASIC PRO ile program yazmak hem çok rahat hem de çok basit olmaktadir.
__________________


d ü n y a b i z i ç i n d ö n m ü y o r s a d u r s u n
k a l s ı n y a ş a m a k
...

.






.



sha. isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Okunmamış 10.10.09, 14:15   #3 (permalink)
..daha çirkin, daha huysuz
 
sha. - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Ağu 2009
Mesajlar: 7583
Ettiği Teşekkür Sayısı: 3865
2965 Konuda 27197 Teşekkür Aldı
sha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond repute
Standart

1.2.6. Döngü düzenlemek ( For…Next ) : Bazi islemlerin önceden belirlenen sayida tekrarlanmasi gerekmektedir. PICBASIC programlama dilinde bu isi FOR…NEXT döngüsü bir sayaç gibi çalisarak gerçeklestirmektedir. FOR komutundan sonra bir degiskene ilk deger atanip, bu degiskenin sayacagi son deger de belirtilir. Ayrica degiskenin kaçar kaçar artacagi STEP komutuyla kontrol edilebilmektedir. Son olarak NEXT döngüsüne gelen program eger son degere ulasilmamis ise bir sonraki deger için ayni isi yapacaktir. Örnegin:

For k=2 TO 10 step 2

Pause1000

Next

Burada k degiskeni 2’den 10’a kadar ikiser ikiser saymaktadir. Her bir döngüde bir saniyelik bir gecikme saglamaktadir. Döngü toplam bes tur atacagindan 5 saniyelik bir gecikme saglanmis olacaktir.

1.2.7. Kontrol yapmak (IF…Then) : Bazi islemlerde bir durumun kontrol edilmesi gerekebilir. Picbasic programlama dilinde bu isi IF…THEN komutu saglamaktadir. Bu kontrol deyimi bir veya birden çok karsilastirmayi icra edebilir. IF…THEN kontrolörü bir durumun dogru (true) veya yanlis (false) olmasini karsilastirarak degerlendirir. Eger degerlendirme dogru iseTHEN komutundan sonraki komut icra edilmektedir. Eger degerlendirme yanlis ise program bir sonraki satira geçmektedir. Örnegin:

IF portb.2 = 0 then high porta.1

Else high portb.3

Bu program parçasinda eger portb’nin ikinci pinine lojik-0 gelmisse porta’nin birinci pinine lojik-1gönderilir aksi taktirde portb’nin üçüncü pinine lojik-1 gönderilecektir.


1.3. Kesmeler : Bir Pic mikrodenetleyicisinde kesmelerin nasil oldugundan 3. bölümde bahsedilmistir. Burada sadece Pic Basic Pro dilinde kesmelerin nasil yapildigindan biraz bahsedilecektir.

Bir kesme programi yazmak için en kolay yol ON INTERRUPT yazmakla baslar. Bu komut Pic Basic Pro programinin dahili kesmeleri aktif etmesini ve kesme geldigi anda mümkün olan en kisa zamanda kesme alt programina dallanmasi gerektigini bildirir. ON INTERRUPT kullanilirsa, bir kesme olustugu anda program bulundugu yerden alt programa dallanmakta ve kesme alt programini icra ettikten sonra kaldigi yere geri dönmektedir. Fakat bu islem assembly dilindeki kadar hizli olmamaktadir. Ilk olarak kesme geldigi andaki komutun icrasi tamamlanmakta ve ardindan kesme islemi gerçeklestirilmektedir. Eger PAUSE 10000 gibi bir komut icra edilirken kesme gelmisse bu komutun icrasi bitene kadar (10 saniye) kesme islemi gerçeklesmeyecektir ve program istenilen amacin disinda çalisacaktir. Bu da Pic Basic Pro’nun dezavantajlarindan biridir.

Kesme isleminin yapilabilmesi için öncelikle ilgili registerlerin ayarlanmasi gerekmektedir ve dikkat edilmesi gereken bir hususta kesme altprograminin programda dogru yerlere yazilmasidir. Örnek bir kesme alt programi asagidaki gibidir.


‘ Port ayarlamalari yapilir

….

ON INTERRUPT GOTO OKUMA

INTCON = %10100000 ‘ Tmr0 kesmesini ayarlamak için

STATUS = %00000111 ‘ Prescaler degeri için

ENABLE INTERRUPT

‘ Ana program bu kisima yazilir

……..

……

…..

….

...

DISABLE INTERRUPT

ASM

MOVF TMR0,W ‘ Assembly komutlari kollanilmistir.

MOVWF PORTD

NOP

BCF TMR0,2

ENDASM

RESUME

ENABLE INTERRUPT

END
__________________


d ü n y a b i z i ç i n d ö n m ü y o r s a d u r s u n
k a l s ı n y a ş a m a k
...

.






.



sha. isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Okunmamış 10.10.09, 14:15   #4 (permalink)
..daha çirkin, daha huysuz
 
sha. - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Ağu 2009
Mesajlar: 7583
Ettiği Teşekkür Sayısı: 3865
2965 Konuda 27197 Teşekkür Aldı
sha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond repute
Standart

1.4. Pic Basic Pro Komutlari

@ : : Assembly kodu (tek satirlik) eklemek için kullanilir.

ASM . . ENDASM : Assembly dili kodlarini eklemek için kullanilmaktadir.

BRANCH : Programin baska bir yere dallanmasini saglamaktadir ( = ON..GOTO )

BRANCHL : Programin degisken içerikli bir konuma dallanmasini saglamaktadir.

BUTTON : Pine bagli bir anahtardaki siçramalari düzenlemektedir.

CALL : Assembly dilinde yazilmis alt programi çagirmaktadir.

CLEAR : Tüm degiskenleri sifirlamaktadir.

CLEARWDT : Watchdog timeri silmektedir.

COUNT : Bir pindeki darbeleri saymaktadir.

DATA : Eepromun ilk içerigini belirlemede kullanilmaktadir.

DEBUG : Uygun pinden ve hizda (baud) asenkron seri çikis

DEBUGIN : Uygun pinden ve hizda (baud) asenkron seri giris

DISABLE : Debug yada Interrupt komutlarinin icrasini durdurmaktadir. (pasif etme)

DTMFOUT : Istenilen pinden touch tonlar üretir.

EEPROM : Eepromun ilk içerigini belirlemede kullanilmaktadir.

ENABLE : Debug yada Interrupt komutlarinin icrasini aktif etmektedir.

END : Islemleri durdurur ve düsük güç moduna geçmektedir.

FOR… NEXT : Islemlerin tekrarinda kullanilmaktadir.

FREQOUT : Bir pinde ikiden fazla frekans saglamaktadir.

GOSUB : Belirlenen adresteki BASIC altprogramini çagirmaktadir.

GOTO : Programinin icrasini belirlenen adrese götürmektedir.

HIGH : : Pini aktif yapmaktadir. (lojik-1)

HPWM : Programdan bagimsiz PWM sinyal üretmektedir.(sadece belirli Pic’erde)

HSERIN : Programdan bagisiz asenkron seri giris.

HSEROUT : Programdan bagisiz asenkron seri çikis.

I2CREAD : I²C aygitlardan okumada kullanilir.

I2CWRITE : I²c aygitlara yazmada kullanilir.

INPUT : Pini giris yapmaktadir.

LCDIN : Lcd hafizasindan (RAM) okumada kullanilir.

LCDOUT : Karakterleri lcdde göstermektedir.

LOOKDOWN : Degisken için sabit tablosunu arastirmaktadir.

LOOKDOWN2 : Degisken için sabit-degisken tablosunu arastirmaktadir.

LOOKUP : Tablodan sabit degeri almaktadir.

LOW :2'> : Pini sifira çekmektedir.(lojik sifir)

NAP : Geçici bir süre islemcinin enerjisini kesmektedir.

OWIN : Tek kablo giris.

OWOUT :: Tek kablo çikis.

OUTPUT : Pini çikis yapmaktadir.

PAUSE : Gecikme saglamaktadir. (ms)

PAUSEUS : Gecikme saglamaktadir. (µs)

PEEK : Registerden Byte’i okumada kullanilir.

POKE : Registere Byte’i yazmada kullanilir.

POT : Belirlenen pindeki potansiyometrenin degerini okumaktadir.

PULSIN :: Bir pindeki darbe genisligini okumaktadir.

PULSOUT : Pinde darbe üretmektedir.

PWM : Pinde PWM sinyal üretmektedir.

RCTIME : Pindeki darbe genisligini ölçmektedir.

READ : Eepromdan Byte’i okumaktadir.

READCODE : Kod hafizasindan kelime okumaktadir.

RESUME : Kesmeden sonra programi kaldigi yere göndermektedir.

RETURN : GOSUB komutuyla dallanilan alt programdan kaldigi yere geri döndermektedir.

REVERSE : Pinin konumunu degistirmektedir.(girisse çikis çikissa giris yapar)

SELECT CASE : Bir degiskeni farkli degerlerle karsilastirmaktadir.

SERIN : Asenkron seri giris.

SEROUT : Asenkron seri çikis.

SHIFTIN : Senkron seri giris.

SHIFTOUT : Senkron seri çikis.

SLEEP : Belli bir süre için islemcinin enerjisini kesmektedir.

SOUND : Belirlenen pinde ton yada beyaz gürültü olusturmaktadir.

STOP : Programin icrasini durdurmaktadir.

SWAP : Iki degiskenin degerini degistirmektedir.

TOGGLE : Pini toggle durumuna almada kullanilir..

USBIN : USB giris.

USBINIT : USB ayarlama.

USBOUT : USB çikis.

WHILE… WEND : Sart dogru olana kadar programin (durumun) icrasini sürdürmede kullanilir.

WRITE : Eeproma byte’i yazmada kullanilir.

WRITECODE : Kod hafizasina kelime yazmada kullanilir.

XIN : X-10 giris.

XOUT : X-10 çikis.

konunun tamamı alıntıdır...
__________________


d ü n y a b i z i ç i n d ö n m ü y o r s a d u r s u n
k a l s ı n y a ş a m a k
...

.






.



sha. isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Okunmamış 10.10.09, 17:56   #5 (permalink)
Yeni Üye
 
anibus_rocker - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Eki 2009
Mesajlar: 6
Ettiği Teşekkür Sayısı: 0
2 Konuda 2 Teşekkür Aldı
anibus_rocker is on a distinguished road
Standart

Bunlar pic16F84 için değilmi?
anibus_rocker isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Okunmamış 10.10.09, 18:30   #6 (permalink)
..daha çirkin, daha huysuz
 
sha. - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Ağu 2009
Mesajlar: 7583
Ettiği Teşekkür Sayısı: 3865
2965 Konuda 27197 Teşekkür Aldı
sha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond reputesha. has a reputation beyond repute
Standart

Sanırsam
__________________


d ü n y a b i z i ç i n d ö n m ü y o r s a d u r s u n
k a l s ı n y a ş a m a k
...

.






.



sha. isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Okunmamış 10.10.09, 18:59   #7 (permalink)
Yeni Üye
 
anibus_rocker - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Eki 2009
Mesajlar: 6
Ettiği Teşekkür Sayısı: 0
2 Konuda 2 Teşekkür Aldı
anibus_rocker is on a distinguished road
Standart

programlama güzel ama bunun progranabilme devresinide eklersen daha güzel olur.
anibus_rocker isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Etiketler
ile, pic, pro


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Forum Şartları


Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 23:42.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.
2008-2014 Her hakkı kendinde saklı olan forum.
Sitemiz bir forum sitesi olduğu için kullanıcılar paylaşımlarını önceden onay almadan anında siteye yazabilmektedir. Bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yinede sitemizde yasalara aykırı unsurlar bulursanız iletisim adresine bildirebilirsiniz, şikayetiniz incelenip en kısa sürede gereken yapılır.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89