MİKRODENETLEYİCİLER I DERS NOTLARI Güz-Final. 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "MİKRODENETLEYİCİLER I DERS NOTLARI Güz-Final. 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik"

Transkript

1 MİKRODENETLEYİCİLER I DERS NOTLARI Güz-Final 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik Şimdiye kadar Sayısal Devreler ve Sayısal Tasarım gibi dersler almış olan öğrenciler Mikroişlemci ve Mikrodenetleyici kavramlarıyla karşılaşınca önce bir sınıflandırma ve özet yapma ihtiyacı ortaya çıkmaktadır. Lojik (Sayısal / Mantık) Devreleri genel olarak 3 ana grupta inceleyebiliriz ; A) Kombinezonsal Lojik Devreler (K.L.D.): Bu tür sayısal (lojik) devrelerde herhangi bir andaki çıkışlar, sadece girişler tarafından belirlenir. Devre lojik kapılardan oluşur ve hafıza elemanı içermez. Bir başka ifadeyle K.L.D. lerde çıkışlar zamana bağlı değildir, çıkışlarındaki işaretler yanlızca girişlere bağlı olarak yazılabilir. B) Ardışıl Lojik Devreler (A.L.D.): Devrenin çıkışlarındaki işaretler sadece girişlerin fonksiyonu olmayıp aynı zamanda Ardışıl Lojik Devrenin o andaki durumuna bağlıdır. Nasıl ki bir arkadaşımıza söylediğimiz bir söz onun neşeli yada morali bozuk oluşuna göre (durumuna göre) farklı tepkisine neden olabilir. Öyle de A.L.D. lerde çıkışlar bir önceki durum ve girişler tarafından belirlenmektedir. O halde bu tür lojik devreler Hafıza elemanı bulundururlar. Yukarıdaki şekilde e(t) zamana bağlı değişen Girişleri, s(t) zamana bağlı değişen Çıkışları, t (saat işareti) zamanın değişimini temsil etmektedir. Periyodik olan bu sinyallere clock(saat) darbeleri de denir. Bunlar genellikle Kare dalga şeklinde işaretlerdir. Devrenin durum değiştirme anlarını ve çalışma hızını belirler. 1

2 Ardışıl Lojik Devreler, Senkron ve Asenkron ardışıl lojik devreler diye ikiye ayrılırlar: a) Senkron Ardışıl Lojik Devrelerde işlemler, yukarıda gösterildiği gibi saat (clock) işaretleri ile senkronize (eş zamanlı) olarak gerçekleştirilir. Bütün Flip Floplar (hafıza elemanları) aynı saat işareti ile aynı anda konum (durum) değiştiriler. Bu tip lojik devrelere dijital saat devresi örnek olarak verilebilir. b) Asenkron Ardışıl Lojik Devreler ise; devrenin girişindeki değişimlere bağlı olarak işlemler ardarda (farklı zaman dilimlerinde) gerçekleşir. Bu tür devrelerde periyodik saat işareti bulunması şart değildir. Para atıldığı zaman harekete geçen (durum değiştiren) bir meşrubat makinesi bu tür devrelere örnek verilebilir. C) Programlanmış Lojik Devreler (P.L.D.): P.L.D. de devrenin çalışması veya çıkışlarında elde edilecek işaretler, hafızadaki programa (komut devresine) bağlıdır. Bu dersin konusunu teşkil edecek olan devreler bu tür lojik devrelerdir. Burada da Ardışıl Lojik Devrelere benzer şekilde saat (clock) girişi vardır, ancak her t anında bir işlem ya da komut (toplama, çıkarma, lojik VEYA,OR gibi) gerçekleşir. Benzer olarak e(t):girişler ; s(t):çıkışlar olmak üzere n tane giriş ve m tane de çıkışa sahip bu tür bir sistemi daha detaylı bir şekilde aşağıdaki gibi çizmek mümkündür : Sistemin genelde birden fazla giriş ve çıkışları vardır. Burada işlemleri yapan bir Mikroişlemci ve programı saklamak için elektrik kesildiğinde silinmeyen bir Komut Hafızası ile üzerinde işlem yapılan ve neticede elde edilecek datayı (veriyi) saklamak için Data (Veri) Hafızası kullanılmaktadır. Yapılacak bir işleme, örneğin çıkarma işlemi ne ait komut/komutlar Komut Hafızası nda saklanır. Komut hafızasından komutlar çeşitli kontrol devreleri yardımıyla mikroişlemciye sırasıyla gönderilerek burada icra edilmesi (yürütülmesi) sağlanır Sayı Sistemleri 2

3 Sayı sistemleri iyi anlaşılmadan mikroişlemcilerle (ya da mikrodenetleyicilerle) uğraşmak ve onların kullanımlarını anlamak imkansız gibidir. Bu nedenle çeşitli örnekler üzerinde sayı sistemleri ve dönüşümlerini anlamaya çalışalım. Gerçekte bilgisayarlarda sadece 0 ve 1 ler ile (ikili tabanda) işlem yapıldığını hemen hepimiz biliriz. Ancak pratik hayatta çeşitli fiziksel büyüklüklerden onlu (desimal) tabanda söz ederiz. Örnek olarak 25 O C sıcaklıktan bahsederken bunun desimal olduğunu belirtmesek de o şekilde anlaşılmakta olduğunu düşünürüz. Öte yandan mikroişlemcilerde uzun ikili sayılarla (8-16 bit gibi) çalışırken çok sayıda 0 lar ve 1 ler yanyana gelince söyleme ve algılama zorluğu yaşarız. Bu durumda 16 lı taban kullanarak bu engeli aşmaya çalışırız. Bu nedenle sayı dönüşümlerinin çok iyi bilinmesi gerekir Bazı Temel Dönüşüm Örnekleri : ( * : Çarpı anlamındadır) 1) 7392 = 7* * * *10 0 = (7392) 10 On tabanı (desimal) bir sayının açılımı 2) (23,62) 10 = 2* * * *10-2 Desimal virgüllü bir sayının açılımı 3) (4021,2) 5 = 4* * * * *5-1 = (511.4) 10 Beş tabanı bir sayı ve desimal karşılığı 4) (101) 2 = 1* * *2 0 = (5) 10 İkili tabanda (Binary) bir sayı ve desimal karşılığı 5) (57) 16 = 5* *16 0 = (87) lı tabanda bir sayının 10 lu tabanda karşılığı Desimal, Heksadesimal ve Binary Temel Dönüşüm Tablosu Aşağıdaki tabloda 0 15 arasındaki desimal sayıların heksadesimal ve binary tabandaki karşılıkları verilmiştir. Bu tablonun akılda tutulması mikroişlemci ya da mikrodenetleyicilerle çalışırken büyük kolaylık sağlamaktadır. Desimal (10`lu) Heksadesimal (16`lı) Binary (2`li) A B C D E F Bazı Örnek Çevirme İşlemleri: 3

4 1) ( , ) 2 = (? ) 16 (İkili tabandaki(binary) sayı önce dörtlü gruplar halinde düzenlenerek yukarıdaki Dönüşüm Tablosu yardımıyla 16 lı tabana(heksadesimal) çevrilir. ( 2 7 1, F C ) 16 olduğundan sonuç (271,FC) 16 olarak bulunur) 2) (41) 10 = (?) 2 ( Desimal bir sayıyı binary sayıya çevirmek için sürekli 2 ye böler ve aşağıda gösterildiği gibi kalanları ters sırayla alırsak sayının ikili tabandaki karşılığını elde ederiz ) Bölme işleminde kalanları şeklinde tersten yazarsak sonuç olarak (41) 10 = (101001) 2 elde edilir. Aynı işlem (41) 10 sayısını önce onaltılı(heksadesimal), daha sonra ikili(binary) tabana çevrilerek de yapılabilir; göre) (2 sayısı ikili tabanda 0010 ve 9 sayısı ise 1001 olduğuna (41) 10 = (29) 16 = ( ) 2 aynı Baştaki sıfırlar dikkate alınmazsa 2 ye bölerek elde edilen ile sonuç elde edilmiş ve bölme sayısı azalmış olur. 3) (0,263) 10 = (?) 16 Verilen sayı ondalıklı (virgüllü) bir sayı olduğu için bu defa 16 ya bölmeyip 16 ile çarpacağız. 0,263 * 16 = 4,208 0,208 * 16 = 3,328 0,328 * 16 = 5,248 Burada bölme yerine çarpma yapıldığından her alınan sonucun tam sayı kısmı baştan sona doğru (ters yönde değil!) sıralanarak aşağıdaki sonuç bulunur. Sayı ondalıklı olduğu için elbette sayıya 0, ile başlanması gereklidir. (0,263) 10 = (0,435) 16 olarak heksadesimal karşılığı bulunmuş olur 4) (CA, 03) 16 = (? ) 2 Bu çevirme işleminde ise her heksadesimal (16 lı) sayının binary (ikili) karşılığı alınıp yan yana konularak netice basitçe elde edilir. Daha önce verilen dönüşüm tablosundan (C) 16 = (1100) 2, (A) 16 = (1010) 2, (0) 16 = (0000) 2, (3) 16 = (0011) 2 olduğu bilindiğinden (CA,03) 16 = ( , ) 2 şeklinde ikili tabandaki sonuç elde edilir. 4

5 1.3. Tümleyen Kavramı ve Kullanımı: Özellikle çıkartma işlemleri ile negatif sayıların binary olarak (ikili tabanda) temsil edilebilmesi için önemli olan tümleyen kavramı mikroişlemciler ile uğraşanlar için temel kavramlardan biridir. Bir sayının iki tür tümleyeni tanımlanabilir: 1- Tabana göre tümleyen 2- [Taban 1] e göre tümleyen Tümleyen kavramını doğrudan örnekler üzerinde inceleyerek anlamaya çalışalım: Örnek Tümleyen İşlemleri: (52520) 10 Tabana göre tümleyeni = = (47480) 10 (Sayı 5 hane olarak verilmiş, taban da 10 olduğuna göre, 10 5 den verilen sayı çıkartılarak tabana göre tümleyen bulunuyor.) (0,3267) 10 Tabana göre tümleyeni ,3267 = 1 0,3267 = (0,6733) 10 ( Sayının tam kısmı yok!, 10 0 = 1 den verilen sayı çıkarılmış. ) (101100) 2 Tabana göre tümleyeni (101100) 2 = (64) 10 - (44) 10 = (20) 10 = (010100) 2 (2 6 sayısı binary karşılığı ( ) 2 = (64) 10 dir) Benzer şekilde (Taban-1) e göre tümleyen için; (52520) 10 (Taban-1)'e göre tümleyeni = (47479) 10 (Yukardaki tabana göre olan sonuçtan 1(bir) çıkarılırak netice bulunur) (0,3267) 10 (Taban-1)'e göre tümleyeni = (0.6732) 10 (Verilen sayı virgülden sonra 4 haneli olduğundan 10-4 çıkarılmıştır) (101100) 2 (Taban-1)'e göre tümleyeni (101100) 2 1 = 64 - (44) 10-1 = (19) 10 = (010011) 2 olur. Pratik Tümleyen İşlemi ile Kolay çözüm: Yukarıdaki işlemlerde her iki tümleyeni bulunan ikili tabandaki (101100) 2 sayısını ele alalım; (101100) 2 (010011) 2 Bu sayıda 1 gördüğümüz yere 0, 0 gördüğümüz yere 1 koyalım. Sayısını elde ederiz. Bu sayı yukarıda bulunan (taban-1) e göre tümleyen olur. Bu sayıya (1) eklersek bu defa tabana göre tümleyen elde edilir. (010100) 2 (1 ekleme işleminde, son iki basamak 11 olduğundan bunlar 00 yapılır, bir üst basmak 1 olur) 5

6 Binary (2 li) ve Heksadesimal(16 lı) Tabanda Örnek İşlemler: Biz ikili tabandaki işlemleri genellikle 8 basamaklı (bit) olarak yapacağız.(bunun sebebi, ilerde incelenecek PIC mikrodenetleyicinin 8 hane (bit) veri işlemesidir, böylece buna bir hazırlık yapılmaktadır.) Aşağıdaki örnekler hem binary (ikili) hem de heksadesimal (16 lı) tabanda yapılmış ve sonuçların aynı olduğu gösterilmiştir. 1-8 basamaklı (bitlik) Örnek Bir Toplama İşlemi: Binary Heks. Desimal Binaryde 0+0=0, 0+1 ve 1+0=1, 1+1=0 (elde 1) dir C 108 Heks. İşlemde, önce C+F için 12+15=27 den 16 ( taban) F çıkarılmış yani 27-16=11 = (B) 16 elde edilmiştir E B 235 Elde sonraki 6+7=13 e eklenerek 14=(E) 16 aşağıya yazılmıştır. Sonuç heksadesimal olarak EB olur. Not: Her üç tabandaki sonuçların birbirleriyle uyuştuğunu kontrol edersek; (1110) 2 = (E) 16 ve (1011) 2 =(B) 16 (EB) 16 = = (235) 10 olduğundan sonuçlar uyuşmaktadır. 2-8 haneli(bitlik ) Örnek Bir Çıkarma İşlemi: Binary Hex Desimal C F D 13 Bu işlemin sonucunu bulabilmek için normal yoldan çıkartma işlemi yapabiliriz.(bunun için klasik şekilde Binary de önce en sağdaki 0 dan 1 çıkarmaya çalışacak, çıkmadığı için bir üst(solundaki) basamaktan 1 borç alıp bu haneye 2 olarak yansıyan sayıdan 1 çıkarıp işlemlere sol başa doğru devam edecektik) Fakat bu tarz çıkartma, borç alarak devam edeceği için toplamaya göre oldukça zahmetli olacaktır. Mikroişlemci içindeki lojik devreler de işlemin bu şekilde gerçekleşmesi için tasarlanmamıştır. Bu yüzden gerçekte mikroişlemci içinde çıkartma işlemi, toplamaya çevrilerek yapılır. Bu metod aşağıdaki alt bölümde tümleyen aritmetiği kullanılarak incelenecektir Tümleyen Aritmetiği ile Çıkartma Çıkartmada tümleyen aritmetiği kullanılması işi oldukça basitleştirmektedir. Zira, ikinci sayının tabana göre tümleyeni elde edilirse artık çıkarma işlemi toplamaya dönüşmüş olmaktadır ki bütün mikroişlemciler bu yolu kullanmaktadır. Buna göre daha önce anlatıldığı gibi örnekteki birinci sayı ( ) aynen bırakılır, üzerinde herhangi bir işlem yapılmaz! İkinci sayının ( örnekte ) tabana göre tümleyeni bulunur. Yani bu sayı negatifleştirilerek işlemin toplamaya dönüştürülmesi sağlanır. Zira örn. 45 sayısından 26 sayısını çıkartmakla 45 sayısını (- 26) ile toplamak aynı işlemdir. Burada 26 sayısının tümleyeni (- 26) sayısı olmaktadır. Ancak, daha önce tümleyen kavramı konusunda verilen örneklerden de bilindiği gibi tümleyen bulma işlemi de yine çıkartma işlemleri gerektirmektedir. Yani biz çıkartmadan kaçarken karşımıza yine çıkartma işlemi çıkmaktadır. Bu sebeple yukarıda bahsedilen kolay yol kullanılarak aşağıdaki gibi çıkartma yapılabilir. 6

7 * İkinci sayı olan ( ) 2 sayısının tabana göre tümleyeni basit ve kısa olarak iki aşamada bulunabilir: 1. Önce bu sayıda 1 olan bitler (basamaklar) 0 ; 0 olan bitler ise 1 yapılır. Böylece sayımız ( ) 2 olacaktır. Bu sayı, ikinci sayının (taban - 1) e göre tümleyenidir. 2. Daha sonra bu sayıya 1 eklediğimizde artık tabana göre tümleyen elde edilmiş olacaktır. İkinci sayının tabana göre tümleyeni olan ( ) 2 sayısı elde edildiğinden artık işlem toplamaya dönüşmüş olmaktadır. Bu durumda ikinci sayının tabana göre tümleyenini alarak çıkartmayı toplamaya dönüştürdüğümüze göre işlemin toplamaya çevrilmiş son halini tekrar yazalım: Binary: Hex : 8 C D (1101) 2 = (D) 16 olduğunu hatırlayınız. Buradaki sonucun başında bulunan 1 aslında tümleyen aritmetiği kullandığımız için büyük sayıdan (8C) 16, küçük sayı (81) 16 çıkarıldığını (borç olmadığını) göstermektedir. Tersi olsa yani küçükten büyük sayıyı çıkartmaya çalışsaydık sonucun başında 0 olacaktı. Burada çıkartma işleminin neticesi baştaki 1 dikkate alınmadan ( ) 2 = (0D) 16 olarak elde edilmiş olur İşaretli Sayılar Kavramı: Mikrodenetleyicilerde dolayısıyla mikroişlemcilerde işaretli sayıların da kullanılması gerekmektedir. Örneğin tasarlamak istediğimiz pratik bir devre sırasında (- 5 o C) gibi bir sıcaklık değeri karşımıza çıkabilir. Bu nedenle mikroişlemcide negatif sayıların da temsil edilmesi ve işlenebilmesi gerekir. Bu da aslında sadece 0 ve 1 lerle işlem yapan mikroişlemcilerde negatifliğin bir şekilde temsil edilmesi ihtiyacı olduğu anlamına gelir İşaretli Sayıların Kullanımı Bu amaçla genelde en soldaki bit sayının işaretini göstermek için ayrılır. Bu bit 0 ise sayı pozitif, 1 ise negatif kabul edilir. Buna işaret biti denilir. (Not: Mikroişlemci hesap yaparken bunu bilmez. Çünkü bu programcının kafasındaki bir varsayımdır, sayıya bir bakış açısıdır. Yoksa mikroişlemci için işaretli sayılarla yapılan işlemin işaretsiz sayılarla yapılan işlemlerden farkı yoktur. Bazı mikroişlemcilerde işaret bitinin değeri bir başka özel bitle belirtilmektedir) Pozitif Sayılar: İşaretsiz karşılığı ile aynı şekilde gösterilir. Örnek olarak desimal (+25) sayısını ele alalım; (İkili tabanda en soldaki basamağın yanındaki nokta, işaret bitini ayırt etmek için kullanılmıştır.) (+25) 10 = (+19) 16 = ( ) 2 (Baştaki 0. sayının pozitif olduğunu gösteriyor) Burada (+25) 10 işaretli desimal sayısı mikroişlemci içindeki hafızada (19) heksadesimal sayısı ile temsil edilmektedir. Bir başka ifadeyle işaretsiz pozitif bir sayının [örnekte (25) 10 ] mikroişlemcide gösterimi ile aynı değerde işaretli gösterimi (+25) 10 arasında hiçbir fark yoktur. İkisi de hafızada ( ) 2 =(19) 16 şeklinde yer alır. Negatif Sayılar: Sayının, pozitif karşılığının tabana göre tümleyeni ile temsil edilirler. Bir pozitif sayı asla, sol baştaki işaret biti 0 yerine 1 konarak negatif yapılamaz! 7

8 Yukarıdaki pozitif sayı örneğinde; (+25) 10 = ( ) 2 = (+19) 16 olduğunu bulmuştuk. Aynı sayının negatifini, (- 25) 10 i bulmaya çalışalım; (+25) 10 = (+19) 16 sayısının tabana göre tümleyeni (-25) 10 = (-19) 16 olacaktır ve daha önce çıkartma işlemi örneğinde verildiği gibi bunu pratik olarak şu şekilde elde ederiz : Önce (+25) 10 = (+19) 16 = ( ) 2 ikili sayısında 0 yerine 1 ; 1 yerine 0 yazalım. Karşımıza çıkan bu sayı (taban-1) e göre tümleyen olan ( ) 2 olacaktır. Bu sayıyı bir arttırdığımızda tabana göre tümleyeni buluruz : ( ) 2 İşte bu bulduğumuz ( ) 2 sayısı, (+25) 10 in tabana göre tümleyeni olan (-25) 10 sayısının mikrodenetleyicideki temsil ediliş biçimidir. Zaten sayının ilk biti (1.) olduğundan sayının negatif olduğu açıkça anlaşılmaktadır. Burada soldaki ilk bitten (1.) sonra konan nokta, sayıları işaretli olarak düşündüğümüzü (yorumladığımızı) ifade ediyor. Tekrar ifade edelim ki mikroişlemcide içindeki hesaplamada işaretli/işaretsiz sayı gösteriliş farkı YOKTUR. Mikroişlemcinin hafızasında bu (- 25) 10 sayısı ( ) 2 = (E7) 16 şeklinde temsil edilecektir. Biz işaretli sayılarla çalışıyorsak mikroişlemcide (E7) sayısını bir sonuç olarak gördüğümüzde fiziksel cevabın yani (E7) nin tabana göre tümleyeni olan ( -19) 16 = (- 25) 10 olduğunu bilmemiz gerekir. (Örnek olarak bu cevap -25 o C şeklinde sıcaklık değerine karşılık gelebilir.) İşaretli Sayılarla Çeşitli Örnekler: 1) (+60) 10 + (+62) 10 = (+122) 10 olduğunu gösterelim: (İkili tabanda yaparsak) = (+122) 10 elde edilir. Burada en baştaki (0.) sonucun pozitif olduğunu gösterir. İki pozitif sayının toplamının pozitif olarak elde edilmesi normal bir sonuçtur. 2) (+60) 10 + (+70) 10 = (+130) 10 olduğunu gösterelim: sonucu elde edilir. Dikkat edilirse sonucun ilk biti 1 çıktığı için sonuç negatif (! ) gözükmektedir. Halbuki matematikte iki pozitif sayının toplamı daima pozitiftir. Bu durumda işaretli sayılar gözüyle yapılan bu toplama işleminin sonucunda işaretin, dolayısıyla neticenin hatalı olarak elde edildiği görülmektedir. O halde işaretli işlemlerde belli bir değerin aşılmaması hususunda dikkatli olunmalıdır. Bunun nedeni bölüm sonunda açıklanacaktır. 3) (- 60) 10 + ( - 62) 10 = (- 122 ) 10 olduğunu gösterelim: (+60) 10 = ( ) 2 olduğu önceki örnekten bilindiğine göre buna 2 eklersek pratik yoldan (+62) 10 = ( ) 2 sayısını elde edebiliriz. (Ya da 62 yi ardarda 2 ye böleriz) 8

9 Şimdi bu sayıların negatif karşılıklarını bulmak için tabana göre tümleyenlerini alırsak; (+60) 10 = ( ) 2 (Önce 0 yerine 1, 1 yerine 0 koyalım) => ( ) 2 ( Bu sayıya da 1 eklersek ) (- 60) 10 = ( ) 2 bulunur. (Bir üstteki sayıda sağ dörtlü 0011 yani 3 idi,1 ekleyince 0100=4 oldu) Benzer şekilde (+62) 10 = ( ) 2 için tümleyen işlemi yaparsak; ( - 62) 10 = ( ) 2 elde edilir. Şimdi bu negatif sayıları toplayalım: sonucu baştaki 1. dikkate alınıca negatif olarak bulunur. Bu ikili tabandaki mikroişlemci sonucu doğrudan 10 lu tabana çevrilirse (-122) 10 bulunamaz! Çünkü Negatif Sayılar konusunda belirtildiği gibi negatif sayılar mikroişlemcide tümleyenleri ile temsil edildiklerinden önce sonucun tekrar tümleyeni alınarak pozitif 122 bulunur ve aldığımız tümleyenden dolayı başına - eklenerek gerçek (fiziksel) cevap olan (- 122) 10 elde edilecektir. Bu işlemi yukarıdaki bilgisayar sonucundan hareketle yaparsak; (Tümleyen için yine 0 yerine 1, 1 yerine 0 konup daha sonra 1 eklenmiştir) => => yaparak (+122) 10 elde edilir. Bu son aldığımız tümleyenden dolayı ve yukardaki sonuçta da görüldüğü gibi fiziksel (asıl) cevap negatiftir yani (-122) 10 dir. 4) (-60) 10 + (-70) 10 = (-130) 10 işlemini yine işaretli ve 8 bit olarak yapmaya çalışalım: (+60) 10 = ( ) 2 ve (+70) 10 = ( ) 2 olduğunu önceki örnekten biliyoruz. Bu iki sayının negatiflerini bulmak için taban`a göre tümleyenini alalım: = (C4) 16 = (-60) 10, = (BA) 16 = (-70 ) 10 değerlerini buluruz. Bu sayıları toplarsak( - 130) 10 değerini yani gerçek sonucu bulamayacağız, yine sonucun hatalı olduğunu göreceğiz. (Bunu tümleyen kullanarak işlemi yapıp gösteriniz) ÖNEMLİ SONUÇ : İşaretli sayılarla yapılan işlemlerde Sonuç; ( 128) 10 = (-80) 16 den küçük ( desimal olarak -129, gibi) ya da (+127) 10 = (+7F) 16 den büyük (desimal olarak +129, gibi) ise, 9

10 bir başka ifade ile sağdaki bitlerden işaret bitine bir etki gelmiş ise sonucun işareti, dolayısıyla sonuç hatalı olacaktır. İşaretli işlemlerde doğru netice bulmak için sonucun desimal karşılığı (-128) 10 den küçük ya da (+127) 10 den büyük olmamalıdır. Böyle durumda 16 bit olarak işlem ve programlama yapılmalıdır. 16 bit toplama konusu ilerde incelenecektir. 2. BÖLÜM GENEL BAKIŞ ve PIC 2.1. Mikroişlemci (Mikroprosesör) Nedir? CPU (Merkezi İşlem Birimi) olarak da adlandırılır. Bir bilgisayar programının yapmak istediği işlemleri icra eder, yerine getirir. CPU, hafızada bulunan komutları sırasıyla ile işler. Bu işleme, komutun hafızadan alınıp getirilmesi (Fetch), kodunun çözülmesi (decode) ve işlemin yerine getirilmesi (Execute) gibi aşamaları gerektirir. Merkezi İşlem Birimleri (CPU) Kişisel Bilgisayarlarda (PC) kullanıldıkları gibi, sanayi tezgahları, ev aletleri ve cep telefonları gibi kontrol gereken birçok alanda da kullanılırlar. Ancak Mikroişlemciler tek başına çalışamazlar. İhtiyaç duydukları bazı ilave elemanlar vardır. Bu elemanlar temel olarak ; 1 ) Giriş ( Input ) Ünitesi 2 ) Çıkış (Output ) Ünitesi 3 ) Hafıza (Memory ) Ünitesi dir. Bu elemanlar CPU dışında olduklarından aralarındaki iletişimi Veri Yolu (Data Bus) ve Adres Yolu (Address Bus) ile Kontrol hatları (Control Lines) denilen lojik iletim hatları sağlar. Intel, AMD, Cyrix mikroişlemci üreticilerinden bazılarıdır. Şu anda ayrı olarak mikroişlemcilerin sadece kişisel bilgisayarlarda PC lerde kullanıldığını söylersek pek yanlış olmaz. Kontrol işlemlerinde, sanayide, haberleşmede CPU ile birlikte yukarıda sözü edilen ek elemanları da içinde bulunduran mikrodenetleyiciler (mikrokontrolörler) tercih edilir Mikrodenetleyici (Mikrokontrolör) Nedir? Bir bilgisayar içinde bulunması gereken Hafıza, Giriş/Çıkış ünitesi gibi elemanların CPU ile birlikte tek bir entegre (chip) içerisinde üretilmiş haline Mikrodenetleyici (Mikrokontrolör) denir. Çevre üniteleri hariç olmak üzere CPU, kalıcı ve uçucu Hafızalar ile Giriş/Çıkış ünitelerinin hepsi bir mikrodenetleyiciyi oluşturur. Böylece hem yer ve enerji tasarrufu yapılıp maliyet düşürülürken hem de tasarım kolaylaştırılmış ve programlama işlemi basitleştirilmiş olur. Aşağıdaki şekilde bir mikrodenetleyicinin genel bir yapısı verilmiştir. Bir Mikrodenetleyicinin Basit Yapısı : 10

11 Günümüzde mikrodenetleyiciler otomobillerden kameralara, cep telefonlarından oyuncaklara kadar sayılamayacak kadar pekçok alanda kullanılır. Mikrodenetleyiciler birçok firma tarafından üretilmektedir. Microchip, Arm, Intel, Motorola, SGS Thomson, Hitachi gibi Her üreticinin en az birkaç mikrodenetleyicisi vardır. Mesela, Microchip firması 12C508, 16C84, 16F84 ve 16F877 gibi çok sayıda farklı mikrodenetleyicilere sahiptir ve bunlar hemen, hemen aynı komutlarla programlanırlar. Mikrodenetleyici adlarında bulunan harfler/rakamlar aynı aile içinde farklı özelliklere sahip (hafıza yapısı ve miktarı, hız gibi) elemanları ifade eder. Bir uygulama yapmadan önce hangi firmanın, hangi numaralı mikrodenetleyicisinin kullanılacağı tespit edilmelidir. Bunun için Katalog (Data sheet) adı verilen kaynaklardan ya da internetteki ilgili sitelerden faydalanılabilir Bir Mikrodenetleyici İçinde Bulunan Temel Özellikler : Çok farklı özelliklere sahip mikrodenetleyiciler bulunmakla birlikte bir mikrodenetleyicide bulunan en temel (ortak) özellikler aşağıdaki gibi sıralanabilir. 1 ) Programlanabilir Dijital (Sayısal) Girişler / Çıkışlar 2 ) Programlanabilir Analog Girişler 3 ) Seri Girişler / Çıkışlar 4 ) Darbe (Pals) PWM (Darbe genişlik modulasyonu) işareti Çıkışları 5 ) Harici (İlave) hafıza bağlanabilme 6 ) Dahili Program hafızası seçenekleri ( ROM, PROM, EPROM, Flash gibi ) 7) Zamanlayıcı, Sayıcı ve Kesme gibi özellikler. Bu özelliklerin yanısıra çok sayıda farklı özelliklere sahip mikrodenetleyiciler bulunsa da yukarıda belirtilenler genellikle bulunması istenen zorunlu özellikler olarak sayılabilir Mikrodenetleyici Seçimi Mikrodenetleyici seçerken öncelikle uygulama ihtiyacımızın tamamını karşılamasına sonra da fiyatına bakarız. Ayrıca yazılım ( program ) desteğinin ve araçlarının (derleyici, simulatör, emulatör v.s.) bulunup bulunmadığına bunların ücretli olup olmadığına dikkat ederiz. Yazılı yayınlarda ve internette bol miktarda uygulama programları bulunabilmesi de bize örnek olması açısından faydalıdır. Sayılan özellikler göz önüne alınırsa (şu an için) Microchip firması tarafından üretilen kısaca PIC olarak ifade edilen mikrodenetleyicilerin kullanılması oldukça avantajlı gözükmektedir PIC Mikrodenetleyicilere ve Programlanmasına Genel Bakış PIC İngilizce de Çevre Üniteleri Kontrol edici Arabirim anlamı taşıyan kelimelerin baş harflerinden oluşmuştur. PIC in temel ve basit birçok özelliklerini içeren PIC16F84 ün incelenmesi başlangıç için daha yararlı olacaktır. Bu mikrodenetleyicide program hafızası Flash tipidir. Ve elektrik kesilse bile içlerindeki bir defa yüklenmiş program silinmemektedir. Yeni başlayanlar ve araştırma yapanlar için kolayca yazılıp silinebilen özelliğe sahip olan Flash Program Hafızalı PIC ler bu açıdan büyük kolaylık sağlamaktadır. Program hafızası EPROM olanlar da elektriksel olarak yazılmakta ise de programı silmek için üzerinde bulunan penceresinden dakika UV (Ultraviole) ışını uygulamak gerekir. Bu notlarda PIC16F84 için öğrenilenler büyük ölçüde PIC 16/17 ailesinin tamamı için de geçerlidir PIC Mikrodenetleyicilerin Avantajları : 1 ) Destek Yazılımları internetten ücretsiz sağlanır. 11

12 2 ) Çok yaygın ve ucuzdur. Hem profesyonel hem de amatör kullanıma uygundur. 3) İnternette ve kitap/dergilerde çok sayıda örnek programlar mevcuttur. 4) Çok az ve basit birkaç elemanlarla ( birkaç direnç, kondansatör ) donanımları kurulabilir. 5 ) Komut sayısı az ve kullanımı basittir. 6 ) Daha üst seviye diller için (PIC C, CCS, PicBasic gibi) Derleyiciler e (compiler) sahiptir. 7) Ayrıca PIC lerdeki BUS (Lojik yollar) yapısı PIC lerin RISC işlemci olarak tanıtılmasını dolayısıyla diğer mikroişlemcilere göre hızlarının fazla olmasını sağlar Bir PIC Programlamak İçin Enaz (Asgari) Gerekenler : 1) Bir PC ( Kişisel Bilgisayar ) 2) Bir metin editörü (Not defteri gibi) kullanmayı bilmek 3) PIC Assembler (derleme) programına ( MPASM, MPLAB gibi ) sahip olmak 4) PIC programını entegreye yüklemek (programlamak) için gerekli Programlayıcı donanım ve yazılımına sahip olmak 5) Kullanılacak PIC mikrodenetleyicisini edinmek 6) Programlamadan sonra devremizi çalıştırmak için bir DC güç kaynağı, direnç-kondansatör kristal gibi birkaç elektronik eleman, breadboard (deneme kartı), ölçü aletine de sahip olmak gerekir Programlayıcı Donanımı Ve Yazılımı Makine diline çevrilmiş icra edilebilir programın (*.hex uzantılı dosya) PIC e yüklenmesi için bir Programlayıcı ya ihtiyaç vardır. Piyasada özel bir mikrodenetleyiciyi yada ailelerini programlayan programlayıcılar bulunduğu gibi her tür mikrodenetleyici ve hafızayı programlayan Üniversal Programlayıcılar da vardır. Bunlar yazılımları ile satıldıkları gibi bu yazılımları (sürücüleri) yeni mikrodenetleyiciler piyasaya çıktıkça internetten yüklenmekte ve güncellenebilmektedir. PIC için MPASMwin ya da MPLAB tarafından derlenerek elde edilen (hex) uzantılı bu dosyanın PIC e yazılması için programlayıcı ile birlikte her zaman bir de yazılıma ihtiyaç olduğundan önce bu yazılım PC ye yüklenmeli ve programlayıcı özelliğine göre PC ye USB yada RS232 arabirimi üzerinden bağlandıktan sonra programlamaya başlanmalıdır PIC Mikrodenetleyicilerin Türleri ve Özellikleri Microchip firması tarafından üretilen farklı PIC grupları (aileler) vardır. Bu aile isimleri verilirken kelime boyu (komut kelimesi de denen bu kavram ilerde açıklanacaktır.) dikkate alınmıştır. Ancak program yazılırken aynı komutlar kullanılsa bile bu komutların program hafızasında bulunan makine dili (heksadesimal) karşılıkları farklı kelime boylarında olabilir. Mesela ; PIC 12CXXX / PIC 12FXXX ailesi 12 ya da 14 bit, PIC 16C5XX ailesi 12 bit, PIC 16CXXX / PIC 16FXXX ailesi 14 bit, PIC 17CXXX / PIC 18FXXX ailesi 16 bit kelime boyuna sahiptirler. Biz programcı olarak bu kelime boyları ile fazla ilgilenmeyiz. Bizim için seçtiğimiz PIC in komutlarının görevlerini, kullanma kural ve özelliklerini bilmek yeterlidir. Bu özelliklerden kasıt, PIC in komutları ile kullanım formatları, hafıza tipi ve miktarı, giriş/çıkış (I/O) portu (ucu) sayısı, analog giriş 12

13 kabul edip etmemesi v.s. gibi özelliklerdir. Bunları kataloglardan ve sitesi ile farklı sitelerden elde etmek mümkündür PIC Mikrodenetleyicilerin Hafıza Yapısı Bir PIC içersinde temel olarak iki tür hafıza bulunur : Program Hafızası Veri Hafızası Program Hafızası Türleri: Farklı özelliklerde Program Hafızalarına sahip PIC ler mevcuttur. Bunlardan başlıcaları ROM,PROM, EPROM, Flash olarak sayılabilir. Bu hafızalarda normal program komutları heksadesimal biçimde o PIC e özgü kelime boyuna sahip olarak yer alır. Program hafızaları her zaman kalıcı bir hafızadır. Hangi türde PIC kullanılacağı uygulama ve üretim miktarları dikkate alınarak belirlenir. En çok kullanılan program hafızası türleri : ROM : Sadece okunabilir hafıza olarak bilinir. Bu tip program hafızaları genellikle fabrikasyon olarak bir kere yazılırlar. Ucuzdurlar. Ancak çok sayıda programlanmışlarsa ve programda hata olduğu sonradan anlaşılırsa üretilen entegrelerin atılmasını gerektir. Örn: PIC 16CR84 gibi. PROM : ROM a benzer olup fabrika yerine kullanıcı tarafından bir kere programlanırlar. Daha sonra değiştirilemezler. ROM a göre biraz daha pahalıdırlar. OTP olarak da adlandırılırlar. EPROM : Elektriksel olarak kullanıcı tarafından programlanabilirler. Hafıza hücrelerine uygun elektrik işaretleri ile ( genellikle besleme gerilimlerinin üzerinde bir gerilimle) program kaydı yapılır. Elektrik kesilse de program silinmez. Silmek ve yenisini yazmak için ultraviole (UV) ışınının belirli bir süre penceresinden uygulanması lazımdır.programlama yapıldıktan sonra EPROM un silinmemesi için pencereli olanların pencereleri ışık geçirmeyen bantla kapatılır. Örn: PIC16C74 pencereli EPROM tipi bir PIC dir. FLASH : Düşük besleme gerilimi ile hem programlanıp hem de UV ışınına gerek kalmadan elektriksel olarak silinebilir tiptir. Uygulama geliştirme (deneme) maksatları için elverişlidir. Dezavantajı hafızaya erişim (okuma/yazma) hızları EPROM lara göre düşüktür. Örn: 16F84 bu tip hafızaya sahiptir PIC16F84 de Program Hafızasının Yapısı ve Haritası : Laboratuarda uygulanacak PIC16F877 den önce kendimize daha basit bir örnek olarak PIC16F84 mikrodenetleyicisini inceleyeceğiz. Seçtiğimiz PIC16F84 de 1K word luk (kelime) program hafızası vardır. Her bir hafıza hücresi içerisine 14 bit uzunluğundaki (=kelime boyu) program komutları saklanır. Bunların her birine Komut Kelimesi ya da kısaca Komut denir. Program hafızası Flash tipte olup program çalışması esnasında sadece okunabilir. PIC in beslemesi kesilince silinmez. 13

14 PIC16F84 için Program Hafıza Haritasını Çizelim : Program hafızasında sadece assembly komutlarının heksadesimal (hex) karşılıkları saklanır.yukarıdaki haritada İçeriği şeklinde ifade edilen komutlar PIC16F84 için 14 bittir yani 14 bit kelime uzunluğundadır. Ancak toplam adres ( 2 10 = 1024 ) olmasına rağmen Program hafıza haritasında son adresin (1023) 10 = (3FF) 16 olma sebebi ilk adresin sıfırdan (000) 16 başlamasıdır. İlk adres (001) 16 den başlasaydı son adres ( 1024 ) 10 =(400) 16 olacaktı PIC16F84 de Veri (Data) Hafızası : Her PIC de bulunan diğer bir hafıza türüdür. Bu hafıza genellikle RAM türü Geçici Bilgi Depolama alanıdır. Ayrıca PIC16F84 de EEPROM denilen 64 byte lık kalıcı veri hafızası türü de veri saklama amaçlı kullanılır. Ancak bu hafızanın kullanılması daha ileri programlama bilgisi gerektirmektedir. Aşağıda incelenecek File Registerleri de (STATUS, PORTA,TRISA gibi) RAM tipi Veri Hafızasında yer alırlar. Bu sebeple PIC in enerjisi kesildiğinde burada bulunan veriler silinir. Enerji verildiğinde hangi registerlerin rastgele ya da hangi belirli değerleri alacağı Veri Hafızasına ait dağıtılan Özel Fonksiyon Registerleri tablosundan görülebilir. Buna o registere ait Power-on Reset değeri denir. PIC16F84 de Veri (Data) Hafıza Yapısı ve Haritası ve Banklar Dersimiz için örnek aldığımız PIC16F84 ün (0x00 0x4F) adres aralığında toplam ( 50 ) 16 = (80) 10 adet 8 bit uzunluğunda veri (data) hafıza adresi vardır. Bunların bir kısmı Özel Fonksiyon Registerleri denilen ve yine 8 bit uzunluğunda olan lojik bilgi saklayıcılara (register) ayrılmıştır. Bu Özel Fonksiyon Registerleri dışında kalan hafıza alanları Genel Veri saklama alanı olarak kullanılabilir. Mesela, = 8 işleminde 5, 3, 8 sayıları (verileri) 8 bit uzunluğunda olduğu için 05, 03, 08 şeklinde buraya saklanabilir. İlerde bu konular daha ayrıntılı incelenecektir. (NOT: Aşağıdaki tabloda 0x kendinden sonra gelen sayının heksadesimal olduğunu belirtir, örn: 0x4F = (4F) 16 = h 4F aynı sayıların farklı gösteriliş biçimleridir.) 14

15 16F84 için Veri (Data) Hafızası Register Haritası : Yukarıdaki Özel Fonksiyon Registerleri ve Genel veri depolama alanı (taralı alan) programın çalışması esnasında kullanılan değişkenleri geçici olarak saklamak için kullandığımız veri alanlarıdır. Ayrıca haritada gösterilmeyen ve Bank 0 bulunan 0x50 den 0x7F e kadar olan alan boştur ve rezerve olarak ayrılmıştır. Benzer şekilde Bank 1 için de 0xD0 ile 0x7F aralığı boştur. Bu tablodaki veri alanları hafızanın tipine dayanarak RAM hafıza olarak da adlandırıldığını yeniden hatırlayalım. PIC 16F84 ün Veri (RAM) hafızası 2 Sayfadan (Bank) meydana gelir: Bank 0 a ait adresler 0x00 0x4F Bank 1 e ait adresler 0x80 0xCF adres aralığındadır. Bir Bank ın içindeki herhangibir registeri ( Bank0 veya Bank1 ) kullanabilmek için o Bank a geçmek gerekir. İlk enerji verildiğinde PIC Bank 0 da açılır. Yukarıda kısmî olarak verilen Register haritası incelenirse bazı Özel Fonksiyon Registerlerinin her iki bankta ortak olduğu görülür. (IND,PCL,STATUS, FSR gibi ) Dolayısıyla böyle bir registere programlama sırasında her iki bankta iken de (bank değiştirmek gerekmeksizin) erişilebilir. Örnek olarak STATUS un bulunduğu 0x03 adresine yazılan bir veriyi, 0x83 adresinden okumak mümkündür. PIC16F84 için Bank 0 de [0x00.. 0x0B] adresleri arası özel fonksiyon registerlerine ayrılmıştır. Benzer şekilde Bank 1 de [0x80. 0x8B] arası yine özel fonksiyon registerlerine tahsis edilmiştir. Ayrıca RAM Genel Veri saklama alanları olarak adlandırılan (0x0C - 0x4F) adres aralığı ile (0x8C - 0xCF) adres aralığı yine birbirlerinin kopyasıdır. Örneğin 0x1B adresi ile 0x9B adresleri gerçekte aynı verileri içermektedir (Ayna Özelliği). Bir başka ifadeyle burada otomatik kopyalama işlemi söz konusudur. Bank değiştirme işlemi programlama sırasında tekrar incelenecektir Özel Bir Register ( W : Akümülatör ) Akümülatör PIC16F84 de Veri Hafızası Register haritasında görülmemesine rağmen sıkça kullanılan ve Geçici Depolama Registeri de denebilecek bir registerdir. 8 bit uzunluğundadır. Diğer File Registerlerinden veri okur, yazarken bu W registerinden faydalanırız. Ayrıca registerler arası veri kopyalama ile tüm aritmetik işlemler ve bazı atama işlemleri için bu W registerini kullanmak şarttır. Meselâ ; iki register (PORTA ve PORTB gibi) içindeki verileri toplamak istersek bunlardan birinin W ye kaydedilmiş olması gerekir. (05) ile (03) ü toplamak için önce (05) i örn. PORTA ya, (03) ü de W ye yazmak gerekir. Daha sonra toplama komutu ile sonuç 08 olarak PORTB de elde edilebilir. 15

16 Not: Bu işlemlerin hangi komutlarla ve nasıl yapılacağı tablo halinde verilen Assembly komutları, özellikleri ve kullanımı ile daha iyi anlaşılacaktır PIC16F84 ün Bacak (pin) Yapısı ve Portları PIC16F84 mikrodenetleyicisi 18 bacağa (pin) sahiptir. Şekilde görüldüğü gibi V DD ( + ), V SS ( - ) besleme uçlarıdır. En ideal besleme gerilimi +5V olsa da gerçekte PIC, (+2V)... (+6V) arası çalışır. RAx ve RBx ile ifade edilen portlardan dışarı alınan akım yeterli değilse transistor veya röle kullanılarak akım arttırılabilir. Bütün CMOS Lojik entegrelerde olduğu gibi burada da kullanılmayan PORT girişleri +5V (Lojik 1) a bağlanmalıdır. Asla boşta bırakılmamalıdır. Portlar ve besleme uçları dışında saat işaretinin üretilmesi ya da dışarıdan başka bir kaynaktan uygulanması için kullanılan OSC1 ve OSC2 uçları vardır. MCLR ucu ise Reset işlemi için kullanılır. RA4 ve RB0 bitleri farklı amaçla da kullanılabilmektedirler. CMOS olarak üretilen ve Flash tipi hafızaya sahip PIC16F84 de dışarıdan uygulanan CLK (saat) işareti kesilir ve tekrar uygulanırsa program kaldığı yerden devam eder PIC16F84 de Port Çıkış İken Maksimum Akımlar : PIC16F84 de bir PORT a ait olan bir bit ya Giriş ya da Çıkış olarak programlanarak kullanılır. PORT biti çıkış olarak kullanıldığı zaman iki tür akım söz konusudur. PORT dan içeri çekilebilen (sink) ve PORT tan dışarı alınabilen (source) akımları. Bu durumlardaki maksimum akım değerleri hiçbir zaman aşılmamalıdır. Bu değerler seri bir direnç üzerinden bir LED i rahatlıkla sürebilecek seviyededir. Sink Akımı : (+5 volt) beslemeden PORT un içine doğru akan akımdır. Bu durumda PORT dan içeri akacak maksimum akım 25 ma dir. PORT tan içeri daha fazla akıtılan akım PIC in bozulmasına sebep olabilir. Bu tür bağlantıda ancak PORT biti = (Lojik) 0 yapıldığında LED yanacaktır. 16

17 Source Akımı : PORT un içinden toprağa doğru akan akımdır. Bu durumda akacak maksimum akım 20 ma dir. Yine PORT tan dışarı bu değerden fazla akım çekilirse PIC bozulabilir. Bu tür bağlantıda PORT biti = (Lojik)1 yapıldığında LED yanacaktır 2.9. Osilatör ( Saat / Clock ) Devresi PIC in program hafızasında bulunan komutların çalışması ; dalga şeklindeki kare dalga ( saat/clock sinyali ) ile olur. PIC in çalışabilmesi için gerekli bu işaret ya dışarıdan bir osilatör kaynak üzerinden uygulanır ya da ilgili bacaklara bazı elemanlar bağlanarak PIC içersinden üretilmesi sağlanır. OSC1/ CLK IN denilen PIC16F84 ün 16 nolu bacağı, dışarıdan kare dalganın uygulanabileceği yerdir PIC e kristal/rezonatör/rc bağlandığı zaman bu sinyal PIC in içerden üretilir. Bu durumda dışarıdan kare dalga (clock) uygulamaya gerek kalmaz. PIC 16F84 de en çok kullanılan osilatör tipleri şunlardır : 1 ) RC Tipi ( Direnç / Kondansatör ) 2 ) XT Tipi ( Kristal veya Seramik Rezonatör ) 3 ) HS Tipi ( Yüksek Hızlı Kristal / Seramik Rezonatör ) 4 ) LP Tipi ( Düşük Frekanslı Kristal ) Osilatör tipi komut olarak veya programlama esnasında belirtilmelidir. Bu osilatör yapılarından sık kullanılan ikisinin tipik bağlantıları aşağıda gösterilmiştir. 1) RC Tipi Bağlantı : Bu amaçla kullanılan tipik bağlantı şöyledir. Hassas zamanlama gerektirmeyen tasarımlar için elverişlidir. 2) XT, HS, LS Tipi Bağlantı : Bu bağlantılarda her iki OSC bacağı kullanılır. C1 ve C2 değerleri pf civarında seçilebilir. 17

18 2.10. Reset ( ) Bacağı ve Devresi Program herhangi bir nedenle kilitlenirse ya da programı yeniden (baştan) çalıştırmak istersek dışardan PIC i Reset yapmamız gerekir. Aslında PIC e başlangıçta uygulanan besleme gerilimi belirli bir seviyeye ulaşınca programı başlatan bir RESET devresi ( Power-on reset ) PIC in içinde zaten vardır. Ayrıca PIC16F84 de RESET fonksiyonu gören 4 nolu bacakta ucu vardır. Master Clear (Ana Silme /Başlatma) kelimelerinden oluşturulmuş ucu ile lojik resetleme gerçekleşir.. Yani, Resetleme işlemi için bu girişe önce kısa bir süre lojik 0 verilmeli, daha sonra lojik 1 uygulayarak, programın enerji uygulandığı andaki duruma (başa) dönüp tekrar başlaması sağlanmalıdır. Bunun için aşağıdaki gibi tipik bir Reset devresi kullanılabilir. 3. BÖLÜM - PIC16F84 ve ASSEMBLY DİLİ PROGRAMI Biz programlarımızı PIC16F84 ye ait 35 farklı komuttan oluşan assembly programlama dili ile yazacağız. (Not: Bu komutlar Lab. da incelenecek 40 bacaklı PIC16F877 için de geçerlidir) Basit bir metin editöründe (not defteri gibi) yazılacak olan program ( *.asm = asm uzantılı text dosyası ) PIC in çalıştırabileceği hale dönüştürülmelidir (derlenmelidir). Bu işlem PIC için en basit olarak MPASM denilen bir Assembler derleme programı ile yapılmakta ve sonuçta ( *. hex ) uzantılı ve icra edilebilir bir dosya elde edilmektedir. Makine Dili de denilen bu program artık PIC e yüklenmeye (kaydedilmeye) hazırdır. Eğer MPASM, derleme sonrasında hata mesajları vermişse bunların (*.asm ) dosyası üzerinde düzeltilmesi ve tekrar derlenmesi gerekir. MPLAB derleyici programı da MPASM ile benzer işi görmekle birlikte simülasyon imkanı veren bazı ilave özellikler içermektedir PIC16F84 Assembly Dili Bir metin editöründe assembly dili kuralları ile yazılan assembly komutlarını ( hex ) kodlara çevirmek (derlemek) için en basit PIC assembler programı olarak MPASM nin kullanılabileceği daha önce belirtilmişti. Assembly dili aslında yapılacak işlerin sırasıyla, komutlar halinde yazılmasından başka bir şey değildir. Komutlar ise İngilizce dilindeki karşılıklarının baş harflerinin birleşmesinden meydana gelir ve tablo halinde verilmiştir. 18

19 Assembly Dilinde Program Yazarken Dikkat Edilecek hususlar: 1) Noktalı Virgül ( ; ) : Bir satırın başına (;) konursa o satır ( hex ) koda dönüştürülmez. Bu satır sadece bilgi amaçlıdır. Daha sonra programı değiştirir ya da geliştirirken hatırlamak istediklerimizi (;) den sonra yazabiliriz. Bir komuttan sonra da (;) konarak bundan sonra açıklama yazmak mümkündür. 2) Program Bölümleri : Assembly programının da Başlık, Atama, Program ve Sonuç bölümleri vardır. Editör önce sanal olarak 3 kolona bölünür. Bunlar Etiket, Komut, Adres(ya da Data) olarak sıralanabilir. Örnek komutlar üzerinde inceleyelim. 1)Etiket 2)Komut 3)Adres (yada Data) Eğer bu üç kolona yazarken sağa / sola kayma yapılırsa derleme sırasında MPASM den uyarı (warning) alınır. Oysa düzenli (3 kolona göre) yazılmış, noktalı virgüllerle (;) ile gerekli açıklamalar yapılmış programlar anlaşılır, kalıcı ve gelişmelere açık olacaktır. 3) Etiketlerin Özellikleri : Birinci kolonda yer alan Etiketler PIC hafızasındaki bir adresin atandığı ve hatırlatmayı kolaylaştıran kelimelerdir. Mesela 16F84 de PORTB nin 0x06 adresinde olduğu belli olduğuna göre (bknz. Özel Fonksiyon Registerleri tablosu) her sefer 0x06 yı hatırlamak ve yazmaktan kurtulmak için ( başlangıçta bir kere ) PORTB EQU 0x06 komutu yazarak 0x06 yerine PORT B kullanmaya hak kazanırız. ( EQU eşitleme, atama demektir). Ayrıca tarafımızdan adres atanmayan etiketler de vardır. BASLA, DONGU gibi. GOTO DONGU ; DONGU etiketine git komutu etiketi DONGU olan satıra ( komuta ) gitmeyi sağlar. Etiketleri kullanırken ; 1. kolona yazmaya, bir harfle başlamaya, Türkçe karakter kullanmamaya (DÖNGÜ değil DONGU), küçük / büyük harf duyarlılığına ( DONGU yerine başka yerde dongu yazılmaz ) dikkat edilmelidir PIC16F84 de Assembly Dili Komutları 19

20 PIC 16F84 de toplam 35 komut vardır. Bu komutlar farklı şekillerde guruplandırılabilirse de biz PIC komutlarını 4 ana grupta toplayarak inceleyeceğiz : 1 ) Byte Yönlendirmeli Komutlar 2 ) Bit Yönlendirmeli Komutlar 3 ) Sabitle Çalışan Komutlar 4 ) Kontrol Komutları Komutlar yazılırken bazı kısaltma harfleri kullanılır. Bunlar ; f : File register (Veri hafızasında bir adres ya da etiket ) d : Destination ( Hedef, komut sonucunun gönderildiği yer ) d = W ise ( sonuç W registerine kaydedilir ) d = F ise ( sonuç komutta belirtilen File registerine kaydedilir ) k : Sabit veya adres etiketi b : Bit veya Binary sayı ( Örn :b ) ifade eder. d : Desimal sayı ifade eder ( Örn :d 18 gibi ) h : Heksadesimal sayı ( Örn : h 4F gibi ) ifade eder Şimdi bu komut gruplarını ve formatlarını (kullanılış biçimlerini) örneklerle açıklayalım: 1 ) Byte Yönlendirmeli Komutlar : Bir bayt (register) üzerinde işlem yapan komut türüdür. Örnekler : MOVF 0x03,W MOVF PORTA,W MOVF STATUS,W ; 0x03 adresinin içeriğini W (Akümülatör ) nin içine kopyala. ; PORTA nın içeriğini W nin içine kopyala. ; STATUS registerini W nin içine kopyala. 2 ) Bit Yönlendirmeli Komutlar : Bir register yada adresinde bulunan bitlerden sadece biri üzerinde işlem yapan komutlar bu gruba girer. Örnekler : BCF 0x03, 5 ; 0x03 adresindeki registerin (STATUS un) 5. bitini 0 yap. BSF 0x05, 3 ; 0x05 adresinde bulunan PORTA nın 3. bitini 1 yap. 20

21 BCF PORTB, 3 ; PORTB nin 3. bitini 0 yap 3 ) Sabit İşleyen Komutlar : Bu tür komutlar belli bir sabit sayıyı işler. Örnekler : MOVLW 0x2F ; W registerine 2F yazar ( yükler ) MOVLW h 17 ; W registerine h 17 yazar ( yükler ) ADDLW b ; O anda W registerinde bulunan sayıya ( ) = ( 1F ) 16 ekler. 4 ) Kontrol Komutları : Program akışını değiştiren komutlar bu tür komutlardır. Örnekler : GOTO DONGU ; Program şartsız olarak DONGU etiketli satıra gider. GOTO BASLA ; Program şartsız olarak BASLA etiketli satıra gider. CALL GECIKME ; Program GECIKME etiketli altprograma gider Assembly Dilinde Sayı ve Karakter Yazılışları Assembly dilinde program yazarken sayılar çeşitli formatlarda (biçimlerde) yazılabilir. Hexadesimal sayılar için: Atamalarda (EQU komutu gibi) 0x03, 3, 03, 03h, h 03 şekillerinden biri kullanılabilir. Ancak diğer komutlarda 0x03, h 03 ya da 03 tarzı tercih edilir. Örnek olarak PORTB ye 06 veri hafızası adresini atamak için ; PORTB EQU 0x h h 06 şekillerinden herhangi biri yazılabilir. Ancak atama dışındaki komutlarda örn. W registerine (03) yüklemek için; MOVLW 0x03, MOVLW h 03, MOVLW 03 biçimlerinden biri yazılır. (Not: Biz Derslerimizdeki programlarda genellikle h 03 formatını tercih edeceğiz.) Binary ( ikili ) sayılar için : 21

22 b şeklinde yazılır. Örn : ( ) 2 sayısını W (akümülatör) e yüklemek için gerekli komut ; MOVLW b şeklinde ikili tabanda yazılabilir. Desimal sayılar için : Desimal sayılar ise başına d harfi konup yine tırnak içinde yazılır. d 18, d 255 gibi. Örn : (15) 10 sayısını W ye yüklemek için ; MOVLW d 15 yazılır. ASCII karakterler için ; Tırnak içinde karakterin kendisi yazılır. Genellikle RETLW komutu ile beraber kullanılır. Örn : RETLW B RETLW X gibi komutlar B ve X karakterlerinin ASCII karşılığı olan sayıyı W registerine yazar ve daha sonra inceleneceği gibi altprogramdan geri gönderir Assembly Dilinde İlk PIC16F84 Programı: Önce basit bir program yazarak programın yazılma aşamalarını inceleyelim. Örnek olarak enerji verince PIC16F84 ün PORTB yi tamamen çıkış yaptıktan sonra 0. ve 2. bitlerini (RB0, RB2) lojik (1); diğerlerini de Lojik (0) yapan bir program yazalım. PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB Bu durumda ( ) 2 = (05) 10 sayısının PORTB ye yüklenmesi gerekecektir. Elimizdeki File Register tablosunda Özel Fonksiyon Registerlerinde PORTB nin 0x06 adresinde, PORTB yi çıkış olarak yönlendirmek için kullanacağımız TRISB nin 0x86 adresinde ve Bank değiştirmek için kullanacağımız STATUS registerlerinin 0x03 adresinde olduğunu bulalım. Bu soru için sadece bu programda ilgileneceğimiz söz konusu 3 registeri adresleriyle beraber Bank0 ve Bank1 de gösterirsek aşağıdaki şekilde görülecektir. 22

23 Bank Değiştirme İşlemi : Daha önce de belirtildiği gibi herhangi bir file registere ulaşmak için o registerin bulunduğu Bank a geçmek şarttır. Burada PORTB den dışarı lojik değerler almak istediğimize göre önce PORTB yi Çıkış olarak yönlendirmek gerekir. Bunun için de PORTB yi Yönlendirme için TRISB kullanılacaktır. TRISB, Bank1 de bulunduğu ve PIC e enerji verildiğinde PIC in Bank0 dan başladığı hatırlanırsa Bank1 e geçmemiz gerekir. 16F84 de Veri hafızasındaki Özel Fonksiyon Registerlerinden STATUS Registerinin 5. biti (RP0) Bank değiştirme için kullanılır. Bir bit yönlerdirmeli Komutla RP0 = 1 yapılırsa BANK 1 e geçilmiş olacaktır. Program devam ederken tekrar Bank0 a dönmek istersek yine RP0=0 yapılmalıdır. O halde burada STATUS un 5. bitini (RP0=1) yaparak BANK 1 e geçelim; (STATUS EQU h 03 komutu ile önceden atanmış yani tanımlanmış olduğu kabulu ile) BSF STATUS, 5 ; STATUS 5. biti RP0=1 yapılarak Bank1 e geçilir. Tersine Bank1 de iken Bank0 a dönülmek istenirse; BCF STATUS, 5 ; ile de aynı RP0 = 0 yapılarak Bank 0 a geçilebilir PORTB yi Yönlendirme (Giriş/Çıkış Yapma) İşlemi : Yönlendirme işlemi için ilgili PORT a karşılık gelen TRIS registerini belirli bitlerle yüklemek gerekir. * Önemli: Bir portu çıkış yapmak için ilgili TRIS registeri bitlerini 0, giriş yapmak için 1 yapmak gerekir. Bu örnekte normal olarak PORTB, TRISB registeri ile yönlendirilecektir. PORTB yi çıkış yapacağımıza göre TRISB de tüm bitler (0) yapılarak PORTB tamamen ÇIKIŞ olması sağlanmalıdır. Bu durumda ; Sonuç olarak (00) 16 sayısının TRISB registerine yüklenmesi gerekir. Şimdi örnek Programımızda kullanılan komutları yazarken sırasıyla açıklayalım: (Hatırlatma: Açıklamalar ; den sonra yazılır ve derleyici tarafından değerlendirilmez!!! ) Programımızı yazalım Buna göre yukarıdaki açıklamalara göre verdiğimiz ornek.asm olarak adlandıracağımız ilk programı yazalım. İlk satırdan sonraki LIST ile hangi PIC i kullandığımız, END ile de programın sona erdiği belirtilir. ;ORNEK.ASM 01/10/ 2010 ;Programı hatırlamak için ad ve tarihi yazıldı LIST P = 16F84 ; Başlık Bölümü, kullanılan PIC bildiriliyor. BSF h 03,5 ; h 03 de bulunan STATUS 5. biti 1 yap ve Bank1 e geç 23

24 yap. MOVLW h 00 ; W registerine ( 00 ) 16 sayısını yükle MOVWF h 86 ; h 86 daki TRISB ye (00) yaz ve PORTB yi tamamen çıkış BCF h 03,5 ; Bank0 a geç. Giriş/Çıkış işlemi bitti MOVLW h 05 ; W registerine ( 05 ) 16 sayısını yükle MOVWF h 06 ; W deki sayıyı PORTB ye yükle END ; SON Atama Komutu (EQU) Kullanarak Tekrar Yazalım Özel Fonksiyon Register adresleri hatırlanması zor olabilmektedir. Bu sebeple başlangıçta EQU komutu ile tanımlanmaktadır. Bu durumda h 06, h 03 gibi adresler yerine PORTB, STATUS gibi isimler (etiketler) doğrudan kullanılabilir. Bu şekilde anlaşılırlık da artmaktadır. Aksi takdirde yukarıdaki gibi herbir registere ait adresin doğrudan kullanılması gerekir.. Bu şekilde aynı programı tekrar yazalım. ;ORNEK.ASM 01/10/ 2009 ;Programı hatırlamak için adı ve tarihi yazıldı LIST P = 16F84 ; Başlık Bölümü, kullanılan PIC bildiriliyor. PORTB EQU h 06 ; 0x06 adresi PORTB ye atandı STATUS EQU h 03 ; 0x03 adresi STATUS a atandı TRISB EQU h 86 ; 0x86 adresi TRISB ye atandı BSF STATUS,5 ; Giriş/Çıkışı ayarlamak için Bank1 e geç MOVLW h 00 ; W registerine ( 00 ) 16 sayısını yükle MOVWF TRISB ; PORTB tamamen Çıkış yapıldı. BCF STATUS,5 ;. Giriş/Çıkış işlemi bitti, Bank0 a geç MOVLW h 05 ; W registerine istenen ( 05 ) 16 i yükle MOVWF PORTB ; W deki sayıyı PORTB ye yükle END ; SON Ve yukarıdaki örnek programın icrasından sonra sonuçta PORTB çıkışında LED ler varsa RB0 ve RB2 ye bağlı bulunanların yandığı diğerlerinin söndüğü görülür MPASM Programı ile Derleme ve Önemli Dosyalar: Aslında bilgisayar ekranında tek bir pencereden ibaret olan MPASM denilen programda bazı dosyaların üretilmesi için yapılan ayarlar çok önemli bir rol oynamaz. Ancak özellikle programda hata varsa veya değişiklikler yapmak istendiğinde bazı dosyaların üretilmesi faydalı olacaktır. Bu nedenle aşağıdaki iki dosya ; 24

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ı

MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.)

MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.) MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.) 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik Şimdiye kadar Sayısal Devreler ve

Detaylı

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

B.Ç. / E.B. MİKROİŞLEMCİLER 1 MİKROİŞLEMCİLER Mikroişlemci (Mikroprocessor) Nedir? Merkezi İşlem Birimi, (CPU Central Processing Unit) olarak adlandırılır. Bilgisayar programının yapmak istediği işlemleri yürütür. CPU belleğinde

Detaylı

PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur:

PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur: PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI Temel olarak bir PIC içerisinde de iki tür hafıza bulunur: 1. Program Hafızası (ROM,PROM,EPROM,FLASH) Programı saklar, kalıcıdır. 2. Veri Hafızası (RAM, EEPROM)

Detaylı

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Mikroişlemci bir programının yapmak istediği işlemleri, (hafızada bulunan komutları) sırasıyla ile işleyerek icra eder (yürütür). Bu yürütme, 1. Komutun Program

Detaylı

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) Mikroişlemci bir programının yapmak istediği işlemleri, (hafızada bulunan komutları) sırasıyla ile

Detaylı

DEVRELENDİRİLMİŞ LOJİK

DEVRELENDİRİLMİŞ LOJİK MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım1) Doç. Dr. Hakan Ündil DEVRELENDİRİLMİŞ LOJİK Lojik (sayısal) Devreleri genel olarak 3 ana grupta inceleyebiliriz ; 1-) Kombinezonsal Lojik

Detaylı

MİKROİŞLEMCİ (Microprocessor) NEDİR?

MİKROİŞLEMCİ (Microprocessor) NEDİR? MİKROİŞLEMCİ (Microprocessor) NEDİR? Merkezi İşlem Birimi, (CPU Central Processing Unit) olarak adlandırılır. Bilgisayar programının yapmak istediği işlemleri yürütür.(yerine getirir) CPU belleğinde bulunan

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ı

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar Ders 5, Slayt 2 1 BACAK BAĞLANTILARI Ders 5, Slayt 3 PIC

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ı

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ı

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ı

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ı

BÖLÜM 2 8051 Mikrodenetleyicisine Giriş

BÖLÜM 2 8051 Mikrodenetleyicisine Giriş C ile 8051 Mikrodenetleyici Uygulamaları BÖLÜM 2 8051 Mikrodenetleyicisine Giriş Amaçlar 8051 mikrodenetleyicisinin tarihi gelişimini açıklamak 8051 mikrodenetleyicisinin mimari yapısını kavramak 8051

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ı

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ı

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa, KKTC E-mail: dogan@neu.edu.tr, Tel: (90) 392 2236464 ÖZET Bilgisayarlara

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran

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ı

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ı

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme PROGRAMIN ADI DERSIN KODU VE ADI DERSIN ISLENECEGI DÖNEM HAFTALIK DERS SAATİ DERSİN SÜRESİ ENDÜSTRİYEL ELEKTRONİK MİK.İŞLEMCİLER/MİK.DENETLEYİCİLER-1 2. Yıl, III. Yarıyıl (Güz) 4 (Teori: 3, Uygulama: 1,

Detaylı

MİKRO DENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2015-2016 Güz Vizeye kadar olan kısımdır

MİKRO DENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2015-2016 Güz Vizeye kadar olan kısımdır MİKRO DENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2015-2016 Güz Vizeye kadar olan kısımdır 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik Şimdiye kadar Sayısal Devreler ve Sayısal

Detaylı

EEM 419-Mikroişlemciler Güz 2017

EEM 419-Mikroişlemciler Güz 2017 EEM 419-Mikroişlemciler Güz 2017 Katalog Bilgisi : EEM 419 Mikroişlemciler (3+2) 4 Bir mikroişlemci kullanarak mikrobilgisayar tasarımı. Giriş/Çıkış ve direk hafıza erişimi. Paralel ve seri iletişim ve

Detaylı

27.10.2011 HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

27.10.2011 HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK Mikroişlemci HAFTA 1 HAFIZA BİRİMLERİ Program Kodları ve verinin saklandığı bölüm Kalıcı Hafıza ROM PROM EPROM EEPROM FLASH UÇUCU SRAM DRAM DRRAM... ALU Saklayıcılar Kod Çözücüler... GİRİŞ/ÇIKIŞ G/Ç I/O

Detaylı

PIC Mikrodenetleyicileri

PIC Mikrodenetleyicileri PIC Mikrodenetleyicileri Intel 1976 da 8031/51 ailesini piyasaya sürdüğünde dünyanın en popüler mikroişlemcisi olmuştu. Bu işlemci dünya üzerinde 12 den fazla firma tarafından (İntel, Phillips, Dallas,

Detaylı

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI Bazı pinler çevre birimleri ile çoklanmıştır. Peki bu ne demek? Mesela C portundaki RC6 ve RC7 pinleri seri iletişim için kullanılır. Eğer seri iletişimi

Detaylı

Haftalık Ders Saati Okul Eğitimi Süresi

Haftalık Ders Saati Okul Eğitimi Süresi DERSİN ADI BÖLÜM PROGRAM DÖNEMİ DERSİN DİLİ DERS KATEGORİSİ ÖN ŞARTLAR SÜRE VE DAĞILIMI KREDİ DERSİN AMACI ÖĞRENME ÇIKTILARI VE YETERLİKLER DERSİN İÇERİĞİ VE DAĞILIMI (MODÜLLER VE HAFTALARA GÖRE DAĞILIMI)

Detaylı

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER BELLEKLER Genel olarak bellekler, elektronik bilgi depolama üniteleridir. Bilgisayarlarda kullanılan bellekler, işlemcinin istediği bilgi ve komutları maksimum hızda işlemciye ulaştıran ve üzerindeki bilgileri

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ı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ İçerik Mikroişlemci Sistem Mimarisi Mikroişlemcinin yürüttüğü işlemler Mikroişlemci Yol (Bus) Yapısı Mikroişlemci İç Veri İşlemleri Çevresel Cihazlarca Yürütülen İşlemler

Detaylı

Teorik Bilgi DENEY 7: ASENKRON VE SENKRON SAYICILAR

Teorik Bilgi DENEY 7: ASENKRON VE SENKRON SAYICILAR DENEY 7: ASENKRON VE SENKRON SAYICILAR Deneyin Amaçları Asenkron ve senkron sayıcı devre yapılarının öğrenilmesi ve deneysel olarak yapılması Deney Malzemeleri 74LS08 Ve Kapı Entegresi (1 Adet) 74LS76

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ı

İÇİNDEKİLER 1. KLAVYE... 11 2. KLAVYE RB0... 19 3. KLAVYE RBHIGH... 27 4. 4 DİSPLAY... 31

İÇİNDEKİLER 1. KLAVYE... 11 2. KLAVYE RB0... 19 3. KLAVYE RBHIGH... 27 4. 4 DİSPLAY... 31 İÇİNDEKİLER 1. KLAVYE... 11 Satır ve Sütunlar...11 Devre Şeması...14 Program...15 PIC 16F84 ile 4x4 klavye tasarımını gösterir. PORTA ya bağlı 4 adet LED ile tuş bilgisi gözlenir. Kendiniz Uygulayınız...18

Detaylı

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi Sayı sistemleri-hesaplamalar Sakarya Üniversitesi Sayı Sistemleri - Hesaplamalar Tüm sayı sistemlerinde sayılarda işaret kullanılabilir. Yani pozitif ve negatif sayılarla hesaplama yapılabilir. Bu gerçek

Detaylı

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ DERSĐN ADI : MĐKROĐŞLEMCĐLER II DENEY ADI : PIC 16F84 VE ĐKĐ BUTONLA BĐR LED KONTROLÜ PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ PIC 16F84 VE VAVĐYEN ANAHTAR ĐLE BĐR LED KONTROLÜ ÖĞRENCĐ ĐSMĐ : ALĐ METĐN

Detaylı

8 Ledli Havada Kayan Yazı

8 Ledli Havada Kayan Yazı 8 Ledli Havada Kayan Yazı Hazırlayan Eyüp Özkan Devre Şemasının ISIS Çizimi Devre şemasından görüldüğü gibi PIC16F84A mikro denetleyicisinin Port B çıkışlarına 8 adet LED ve dirençler bağlı. 4MHz lik kristal

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ı

William Stallings Computer Organization and Architecture 9 th Edition

William Stallings Computer Organization and Architecture 9 th Edition William Stallings Computer Organization and Architecture 9 th Edition Bölüm 5 İç Hafıza Bir Hafıza Hücresinin Çalışması Bütün hafıza hücrelerinin ortak özellikleri vardır: 0 ve 1 durumundan birini gösterirler

Detaylı

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme Giriş MİKROİŞLEMCİ SİSTEMLERİ Bilgisayar teknolojisindeki gelişme Elektronik öncesi kuşak Elektronik kuşak Mikroişlemci kuşağı Yrd. Doç. Dr. Şule Gündüz Öğüdücü 1 Bilgisayar Tarihi Elektronik Öncesi Kuşak

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ı

Analog Sayısal Dönüşüm

Analog Sayısal Dönüşüm Analog Sayısal Dönüşüm Gerilim sinyali formundaki analog bir veriyi, iki tabanındaki sayısal bir veriye dönüştürmek için, az önce anlatılan merdiven devresiyle, bir sayıcı (counter) ve bir karşılaştırıcı

Detaylı

4-Deney seti modüler yapıya sahiptir ve kabin içerisine tek bir board halinde monte edilmiştir.

4-Deney seti modüler yapıya sahiptir ve kabin içerisine tek bir board halinde monte edilmiştir. MDS 8051 8051 AİLESİ DENEY SETİ 8051 Ailesi Deney Seti ile piyasada yaygın olarak bulunan 8051 ailesi mikro denetleyicileri çok kolay ve hızlı bir şekilde PC nizin USB veya Seri portundan gönderdiğiniz

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ı

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak XIII İçİndekİler 1. Bölüm - Mİkro Denetleyİcİ Nedİr? Mikrodenetleyici Tanımı Mikrodenetleyicilerin Tarihçesi Mikroişlemci- Mikrodenetleyici 1. İki Kavram Arasındaki Farklar 2. Tasarım Felsefesi ve Mimari

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar)

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER BÖLÜM 2 INTEL AİLESİNİN 8 BİTLİK MİKROİŞLEMCİLERİ 2.1 8080 MİKROİŞLEMCİSİ Intel 8080, I4004, I4040 ve I8008 in ardından üretilmiştir ve 8 bitlik mikroişlemcilerin ilkidir ve 1974 te kullanıma sunulmuştur.

Detaylı

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta. 1. Hafta DONANIM KURULUMU Öğr. Gör. Murat YAZICI www.muratyazici.com Artvin Çoruh Üniversitesi, Artvin Meslek Yüksekokulu Bilgisayar Teknolojisi Programı Dersin İçeriği BELLEKLER Belleğin Görevi Bellek

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ı

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001)

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001) MANTIK DEVRELERİ DERSİN AMACI: SAYISAL LOJİK DEVRELERE İLİŞKİN KAPSAMLI BİLGİ SUNMAK. DERSİ ALAN ÖĞRENCİLER KOMBİNASYONEL DEVRE, ARDIŞIL DEVRE VE ALGORİTMİK DURUM MAKİNALARI TASARLAYACAK VE ÇÖZÜMLEMESİNİ

Detaylı

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1 PIC Programlama Örnekleri -1 Sistem Gereksinimleri: PIC programlayicinin kullanilabilmesi için; Win98 ve üstü bir isletim sistemi Paralel port 60 MB veya daha üstü disk alani gerekmektedir. Ancak programlama

Detaylı

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

Fatih University- Faculty of Engineering- Electric and Electronic Dept. SAYISAL DEVRE TASARIMI EEM122 Ref. Morris MANO & Michael D. CILETTI SAYISAL TASARIM 4. Baskı Fatih University- Faculty of Engineering- Electric and Electronic Dept. SAYISAL DEVRE NEDİR? Mühendisler, elektronik

Detaylı

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2 T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2 ANKARA 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan yeterlikleri kazandırmaya yönelik

Detaylı

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ Yrd. oç. r. Şule ündüz Öğüdücü Bilgisayar verilen verileri, belirlenen bir programa göre işleyen, istenildiğinde saklayabilen, gerektiği zaman geriye verebilen

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ı

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ı

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ı

# 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ı

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ı

EEProm 24C08 UYGULAMA AMAÇ 24C08 MCU_VCC. e r : d e G. Sayfa - 1

EEProm 24C08 UYGULAMA AMAÇ 24C08 MCU_VCC. e r : d e G. Sayfa - 1 V0 DT2 PIC16F877 1KΩ 1KΩ Prom UYGULAMA AMAÇ prom kalıcı hafıza entegresine, PIC16F77 mikrodenetleyicisinin PD0 ve PD1 portları üzerinden bilgi kayıt edip, kayıt edilen bilgiyi Prom dan okuyarak LCD ekranda

Detaylı

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464 GERÇEK ZAMAN ENTEGRE DESTEKLİ PIC MİKROKONTROLÖR PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464

Detaylı

MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil Güz

MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil Güz MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil 2014-2015 Güz 1.1. Sayı Sistemleri Sayı sistemleri iyi anlaģılmadan mikroiģlemcilerle (ya da mikrodenetleyicilerle) uğraģmak ve onların

Detaylı

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir: 8051 Ailesi 8051 MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur. 8051 çekirdeğinin temel özellikkleri aşağıda verilmiştir: 1. Kontrol uygulamaları için en uygun hale getirilmiş

Detaylı

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar Bellekler 1 Bellekler Ortak giriş/çıkışlara, yazma ve okuma kontrol sinyallerine sahip eşit uzunluktaki saklayıcıların bir tümdevre içerisinde sıralanmasıyla hafıza (bellek) yapısı elde edilir. Çeşitli

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ı

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI S1. Aşağıdaki eleman ya da birimlerden hangisi genel bir bilgisayar sisteminin donanımsal yapısında yer almaz? a) Mikroişlemci (CPU) b) Bellek

Detaylı

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu PIC UYGULAMALARI STEP MOTOR UYGULAMLARI Step motor Adım motorları (Step Motors), girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yapan fırçasız, sabit mıknatıs kutuplu DC motorlardır.

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu Makaleler PIC ile LED Yakıp Söndüren Devre PIC ile LED Yakıp Söndüren Devre Canol Gökel - 13 Ekim 2006 Giriş Merhaba arkadaşlar, bu makalemizde PIC'e yeni başlayanlar için basit

Detaylı

Konular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak

Konular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak Konular MİKROİŞLEMCİ SİSTEMLERİ Giriş: Bilgisayar Tarihi Mikroişlemci Temelli Sistemler Sayı Sistemleri Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/30/blg-212/

Detaylı

6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1

6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1 6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1 Günümüzde kullanılan elektronik kontrol üniteleri analog ve dijital elektronik düzenlerinin birleşimi ile gerçekleşir. Gerilim, akım, direnç, frekans,

Detaylı

7.Yazmaçlar (Registers), Sayıcılar (Counters)

7.Yazmaçlar (Registers), Sayıcılar (Counters) 7.Yazmaçlar (Registers), Sayıcılar (Counters) 7..Yazmaçlar Paralel Yüklemeli Yazmaçlar Ötelemeli Yazmaçlar 7.2.Sayıcılar Đkili Asenkron Sayıcılar (Binary Ripple Counter) Đkili Kodlanmış Onlu Asenkron Sayıcı

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ı

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ı

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör Gömülü Sistemler Tarihçe 1943-1946 yıllarında Mauchly ve Eckert tarafından ilk modern bilgisayar ENIAC ismiyle yapılmıştır. 17468 elektronik tüp, 1500 röle, 30 ton ağırlık, 0.2ms toplama ve 2.8ms çarpma

Detaylı

PIC'LERIN DIŞ GÖRÜNÜŞÜ...Hata! Yer işareti tanımlanmamış.

PIC'LERIN DIŞ GÖRÜNÜŞÜ...Hata! Yer işareti tanımlanmamış. INDEX Sayfa GĐRĐŞ...HATA! YER ĐŞARETĐ TANIMLANMAMIŞ. MĐKROĐŞLEMCĐ NEDĐR?...Hata! Yer işareti tanımlanmamış. MĐKRODENETLEYĐCĐ NEDĐR?...Hata! Yer işareti tanımlanmamış. Neden Mikroişlemci Değil de Mikrodenetleyici

Detaylı

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR Bülent ÖZBEK Örnek Program -1- B Portuna bağlı LED leri Yakma Bu programda PIC16F84 mikrodenetleyicisinin B portuna bağlı 8 adet LED in yanması sağlanacaktır. Bunu

Detaylı

18. FLİP FLOP LAR (FLIP FLOPS)

18. FLİP FLOP LAR (FLIP FLOPS) 18. FLİP FLOP LAR (FLIP FLOPS) Flip Flop lar iki kararlı elektriksel duruma sahip olan elektronik devrelerdir. Devrenin girişlerine uygulanan işarete göre çıkış bir kararlı durumdan diğer (ikinci) kararlı

Detaylı

5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628:

5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628: 5.Eğitim E205 PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628: PIC16F628 18 pine sahiptir.bu pinlerin 16 sı giriş / çıkış

Detaylı

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar x86 Ailesi 1 8085A,8088 ve 8086 2 Temel Mikroişlemci Özellikleri Mikroişlemcinin bir defade işleyebileceği kelime uzunluğu Mikroişlemcinin tek bir komutu işleme hızı Mikroişlemcinin doğrudan adresleyebileceği

Detaylı

GAZİANTEP ÜNİVERSİTESİ

GAZİANTEP ÜNİVERSİTESİ GAZİANTEP ÜNİVERSİTESİ Fizik Mühendisliği Bölümü Pic Basic Pro ile PIC Programlama Ders Notları Hazırlayan: Kamil KAYA 2012 Mikrodenetleyiciler: Mikrodenetleyicilerin tanımına girmeden önce kısaca mikroişlemcilere

Detaylı

PIC Kontrollü LED Sürücü Devresi

PIC Kontrollü LED Sürücü Devresi PIC Kontrollü LED Sürücü Devresi Pic - Tengu Japon Mitolojisinde uzun burunlu bir cin olan Tengu burada mikro denetleyiciler ile LED Sürücülerde gösterilmiştir. M u r a t E R M İ Ş H i t i t Ü n i v e

Detaylı

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar;

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar; I. SAYI SİSTEMLERİ Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar; i) İkili(Binary) Sayı Sistemi ii) Onlu(Decimal) Sayı Sistemi iii) Onaltılı(Heksadecimal) Sayı Sistemi iv) Sekizli(Oktal)

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ı

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir: 8051 Ailesi 8051 MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur. 8051 çekirdeğinin temel özellikkleri aşağıda verilmiştir: 1. Kontrol uygulamaları için en uygun hale getirilmiş

Detaylı

ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ SAYISAL TASARIM LABORATUVARI DENEY 6 ANALOG/DİGİTAL DÖNÜŞTÜRÜCÜ. Grup Numara Ad Soyad RAPORU HAZIRLAYAN:

ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ SAYISAL TASARIM LABORATUVARI DENEY 6 ANALOG/DİGİTAL DÖNÜŞTÜRÜCÜ. Grup Numara Ad Soyad RAPORU HAZIRLAYAN: ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ SAYISAL TASARIM LABORATUVARI DENEY 6 ANALOG/DİGİTAL DÖNÜŞTÜRÜCÜ DENEYİ YAPANLAR Grup Numara Ad Soyad RAPORU HAZIRLAYAN: Deneyin Yapılış Tarihi Raporun Geleceği Tarih Raporun

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 3. Ders: Bazı Özel İşlev Yazmaçları ve Altprogram Kavramı HUNRobotX - PIC Assembly Dersleri 3. Ders: Bazı Özel İşlev Yazmaçları ve Altprogram Kavramı Yazan:

Detaylı

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2016-2017 Bahar-FİNAL KISMI (NOT: Derslerde işlenen diğer örnekler, Lab. Deneyi ve Sayı Sistemleri de Final sınavına dahildir) BÖLÜM 7 - LOJİK

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

Detaylı

PIC 16F877 nin kullanılması

PIC 16F877 nin kullanılması PIC 16F877 nin kullanılması, dünyada kullanıma sunulmasıyla eş zamanlı olarak Türkiye de de uygulama geliştirenlerin kullanımına sunuldu., belki de en popüler PIC işlemcisi olan 16F84 ten sonra kullanıcılara

Detaylı

Donanımlar Hafta 1 Donanım

Donanımlar Hafta 1 Donanım Donanımlar Hafta 1 Donanım Donanım Birimleri Ana Donanım Birimleri (Anakart, CPU, RAM, Ekran Kartı, Sabit Disk gibi aygıtlar, ) Ek Donanım Birimleri (Yazıcı, Tarayıcı, CD-ROM, Ses Kartı, vb ) Anakart (motherboard,

Detaylı

Mantık fonksiyonlarından devre çizimi 6 Çizilmiş bir devrenin mantık fonksiyonunun bulunması

Mantık fonksiyonlarından devre çizimi 6 Çizilmiş bir devrenin mantık fonksiyonunun bulunması DERSİN ADI BÖLÜM PROGRAM DÖNEMİ DERSİN DİLİ DERS KATEGORİSİ ÖN ŞARTLAR SÜRE VE DAĞILIMI KREDİ DERSİN AMACI ÖĞRENME ÇIKTILARI VE YETERLİKLER DERSİN İÇERİĞİ VE DAĞILIMI (MODÜLLER VE HAFTALARA GÖRE DAĞILIMI)

Detaylı

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır. Mimari Esaslar Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır. Bu unsurların büyüklüğü, sayısı ve yapısı o işlemcinin yeteneklerini belirler. Mimari farlılıklarda; bu konularda

Detaylı

DENEY 6: FLİP-FLOP (BELLEK) DEVRESİ UYGULAMALARI

DENEY 6: FLİP-FLOP (BELLEK) DEVRESİ UYGULAMALARI DENEY 6: FLİP-FLOP (BELLEK) DEVRESİ UYGULAMALARI Deneyin Amaçları Flip-floplara aģina olmak. DeğiĢik tipte Flip-Flop devrelerin gerçekleģtirilmesi ve tetikleme biçimlerini kavramak. ArdıĢık mantık devrelerinin

Detaylı

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir. 2. Sayı Sistemleri Bilgisayar elektronik bir cihaz olduğu için elektrik akımının geçirilmesi (1) yada geçirilmemesi (0) durumlarını işleyebilir. Bu nedenle ikili sayı sistemini temel alarak veri işler

Detaylı

MĐKROĐŞLEMCĐLĐ FONKSĐYON ÜRETECĐ

MĐKROĐŞLEMCĐLĐ FONKSĐYON ÜRETECĐ K TÜ Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemciler Laboratuarı MĐKROĐŞLEMCĐLĐ FONKSĐYON ÜRETECĐ Mikrobilgisayarların kullanım alanlarından biri de değişik biçimli periyodik işaretlerin

Detaylı

MİKROİŞLEMCİ İLE A/D DÖNÜŞÜMÜ

MİKROİŞLEMCİ İLE A/D DÖNÜŞÜMÜ KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR ORGANİZASYONU LABORATUVARI MİKROİŞLEMCİ İLE A/D DÖNÜŞÜMÜ 1. GİRİŞ Analog işaretleri sayısal işaretlere dönüştüren elektronik devrelere

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ı

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları Mikroişlemcili Sistem Uygulamaları 1. Ders Giriş Dikkat ettiniz mi: Etrafımızdaki akıllı cihazların sayısı ne kadar da arttı. Cep telefonlarımız artık sadece iletişim sağlamakla kalmıyor, müzik çalıyor,

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction

Detaylı