*** Programlama nedir? Nasıl yapılır?Çeşitleri nelerdir?

TrTorium

Uzman üye
29 Ağu 2015
1,455
0
uid=0(root)
7gBQmW.jpg


Merhaba Arkadaşlar,
Bu yazımızda *** programlamaya başlamak isteyen arkadaşlara yardımcı olmaya çalışacağız. Öncelikle *** nedir onla girelim. *** Microchip firmasının üretimi olan mikrodenetleyicilerin model ismidir. *** 18F2550, 18F4550, 16F877, *** 16F84, *** 16F628A gibi, bunlar birer entegre ismi. Microchip firmasının *** mikrodenetleyicileri o kadar yaygın kullanılıyor ki peçete yerine selpak ifadesinin kullanılması gibi *** denilince akla mikrodenetleyici geliyor. Neden yaygın kullanılıyor derseniz kolay bulunması ve internette ilgili döküman ve projelerin çok olması hemen söyleyebileceğimiz iki sebep . *** haricinde piyasada farklı yeteneklere sahip mikrodenetleyiciler bulunabilir. Projeye, fiyatlara göre uygun mikrodenetleyici seçimi yapmak gerekir. Mikrodenetleyici seçiminde geliştirme araçlarının lisans ücretleri de dikkat edilmesi gereken bir durum. Ayrıca kullanmak istediğiniz *** modeline muadil diğer firmaların daha düşük fiyatlı mikrodenetleyicileri piyasada bulunabiliyor.
Programlama cihazlarının ucuzluğu veya kolay yapılabilmesi de dikkat edilmesi gereken başka bir durum, özetle *** ile uygulama geliştirelim ama diğer mikrodenetleyicileri de bir kenara bırakmayalım.


***'le Neler Yapabiliriz?

Bu soruya tam bir cevap vermek veya *** le yapılabilecek uygulamalara bir sınır koymak oldukça zor, elektronik tecrübeniz arttıkça verebileceğiniz cevaplar da artacaktır. Ancak basitçe; mikrodenetleyiciler bizim için karar verirler, ne zaman ne yapması gerektiğini program aracılığıyla söylersiniz ve *** bunu sizin için yapar. Örn: *** e ne zaman hangi ledleri yakacağını söylerseniz led panelde kayan yazı yapabilirsiniz veya tuş takımından girilen şifrenin doğruluk kontrolünü yapmasını isterseniz röle yardımıyla şifreli kapı yapabilirsiniz

Genel olarak *** li bir sistem ne yapar?
Her şeyden önce *** li bir sistem bir bilgisayar sistemidir, programcı tarafından yapacağı uygulamaya uygun olarak geliştirilmiş ve *** in içine yüklenmiş bir yazılım vardır ve bu yazılım icra edilir. İçinde yazılımı olmayan bir *** hiç bir işe yaramaz, açılmayan bir bilgisayar gibi. *** in çalışması için yazılımın haricinde gereken 2 temel donanım şartı vardır, besleme gerilimi ve osilatör. Aslında saydığımız bu üç unsur (yazılım, besleme, osilatör) tüm bilgisayar sistemlerinin olmazsa olmazıdır.

d3LMq4.jpg


*** programlamaya hangi model *** le başlayalım?
Yeni başlayacak arkadaşlar için en uygun modelin 16F628 veya 16F628A olacaktır.Bu model *** lerde dahili osilatör olduğu için harici osilatör bağlamak durumunda kalmayacaksınız. Bu durumda mikrodenetleyicimizi çalıştırmak için sadece VDD ucuna +5V ve VSS ucunu toprağa bağlamamız yeterli olacaktır. Yani besleme gerilimini vererek ve dahili osilatörü kullanarak bu *** i çalıştırabiliriz.

-Harici osilatör bağlamadık, peki dahili osilatörü nasıl aktif edeceğiz? Bunu *** nerden bilecek?
--Yazdığınız programda ilgili konfigürasyonu aktif hale getirerek *** e dahili osilatör kullanmak istediğimizi söylüyoruz. Bu ve benzeri konfigürasyonlar program içerisinde yapılacağı gibi yazdığınız kodun *** e aktarılmasını sağlayan yazılım aracılığıyla da yapılabilir ama birinci yöntem daha güvenlidir.

*** 16F628 modelinde toplam 18 adet pin bulunur, bunlardan 16 tanesi giriş-çıkış pini olarak kullanılabilir kalan 2 pin ise *** in çalıştırılmasıyla ilgilidir(Besleme pinleri). Bu 16 giriş-çıkış pinimizden 8 tanesi A portuna 8 tanesi de B portuna ait pinlerdir. Hangi pin nerdedir(kaçıncı bacak), ne işe yarar gibi soruların cevabını *** i üreten firmanın hazırladığı katalogdan(datasheet) öğreniyoruz, katalog uzun uzadıya anlatıyor her şeyi, güzel de anlatıyor ama biz yeni başlarken pin diagramlarının olduğu sadece ilk sayfaları kullanacağız. Hatta bu pin diagramını bir defalığına yazdırıp masanızın karşısına asarsanız rahat edersiniz. Örn pin diagramı. Kataloga ulaşmanın en kolay yolu, google>16F628A yazıp "enter"lamak.

-Girişi-çıkış pinleriyle ne yapacağız?
--Led yakalım mesela, yanıp sönen led yapalım, bir pini giriş olarak kullanıp düğmeye basıldı mı basılmadı mı anlayıp çıkış yaptığımız başka bir pindeki ledi yakalım... fena mı? Sadece led mi yakacağız.. hayır tabii ki, yukarıda da söylediğim gibi uygulama dünyası çok geniş.


Fiilen *** programlamaya başlamak için gereken asgari gereçler;
Donanım Olarak;
1) Herhangi bir model *** Mikrodenetleyicisi
2) *** Programlama Cihazı (*** Programlama Devresi=*** Programlayıcı)
3) Bilgisayar
Yazılım olarak;
4) Derleyici (Seçtiğiniz programlama diline bağlı olarak size bir derleyici(compiler) gerekir)
5) Programlayıcıyla irtibatı kuracak olan(çoğunlukla programlayıcıyla birlikte verilir) yani yazdığınız kodu entegrenize yüklemenizi sağlayan yazılım.


ICPROG: 5. maddemizle ilgili; yazdığımız kodların *** e yükleme amaçlı kullanabileceğimiz aracı yazılımlardan bir tanesidir. *** programlayıcınızla beraber verilen yazılımı kullanmanız önerilir.

PicBasic: 4. maddemizle ilgili, *** programlama yapabilmek için alternatif programlama dillerinden bir tanesi, bu dille programlamak istiyorsanız PicBasic derleyicisine ihtiyacınız var demektir.

*** C: Yine 4. maddemizle ilgili, *** C de *** programlamada kullanılabilecek alternatif dillerden birisidir. Aslında kendisi bir dil değil kategoridir, *** C denilince çeşitli firmalar tarafından geliştirilmiş CCS C, HI-TECH C veya Micro C gibi *** programlama yapmamızı sağlayan ek kodlar barındıran C dilleri kast edilir. Geçtiğimiz haftalarda(Mart 09) microchip HI-TECH firmasını satın aldığını duyurdu, bu da tabii HI-TECH C yi rakip *** C lere göre öne çıkardı. HI-TECH C nin ücretsiz versiyonu(lite) ve kısıtlamalarla ilgili sayfaya buradan gidebilirsiniz.

- C dilini (veya Visual Basic) biliyorum, *** programlamada nasıl yardımı olabilir?
--*** programlama için kullanılan *** C, *** Basic gibi dillerde standart C ve Visaul Basic gibi dillerde kullandığınız komutlar kullanılır ama ek olarak *** donanımıyla alakalı bazı komutlar da vardır. Standart dilleri kullanmış biri olarak sadece bazı yeni fonksiyonları ve biraz *** konfigürasyon ayarları hakkında bilgi edinerek kullandığınız standart dilin *** versiyonunda uygulama geliştirmeye başlayabilirsiniz.


*** Assembly: Her mikrodenetleyicinin bir yazılım dili olmak zorundadır, yoksa mikrodenetleyici çalışmayan bilgisayar gibi olur. Microchip de *** leri üretirken yazılım dili olarak *** assembly yi üretmiştir. *** in anadilidir, mikrodenetleyici ve kendisine has asm dili birbirine girmiş iki unsurdur. Aslına bakarsanız assembly haricindeki tüm *** dilleri bazı yazılım şirketlerinin asm ile program yazım zorluğunu ortadan kaldırma amaçlı alternatifler olarak geliştirilmiştir. Assembly dili bize diğer dillerle karşılaştırılamayacak kadar geniş bir yetki sağlar. Çünkü sistemin kendi dilini kullanıyoruz, C veya Basic gibi bir tercüman kullanmıyoruz. Assembly kullanmanın sağladığı geniş yetkilerin yanında dezavantajları da vardır. En büyük dezavantajı: çok temel komutları kullandığınız için program geliştirme süreci yavaş işler.
Örnek vermezsem olmaz(!) Bir binayı prefabrik gibi hızlıca yapmak var tuğla tuğla yapmak var; yavaş gelişim... buna karşın duvarda bir sorun olunca ne oluyor bu duvara demek var, sorun şu tuğlada olabilir demek var; sisteme hakimiyet... Umarım anlatabilmişimdir.
Assembly programcıları da çeşitli imkanları kullanarak nispeten hızlanabilirler(makro veya altprogr*****ları saklayarak) ancak olayın genel görüntüsü bu şekildedir.


Yukarıda saydığımız 5 şarta sahip olduğunuzda *** programlamak için yapmanız gerekenler sırasıyla şöyle olacaktır.
1) Bilgisayarımızı açar, *** C Derleyicimizi çalıştırırız(*** C dillerinden birini kullandığımızı varsayalım). Yapmak istediğimiz uygulamaya ve mikrodenetleyicimize göre kodumuzu yazarız.

2) Kodu derleyip, hex dosyası oluşturduktan sonra hex dosyasını *** e yükleyecek olan ve yukarıda da aracı yazılım olarak bahsettiğimiz yazılımı çalıştırırız.

3) Mikrodenetleyicimizi *** Programlayıcıya yerleştirdiysek yazdığımız kodun hex uzantılı dosyasını bu yazılım aracılığıyla *** imize yükleyebiliriz ve artık *** i programlayıcıdan söküp devremizde kullanabiliriz. Bu 3 adımda bilgisayarla ilgili olan kısmı geride bırakmış oluyoruz. Artık *** i devremizde çalıştırabiliriz.

Ancak tüm bunları sağlamak ve hatasız uygulamalar geliştirmek yeni başlayan arkadaşlar için epeyce zor olacaktır. Bu yüzden en uygun başlama yönteminin simülasyon programlarıyla olduğunu düşünüyorum. Simülasyon programı kullandığımız durumda yukarıdaki listenin donanım bölümündeki 1)”Herhangi bir model *** Mikrodenetleyicisi”
2)”*** Programlayıcı” maddelerinden kurtuluyoruz ve daha da önemlisi yanlış bağlantılarla yanabilecek donanım veya çalışmayı önleyebilecek donanım hatalarından kurtuluyoruz.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.