Jalv2 ile PIC Programlama 1.BÖLÜM. Sercan TEK. Temmuz Temel JALv2 Kavramları

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Jalv2 ile PIC Programlama 1.BÖLÜM. Sercan TEK. Temmuz 2011. Temel JALv2 Kavramları"

Transkript

1 1BÖLÜM Sercan TEK Temmuz 2011 Temel JALv2 Kavramları Not : Buradaki bazı komutlar jalv2 derleyicisinin 24o ve sonraki versiyonları için geçerlidir Temel programlama ve elektronik bilginizin olduğu varsayılarak hazırlanmıştır Bu Doküman Hazırlanırken Jalv2 derleyicisinin Daima son sürümü kullanılmıştır

2 İÇİNDEKİLER Bölüm: 1 Temel Jalv2 Kavramları 11 JAL DİLİ VE SYNTAX DÜZENİ 1 Jalv2'in Desteklediği PIC'ler 1 Jalv2 Derleyicisindeki Yenilikler 1 Jalv2 Dilindeki Syntax 2 12 JALEDİT UYGULAMA GELİŞTİRME ORTAMI 2 Jaledit Programının Üstünlükleri 2 13 JALV2 KAVRAMLARI VE TEMEL KOMUTLARI 3 Değişkenler 3 Jalv2 de Değişken Tanımlama Biçimleri 3 Jalv2 Gösterim Şekilleri 4 Sabitler 4 Dizi Tanımlamaları 5 Count Fonksiyonu 5 Include Komutu 6 Açıklama Satırları 6 Takma İsim Kullanımı (Alias) 6 Adres Atama (Location) 7 Operatörler 7 Matematiksel Operatörler 8 Mantıksal Operatörler 8 Karşılaştırma Operatörleri 9 İstenilen Bitlerin Maskelenmesi (Sıfırlanması) 9 İstenilen Bitlerin Setlenmesi (Birlenmesi) 9 Bitlerin Terslenmesi 9 İstenilen Bitlerin Terslenmesi 9 Tüm Bitlerin Terslenmesi KARAR VERME YAPILARI,KOD BLOĞU VE RECORD YAPISI 10 Karar Verme Yapıları 10 İfThen 10 CaseOf 11 BlockEnd Block 12 Record Yapısı DÖNGÜLER 13 Forever Loop Döngüsü 13 ForLoop Döngüsü 13 Using Komutu 14 While Loop Döngüsü 14 Repeat Until Döngüsü ALT PROGRAM TANIMLAMALARI 15 Procedure Tanımlaması 16 Function Tanımlaması 17 Pseudo Tipinde Alt Program Tanımlaması 18 Pseudo Tipinde Procedure Tanımlama 18 Pseudo Tipinde Function Tanımlama 19 Alt Programların Global Olarak Kullanımı 19 İç içe Alt Program Tanımlama PIC ASSEMBLER KULLANIMI 21 Tek Assembler Komutunun Kullanımı 22 Assembler Kod Bloğu Kullanımı(Assemblerend assembler) DAHİLİ FONKSİYONLAR 23 Count() Fonksiyonu 23 Defined() Fonksiyonu 23 _usec_delay() Fonksiyonu 24 Tipler Arası Dönüşüm Fonksiyonları 24

3 Byte() Fonksiyonu 24 SByte() Fonksiyonu 25 Word() Fonksiyonu 25 Sword() Fonksiyonu 25 Dword() Fonksiyonu 25 Sdword() Fonksiyonu PRAGMA KAVRAMI 26 Chip Konfigürasyon İfadeleri 26 Alt Program Optimizasyon İfadeleri 26 FRAME 26 INLINE 26 INTERRUPT 28 JUMP_TABLE 28 KEEP 29 NOSTACK 29 Kod Optimizasyon İfadeleri 29 EXPR_RECUDE 29 CEXPR_RECUDE 30 CONST_DETECT 30 LOAD_RECUDE 30 TEMP_RECUDE 30 VARIABLE_FRAME 31 VARIABLE_RECUDE 31 Derleyici Konfigürasyon İfadeleri 31 BOOTLOADER 31 BLOADER 31 LOADER18 31 LONG_START 32 RICKPIC 32 CLEAR 32 EEDATA 32 FUSE 32 IDDATA MESAJ ÜRETME KOMUTLARI 33 _DEBUG 33 _WARN 33 _ERROR 34 KANAKÇA 34 Bu Bölümde Jalv2 ile program yazarken kullanacağımız kodların ne işe yaradığını ve nasıl kullanıldığını örnek ile öğreneceksiniz Bu yüzden şuan için jalv2 kullanarak yazılmış programlara yer verilmedi Ama Yayınlanacak olan bölümlerde daha çok kod yazmaya ve çevresel aygıtların kullanımına ağırlık verilecektir

4 11 JAL Dili ve Syntax Düzeni JAL, Microchip ve Unicom Firmasının mikro derleyicileri için hazırlanmış olan ücretsiz, yüksek seviyeli ve açık kaynak kodlu bir derleyicidirjal adını "Just Another Language" Kelimelerinin Baş Harflerinden alır Wouter van Ooijen tarafından 22 Haziran 1998 yılında ilk versiyonu çıkmıştır ve şimdi GNU GPL lisanslı olup sourceforgenet tarafından geliştirilmeye devam etmektedir Bir BASIC derleyicisi yazan Kyle York adındaki programcı, yazdığı derleyiciye JAL ın syntax düzenini uyarlayarak JALv2 Dilini türetti ve yayımlamaya başladı Yayımlanan Bu Dilde(Jalv2) dilinde küçük büyük harf hassasiyeti yoktur Compiler kodu derlerken assembly çıktısını da üretmektedir Kodlama esnasında assembly ifadelerinin veya assembly bloklarının kullanılmasına izin verir Tamamen C dili ile geliştirilmiş açık kaynak kodlu olarak dağıtılmaktadır 111 Jalv2 derleyicisindeki yenilikler 1) Değişken tipleri geliştirildi ve Daha yüksek bite sahip değişkenler ve dizi değişkenleri eklendi 2) Hex dosyasının derlendikten sonra çalışma sırasındaki hatalarının giderilmesi sağlandı 3) Tam kütüphane desteği sağlandı ve kütüphane dosyası olan her 8-bit PIC serisine destek sağlandı 4) Jalv2, sıfırdan yazıldığı için kaynak kodları daha sade hale getirildi ve okunabilirliği artırıldı 5) Derleme esnasında kullanılmayan değişken ve alt programların derlenmemesi için geliştirilmeler yapılarak, çıkan hex dosyasının daha sade ve kısa hal alması sağlandı 6) Tanımlanan değişkenler assembly komutlarında kullanılması sağlandı 7) Daha önceden bulunmayan işlevsel komutlar ilave edildi 8) Kod Optimizasyonunun en iyi şekilde olması sağlandı 112 Jalv2'in Desteklediği PIC'ler 10f200 16f526 16f819 16lf f24j11 18f43k22 18f46j50 18f67j60 18lf13k22 10f202 16f610 16f84a 16lf f24j50 18f f46j53 18f67k22 18lf13k50 10f204 16f616 16f87 16lf f24k20 18f442 18f46k20 18f67k90 18lf14k22 10f206 16f627 16f870 16lf f24k22 18f f46k22 18f lf14k50 10f220 16f627a 16f871 16lf f f f46k80 18f83j11 18lf23k22 10f222 16f628 16f872 16lf707 18f f f47j13 18f83j90 18lf24j10 12f f628a 16f873 16lf720 18f252 18f f47j53 18f lf24j11 12f508 16f630 16f873a 16lf721 18f f f f84j11 18lf24j50 12f509 16f631 16f874 16lf722 18f f f63j11 18f84j90 18lf24k22 12f510 16f636 16f874a 16lf722a 18f f f63j90 18f lf25j10 12f519 16f639 16f876 16lf723 18f f448 18f f lf25j11 12f609 16f648a 16f876a 16lf723a 18f f f64j11 18f85j10 18lf25j50 12f615 16f676 16f877 16lf724 18f f44j10 18f64j90 18f85j11 18lf25k22 12f617 16f677 16f877a 16lf726 18f258 18f44j11 18f f85j15 18lf25k80 12f629 16f684 16f88 16lf727 18f f44j50 18f f85j50 18lf26j11 12f635 16f685 16f882 18f f f44k20 18f65j10 18f85j90 18lf26j13 12f675 16f687 16f883 18f f25j10 18f44k22 18f65j11 18f85k22 18lf26j50 12f683 16f688 16f884 18f f25j11 18f f65j15 18f85k90 18lf26j53 12hv609 16f689 16f886 18f f25j50 18f f65j50 18f lf26k22 12hv615 16f690 16f887 18f13k22 18f25k20 18f452 18f65j90 18f lf26k80 12lf f707 16f913 18f13k50 18f25k22 18f f65k22 18f lf27j13 16f f716 16f914 18f14k22 18f25k80 18f f65k80 18f86j10 18lf27j53 16f f72 16f916 18f14k50 18f f f65k90 18f86j11 18lf43k22 16f f720 16f917 18f f f f f86j15 18lf44j10 16f f721 16f946 18f f f f f86j16 18lf44j11 16f f722 16hv610 18f f f f f86j50 18lf44j50 16f f722a 16hv616 18f f f458 18f66j10 18f86j55 18lf44k22 16f f723 16hv785 18f f26j11 18f f66j11 18f86j60 18lf45j10 16f f723a 16lf f23k20 18f26j13 18f f66j15 18f86j65 18lf45j11-1 -

5 16f f724 16lf f23k22 18f26j50 18f45j10 18f66j16 18f86k22 18lf45j50 16f f726 16lf f f26j53 18f45j11 18f66j50 18f86k90 18lf45k22 16f f727 16lf f242 18f26k20 18f45j50 18f66j55 18f lf45k80 16f f73 16lf f f26k22 18f45k20 18f66j60 18f lf46j11 16f f737 16lf f f26k80 18f45k22 18f66j65 18f87j10 18lf46j13 16f f74 16lf f f27j13 18f45k80 18f66k22 18f87j11 18lf46j50 16f f747 16lf f f27j53 18f f66k80 18f87j50 18lf46j53 16f f76 16lf f f f f66k90 18f87j60 18lf46k22 16f f767 16lf f f f f f87k22 18lf46k80 16f f77 16lf f f f f f87k90 18lf47j13 16f f777 16lf f248 18f f f67j10 18f96j60 18lf47j53 16f505 16f785 16lf f f f46j11 18f67j11 18f96j65 18lf65k80 16f506 16f818 16lf f24j10 18f43k20 18f46j13 18f67j50 18f97j60 18lf66k80 Toplam: 378 Adet PIC Desteği vardır 113 Jalv2 Dilindeki Syntax Jalv2 dilinin söz dizilimi temel olarak Pascal diline daha yakındır Bazı komutları C diline çok benzemektedir Önceden Pascal veya C kullanmış olanlar daha çabuk uyum sağlayacaklardır Hiç kullanmayanlar ise daha kısa sürede dilin kolaylılığı yüzünden hemen alışıp program geliştirebileceklerdir Jalv2 için tüm herşeyi Bulabileceğiniz Tek adres : Jalv2 Compiler Download 12 Jaledit uygulama Geliştirme Ortamı Jalv2 dilinde uygulama geliştirmek için öncelikle bir Editör Programına İhtiyaç duyulmaktadır Piyasada birçok editör yer almakla birlikte en iyi ve gelişmiş özelliklere sahip JALEDİT editörünü kullanmanız işinizi kolaylaştıracaktır Delphi Dili ile geliştirilmiş olup açık kaynak kodlu yayımlanmaktadır 121 Jaledit Programının üstünlükleri - İçerisinde mini seri port terminal modülü bulunmaktadır Böylelikle seri port ile ilgili uygulamalarda seri port tan gelen verileri mini terminal ile görebiliriz - Jal syntax renklendirmesi yapmaktadır Kodların okunabilirliği arttığı gibi kodları takip etmek daha kolaylaşır - Derleyiciden gelen hata mesajlarını gösterir ve üzerine tıklandığında o satıra yöneltir - Kullanımı basit ve sade bir arayüze sahiptir - Seri port programlayıcılara bağlanarak hex dosyasını pic'e aktarabilir - İçerisinde basit araçlar ile birlikte gelir, program yazılmasını hızlandırır - Derleyici ayarları ve editör ayarları istenildiği gibi değiştirilmesine izin verir JALEDİT Programını ve gelişmeleri takip edebileceğiniz adres : Jaledit IDE Download Piyasada bulabileceğiniz Serkan AYYILDIZ'ın JAL ile Programlama Kitabı eski JAL compiler üzerine kurulu olduğu için jalv2 ile derleme yapamazsınız Bu nedenle eğer o kitabı alacaksanız yanında gelen CD'de bulunan Jal compiler ver jaledit programını kullanabilirsiniz - 2 -

6 13 Jalv2 Kavramları ve Temel Komutları 131 Değişkenler Değişkenler her programla dilinin vazgeçilmez unsurlarıdır Program içerisinde tanımlanan değişkenler aslında birer hafıza alanından ibarettir Yani program içerisinde değer yazıp okuyabileceğimiz ve belirlediğimiz tipe göre hafızada alan kapsayan bölümlerdir Değişkenler, defalarca yazılıp okunabilmektedir Tanımlanan her değişken PIC entegresinin RAM bellek alanında yer kaplar Bunun anlamı Elektrik Kesildiğinde değişkene yüklenmiş olan son değer silinmektedir Bundan dolayı değişken tanımlandığında başlangıçta bir işlemde kullanılacak ise değişkene başlangıç değeri aktarılması doğrudur Değişkenler var Deyimi ile Tanımlanır Jalv2 dilinde toplam 7 adet değişken tipi vardır Bunlar aşağıdaki gibidir: Değişken Tipi Açıklama Değer Aralığı bit 1 bit değer alabilir 01 byte 8 bit işaretsiz değer alabilir 0255 sbyte 8 bit işaretli değer alabilir word 16 bit işaretsiz değer alabilir 065,535 sword 16 bit işaretli değer alabilir -32,76832,767 dword 32 bit işaretsiz değer alabilir 04,294,967,296 sdword 32 bit işaretli değer alabilir -2,147,483,6482,147,483,647 Tabloda göründüğü gibi değişken tipleri bakımından jalv2 zengin bir dil Ama genelde programlarda sadece 3 tip değişken (bit, byte, word) kullanılır 1311 Jalv2 de Değişken Tanımlama Biçimleri Jalv2 Dilinde Değişken Tanımlarken Aşağıdaki Yazı Formatı Kullanılır: var <değişken tipi> <değişken adı> Örnek: var bit deger Burada deger adında bit tipinde değişken tanımlaması yapılmıştır Eğer değişkenimize Başlangıç Değeri Aktarmak İstiyor isek o zaman Şu Şekilde olmalıdır: Var <değişken tipi> <değişken adı> = <Başlangıç değeri> Örnek: var byte deger = 250 Byte Tipinde Tanımlanan değer adındaki değişkene başlangıç değeri olarak 250 sayısı aktarılmıştır DEĞİŞKEN TİPİ Bit Byte Sbyte Word Sword Dword Sdword ÖRNEK TANIMLAMA Var bit deger Var bit deger = 1 Var byte dd Var byte dd = 23 Var sbyte deneme Var sbyte deneme = -100 Var word ornek Var word ornek = Var sword cok Var sword cok = Var dword cokdeger Var dword cokdeger = Var sdword cokcokdeger Var sdword cokcokdeger =

7 Değişkenler araya,(virgül) Koyulmak Şartı ile yanyana da Tanımlanabilirler Örnek: var byte saat,masa,sandalye,lcd Burada saat,masa,sandalye,lcd isimli Değişkenler byte tipinde tanımlanmıştır 132 Jalv2 Gösterim Şekilleri Desimal Sayı Gösterimi: Başında veya sonunda herhangi ek bir işaret olmaksızın sadece sayının yazılması şeklindeki gösterimdir Örnek: var byte ornekdec = 65 Burada ornekdec isimli değişkene Desimal 65 sayısı atanmıştır Hexadesimal Sayı Gösterimi: Hexadesimal sayı gösteriminde dikkat edilecek husus sayının başına 0x koyulması gerektiğidir Örnek: var byte ornekhex = 0x41 Burada ornekhex isimli değişkene Hexadesimal 41 sayısı atanmıştır (0x41 = 65) Octal Sayı Gösterimi: Octal sayı gösteriminde dikkat edilecek husus sayının başına 0q koyulması gerektiğidir Örnek: var byte ornekoct = 0q12 Burada ornekoct isimli değişkene Octal Tabanda 12 sayısı atanmıştır Binary Sayı Gösterimi: Binary sayı gösteriminde dikkat edilecek husus sayının başına 0b koyulması gerektiğidir Örnek: var byte ornekbin = 0b Burada ornekbin isimli değişkene binary sayısı atanmıştır (0b = 0x41 = 65) Not: Binary Sayı Gösteriminde aşağıdaki Formatta Kullanılabilir: Örnek: var byte ornekbin = 0b Örnek: var byte ornekbin = 0b_0100_0001 Burada aralara konan _ işareti önemsizdir Göz Karışıklığını Önlemek İçin Konulmuştur ASCI Gösterim: ASCI rakam, harf ve bazı özel işaretlerden oluşan karakterlerin sayısal karşılıklarının standardına verilen isimdir Bilgisayar Ortamında Tüm Her şey sayılar ile saklanmaktadır Örneğin ab = A tanımlaması Yapıldığında ab değişkenine A nın ASCI karşılığı yüklenmektedir Örnek: var byte ab = A Burada ab isimli değişkene A Harfinin ASCI Karşılığı Yüklenmiştir 133 Sabitler Sabitler Program Çalışırken Sadece Okunabilen Hafıza alanları Olarak Nitelendirilebilirler Değişkenlerden Farklı olarak Tanımlandıkları esnada içerisine değer aktarılır ve bu değer sadece okunabilir Değişiklik Yapılamaz Jalv2 Dilinde Sabit Tanımlama Formatı Aşağıdaki Gibidir: Const <Sabitin Tipi> <sabitin adı> = <aktarılacak değer> - 4 -

8 Örnek: Const bit led = 0 bit Tipinde Sabit Const byte deg = 100 byte Tipinde Sabit Const sbyte ges = -100 sbyte Tipinde Sabit Const word dk = 5000 word Tipinde Sabit Const sword sn = sword Tipinde Sabit Const dword snn = dword Tipinde Sabit Const sdword san = sdword Tipinde Sabit Bu tanımlamaların yanında sabitlerde ekstradan üniversal tip tanımlamada mevcuttur Genellikle PIC in çalışma frekansı gibi tanımlamalarda kullanılırlar Herhangi bir tipleri bulunmamaktadır Derleyici sadece derleme esnasında bu üniversal tipi kullanır ve derlendikten sonra ulaşma imkânı yoktur Örnek: Const devir = 600 Üniversal Tip Sabit Tanımlaması 134 Dizi Tanımlamaları Dizi tanımlamaları tek türde birçok elemanı bünyesine alabilen tanımlamalardır Tanımlama esnasında dizinin sayısı belli ise bu dizelere statik diziler, dizi sayısı belli değil ise bu dizilere ise dinamik dizeler denir Diziler hem değişken diziler hem de sabit diziler olarak tanımlanabilir Dizilerin ilk Elemanları daima 0(sıfır) dan Başlamaktadır Örnek: Değişken Diziler Var byte dizi[3] = {245,123,253} statik dizi Yukarıdaki örnekte dizi elemanları değişken olan statik bir dizi tanımlaması yapılmıştır Burada dizi[0] = 245, dizi[1] = 123, dizi[2] = 253 olmaktadıraynı Dizi dinamik olarak tanımlanmış olsa idi o zaman şu şekilde yazılması gerekmektedir Var byte dizi[] = {245,123,253} Var byte dizi[] = { S,2,1, V } dinamik dizi dinamik dizi Sabit Diziler Const byte mesaj[] = SsEeRrCcAaNn dinamik dizi Yukarıdaki örnekte dizi elemanları sabit olan dinamik bir dizi tanımlanmıştır Burada diziye yüklenen ASCI değer sayısı kadar bir dizi oluşmaktadır Aynı Diziyi birde statik olarak tanımlarsak aşağıdaki gibi yazılması gerekmektedir Const byte mesaj[12] = SsEeRrCcAaNn statik dizi Dizi Tanımlamalarında; eğer dizi değişken olarak tanımlandı ise o zaman dizi elemanları sonradan değiştirilebilir ama sabit olarak tanımlandı ise daha sonra bir değişiklik yapılamaz Ayrıca bit tipinde dizi tanımlaması yapılmamaktadır 1341 Count( ) Fonksiyonu Tanımlanan dizilerin eleman sayılarını bulmak için Kullanılan Fonksiyondur Genellikle dinamik dizilerin eleman sayılarını bulmak amacı ile kullanılır Eleman Sayısını bir değişkene aktararak ya da direkt bu fonksiyon üzerinden kullanılarak gerekli işlemler yapılabilir Kullanım Formatı : Count(dizi_adi) <degisken> = Count(dizi_adi) Fonksiyon Üzerinden Kullanılması Değişkene aktarılması - 5 -

9 135 Include Komutu Jalv2 Dili Kütüphanelere dayalı bir dildir Tüm Her şey Kütüphaneler Üzerinden Yönetilir Projenize Başlarken bile öncelikle kullanmanız Gereken PIC entegresini tanıtmanız gerekmektedir Bunu Yapabilmek İçin İse Kullanılacak Entegrenin adreslerinin tanımlı olduğu kütüphane Dosyasını Projenize Dâhil Etmeniz Gerekmektedir Bunun Haricinde özel bir kütüphane Dosyasını projenize dâhil etmek için kullanılmaktadır Yazım Formatı: include <Dahil Edilecek Kütüphane Dosyasının adı> Örnek: include 16F628A Jalv2 Compileri derleme yaparken kütüphane Dosyalarını Sadece bir Dizinde aramaktadır Genellikle Derleyicinin Bulunduğu Dizinde Lib klasörü Kullanılmaktadır Bu yüzden özel bir kütüphane kullanmak istiyorsanız, kütüphane Dosyasını Lib klasörü içerisine kopyalamanız Gerekmektedir Compiler C sürücüsünde olduğu varsayılır ise; C:\compiler\jalv2exe C:\Lib Derleyici Kütüphane Klasörü 136 Açıklama Satırları Jalv2 Dilinde Açıklamalar iki işaret ile gerçekleşir Bunlar: 1) -- Yan Yana iki adet eksi işareti ile 2) ; Noktalı Virgül ile Derleyici bu işaretlerin sağında kalan kısımları derlemez ve göz ardı eder Açıklama satırlarının kullanım amacı yazılan programda hatırlatıcı veya bilgilendirici yazılar yazmaktır Programda istenmeyen bir kod olduğunda deneme amaçlı o kodu pasif hale getirmek için bu işaretlerde kullanılabilir Açıklama sadece tek satır için geçerlidir Çoklu satır açıklama yazmak istenirse her satırın başına bu işaretlerden konulması gerekmektedir Örnek: ; Programın Adı : Açıklama Satırı Örnek Kod -- Yazan : SsEeRrCcAaNn -- Tarih : ; include 16F628A Yukarıdaki örnekte açıklama satırı program hakkında bilgi vermek için yazılmıştır Burada başında -- ve ; olan satırlar dikkate alınmayacak ve derlenmeyecektir 137 Takma İsim Kullanımı (Alias) Takma İsimler Daha Önce Tanımlanmış bir Değişkene Akılda Kalıcı bir isim vermek için kullanılmaktadır Derleme Esnasında Hafızada yer Kaplamazlar Kullanımı derleme sonrası çıkan hex kodunda herhangi bir değişiklik yaratmaz - 6 -

10 Kullanım Formatı: Var volatile <Asıl Değişkenin tipi> <Verilecek Takma isim> is <Asıl Değişken> Örnek: var byte Sercan = 250 var volatile byte Seco is Sercan Bu Örnekte byte tipinde tanımlanmış olan Sercan isimli değişken yerine artık Seco takma adı kullanılabilmektedir 138 Adres Atama (Location) Jalv2 dilinde adres atama sayesinde kullanılacak olan pıc entegresinde bulunan adresleri değişkenlere aktarılabilmektedir Bu sayede değişkenler aracılığı ile pıc in kaydedicilerine ve kullanıcı ram ına ulaşılabilinir Adres atamada iki tip kullanılmaktadır: 1) - byte tipi 2) - bit tipi Kullanım Formatı : var volatile byte <adrese verilecek isim> at <adres> var volatile bit <adrese verilecek isim> at <adres> Örnek: var volatile byte portb at 0x86 Program İçerisinde PIC in 0x86 adresine artık portb olarak erişilebilinecektir var byte sayi = 0b_1111_1010 var volatile bit sayi_bit at sayi: 3 Aynı görevi gören başka bir kod yazarsak şu şekilde olacaktır: var byte sayi = 0b_1111_1010 var bit sayi_bit at sayi: Operatörler Burada sayi değişkeninin 3bitini sayi_bit değişkenine aktarmaktadır Burada sayi değişkeninin 3bitini sayi_bit değişkenine aktarmaktadır Operatörler Programlama Dillerindeki Çeşitli matematiksel, mantıksal ve karşılaştırma işleri yapmakta olan özel karakterlerdir Jalv2 dili operatör yapısını C dilinden almıştır Operatörler Yanyana yazıldıklarında işlem önceliğine göre hesaplanırlar Operatör Öncelik Açıklama Kullanıldığı Tipler Türü - 0 (Yüksek) Negatif işareti Sbyte,sword,sdword Matematiksel! 0 (Yüksek) Değil(Not) Genel Tipler Mantıksal * 1 Çarpma Genel Tipler Matematiksel / 1 Bölme Genel Tipler Matematiksel % 1 Mod Alma Genel Tipler Matematiksel + 2 Toplama Genel Tipler Matematiksel - 2 Çıkartma Genel Tipler Matematiksel << 3 Sola Kaydırma Byte Matematiksel >> 3 Sağ Kaydırma Byte Matematiksel < 3 Küçük Genel Tipler Karşılaştırma <= 3 Küçük Eşittir Genel Tipler Karşılaştırma > 3 Büyük Genel Tipler Karşılaştırma >= 3 Büyük Eşittir Genel Tipler Karşılaştırma!= 3 Eşit Değil Genel Tipler Karşılaştırma == 3 Eşit Genel Tipler Karşılaştırma & 4 (Düşük) Ve Genel Tipler Mantıksal 4 (Düşük) Veya Genel Tipler Mantıksal ^ 4 (Düşük) Xor Genel Tipler Mantıksal En yüksek Öncelik = 0 En Düşük Öncelik = 4-7 -

11 1391 Matematiksel Operatörler Jalv2 işlemleri 8 bit olduğu için işlemlerin sonuçları 255 sayısını geçemez Eğer Geçtiği Takdirde mod 256 işlemi yapılır ve sonuca aktarılır Toplama İşlemi(+),Çıkartma İşlemi (-),Çarpma İşlemi (*),Bölme İşlemi(/) : 4 Temel İşlemin Yapıldığı Operatörlerdir Mod Alma İşlemi (%): Bölme İşlemi Yapıldığında kalanı elde etmek için kullanılan operatördür Genellikle bir sayının belirli bir aralıkta kalması istenildiği durumlarda kullanılır Örnek : sayi = (sayi + 1) % 15 Burada sayı değişkeni 1 arttırılıyor Bunu Bir döngü aracılığı ile yaparsak sürekli artacak ve 15 e kadar gelecektir 15 te mod 15 alındığında sonuç tekrar 0 olacaktır Böylelikle sayi değişkeni sürekli 014 arasında değer almış olacaktır Sola kaydırma(<<) ve Sağ Kaydırma(>>) operatörleri: Bir sayıyı İstediğimiz basamak kadar sağ veya sola kaydırmak için kullanılan operatörlerdir Örnek : var byte sayi = 0b_1111_0101 Sayi = sayi >> 2 Yukarıdaki Örnekte sayi değişkeni tanımlanıp binary 0b_1111_0101 sayısı aktarılıyor Daha sonra tekrar sayi değişkenine, sayi değişkeni 2 sağ kaydırıp aktarılıyor Sonuç olarak sayi değişkeninin Son hali aşağıdaki gibi olur: Sayi = 0b_0011_1101 Eğer sayi = sayi << 2 olsaydı o zamanda ; sayi = 0b_1101_0100 olurdur 1392 Mantıksal Operatörler Tablodan da görüleceği gibi mantıksal operatörler Ve(And), Veya(Or), Değil(Not), özel Veya(Xor) Operatörlerinde Oluşmaktadır Mantıksal İşlemlerin Yanında aynı Zamanda Bitlerin maskelenmesi, setlenmesi ve terslenmesi gibi durumlarda kullanılmaktadır Ve(And) : Boolean matematiğine göre verilen, en az iki sayının çarpma işlemini yapar Operatör olarak & Sembolünü Kullanmaktadır Örneğin: En az iki veya daha fazla buton olduğunda, hangilerinin aynı anda basılı olup olmadığını anlamak için genellikle & (ve) operatörü kullanılır Veya(Or) : Boolean matematiğine göre verilen, en az iki sayının toplama işlemini yapar Operatör olarak sembolünü kullanmaktadır Örneğin: iki butondan sadece birinin basıldığını diğerinin ise basılmadığını anlamak için operatörü kullanılmaktadır Özel-Veya(Xor) : Boolean matematiğine göre en az iki sayının özel toplama işlemi yapan ve binary sayı formatına göre aynı durumlarda 0 farklı durumlarda ise 1 olarak sonuç alan işlemdir Operatör olarak ^ sembolünü Kullanmaktadır Genellikle bir sayıda istenilen bitlerin terslenmesi amacı ile kullanılmaktadır Değil(Not) : Boolean matematiğinde bir sayının binary formatına göre tersini alma işlemini yapar Yani 1 ler 0, 0 lar 1 olur Operatör olarak! sembolünü kullanır Genellikle sayıları terslemek için kullanılır - 8 -

12 1393 Karşılaştırma Operatörleri En az iki değerin karşılaştırılması için kullanılan operatörlerdir Karşılaştırma operatörleri şunlardır; Eşit (==) : İki değerin eşit olup olmadığını anlamak için kullanılır Eşit Değil (!=) : Verilen ilk değerin, ikinci değere eşit olmadığını anlamak için kullanır Büyük (>) : Verilen ilk değerin, ikinci değerden büyük olup olmadığını anlamak için kullanır Küçük (<) : Verilen ilk değerin, ikinci değerden küçük olup olmadığını anlamak için kullanır Büyük Eşit (>=) : Verilen ilk değerin, ikinci değerden Büyük veya eşit olup olmadığını anlamak için kullanır Küçük Eşit (<=) : Verilen ilk değerin, ikinci değerden küçük veya eşit olup olmadığını anlamak için kullanır 1310 İstenilen Bitlerin Maskelenmesi (Sıfırlanması) Programlama esnasında bazı durumlarda değişken veya bir register içerisinde bulunan bazı bitler binary olarak sıfırlanması gerekir Bu işlemi yapmak için değişken & operatörü ile maskelenmelidir Boolean matematiğine göre 0 ile and işlemine tabi tutulan değerin sonucu 0 dır 1 ile and işlemine tabi tutulursa sonucu kendisine eşittir Buna göre maskelemek istediğimiz bitleri 0, değerinin değişmesini istemediğimiz bitleri ise 1 ile and işlemine tabi tutmamız gerekmektedir Örnek: Verilen 0b_1010_1110 binary değerinin 2 ve 3 bitlerini maskeleyiniz var byte deger = 0b_1010_1110 deger = deger & 0b_1111_0011 deger değişkeninin içeriği: 0b_1010_0010 Yukarıda verilen değerin 2 ve 3 bitleri 0 ile and işlemine tabi tutulmaktadır Ve diğer bitlere 1 ile and işlemi uygulanmaktadır Böylece 2 ve 3 bitler maskelenmiş diğer bitler değiştirilmemiştir 1311 İstenilen Bitlerin Setlenmesi ( Setlenmesi) Programlama esnasında bazı durumlarda değişken veya bir register içerisinde bulunan bazı bitler binary olarak Birlenmesi gerekir Bu işlemi Yapmak İçin operatörü kullanılır Boolean matematiğine göre 1 ile or işlemine tabi tutulan değerin sonucu 1, 0 ile or işlemine tabi tutulursa sonucu kendisine eşittir Buna göre setlemek istediğimiz bitleri 1, değerinin değişmemesini istediğimiz bitleri ise 0 ile or işlemine tabi tutmamız gerekmektedir Örnek: Verilen 0b_1010_1110 binary değerinin 0 ve 6 bitlerini maskeleyiniz var byte deger = 0b_1010_1110 deger = deger 0b_0100_0001 deger değişkeninin içeriği: 0b_1110_1111 Yukarıda verilen değerin 0 ve 6 bitleri 1 ile or işlemine tabi tutulmaktadır Ve diğer bitlere 0 ile or işlemi uygulanmaktadır Böylece 0 ve 6 bitler setlenmiş diğer bitler değiştirilmemiştir 1312 Bitlerin Terslenmesi Bazı Durumlarda Bitlerin tamamının terslenmesi ya da istenilen bitlerin terslenmesi gerekebilmektedir Böyle Durumlarda Xor ve NOT kapıları kullanılmaktadır İstenilen Bitlerin Terslenmesi İstenilen bitleri terslemek için ^ operatörü kullanılmaktadır Boolean matematiğine göre bir değer 1 ile xor işlemine tabi tutulursa sonuç tersi, 0 ile xor işlemine tabi tutulursa sonuç kendisine eşittir - 9 -

13 Örnek: Verilen 0b_1010_1110 binary değerinin 1,2,3,5,6 bitlerini tersleyiniz var byte deger = 0b_1010_1110 deger = deger ^ 0b_0110_1110 deger değişkeninin içeriği: 0b_1110_0000 Yukarıda verilen değerin 1,2,3,5,6 bitleri 1 ile xor işlemine tabi tutulmaktadır Ve diğer bitlere 0 ile xor işlemi uygulanmaktadır Böylece 1,2,3,5,6 bitler terslenmiş diğer bitler değiştirilmemiştir Tüm Bitlerin Terslenmesi Tüm bitleri Terslemek için! operatörü kullanılır Bir değer NOT işlemine tabi tutulur ise tüm bitlerin tersi alınır Örnek: Verilen 0b_1010_1110 binary değerinin tüm bitlerini tersleyiniz var byte deger = 0b_1010_1110 deger =!deger deger değişkeninin içeriği: 0b_0101_0001 Yukarıda verilen değer not işlemine tabi tutulmuştur ve sonuç tüm bitlerin tersi olmuştur 14 Karar Yapıları, Kod Bloğu ve Record Yapısı 141 Karar Verme Yapıları Karar verme yapıları bir programlama dilinin temel yapılarıdır Programın gidişatına yön vermek için bazı değerlere göre karar vermek gereklidir Bu yapılar sayesinde karar verme işlemleri uygulanır 1411 İF THEN Deyimi IF Then Deyimi Tüm programlama dillerinde bulunmaktadır Jalv2 dilindeki görevi ise diğer programlama dillerinde olduğu gibi karşılaştırma işlemi yapmaktır İF THEN ile başlayarak End if komutu ile biter Değişik Formatlarda Kullanılabilir: 1)- Tek şart için kullanım Formatı: if <şart> then <işletilecek komut veya komutlar> -- Şart Gerçekleşir ise bu satır işler end if 2)- İki Şart için kullanım Formatı: if <şart> then <işletilecek komut veya komutlar> -- Şart Gerçekleşir ise bu satır işler else <işletilecek komut veya komutlar> -- Şart Gerçekleşmez ise bu satır işler end if 3)- Çoklu şartlar için kullanım formatı : if <şart> then -- Şart Gerçekleşirse bu satır işler <işletilecek komut veya komutlar> elsif <şart> then -- 2Şart <işletilecek komut veya komutlar> -- 2şart gerçekleşirse bu satır işler

14 elsif <şart> then <işletilecek komut veya komutlar> elsif <şart> then <işletilecek komut veya komutlar> elsif <şart> then <işletilecek komut veya komutlar> end if 3)- Aynı anda birden fazla şart için Kullanım Formatı: if (<şart>) <operatör> (<şart) <operatör> then <işletilecek komut veya komutlar> End if İF THEN Deyimi Kullanılırken şartlar arasında operatörler kullanılmaktadır Tüm operatörlerin yazım biçimi aynı iken sadece, eşittir operatörü (=) yerine iki adet eşittir (==) operatörü kullanılmaktadır Eğer birden Fazla Şart aynı anda kullanılacak ise o zaman şartlar ayrı ayrı parantez içine alınmalıdır Ve her şart And(&), OR( ) operatörleri ile bağlanmalıdır Karşılaştırma işlemi sırasında şart sağlandığında ilk komutlar bloğu işler Eğer şart sağlanmaz ise ikinci kod bloğu işler if <şart> <mantıksal Operatör> <şart> then <işletilecek komut veya komutlar> -- Şart doğru İse else <işletilecek komut veya komutlar> -- Şart Yanlış İse end if Örnek : deger1 değişkeninin değeri 20 den küçük ve deger2 değişkeninin değeri 10 a eşit ise sonuc değişkenine 100 değerini her iki şart sağlanmıyor ise 50 değerini aktarınız var byte deger1,deger2,sonuc if (deger1>20) & (deger2==10) Then Sonuc = 100 Else Sonuc = 50 end if 1412 CASEOF Deyimi CaseOF deyimi; Çok fazla Şart olduğunda, çok sayıda İFTHEN deyimi kullanmak gerektiğinde kullanılır Kullanımı Kolay ve Pratiktir CaseOF deyimi sayesinde çok fazla kod karışıklığı olmaz ve hafızada çok fazla yer tutmaz Her şarttan sonra sadece bir komut yazılır Eğer birden fazla komut yazılması gerekirse o zaman BLOCKEND BLOCK deyimi ile kod Bloğu oluşturmak Gereklidir Kullanımı ve Formatı Aşağıdaki Gibidir : Case <deger> Of <Şart Değeri> : <Komut> <Şart Değeri> : <Komut> <Şart Değeri> : <Komut> <Şart Değeri> : <Komut> <Şart Değeri> : <Komut> <Şart Değeri> : <Komut>

15 <Şart Değeri> : <Komut> End Case Yukarıda da görüldüğü gibi deger değişkeni caseof deyimi arasına alınmaktadır Hangi Şart Değeri, Deger değişkeni ile aynı ise onu takip eden Komut işleyecektir Buradan da anlaşılacağı gibi sadece tek bir komut işletilmektedir Bunun Önüne geçilmek için Blockend block deyimi oluşturulmuştur 142 BLOCK END BLOCK Deyimi Block End Block Deyimi Kod Bloğu oluşturmak için Kullanılmaktadır Oluşturulan Blok içerisinde Tanımlanan Değişkenler ve sabitler sadece blok içerisinde kullanılabilir Genellikle caseof deyiminde çoklu komut bloğu işletmek için kullanılmaktadır Genel Formatı : Block <komut veya komutlar> End Block Case of deyimi ile Kullanım Formatı : Case <deger> Of <Şart Değeri> : Block <komut veya komutlar> <komut veya komutlar> End block <Şart Değeri> : Block <komut veya komutlar> <komut veya komutlar> End block <Şart Değeri> : Block <komut veya komutlar> <komut veya komutlar> End block End case Yukarıdaki Kullanım Şeklinde Gördüğünüz Gibi caseof deyiminde şart değerini takip eden yerde block end block deyimi kullanılmıştır Böylelikle Birden Fazla Komut ve Kod parçası işletilebilir 143 RECORD Yapısı Farklı veri özelliklerini tek bir tipte toplamak için kullanılır Kullanımı Sanılanın aksine basittir Programlama esnasında kodlamayı kolaylaştırır Tanımlanan Özelliği göstermek için araya nokta koyulmaktadır (Jalv2 derleyicisinin 24o sürümü veya üst sürümlerinde kullanılabilir)

16 Record Yapısının Genel Formatı : Örnek : Record <tanımlayıcı> is <tip> ozellik1 <tip> ozellik2 End Record Var <tanımlayıcı> <degiskenadi> -- Record tipteki değişken atanıyor <degiskenadi>ozellik1 <degiskenadi>ozellik2 Record Boyut is Byte En word Boy End Record var Boyut dortgen -- Boyut adında record tanımlanıyor -- En adında özellik byte tipinde tanımlanıyor -- Boy adında özellik word tipinde tanımlanıyor -- Tanımlanan record, dortgen değişkenine aktarılıyor dortgenen = dortgen değişkeninin en özelliğine 50 aktarılıyor dortgenboy = dortgen değişkeninin boy özelliğine 100 aktarılıyor Yukarıdaki örnek kod bloğunda Boyut isimli En ve Boy özelliklerine sahip Record Yapısı tanımlanmaktadır Boyut record yapısı ile tanımlanmış olan dortgen değişkeni, En ve Boy özelliklerini kullanabilmektedir Kullanılması için dortgen değişkeninden sonra nokta konularak ilgili özellik yazılır Tanımlanan Özelliğin değeri değiştirilebilindiği gibi değeri de okunabilir 15 Döngüler 151 Forever Loop Döngüsü Ana programda sonsuz döngü kurmak amacı ile kullanılır Sonsuz döngü sayesinde yazılan program kodları sürekli çalışmaktadır Program kodları yazılırken genel olarak sonsuz döngü deyimi ana programı teşkil edecek şekilde bir defa yazılmaktadır Forever Loop Deyimi her zaman programın kodunun en altında yer almak zorundadır Bir defa çalışmasını istediğimiz kodları ve diğer alt program kodları daima Forever Loop deyiminin üst kısmında yer alır Alt kısma yazılacak olan kodlar Exit Loop ile sonsuz döngüden çıkılmadığı sürece kesinlikle işletilmeyecektir Forever Loop deyimi içerisinden diğer alt programlar çağırıldığında çalışmasını bitiren alt program tekrar Forever Loop içerisine geri döner Döngünün sonunu End Loop ile bitmektedir Eğer Kasıtlı olarak döngüden çıkılmak istenirse Exit Loop kodu kullanılır Forever Loop Döngüsünün Genel Formatı : Forever Loop End Loop 152 ForLoop Döngüsü Genel Olarak For döngüsü tüm programlama dillerinde kullanılmaktadır Tekrar Sayısı Önceden bilindiği için Sınırlı Döngü oluşturmak için kullanılır Tekrar sayısı; sabit, değişken veya herhangi bir formatta sayı olarak verilebildiği gibi matematiksel işlem olarak da verilebilir Tekrar

17 sayısı byte olarak tanımlandığı zaman en yüksek 255 olarak verilebilmektedir Word tipinde tanımlandığında ise en yüksek olarak verilmektedir Daha fazla tekrar sayısı elde edebilmek için iç içe For Döngüsü Kullanılmalıdır Eğer Kasıtlı olarak döngüden çıkılmak istenirse Exit Loop kodu kullanılır For Döngüsünün Genel Formatı : For <Tekrar adeti> Loop End Loop Örnek : 5 sayısının 3 üssünü hesaplayarak sonucu, sonuc değişkenine aktaran program kodunu yazınız var byte ussu = 3 var byte deger = 5 var word sonuc = deger for ussu-1 loop -- Sonuc Değişkeni deger değişkenine eşit olduğu sonuc = sonuc * deger -- için tekrar sayısı ussu-1 olmalıdır end loop 1521 Using Komutu Bazı durumlarda ForLoop döngüsü işler iken o anki tekrar sayısının ne olduğunu bilmek gerekebilir Böyle durumlarda Using Komutu Kullanılmaktadır Using komutu önceden tanımlanmış bir değişkene o anki döngü değerinin 1 eksiğini aktarmaktadır Using Komutu Kullanırken dikkat edilecek en önemli husus, tekrar sayısı değil, tekrar sayısının 1 eksiğini aktarmasıdır Bunun Nedeni Dijital Sayıların 0 dan başlamasıdır Aynı Dizelerde olduğu gibi for döngüsünün de başlangıç sayısı 0 olarak gözükmektedir Tekrar sayısı 5 verildiği zaman 5 kez tekrar eder ama tekrar sayıları adım adım alındığı zaman şeklinde gözükmektedir Örnek : 7 faktöriyeli hesaplayan Kod bloğunu For Döngüsü ve Using Komutunu Kullanarak Yazınız var word sonuc = 1 var byte dongu -- sonuc değişkeni başlangıcı atandı -- Tekrar sayısı atanacak değişken for 7 using dongu loop -- Tekrar sayısı dongu değişkenine atandı sonuc = sonuc * (dongu+1) -- İşlem Yapılıyor end loop -- Sonuc Değişkenin içeriği 5040 olmaktadır 153 WhileLoop Döngüsü While Döngüsü Genel olarak tüm programlama dillerinde bulunmaktadır Önceden tekrar sayısı bilinmeyen işlemlerde bir veya birden fazla şarta bağlı olarak devam eden döngüdür Şart Sağlandığı, yani şart sonucu Lojik 1 olduğu sürece çalışmasına devam eder Lakin Şart Sonucu Lojik 0 olursa döngüden çıkar ve sonraki kod blokları işletilir Eğer Kasıtlı olarak döngüden çıkılmak istenirse Exit Loop kodu kullanılır Yapısı gereği önce şartı veya şartları kontrol eder Duruma göre kod bloğunu işletir veya döngüden çıkar WhileLoop Döngüsünün Genel Yazım Formatı : While <Şart veya Şartlar> Loop

18 End Loop Eğer Birden Fazla Şartta Bağlanacak ise şartlar Parantez içinde yazılarak Or( ) veya And (&) operatörleri ile Bağlanmalıdır Örnek : İsim değişkenin değeri 10 dan küçük, esya değişkenin değeri ise 20 den büyük iken sonuc değişkenine 30, her iki değişkeninde değeri değişip şartı karşılamadığı zaman ise sonuc değişkeninin değerine 10 aktaran program kodunu yazınız Var byte isim = 9, esya = 30, sonuc Forever Loop While (isim < 10) & (esya > 20) loop Sonuc = 30 End loop Sonuc = 10 End Loop 154 Repeat Until Döngüsü Repeat Until Döngüsü Genelde Tüm programlama Dillerinde Kullanılmaktadır Until den Sonra Yazılacak olan Şart veya Şartlar Sağlanana kadar sürekli çalışmaktadır Çalışma mantığı olarak WhileLoop döngüsüne benzemektedir Birbirlerinden tamamen farklı yapılara sahiptir RepeatUntil döngüsünde; önce komutlar işlenir ve daha sonra şart veya şartlara bakılmaktadır Kasıtlı olarak döngüden çıkmak için Exit Loop Komutu Kullanılmaktadır Repeat Until Döngüsünüm Genel Yazım Formatı : Repeat Until <şart veya Şartlar> Eğer Birden Fazla Şartta Bağlanacak ise şartlar Parantez içinde yazılarak Or( ) veya And (&) operatörleri ile Bağlanmalıdır Örnek : 7 faktöriyeli hesaplayan Kod bloğunu Repeat Until Döngüsü Kullanarak Yazınız var word sonuc = 1 var byte dongu = 0 -- Değişkenler ve başlangıç değerleri repeat dongu = dongu + 1 sonuc = sonuc * (dongu) until (dongu == 7) -- Döngü adetini Bulma -- İşlem Sonucu Sonuc Değişkenine aktarılacak -- Faktöriyeli alınacak Sayı -- Sonuc Değişkenin içeriği 5040 olmaktadır 16 ALT PROGRAM TANIMLAMALARI Jalv2 dilinin yapısı Pascal diline benzemektedir Pascal dilindeki procedure ve function alt programları jalv2 dilinde de kullanılmaktadır Yazılan programlar uzadıkça programı takip etmek ve

19 hata ayıklamak oldukça zahmetli bir iştir Bu yüzden alt programlar sayesinde Kodlar modüller halinde sade ve anlaşılır olarak yazılmaktadır Yazılan bir alt program farklı programlarda rahatlıkla defalarca kez kullanabilinmektedir Alt programlar parametreli olduğu gibi parametresizde yazılabilmektedir Bu sayede amaca uygun ister parametreli, isterse parametresiz alt programlar oluşturulabilmektedir Jalv2 dili iki alt Program (Procedure - Function) Kullanımına izin vermektedir Bununla beraber Pseudo Tipinde tanımlama sayesinde, alt programların isimleri ile hem değer alınabilinmekte hem de değer verilebilmektedir Giriş Parametresi daha önce tanımlanmış bir dizede olabilir 161 Procedure Tanımlaması Procedure tanımlaması geriye değer döndürmeyen alt programlardır Parametreli tanımlandıklarında geriye değer döndürmezler ama tanımlanan parametreye değer aktarabilmektedirler Parametresiz tanımlanan bir procedure alt programını kullanmak için sadece ismini yazmak yeterlidir Ama parametreli bir procedure alt programı kullanıldığı zaman isim ile beraber parantez içerisinde sırası ile parametreleri belirtmek zorunludur Procedure alt programının içerisinde diğer tüm komutlar, deyimler, değişkenler ve sabitler kullanılmaktadır Fakat tanımlanan sabitler ve değişkenler yerel olacakları için procedure dışından ulaşılamazlar Parametresiz Procedure Alt Programı Tanımlamasının Genel Formatı : Procedure <procedure ismi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> end procedure Parametreli Procedure Alt Programı Tanımlamasının Genel Formatı : Procedure <procedure ismi>(<parametre>,<parametre>) is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> end procedure Parametre Tanımlaması Genel Formatı Örnek Giriş Parametresi : <tipi> in <ismi> byte in v_deger Çıkış Parametresi : <tipi> out <ismi> byte out v_deger Giriş ve çıkış Parametresi : <tipi> in out <ismi> byte in out v_deger Giriş Parametresi Dize ise : <tipi> in <dizi adı>[ ] byte in v_dizi[ ] Parametreli procedure tanımlamasında procedure isminden sonra parantez içerisinde tipleri, giriş mi çıkış mı oldukları ve isimleri aralara virgül konularak yazılmalıdır Eğer parametre giriş parametresi ise in, çıkış parametresi ise out, Hem giriş hem de çıkış parametresi ise in out komutları değişken tipinden sonra yazılmalıdır Çıkış olarak tanımlı parametrelerde ve hem çıkış hem de giriş olarak tanımlı parametrelerde, parametre muhakkak bir değişken olarak gösterilmelidir Aksi takdirde derleme esnasında derleyici hata verecektir

20 Örnek : Parametreli bir Alt Program Tanımlama ve Kullanma procedure deger_aktar(byte in veri1,byte out veri2, byte in out veri3) is for veri1 loop veri2 = veri1 + 3 end loop if veri2 < 25 then veri3 = veri3*veri2 else veri3 = 100 end if end procedure var byte v_deger = 20, v_sonuc = 15 Forever loop Deger_aktar(10,v_deger,v_sonuc) End loop Örnek : Parametresiz bir Alt Program Tanımlama ve Kullanma var byte v_deger1 = 20,v_deger2 = 10,v_sonuc procedure islem_yap is v_sonuc = v_deger1 * v_deger2 End procedure Forever loop islem_yap End loop 162 Function Tanımlaması Function alt programları procedure alt programlarının tüm özelliklerini taşımakla birlikte geriye değer döndürebilmektedirler Function alt programların isimleri birer değişken gibi görülmektedir Parametreli ve parametresiz olarak tanımlama yapılabilmektedir Matematiksel işlemlerde function ismi direkt kullanılabilmektedir Procedure tanımlamalarında olduğu gibi parametrelerinin giriş mi çıkış mı olacağı in ve out komutları ile belirtilmektedir Aynı zamanda geri dönüş tipinin tanımlanması gerekmektedir Geri dönüş tipi mevcut değişken tipleri olarak tanımlanmalıdır Geri dönüş değeri return komutu ile aktarılmaktadır Parametresiz Function Alt Programı, Tanımlamasının Genel Formatı: Function <Function İsmi> return <Geri Dönüş Tipi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> Return <Geri Dönüş Değeri> end function Parametreli Function Alt Programı, Tanımlamasının Genel Formatı: Function <procedure ismi> (<parametreler> ) return <geri Dönüş tipi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> Return <Geri Dönüş Değeri> end function

21 Parametre Tanımlaması Genel Formatı Örnek Giriş Parametresi : <tipi> in <ismi> byte in v_deger Çıkış Parametresi : <tipi> out <ismi> byte out v_deger Giriş ve çıkış Parametresi : <tipi> in out <ismi> byte in out v_deger Giriş Parametresi Dize ise : < tipi> in <dizi adı>[ ] byte in v_dizi[ ] Örnek : Parametresiz bir Function Alt programı Tanımlama Var byte carpim = 10,carpan = 5,sonuc Function hesapla return byte is Return carpim*carpan End function Forever loop Sonuc = hesapla End loop Örnek : Yukarıdaki Örnek Kodu Parametreli bir function tanımlaması ile yapınız Var byte sonuc Function hesapla(byte in carpan,byte in carpim) return byte is Return carpim*carpan End function Forever loop Sonuc = hesapla(10,5) End loop 163 Pseudo Tipinde Alt Program Tanımlaması Pseudo tipi tanımlama Jal/Jalv2 diline has bir biçimdir Türkçe olarak Sözde tanımlama olarak çevrilebilir Tanımlanan Alt Programın ismi ile hem değer almak hem de değer vermek için kullanılmasına olanak tanır Yani Tanımlanan Alt Program function ise kendi ismi ile dışarıya değer aktarabilir Procedure ise Kendi ismi ile içeriye değer alabilmektedir 1631 Pseudo Tipinde Procedure Tanımlama Procedure <ismi> put (<parametre>,<parametre>) is end procedure Procedure için Pseudo tanımlamada isminden sonra put ifadesi yer almaktadır Burada Dikkat edilecek husus tanımlı olan parametresinin daima giriş olması ve tanımlı olan parametrenin 1 veya 2 adet olmasıdır Eğer parametre 1 tane ise Pseudo tanımlamada procedure ismine direkt değer eşitlendiğinde aslında değer parametreye gitmektedir Ama 2 adet parametre varsa dizi tanımlamasında olduğu gibi [ ] köşeli parantez ile ilk parametre verilirken, direkt procedure ismine olan eşitlemede değer 2 parametreye gitmektedir Örnek : 1 parametreli Pseudo tanımlama Var byte xx Procedure hesaplama put(byte in yy) is xx = yy + 5 End procedure

22 Forever loop Hesaplama = 25 End loop Örnekten de anlaşılacağı gibi Pseudo tanımlama sayesinde yy giriş parametresine direkt procedure ismi ile ulaşılabilmektedir Örnek : 2 parametreli Pseudo tanımlama Var byte xx Procedure hesaplama put(byte in yy,byte in cc) is xx = yy * 2 + cc End procedure Forever loop Hesaplama[10] = 25 End loop Procedure alt programında, ilk parametreyi köşeli parantez ile ulaşırken, ikinci parametreye direkt eşitleme ile ulaşılabilmektedir Bu sayede bit dizisi oluşturma gibi işlemlerde Pseudo tanımlama çok işe yaramaktadır İleriki Bölümlerde Pseudo tanımlama kullanılarak çeşitli algoritmalar gösterilecektir 1632 Pseudo Tipinde Function Tanımlama Function <ismi> get return <geri dönüş tipi> is end function Pseudo tipinde Function tanımlaması yaparken function isminden sonra get ifadesi yer almaktadır Burada Dikkat edilecek Husus tanımlanan function alt programının giriş parametresinin olmamasıdır Pseudo tipindeki Procedure tanımlaması giriş parametresi olabilirken function tanımlama almamaktadır Alt programda işletilen komutlar sonucu geri dönen değer Pseudo tipindeki function tanımlamanın ismi ile dönmektedir Örnek : Pseudo Tipinde Function Tanımlaması Var byte sonuc Function hesapla'get return byte is return 10 * 2 End function Forever loop Sonuc = hesapla 5 End loop -- sonuc değişkeninin değeri 15 olur 164 Alt Programlarının Global Olarak Kullanımı Jalv2 dili yapı bakımından Pascal programlama diline benzediği daha önceden söz edilmişti Pascal Dilinde olduğu gibi alt programlar yazıldığında, önce tanımlanan alt program kendisinden sonra tanımlanan alt programlara ulaşamazlar Bunun önüne geçilmek için kodlarımızı yazarak tüm alt programları global olarak tanımlarsak; Program içerisinde herhangi bir yerde global olarak tanımlanan alt programları kullanabiliriz

23 Örnek : var word islem_sonucu function faktoriyel(word in faktoriyeli) return word function karesi(word in deger) return word procedure hesaplama(word in deger) procedure hesaplama(word in deger) is islem_sonucu = faktoriyel(deger) + karesi(deger) end procedure function karesi(word in deger) return word is return deger*deger end function function faktoriyel(word in faktoriyeli) return word is var word sonuc = 1 var byte dongu = 0 repeat dongu = dongu + 1 sonuc = sonuc * (dongu) until (dongu == faktoriyeli) return sonuc end function forever loop hesaplama(7) -- islem_sonucu değişkenin içeriği 5089 olacaktır end loop Alt programlar yukarıdaki gibi bir tanımlama yapıldığında programın herhangi bir yerinden çağırılabilmektedirler Dikkat edilecek Husus tüm alt programların isimlerinin sonlarda bulunan is ifadesi, global tanımlama yapıldığında kullanılmaması gerektiğidir Eğer yukarıdaki programda global tanımlama yapılmamış olsaydı o zaman hesapla alt programı, karesi ve faktoriyel alt programlarına ulaşamazdı 165 İç İçe Alt Program Tanımlama Bazı Durumlarda Tanımlanan Bir Alt Program sadece başka bir alt program tarafından kullanılır Diğer alt programlar tarafından erişilmesi istenmez Yerel Değişken tanımlamasında olduğu gibi alt program, hangi alt programın içerisinde tanımlandı ise sadece orada kullanılmaktadır Genel Kullanım Formatı : Procedure içerisinde Function Tanımlama : Procedure <procedure İsmi> is Function <Function İsmi> return <Geri Dönüş Tipi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> Return <Geri Dönüş Değeri> end function end procedure

24 Yukarıda görüldüğü gibi procedure içerisinde function tanımlanmıştır Tanımlanan Function sadece Procedure içerisinde kullanılmaktadır İç içe tanımlamalarda iç içe istenildiği kadar tanımlama yapılabilmektedir Function içerisinde Procedure Tanımlama : Function <Function İsmi> return <Geri Dönüş Tipi> is Procedure <procedure İsmi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> end procedure Return <Geri Dönüş Değeri> end function Procedure içerisinde Function, Function içerisinde procedure tanımlaması yapılabildiği gibi Function içerisinde function, procedure içerisinde procedure tanımlaması da yapılmaktadır Function içerisinde Function Tanımlaması: Function <Function İsmi> return <Geri Dönüş Tipi> is Function <Function İsmi> return <Geri Dönüş Tipi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> Return <Geri Dönüş Değeri> end function Return <Geri Dönüş Değeri> end function Proceudre içerisinde Procedure Tanımlaması : Procedure <procedure İsmi> is Procedure <procedure İsmi> is <Yerel tanımlanacak değişkenler veya sabitler> <Deyimler veya döngüler> end procedure end procedure 17 PIC ASSEMBLER KULLANIMI Gelişmiş uygulamalar yazarken jalv2 komutlarının yanı sıra hassas ölçüm ve çok küçük bekleme süreleri gibi işlemlerde pic assembler komutları kullanmak gerekebilmektedirjalv2-21 -

25 derleyicisi, içerisinde assembler komutlarının kullanımına izin veren bir yapıda yazılmıştır Tek komut kullanımının yanı sıra assembler kod blokları da kullanılabilmektedir Kullanılan Assembler komutlarında program içerisinde tanımlanan değişkenler veya sabitler direkt kullanılabilmektedir 171 Tek Assembler Komutunun Kullanımı Jalv2 dilinde tek Assembler komutu kullanmak için komutun önüne asm ifadesi eklenmelidir Genel Formatı : Asm <Assembler komutu> Örnek : 1 komut işleme süresi kadar gecikme süresini Assembler komutu kullanarak yapınız Procedure mikrosaniye is Asm nop -- 1 mikrosaniye gecikme yapan Assembler komutu (nop) End procedure Forever loop mikrosaniye End loop 172 Assembler Kod Bloğunun Kullanımı (ASSEMBLER END ASSEMBLER) Bazı Durumlarda birden fazla Assembler komutu veya Assembler kod bloğu kullanmak gerekebilmektedir Böyle durumlarda Assembler komutları Assembler end Assembler bloğu arasına yazılmalıdır Genel Format : Assembler <Assembler komutları> <Assembler komutları> <Assembler komutları> End Assembler Örnek : Assembler kod bloğu kullanımı Procedure asm_blok (byte in veri) is Var byte say = 10 Assembler Local basla, devam Basla : btfsc port_a,0 Goto Basla Movfw 0x25 Movwf veri Devam : Decfsz say, f End Assembler End procedure Forever loop Asm_blok(50) End loop Goto Devam

26 Yukarıdaki örnekte görüldüğü gibi bir Assembler kod bloğu direkt jalv2 komutları arasında kullanılmıştır Yazılan Assembler komutlarındaki etiketler öncelikle Local deyimi ile Assembler komutları yazılmadan önce tanımlanmıştır Böylece goto - call Komutları ile program istenilen etikete dallandırılabilmektedir Jalv2 derleyici tarafından desteklenen Asm komutları şunlardır : Kodlarda Kullanılan Kısaltmaların anlamları : B Bit tipinde deger (0 <= b <= 7) D Hedef ( f veya w ) F File register veya Değişken N Gerçek Değer, 0 <= n <= 255 (Aksi Belirtilmediği Sürece) K Etiket veya Sabit Aşağıda verilecek olan jalv2 derleyicisi tarafından desteklenen komutların tüm işlemciler tarafından destenmediğini unutmayın Derleyici kodu derlerken bunu göz önünde bulundurmaktadır Tam açıklama edinmek istiyorsanız işlemcinin Datasheet ini kontrol edebilirsiniz ADDWF F,D RLCF F,D CLRWDT ADDWFC F,D RLNCF F,D GOTO K ANDWF F,D RRF F,D IORLW N CLRF F RRCF F,D MOVLW N CLRW RRNCF F,D RETFİE COMF F,D SUBWF F,D RETLW N DECF F,D SWAPF F,D RETURN DECFSZ F,D XORWF F,D SLEEP INCF F,D BCF F,B SUBLW N INCFSZ F,D BSF F,B XORLW N IORWF F,D BTFSC F,B TBLRD { * *+ *- +* } MOVF F,D BTFSS F,B TBLWT { * *+ *- +* } MOVW FF ADDLW N RESET NOP ANDLW N OPTION RLF F,D CALL K TRIS N (5 <= N <= 9) 18 DAHİLİ FONKSİYONLAR 181 Count( ) Fonksiyonu Count Fonksiyonu, tanımlanan sabit veya değişken dizilerin eleman sayılarını veren fonksiyondur (Bknz : 1341 Count Fonksiyonu) 182 Defined( ) Fonksiyonu Bir değişken ya da sabitin daha önceden tanımlanıp tanımlanmadığını kontrol eden fonksiyondur Eğer tanımlanmış ise geriye true eğer tanımlanmamış ise geriye false değeri döndürür Genel Kullanım Formatı : Defined(<sabit yada değişken adı>) Örnek Kullanım : Var byte sonuc

Temel Jalv2 Kavramları

Temel Jalv2 Kavramları Temel Jalv2 Kavramları Buradaki bazı komutlar jalv2 derleyicisinin 2.4o ve sonraki versiyonları için geçerlidir. Temel programlama ve elektronik bilginizin olduğu varsayılarak hazırlanmıştır. Bu Doküman

Detaylı

BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ

BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: f : File register, Herhangi bir değişkenle tarif edilen bir saklayıcı adresi (0h-7Fh) k : Sabit değer (genellikle (0-FF arasında) d : Destination

Detaylı

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001 MOVLW k Move Literal to W k sabit değerini W saklayıcısına yükler. MOVLW h'1a' W 1A. Hexadecimal 1A sayısı W registerine yüklenir. MOVF f,d Move f f saklayıcısının içeriğini W veya f'e yükler. MOVF SAYAC,0

Detaylı

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 3) Doç. Dr. Hakan Ündil Program Örneği 9 : Gecikme altprogramı kullanarak Port B ye bağlı tüm LED leri yakıp söndüren bir program için akış

Detaylı

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ KOMUT AÇIKLAMALARI VE ÖRNEKLERİ Komut açıklamalarında kullanılan harflerin anlamları: F : File(dosya), kaynak ve bilgi alınan yeri ifade eder. D : Destination (hedef), işlem sonucunun kaydedileceği yer.

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

B.Ç. / E.B. MİKROİŞLEMCİLER

B.Ç. / E.B. MİKROİŞLEMCİLER 1 MİKROİŞLEMCİLER RESET Girişi ve DEVRESİ Program herhangi bir nedenle kilitlenirse ya da program yeniden (baştan) çalıştırılmak istenirse dışarıdan PIC i reset yapmak gerekir. Aslında PIC in içinde besleme

Detaylı

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak # PIC enerjilendiğinde PORTB nin 0. biti 1 olacak - LIST=16F84 - PORTB yi temizle - BANK1 e geç - PORTB nin uçlarını çıkış olarak yönlendir - BANK 0 a geç - PORT B nin 0. bitini 1 yap - SON ;pic tanıtması

Detaylı

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir? 3.2 PIC16F84 Yazılımı 3.2.1 PIC Assembly 3.2.1.1 Assembler Nedir? Assembler,bir text editöründe assembly dili kurallarına göre yazılmış olan komutları pıc in anlayabileceği heksadesimal kodlara çeviren

Detaylı

idea rsbasic KOMUTLARI

idea rsbasic KOMUTLARI idea KOMUTLARI İÇİNDEKİLER 2.1 Etiketler (Labels)... 4 2.2 Yorumlar (Comments)... 5 2.3 Semboller (Symbols)... 6 2.4 backward (geri)... 7 2.5 debug (hata ayıkla/izle)... 8 2.6 dec (azalt)... 9 2.7 do..

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201... 3.1 AMAÇ: Assembly programlama dili kullanarak mikrodenetleyici portlarını giriş olarak kullanmak. GİRİŞ: Bir portun giriş olarak mı yoksa çıkış olarak mı kullanılacağını belirten TRIS kaydedicileridir.

Detaylı

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil 2014-2015 Bahar-Vize BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan

Detaylı

PIC16F877A nın Genel Özellikleri

PIC16F877A nın Genel Özellikleri BÖLÜM 3 PIC16F877A nın Genel Özellikleri 3.1 Mikrodenetleyici Mimarisi 3.2 PIC16Fxxx Komut Seti 3.3 PIC16F877A Bellek Organizasyonu 3.4 Giriş/Çıkış Portları 3.5 STATUS ve TRIS Kaydedicileri 3.6 Kesme ve

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB=00000000 BCF STATUS,5 ;bank0 a geçiş

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB=00000000 BCF STATUS,5 ;bank0 a geçiş +5V ĠġĠN ADI: PORTB DEKĠ LEDLERĠN ĠSTENĠLENĠ YAKMAK/SÖNDÜRMEK GND C F C F X R 5 U OSC/CLKIN RA0 OSC/CLKOUT RA RA RA RA/T0CKI PICFA RB RB RB RB RB RB 0 R R R R5 R R R R D D D D D5 D D D INCLUDE CONFIG P=FA

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı 1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı yazınız. SAYAC1 EQU 0X20 devam movlw B'00000000' call DELAY incf PORTB,f ;Akü ye 0' sabit değerini yaz. ;Aküdeki değer PORTB

Detaylı

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü Ders 7, Slayt 2 1 PROGRAM 1 RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan iki 8-bit sayının toplamını hesaplayıp

Detaylı

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre MİKRODENETLEYİCİLER Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre Mikrodenetleyici: Bir mikroişlemcinin

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

PIC ASSEMBLY VE MAKROLAR

PIC ASSEMBLY VE MAKROLAR PIC ASSEMBLY VE MAKROLAR Abdullah UNUTMAZ Ağustos 2009 Pic Assembly ve Makrolar H U N R O B O T X M A K A L E L E R #DEFI E #DEFINE anahtar sözcüğü ile kendi tanımladığımız değişkenler, yada include dosyalarında

Detaylı

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

TUŞ TAKIMI (KEYPAD) UYGULAMALARI 12. Bölüm TUŞ TAKIMI (KEYPAD) UYGULAMALARI Tuş Takımı (Keypad) Hakkında Bilgi Tuş Takımı Uygulaması-1 74C922 Tuş Takımı Enkoder Entegresi Tuş Takımı Uygulaması-2 (74C922 İle) Bu bölümde tuş takımı diğer

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI

5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI MİKRO DENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan Ündil 2015-2016 Bahar-Vize (MİKRODENETLEYİCİLER I DERS NOTLARI nın devamıdır. Sadece VİZE için olan kısımdır) 5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI

Detaylı

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür. BÖLÜM 4 4. PIC PROGRAMLAMA Herhangi bir dilde program yazarken, öncelikle kullanılacak dil ve bu dilin editörünü kullanabilmek önemlidir. Biz bu işlem için Mplab programını kullanacağız. Bu sebeple aslında

Detaylı

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil 2016-2017 Bahar (MİKRODENETLEYİCİLER I DERS NOTLARI nın devamıdır. Sadece VİZE için olan kısımdır) 6. BÖLÜM - ALT PROGRAMLAR Program içerisinde

Detaylı

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } } Temrin1: PIC in PORTB çıkışlarından RB5 e bağlı LED i devamlı olarak 2 sn. aralıklarla yakıp söndüren programı yapınız. En başta PORTB yi temizlemeyi unutmayınız. Devre Şeması: İşlem Basamakları 1. Devreyi

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

LCD (Liquid Crystal Display )

LCD (Liquid Crystal Display ) LCD (Liquid Crystal Display ) Hafif olmaları,az yer kaplamaları gibi avantajları yüzünden günlük hayatta birçok cihazda tercih edilen Standart LCD paneller +5 V ile çalışır ve genellikle 14 konnektor lü

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Ders-2: ---------- Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Hazırlanan programlarda pic in zaman zaman dış ortamdan bilgi

Detaylı

LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) LCD (Liquid Crystal Display) LCD ekranlar bize birçok harfi, sayıları, sembolleri hatta Güney Asya ülkelerin kullandıkları Kana alfabesindeki karakterleri de görüntüleme imkanını verirler. LCD lerde hane

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

PİC BASİC PROFESSİONAL

PİC BASİC PROFESSİONAL PİC BASİC PROFESSİONAL Farklı Mikroişlemcilerin farklı Assembler kodları olması genellikle sorun olmuştur. Bu dezavantajdan kurtulmak için compiler lar geliştirilmiştir. C++ ve Basic dillerinde yazılanlar

Detaylı

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği INPUTBOX KULLANIMI InputBox komutu, Basic programlama dilinde program algoritması içinde ekran aracışığı ile bir sorgu yönlendirerek, kullanıcının bilgi girmesini sağlamak amacıyla kullanılır. Bu komutun

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA Doç.Dr. SERDAR KÜÇÜK PORTB den aldığı 8 bitlik giriş bilgisini PORTD ye bağlı LED lere aktaran MPASM (Microchip Pic Assembly) Doç. Dr. Serdar Küçük SK-2011 2

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları C Programlama Dr. Serkan DİŞLİTAŞ 5.1. Atlama Komutları Program akışının yönlendirilmesinde

Detaylı

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. HARRAN ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. 15 Nisan 2014 1) (10p) Mikroişlemcilerle Mikrodenetleyiceleri yapısal olarak ve işlevsel olarak karşılaştırarak

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); } FONKSİYONLAR Fonksiyon, programcı tarafından seçilen bir kod bloğuna isim vermek için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır. Örneğin

Detaylı

Matematiksel Operatörler

Matematiksel Operatörler Matematiksel Operatörler Genel olarak matematiksel işlemlerde kullanılan operatörlerdir. Operatör Anlamı Açıklama ^ Üs Alma C^3 Matematikdeki üs operatörüdür. Verilen ilk sayının ikinci sayı kadar kuvvetini

Detaylı

PIC TABANLI, 4 BASAMAKLI VE SER

PIC TABANLI, 4 BASAMAKLI VE SER PIC TABANLI, 4 BASAMAKLI VE SERİ BAĞLANTILI 7 SEGMENT LED PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa E-mail: dogan@neu.edu.tr,

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

7- Turbo Pascal Programlamada Alt Programlar (Procedure)

7- Turbo Pascal Programlamada Alt Programlar (Procedure) 7- Turbo Pascal Programlamada Alt Programlar (Procedure) Alt programların ana programda yapacağımız ek işlevleri üstlendiğinden daha önceki bölümde bahsetmiştik. Alt programlar genelde ana program bloğu

Detaylı

Veri Yapıları ve Algoritmalar

Veri Yapıları ve Algoritmalar 1 Ders Not Sistemi Vize : % 40 Final : % 60 Kaynaklar Kitap : Veri Yapıları ve Algoritma Temelleri Yazar: Dr. Sefer KURNAZ Internet Konularla ilgili web siteleri 2 Algoritma : «Belirli bir problemin çözümünde

Detaylı

Program Nedir?(1) Programlamaya Giriş

Program Nedir?(1) Programlamaya Giriş Programlamaya Giriş Arş. Gör. Muhammet BAYKARA Program Nedir?(1) Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttur. Bilgisayarlar işlemlerin kendi anlayacağı dilde (makine dili)

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

Detaylı

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir. MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu

YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EasyPic6 Deney Seti Kullanım Kılavuzu İstanbul 2009 İçindekiler EasyPic6 Deney Setinin Tanıtımı... 1 PIC16F887

Detaylı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları 4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları Şart yapıları bir bilgisayar programının olmazsa olmazlarındandır. Şart yapıları günlük hayatımızda da çok fazla karşılaştığımız belirli

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları 1 Anadolu Üniversitesi Endüstri Mühendisliği Bölümü Değişkenler ve Veri tipleri Visual Basic 6.0 Ders Notları Kaynak: İhsan Karagülle, Zeydin Pala, Visual Basic 6.0, Türkmen Kitabevi, 1999, Beyazıt İstanbul,

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

Proje #2 - Lojik Devre Benzetimi

Proje #2 - Lojik Devre Benzetimi Kocaeli Universitesi Bilgisayar Mühendisliği Programlama Laboratuvarı I BLM 209 Proje #2 - Lojik Devre Benzetimi Dosya Operasyonları Üzerine Uygulama Geliştirme Arş. Gör. Süleyman Eken & Arş. Gör. Furkan

Detaylı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu Step Motor Step motor fırçasız elektrik motorlarıdır. Step motorlar ile tam bir tur dönmeyi yüksek sayıda adımlara bölebilmek mümkündür (200 adım). Step motorları sürmek için, sürekli gerilim uygulamak

Detaylı

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun

Detaylı

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar Bölüm 5 Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar İçindekiler 5.1 Formatlı Yazdırma............................ 34 5.2 Döngü Deyimleri............................. 34 5.2.1

Detaylı

KONFİGÜRASYON BİTLERİ

KONFİGÜRASYON BİTLERİ MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 2) Doç. Dr. Hakan Ündil INCLUDE Dosyalar Assembly programlarını yazarken kullanılacak register adreslerini (EQU) komutu ile tanımlamak hem

Detaylı

ALT PROGRAMLAR BÖLÜM 11. 11.1 Giriş. 11.1.1 Alt Programlar Hakkında Genel Bilgiler

ALT PROGRAMLAR BÖLÜM 11. 11.1 Giriş. 11.1.1 Alt Programlar Hakkında Genel Bilgiler BÖLÜM 11 ALT PROGRAMLAR 11.1 Giriş Yapısal programlamanın en önemli yaklaşımlarından biri, temel uygulamayı bir takım parçalara bölerek gerçekleştirmektir. Pascal'da bu parçalar altyordam (procedure) veya

Detaylı

Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon

Dinamik Kodlama. [X] Fusion@6. [X] Yeni Fonksiyon Dinamik Kodlama Ürün Grubu Kategori Versiyon Önkoşulu [X] Fusion@6 [X] Yeni Fonksiyon @6 Uygulama @6 Serisi ürünlerde, kullanıcı arabirimlerinin her yerine eklenen dinamik kodlama özelliği ile, programın

Detaylı

MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final

MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada

Detaylı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin

Detaylı

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak # PIC enerjilendiğinde PORTB nin 0. biti 1 olacak - başla - LIST=16F84 - PORTB yi temizle - BANK1 e geç - PORTB nin uçlarını çıkış olarak yönlendir - BANK 0 a geç - PORT B nin 0. bitini 1 yap - SON ;pic

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Koşul Karşılaştırma Operatörleri Mantıksal

Detaylı

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK 1.1 Programın Başlatılması 1.2 Yeni Proje Oluşturma 1.3 MCU Seçimi Yrd.Doç.Dr.Bülent Çobanoğlu 1.4 MCU Programlama Dil Seçimi 1.5 Proje İsmi

Detaylı

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken] Sayaçlar Düzenli olarak artan (+) veya azalan (-) sayı veya string ifadeler elde etmek için kullanılırlar. Eşitliğin her iki tarafındaki değişken isminin aynı olmasına dikkat edin. Bu durum matematik olarak

Detaylı

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları. Turbo C ++ 3.0 ALGORİTMALAR http://vaibhavweb.tripod.com/others/tc3.zip http://www.top4download.com/turbo-c- /aklqwuba.html 1 2 Bilgisayarda Problem Çözme Adımları Bilgisayarda Problem Çözme Adımları 1-Problemi

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı