çok güsel bi konu bence. paylaşım için saol. MeKaTRoNiK

ELektronikçiLer yaptı işte onu. yani biz

elektronik kötü bişe (19 ocak cumartesi) bir tv kanallında terminatör 2 vardı. bir mikroçip az daha dünyayı yok ediyordu. ufacık birşey ewet kodları kendi olusturuyo sonra insan aklı gibi kendini tanıyo gelistırıyo. anladım ki elektronik kötü bişey.[ bu mesajdan sonra bilgisayarımının p4 3.0 işlemcisini kıracam).

ellerine saglık çok güzel olmuş ama c ccs i tercih ederim

ben de elektronik okumayı düşünüyom inşallah...

Pic Basic Pro programlama dili mikrochip firmasının ürettiği mikrodenetleyicileri programlamada kullanılan daha çabuk ve kolay bir dildir. Pic Basic Pro programlama dili ile 8 ile 84 pin arasındaki değişik özelliklerdeki mikrodenetleyiciler için program yazılabilir. Üst seviyeli programlama dilleri sayesinde çok daha rahat ve hızlı bir şekilde programlama yapılabilmektedir. Ancak bu programlar çok karmaşık sistemlerin çözümünde yetersiz kalabilmektedir. Yüksek seviyeli bu programlama dilleri assembly dili komutları ile birlikte kullanılabilmektedir. Bu durumda yüksek seviyeli bir pic programlama dili ve PIC assembly dili birlikte kullanıldığında bu sorun ortadan kalkmaktadır. Değişkenler PICBASIC programlama dilinde üç tip değişken tipi kullanılmaktadır. Değişkenler BIT, BYTE veya WORD büyüklüğünde olabilirler. Aşağıda örnek tanımlamalar gösterilmiştir. sayi VAR BYTE isim VAR WORD deger VAR BIT Etiketler Etiketler GOTO veya GOSUB gibi komutlara referans teşkil ederler. Bu komutların icrasından sonra program etiketle belirtilen satıra dallandırılır. Etiketler herhangi bir kelime olabilir ve sonuna iki nokta üst üste ) konur. etiket1: HIGH PORTB.5 goto etiket2 Nümerik sabitler Nümerik sabitler üç şekilde tanımlanırlar. Bunlar decimal, binary ve hexadecimal'dir. Binary değer tanımlanırken değerin başına '%' ve hexadecimal değerin başına '$'işareti konulur. Decimal değer tanımlanırken herhangi bir işaret kullanılmaz. Örneğin: 100'decimal değer. %100 'decimal 4 için binary değer. $100 'decimal 256 için hexadecimal değer. Portlar PIC'in herhangi bir portunun istenilen pini giriş yada çıkış olarak tanımlanabilir. Daha sonra istenilen değer ilgili porta yüklenir. Değerin porta yüklenmesi için farklı yollar vardır. PIC'in herhangi bir portunun istenilen pini giriş yada çıkış olarak tanımlanabilir. Daha sonra istenilen değer ilgili porta yüklenir. Değerin porta yüklenmesi için farklı yollar vardır. Örneğin: TRISB = 0 'Portb'nin tüm pinlerini çıkış olarak tanımlamada kullanılır' TRISA=1 'Portb'nin tüm pinlerini giriş olarak tanımlamada kullanılır' TRISC = %11110000 'Portb'nin ilk dört biti çıkış, son dört biti giriş olarak tanımlamada kullanılır' Yönlendirilen port pinlerine bilgilerin gönderilmesi için birkaç yol vardır. Örneğin: PORTB = %11110000 : 'Portb'nin ilk dört pinine lojik-0, son dört pinine ise lojik-1değeri gönderilmede kullanılır.' PORTB = 1 'Portb'nin bütün pinlerine lojik-1 değeri gönderilmede kullanılır.' HIGH PORTB.4 'PORTB'nin dördücü pinine lojik-1 değeri gönderilmede kullanılır.' LOW PORTB.6 'PORTB'nin altıncı pininelojik-0 değeri gönderilmede kullanılır.' Zaman Gecikmesi Pause programı istenilen bir süre beklemeye alır. En fazla 61.535 milisaniyelik bir gecikme sağlanabilir. Bu da bir dakikanın biraz üstünde bir değerdir. Pause komutundaki değer milisaniye büyüklüğündedir. Örneğin, PAUSE 49000 (49 saniyelik gecikme). Pause komutu bu çalışmada komut yazımı anlamında programı basitleştirmiştir. Eğer 49 saniyelik gecikmeyi assembly kodunda yazmak gerekseydi, şu şekilde yazılmalıdır. 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 programı PIC BASIC PRO programlama dilinde PAUSE 49000 şeklinde tek satırda gerçekleştirmek mümkün olmaktadır. Görüldüğü üzere PIC BASIC PRO ile program yazmak hem çok rahat hem de çok basit olmaktadır. Döngüler Bazı işlemlerin önceden belirlenen sayıda tekrarlanması gerekmektedir. PICBASIC programlama dilinde bu işi FOR... NEXT döngüsü bir sayaç gibi çalışarak gerçekleştirmektedir. FOR komutundan sonra bir değişkene ilk değer atanıp, bu değişkenin sayacağı son değer de belirtilir. Ayrıca değişkenin kaçar kaçar artacağı STEP komutuyla kontrol edilebilmektedir. Son olarak NEXT döngüsüne gelen program eğer son değere ulaşılmamış ise bir sonraki değer için aynı işi yapacaktır. Örneğin: For k=2 TO 10 step 2 Pause 1000 Next Burada k değişkeni 2'den 10'a kadar ikişer ikişer saymaktadır. Her bir döngüde bir saniyelik bir gecikme sağlamaktadır. Döngü toplam beş tur atacağından 5 saniyelik bir gecikme sağlanmış olacaktır. Kontrol Bazı işlemlerde bir durumun kontrol edilmesi gerekebilir. Picbasic programlama dilinde bu işi IF... THEN komutu sağlamaktadır. Bu kontrol deyimi bir veya birden çok karşılaştırmayı icra edebilir. IF... THEN kontrolörü bir durumun doğru veya yanlış olmasını karşılaştırarak değerlendirir. Eğer değerlendirme doğru iseTHEN komutundan sonraki komut icra edilmektedir. Eğer değerlendirme yanlış ise program bir sonraki satıra geçmektedir. Örneğin: IF portb.2 = 0 then high porta.1 Else high portb.3 Endif Bu program parçasında eğer portb'nin ikinci pinine lojik-0 gelmişse porta'nın birinci pinine lojik-1gönderilir aksi taktirde portb'nin üçüncü pinine lojik-1 gönderilecektir. Kesmeler Bir kesme programı yazmak için en kolay yol ON INTERRUPT yazmakla başlar. Bu komut Pic Basic Pro programının dahili kesmeleri aktif etmesini ve kesme geldiği anda mümkün olan en kısa zamanda kesme alt programına dallanması gerektiğini bildirir. ON INTERRUPT kullanılırsa, bir kesme oluştuğu anda program bulunduğu yerden alt programa dallanmakta ve kesme alt programını icra ettikten sonra kaldığı yere geri dönmektedir. Fakat bu işlem assembly dilindeki kadar hızlı olmamaktadır. İlk olarak kesme geldiği andaki komutun icrası tamamlanmakta ve ardından kesme işlemi gerçekleştirilmektedir. Eğer PAUSE 10000 gibi bir komut icra edilirken kesme gelmişse bu komutun icrası bitene kadar (10 saniye) kesme işlemi gerçekleşmeyecektir ve program istenilen amacın dışında çalışacaktır. Bu da Pic Basic Pro'nun dezavantajlarından biridir. Kesme işleminin yapılabilmesi için öncelikle ilgili registerlerin ayarlanması gerekmektedir ve dikkat edilmesi gereken bir hususta kesme altprogramının programda doğru yerlere yazılmasıdır. Örnek bir kesme alt programı aşağıdaki gibidir. ' Port ayarlamaları yapılır... ON INTERRUPT GOTO OKUMA INTCON = %10100000 ' Tmr0 kesmesini ayarlamak için STATUS = %00000111 ' Prescaler değeri için ENABLE INTERRUPT ' Ana program bu kısıma yazılır... DISABLE INTERRUPT OKUMA DEGER=PORTB RESUME ENABLE INTERRUPT Kolay gelsin. saygılar -

çok güsel bi konu bence. paylaşım için saol.

wayy bu bizim yazmak istedigimiz kodları kendisi oluşturuyor sanırım

güzel döküman olmuş.. konuyu bir süreliğine sabitliyorum herkes görsün... teşekkürler... ¢