|
Temel Lojik Kapılar ve Boole Algoritması
Bilgisayarların günümüzde ulaştığı teknolojik yapıyı en temel seviyede anlamak için boole algoritması bilmek gerekmektedir. Boole cebiri George Boole adlı matematikçi tarafından 1800′ lü yılların ortasında bulunmuştur. Boole algoritması gelişen teknolojiyle beraber beklenmedik bir şekilde elektronik sistemlerle beraber kullanılmaya başlanmıştır. Bu makalede öncelikle basitçe mantık kapılarından bahsedilecek daha sonra bu bilgiler birlikte harmanlanacaktır.
Temel Kapılar
Öğrenilmesi gereken bazı temel kapılar bulunmaktadır. Bu basit kapılar değişik kombinasyonlarda kullanılarak çok karmaşık elektronik devreler oluşturulabilir.
NOT Gate
Belkide en basit kapı inverter ( evirici ) olarak ta bilinen DEĞİL kapısıdır. Bu lojik kapı bir biti giriş olarak alır ve çıkış olarak o bitin tam tersini verir.


Yukarıdaki şekilden de görüleceği üzere değil kapısının A isimli bir girişi ve Q isimli bir çıkışı vardır. Tabloda değil kapısının girişine göre nasıl bir davranış göstereceği belirtilmiştir. Eğer A kapısına lojik 0 uygulanırsa Q’ dan lojik 1 çıkışı alınacaktır. A girişine lojik 1 uygulandığında ise Q çıkışından lojik 0 alınacaktır.
AND Gate
VE kapısının A ve B olmak üzere iki girişi vardır.


Lojik VE kapısının yukarıdaki gösterilen doğruluk tablosunu inceleyecek olursak :
Eğer A lojik 0, B lojik 0 ise Q lojik 0′ dır.
Eğer A lojik 0, B lojik 1 ise Q lojik 0′ dır.
Eğer A lojik 1, B lojik 0 ise Q lojik 0′ dır.
Eğer A lojik 1, B lojik 1 ise Q lojik 1′ dir.
OR Gate
Diğer bir lojik kapı ise VEYA kapısıdır.


VEYA kapısının doğruluk tablosu yukarıda gösterilmiştir. A veya B girişlerinden herhangi biri lojik 1 olduğunda Q çıkışı lojik 1 olmaktadır.
NOR Gate
VEYA DEĞİL kapısı, VEYA kapısı çıkışının, lojik olarak terslenmişidir.


NAND Gate
VE DEĞİL lojik kapısı VE kapısının çıkışı terslenmiş halidir.


XOR Gate
ÖZEL VEYA kapısının simgesi ve doğruluk tablosu aşağıdaki gibidir.


ÖZEL VEYA kapısında uygulanan girişlere aşağıdaki işlem uygulanmaktadır.
Q = AxB’ + A’ x B
XNOR Gate
ÖZEL VEYA DEĞİL kapısının simgesi ve doğrulk tablosu aşağıdaki gibidir.


DEĞİL, VE, VEYA kapıları temel kapılardır. Diğer lojik kapılar bu üç temel kapıdan türetilebilir. Örneğin bu üç kapı kullanılarak aşağıdaki XOR kapısı oluşturulabilir.

Basit Toplayıcılar
Bu bölümde lojik kapılarla ikilik sistemde nasıl toplama yapılacağı incelenecektir. Bu konuda öncelikle tek bit ekleyicileri incelemek yerinde olacaktır.
Bunun için öncelikle tüm olasılıkların gözden geçirilmesi gerekmektedir. Sonuçlar elde biti de gözönüne alınarak 2 bit olarak yazılmıştır.

Yukarıdaki değerlerle aşağıdaki doğruluk tablosu oluşturulabilir.

Bu tablo incelendiğinde Q için XOR kapısı CO ( elde biti ) için ise AND kapısı kullanılabileceği görülür.
Bir bitlik sayıları toplamak yukarıda gösterildiği gibi oldukça kolaydır. Ancak 2 tane 8 bit sayıyı toplamak bu yöntemle oldukça güç olacaktır. Bu problemi aşmak için kompakt tam toplayıcı devreler kullanılmaktadır. Yukarıdaki örnekte anlatılan toplayıcıdan farklı olarak full binary adder entegrelerin A ve B girişlerine ilave olarak birde CI isimli elde girişleri bulunmaktadır.
Tam Toplayıcılar
Tam toplayıcıların doğruluk tablosu incelenen diğer doğruluk tablolarına göre daha karmaşık bir yapıdadır. Bunun nedeni 3 bit girişin olmasıdır.

Yukarıdaki tabloyu uygulamak için farklı metodlar da kullanılabilir ancak burda uygulanan metod şöyle açıklanabilir :
Q bitine bakıldığında üstteki 4 bitin A ve B’ ye bağlı olarak XOR kapısı çıkışı olduğu görülür. Alttaki dört bit ise yine A ve B girişlerine bağlı olarak XNOR kapısı çıkışıdır. Benzer olarak CO’ nun üstteki dört biti A ve B’ nin VE kapısı çıkışı, alttaki dört bitin ise A ve B’ nin VEYA kapısı çıkışı olduğu görülecektir. Bu bilgilere göre bir tam toplayıcı devre aşağıdaki gibi oluşturulabilir.

Şüphesiz ki yukarıdaki devre tam toplayıcı devre oluşturmak için en verimli yol değildir. Ancak işleyişini anlayabilmek için oldukça faydalıdır.
Tam toplayıcı devre aşağıdaki gibi gösterilir :

Bu kısaltma ile devre şemalarında 4 bit tam toplayıcı çizmek oldukça kolay bir hale gelmektedir.

Yukarıdaki diyagramda her bir tam toplayıcının CO’ sunun diğerinin CI’ sını beslediği görülmektedir. Eğer A ve B hattı üzerine 4 bitlik bir sayı girilirse Q hattında 4 bitlik bir toplama sonucu ile 1 bit son CO bulunur. Bu işlem 8-16-32 bit ve daha fazlası içinde uygulanabilir.
4 Bit ekleyici “ripple-carry adder” olarak ta isimlendirilir. Çünkü bitler bir toplayıcıdan diğerine dalga dizisi gibi geçerler. Uygulama kolaylığı bu devreler için avantaj sağlarken hız bu devrelerde dezavantaj oluşturmaktadır. Toplanacak bit sayısı arttığında işlemin bitme süresi de uzayacaktır. Hız handikapından dolayı “carry-lookahead” olarak isimlendirilen toplayıcılar geliştirilmişlerdir. Bu tür toplayıcılarda daha fazla lojik kapı kullanılmaktadır bu nedenle boyutları daha büyüktür ancak işlem hızları daha yüksektir.
Flip Flops
Boole mantık kapılarıyla yapılabilecek en ilginç uygulamalardan biri de bu lojik kapılarla hafıza oluşturabilmektir. Eğer lojik kapılar uygun şekilde yerleştirilirse giriş değerlerini hatırlayabilirler. Bu basit konsept bilgisayarlarda kullanılan RAM’ in temellerini oluşturur.
Hafıza, geribesleme-feedback denilen konsepte dayanır. Feedback bir lojik kapının çıkışının tekrardan giriş kapısına girmesi olarak açıklanabilir. İki inverterle yapılmış bir feedback devresi aşağıda gösterilmiştir.

Eğer geribildirim yolu izlenirse, Q lojik 1 ise herzaman lojik 1 olacağı görülecektir. Aynı şekilde eğer lojik 0 ise herzaman lojik 0′ dır.
En kullanışlı feedback devresi iki NAND kapısı kullanılarak oluşturulan devredir.

Yukarıda görüldüğü gibi devrenin R ve S olmak üzere iki girişi, Q ve Q’ olmak üzere iki çıkışı vardır. Doğruluk tablosu aşağıda gösterilmektedir.

Yukarıdaki doğruluk tablosu incelenecek olursa :
- Eğer R ve S birbirlerinin tersi ise Q, S’ i izler ve Q’ , Q nun tersidir.
- Eğer R ve S aynı anda lojik 1 olurlarsa devre R ve S’ den gelen bir önceki veriyi hatırlar.
J-K Tipi Flip Flop
En sık kullanılan flip-flop tiplerindendir. Aşağıdaki gibi gösterilir.

Bu diyagramda P “Preset” i, C “Clear” i ve Clk ise “Clock” u göstermektedir. Lojik doğruluk tablosu aşağıdaki gibidir.

JK flip flop 1 bitlik bir hafızadır. Tetikleme darbesi ile üzerinde sakladığı değeri bırakır ve yeni gelen lojik değeri saklar. Bu işlem bu şekilde devam edip gider.
JK flip flopun tetikleme hareketi lojik 0 ise flip flopta herhangi bir değişme olmaz.
JK flip floplar özellikle sayıcı uygulamalarında çok faydalıdırlar. Aşağıda JK flip flop kullanılarak yapılan bir sayıcı görülmektedir.

Bu devrenin çıkışları A,B, C ve D’ den oluşan 4 bitlik binary bir sayıdır. En soldaki flip flopun saat girişine giren sinyal sürekli olarak 1 ve 0 arasında değişir. Sayıcı bu sinyalin düşen kenarlarını sayar ve sinyal 1′ den 0′ a her değiştiğinde A, B, C ve D değerleri 1 artar. 4 bit sayıcı olduğu için sayma 0 ile 15 sayıları arasında olacak ve sonra tekrar 0′ a dönecektir. Döngü bu şekilde devam edecektir.
Sayıcılar bir çok farklı alanda kullanılabilir. Örneğin kapıya bir manyetik switch konularak kapının açılıp kapanması sayılabilir. Yola bir optik sensör konularak gelip geçen arabalar sayılabilir.
JK flip floplar seviye tetiklemeli tutucu oluşturmak için de kullanılırlar.

Yukarıdaki yapıda D değeri saat sinyali lojik 0′ dan lojik 1′ e giderken sabitlenir. Tutucular CPU dizaynında çok önemli bir yer tutmaktadırlar.
Lojik Kapı Uygulamaları
Lojik kapıların fiziksel çalışma şeklinin anlaşılmasının en kolay yolu rölelerdir.
- Röle ile inverter oluşturmak gayet kolay bir işlemdir. Örnekte lojik 1, 6 volt ve lojik 0 ise 0 volt olarak değerlenmiştir.

Yukarıdaki düzenekte eğer A ucuna 0 volt uygulanırsa Q çıkışından 6 volt alınacaktır. Eğer A ucuna 6 volt uygulanırsa Q çıkışından 0 volt alınacaktır.
- Röle ile VE kapısı oluşturmak ta yine kolay bir uygulamadır.

Yukarıdaki düzenekten de görüleceği üzere Q çıkışından +6 volt alabilmek için A ve B girişlerini de +6 volt uygulanması gerekmektedir. Diğer durumlarda Q çıkışı 0 volt olacaktır.
VEYA kapısı oluşturmakta gayet kolaydır. VE kapısındaki A ve b girişleri birbirlerine bağlanarak VEYA kapısı oluşturulabilir.
Mikrokontrolör Nasıl Çalışır?
Mikrokontrolörler bu gün bir çok cihazın içinde kullanılmaktadırlar. Örneğin LED veya LCD ekranla birlikte tuş takımına sahip bir mikrodalga fırınınız varsa bu fırın bir mikrokontrolöre de sahiptir. Bütün modern otomobillerde değişik amaçlarla kullanılan en azından bir mikrokontrolör bulunmaktadır. Uzaktan kontrol edilebilen bir cihaz muhakkak bir mikrokontrolöre sahiptir.
Bu makalede öncelikle mikrokontrolörlerin nasıl çalıştığı anlatılmaya çalışılacaktır. Daha sonra verilen örneklerle bu bilgiler desteklenecektir.
Mikrokontrolör Nedir ? Mikrokontrolör en kolay şekilde anlatılacak olursa bir bilgisayardır. Tüm bilgisayarların ortak özellikleri vardır : - Bütün bilgisayarların programlarını çalıştıracak CPU’ ları vardır. Eğer şu anda bir bilgisayarda oturup bu makaleyi okuyorsanız bilgisayarınızın CPU su web browserinizi çalıştırmaktadır. - CPU çalıştırdığı bu programları bir yerden yüklemek zorundadır. Masaüstü bilgisayarlarda bu harddiskler üzerinden olmaktadır. - Bilgisayarlarda değişkenlerin saklanabileceği RAM ler vardır. - Bilgisayarların dış dünyayla iletişim kurabilmeleri için giriş ve çıkış kapıları vardır. Masaüstü bilgisayarlar genel amaçlı bilgisayarlardır ve yüzlerce programı çalıştırabilirler. Ancak mikrokontrolörler özel amaçlı bilgisayarlardır ve sadece bir işi yapmak üzere tasarlanırlar. Mikrokontrolörleri tanımlamak için birçok ortak karakteristik özellik vardır. Bu karakteristikler : - Mikrokontrolörler başka cihazların içinde gömülü olarak çalışırlar. Böylece o cihazın hareketlerini ve özelliklerini kontrol edebilirler. Zaten mikrokontrolörlerin diğer bir ismi de embedded controller lerdir. - Mikrokontrolörler sadece bir konuda çalışan, uygulamaya özel programlar kullanır. Bu program ROM bellekte saklanır ve genellikle değiştirilemez. - Mikrokontrolörler enerji tüketimi düşük olan cihazlardır. Örneğin bataryayla beslenen bir mikrokontrolör ortalama 50 miliwatt elektrik tüketecektir. - Mikrokontrolörlerin kendilerine has girdi cihazları vardır ve bunlar çıktı için genellikle LED veya LCD ekranlar kullanır. Ayrıca alınan çıktılar cihaz içindeki başka şeylerin kontrolünde de kullanılabilir. Örneğin uzaktan kumandadan alınan sinyaller ile kanal ayar devresi kontrol edilir ve kanalların değiştirilmesi sağlanabilir. - Mikrokontrolörler küçük ve ucuzdurlar.
Mikrokontrolör Kullanımı Mikrokontrolörleri daha yakından incelemek için PARALLAX firmasının ürettiği ve BASIC dilini daha yakından anlamayı sağlayan BASIC Stamp mikrokontrolörleri incelenecektir. BASIC dili öğrenmesi ve program geliştirmesi çok kolay bir dildir. Basic Stamp mikrokontrolörü küçük bir elektronik devre ve besleme için 9 volt bir bataryadan oluşur. Bu mikrokontrolör bilgisayarın paralel portundan programlanabilir. BASIC stamplar göreceli olarak pahalı ve yavaş olmalarına rağmen özellikle demo ve prototip ürünlerin yapımında/tasarımında kullanılmaktadırlar. Parallax iki tip BASIC stamp üretmektedir. Bunlar BS-1 ve BS-2 şeklinde isimlendirilmişlerdir.
BS-1 Özellikler RAM : 14 byte EEPROM : 256 byte Maksimum Program Uzunluğu : 75 satır İcra Hızı : 2000 satır/sn I/O pinleri : 8
BS-2 Özellikler RAM : 26 byte EEPROM : 2 kilobyte Maksimum Program Uzunluğu : 600 satır İcra Hızı : 4000 satır/sn I/O pinleri : 16
Bu makalede BASIC Stamp Revizyon D isimli özel bir BASIC Stamp kullanılacaktır.
 BASIC Stamp Revizyon D, 9 volt bataryalı bir taşıyıcı bord üzerine yerleştirilmiş BS-1′ dir. Bu bord üzerinde programlama kablosunun bağlanabileceği pinlerde bulunmaktadır. BS-1 lerdeki 75 satır ( 75 satır EEPROM da 256 byte yer kaplayacaktır. ) kısıtlaması tasarımda zorluk yaratmaktadır. Bununla beraber daha düzenli ve verimli programlar yazılmasına da neden olur. Stamp boyut olarak çok küçüktür ve bataryayla çalıştırılabilir. Bu sayede taşınabilirlik özelliği kazanmaktadır.
BASIC Stamp Programlama BASIC Stamp programlama için BASIC programlama dilini kullanmaktadır. BASIC öğrenmesi en kolay programlama dillerinden biridir.
Standart BASIC Komutları for…next : döngü başlatır gosub : alt yordama geçer goto : programın belirtilen etikete atlamasını sağlar if…then : Eğer/Sonra mantıksal döngüsünü gerçekleştirir let : görev tahsis eder ( seçeneğe bağlı ) return : alt yordamdan ana programa geri dönüş yapar end : programı sona erdirir ve uyku moduna geçer
I/O Pinleri İle İlgili Komutlar button : Giriş pinindeki butonun durumunu okur high : I/O pinini lojik yüksek yani 5 volt olarak ayarlar input : I/O pini giriş olarak ayarlar low : I/O pinini lojik düşük yani 0 volt olarak ayarlar output : I/O pinin durumunu çıkış olarak ayarlanır pot : I/O pinindeki potansiyometreyi okur pulsin : giriş pinine belirli bir süre içinde gelen darbeyi okur pulsout : çıkış pinine belirtilen bir süre kadar darbe gönderir. pwm : çıkış pininde pulse width modulation yapar reverse : I/O pinlerinin yönlerini değiştirir ( girişi çıkış, çıkışı giriş yapar ) serin : giriş pinine seri veri yazar serout : çıkış pinine seri veri yazar sound : çıkış pinine belirli frekansta bir ses gönderir. toggle : çıkış pininin durumunu değiştirir
BASIC Stamp’ e Özgü Komutlar branch : dallandırılmış tabloyu okur debug : masaüstü bilgisayarın konsoluna hata ayıklama dizisi gönderir. eeprom : EEPROM a programram yükler lookdown : listedeki değerin indeksine dönüş yapar lookup : bir indeks kullanarak bir sırada arama yapar nap : kısa bir süre için uyku moduna geçer pause : belirtilen süre kadar gecikme random : rastgele bir sayı seçer read : EEPROM dan veri okur sleep : belirtilen süre kadar enerjiyi keser write : EEPROM a veri yazma
Aritmetik İşlemler + : toplama - : çıkarma * : çarpma ( düşük-word ) ** : çarpma ( yüksek-word ) / : Bölme // : Mod max : 2 değerden en yükseğine gider min : 2 değerden en küçüğüne gider & : ve | : veya ^ : özel veya &/ : ve değil |/: veya değil ^/ : özel veya değil
Değişkenler BS-1 in tüm değişkenleri önceden tanımlanmış isimlere sahiptir. Sadece 14 byte RAM kapasitesi olduğu için değişkenlerin verimli kullanımı çok önemlidir. w0, w1, w2…..w6 – 16 bit word değişkenler b0, b1, b2…….b6 – 8 bit byte değişkenler bit0, bit1, bit2…….bit15 – 1 bit bit değişkenler Sadece 14 byte hafıza bulunduğu için b0/b1 ile w0 RAM de aynı yerde bulunmaktadır. Aynı şekilde bit0 ile bit15 arasındaki tüm bitler w0 ile aynı bellek bölgesini paylaşır.
I/O Pinleri BS-1′ de I/O pinleri ile çalışabilecek 14 komut yukarıda gösterilmiştir. I/O pinleri BASIC Stamp ın dış dünyayla konuşabildiği kapılarıdır. BS-1 de 0 dan 7 ye kadar sıralanan 8 pin vardır. Pin sayısı BS-2 lerde 16′ ya çıkar. Pinler çift yönlüdür yani bir pinden hem veri okunabilir hemde veri yazılabilir. Pine bir değer göndermenin en kolay yolu HIGH veya LOW komutlarıdır. Örneğin : high 3 denildiğinde pin 3′ e 1 yani +5 volt gönderilecektir. Farklı ve ilginç işlevler sağlayan I/O pin komutları vardır. POT komutuyla pine bir kondansatör ile bağlanmış potansiyometrenin değeri okunabilir. PWM komutuyla pulse-width modulated sinyaller gönderilebilir. Bu komutlarla örneğin bir motor kontrolü çok kolay bir hale gelmektedir.
BASIC Stamp’ le Oynamak Eğer BASIC Stample oynamak isterseniz buna başlamak oldukça kolaydır. İhtiyaç duyulan tek şey bir masaüstü bilgisayar ve BASIC Stamp başlangıç kitidir. Başlangıç kiti bir Stamp, programlama kablosu ve programları yazıp Stamp’ a yükleyecek bir yazılımdan oluşur. Stamp bağlantısı oldukça kolaydır. Bilgisayarın paralel portuna bağlanır. Bağlantı yapıldıktan sonra BASIC programını düzenlemek ve bunu STAMP’ a yüklenmesini sağlamak için bir DOS uygulaması açılır.

Yukarıdaki program BS-1 e yüklendiğinde şu şekilde çalışacaktır. Başta açılış için 0.25 sn bekleme yapacaktır. 3 numaralı pin +5 volt yapılır 0.25 sn beklenir 3 numaralı pin 0 volt yapılır başlangıca geri döner ve bu bir döngü halinde devam eder. Bu uygulama 9 volt pil ile haftalarca çalışmaya devam edecektir. 3 numaralı pine bağlı LEDin çalışma süresi kısaltılarak pil çalışma ömrü uzatılabilir. Pil çalışma süresini uzatmak için ayrıca PAUSE yerine NAP komutu kullanılabilir.
Dijital Saat Uygulaması Bu uygulamada 7447 entegreyle beraber 7 segmentli LED’ ler kullanılacaktır. 7447 BASIC Stample çok uyumlu olarak çalışmaktadır. 4 I/O pini 7447 ye bağlanarak 0-9 a kadar olan rakamların gösterilmesi rahatlıkla sağlanabilir. BS-1 sekiz I/O pinine sahip olduğu için iki adet 7447 direkt olarak sürülebilir. Dijital bir saat için minimum 4 rakama ihtiyaç vardır. Bu yüzden 8 I/O piniyle 4 adet 7447 çalıştırmak için işin içine biraz yaratıcılık katmak gereklidir.

Yukarıdaki diyagramda 8 I/O hattı soldan taraftan gelmektedir. Bu yaklaşımda 4 tane hat, dört 7447′ yede ortak olarak gitmektedir. Diğer 4 hat ise 7447′ leri sırayla aktive etmektedir ( 7447lerin üzerinde E simgesi Enable demektir. Bu uç high olduğunda 7447 çalışır. ) Bu düzeni sağlamak için Stamp içindeki BASIC programı öncelikle ikinci 4 veri hattındaki ilk rakamı aktive eder ve böylece birinci 7447′ yi değiştirir. Bu döngü işlemi sırayla ve sürekli olarak tekrar edilerek devam eder. Aslında bağlantıları biraz değiştirip 74154 demultiplexer ve bazı ilave sürücüler kullanılarak bu işlem tek bir 7447 ile de yapılabilir.
Bu tasarımlar güzel bir şekilde çalışmasına rağmen iki temel problem vardır. - LED’ ler çok fazla enerji tüketir. - 7 Segment LED’ ler sadece rakamları gösterebilir. Alternatif bir uygulama ise LCD ekran kullanımıdır. LCD ekranlar yaygın bir kullanımıa sahiptirler ve kolaylıkla Stamp uygulamalarına katılabilirler. Aşağıdaki resimde 2 satır ve 16 karakterli bir LCD ekran gösterilmektedir.

LCD’ nin birçok avantajı bulunmaktadır : - Ekran tekbir I/O pin ile sürülebilir. LCD ekranda STAMP ile seri haberleşebilecek bir lojik vardır bu sayede sadece bir I/O bağlantısı yeterli olmaktadır. Ek olarak SEROUT komutu seri haberleşmeyi oldukça kolaylaştırmaktadır. - LCD ekran rakamların yanı sıra harfleri ve bazı özel karakterleri de gösterebilmektedir. - LCD ekranlar az enerji tüketir ( yaklaşık 3 miliamper civarında ) LCD kullanımında tek problem LED’ lere göre daha pahalı olmalıdır. Aşağıdaki BASIC programı BASIC Stamp’ in bir saat gibi çalışmasını ve zamanı bir çıktı olarak LCD ekranda göstermesini sağlar. LCD ekranın pin 0 I/O pinine bağlandığı varsayılmıştır. pause 1000 ‘LCD ekranın başlatılması için 1 sn beklenilir serout 0, n2400, (254, 1) ‘Ekran temizlenir serout 0, n2400, (”zaman:”) ‘Ekranda “zaman : “yazar ‘program yüklenmeden önceki ön ayarlar b0 = 0 ’saniye b1 = 27 ‘dakika b2 = 6 ’saat
again: b0 = b0 + 1 ’saniyeyi arttır if b0 < 60 then minutes b0 = 0 ’eğer saniye=60 ise b1 = b1 + 1 ’ dakikayı arttır minutes: if b1 < 60 then hours b1 = 0 ’eğer dakika=60 ise b2 = b2 + 1 ’ saati arttır hours: if b2 < 13 then show b2 = 1 ’eğer saat=13 ise 1’ e resetle
show: serout 0, n2400, (254, 135) ’ekrandaki kursorün pozisyonu, ’daha sonra zamanı göster serout 0, n2400, (#b2, ":", #b1, ":", #b0, " ") pause 950 ’950 milisaniye bekle goto again ’tekrarla
Bu programda SEROUT komutu LCD ekrana veri gönderir. (254,1) dizisi LCD ekranı temizler. 254 silme karakteridir, 1 ise ekranı silme komutudur. (254,135) dizisi ise kursörün pozisyonudur. Diğer iki SEROUT komutu ise ekrana yazı dizisi gönderir.
Eğer daha kesin doğruluklu bir saat istenirse Stamp’ a bir gerçek-zaman çipi takılmalıdır. Gerçek-zaman çipleri zamanlamada tam doğruluğu yakalamak için quartz kristal kullanırlar. Bu çipler ayrıca artık yılları hesaplamak için tarih bilgilerini de içerebilirler.
Dijital Termometre Yapımı LCD’ li saat uygulamasında STAMP ve LCD’ ler biraz daha yakından tanınıp anlaşılmıştır. Dijital termometre oluşturmak için bunların yanında aşka malzemelerde kullanılması gerekmektedir. Bir termometre oluşturmak için DS1620 entegresi kullanılabilir. Bu entegre : - Sıcaklık ölçer bir cihaz - Sıcaklık ölçer cihazdaki bilgileri okumak için A/D çevirici - A/D dönüştürücüdeki bilgileri okumak için bir shift register - Ayarları saklayabilmek için küçük bir EEPROM
DS1620′ nin iki çalışma modu vardır. Birinci modda kendi başına çalışan bir termostat çipi olarak görev yapabilir. İkinci modda ise bilgisayara bağlanabilen bir termometre olarak işler. EEPROM bellek sayesinde termostat olarak mı yoksa termometre olarak mı kullanıldığı bilgisi saklanacaktır. DS1620′ yi Stamp’ a bağlamak oldukça kolaydır. DS1620 8 pine sahiptir. Stamp’ tan DS1620′ in pin 8′ ine +5 volt bağlanır. Toprak DS1620′ nin 4 numaralı pinine bağlanır. Daha sonra Stampin 3 I/O pini DS1620′ nin 3 pinini sürmek için bağlanır. - DS1620′ deki pin 1 data pinidir. Bu pin üzerinden veri bitleri okunup yazılabilir. - DS1620′ deki pin 2 saat pinidir. Bu pinle shift registerdeki giriş çıkış süreleri ölçülür. - DS1620′ deki pin 3 silme/seçme pinidir. Pin 3 high durumunda olduğun bu çip seçilir ve haberleşme açık hale gelir. Bu proje ile ilgili örnek kodda aşağıdaki öndeğerler varsayılmıştır : - Data pini Stamp’ in 2 numaralı I/O pinine bağlanmıştır. - Saat pini Stamp’ in 1 numaralı I/O pinine bağlanmıştır. - Silme/Seçme pini Stamp’ in 0 numaralı I/O pinine bağlanmıştır.
Aşağıda bağlantı şeması gösterilmektedir.

LCD ekrana Stamp’ in 3 numaralı I/O pini bağlanmaktadır. Stamp içerisine yüklenecek program aşağıdaki gibidir.
symbol RST = 0 ‘ 1620′ deki seçme/silme hattı symbol CLK = 1 ‘ 1620′ deki shift register için saat hattı symbol DQ = 2 ‘ 1620′ deki data hattı symbol DQ_PIN = pin2 ‘ DQ için pin tanımı symbol LCD = 3 ‘ LCD için data hattı
begin: low RST ‘ 1620 ile haberleşme yapılmıyorsa reset konumunda olsun high CLK ‘ 1620 deki saat pini varsayılan olarak high konumundadır pause 1000 ‘ termometre ve LCD’ nin başlatılması için verilen bekleme süresi
setup: high RST ‘ 1620 select konumuna geçsin b0 = $0C ‘ $0c 1620 byte komutlarından biridir ve ayarları yazdır anlamına gelir gosub shift_out ‘ 1620′ ye gönder b0 = %10 ‘ %10 1620 byte komutlarından biridir ve termometre moduna geçişi sağlar gosub shift_out ‘ 1620′ ye gönder low RST ‘ 1620′ yi reset konumuna alır pause 50 ‘ EEPROM için 50 milisaniyelik bir gecikme
start_convert: b0 = $EE ‘ $EE 1620 byte komutlarından biridir ve dönüşümü başlatır high RST ‘ 1620′ yi select konumuna getirir gosub shift_out ‘ 1620′ ye gönder low RST ‘ 1620′ yi reset konumuna alır
‘ Burası anadöngüdür ‘ – Sıcaklık değerini her saniye okur ve gösterir main_loop: high RST ‘ 1620′ yi select konumuna alır b0 = $AA ‘ $AA 1620 byte komutlarından biridir ‘ sıcaklığı okumak için kullanılır gosub shift_out ‘ 1620′ ye gönder gosub shift_in ‘ 1620′ den sıcaklığı oku low RST ‘ 1620′ yi reset konumuna alır gosub display ‘ Sıcaklığı santigrat derece cinsinden gösterir pause 1000 ‘ 1 saniye bekle goto main_loop
‘ shift_out alt yordamı b0 içindeki bilgiyi 1620′ ye gönderir shift_out: output DQ ‘ DQ pinini çıkış moduna alır for b2 = 1 to 8 low CLK ‘ 1620′ye saat bitini hazırlar DQ_PIN = bit0 ‘ Data bitini gönderir high CLK ‘ data bitini 1620′ ye tutturur b0 = b0/2 ‘ bütün bitleri bit0′ a doğru sağa kaydırır next return
‘ shift_in alt yordamı 1620′ den 9 bitlik sıcaklık değerini alır shift_in: input DQ ‘ DQ pinini giriş moduna ayarlar w0 = 0 ‘ w0′ ı temizler for b5 = 1 to 9 w0 = w0/2 ‘ girişi sağa kaydırır low CLK ‘ 1620′ ye bir sonraki bit için sorgu gönderir bit8 = DQ_PIN ‘ biti oku high CLK ‘ saat pinini high yap next return
‘ Sıcaklığı santigrat derece olarak gösterir : if bit8 = 0 then pos ‘ eğer bit8=1 ise sıcaklık negatif
b0 = b0 &/ b0 ‘ b0′ı kendisinin vedeğiliyle tersyüz et
b0 = b0 + 1 pos: serout LCD, n2400, (254, 1) ‘ LCD’ yi temizle serout LCD, n2400, (”Sicaklik = “) ‘ ekranda “Sicaklik=”‘ ı gösterir.
bit9 = bit0 ‘ yarım dereceleri sakla b0 = b0 / 2 ‘ dereceye çevir if bit8 = 1 then neg ‘ negatif olup olmadığını kontrol et serout LCD, n2400, (#b0) ‘ pozitif sıcaklıkları göster goto half neg: serout LCD, n2400, (”-”, #b0)’ negatif sıcaklıkları göster half: if bit9 = 0 then even serout LCD, n2400, (”.5 C”) ‘ yarım dereceleri göster goto done even: serout LCD, n2400, (”.0 C”) ‘ yarım dereceleri göster done: return
DS1620 santigrat derece cinsinden sıcaklığı yarım dereceleri de gösterecek hassasiyette ölçer. Sıcaklık ikiye tamlanmış 9 bit bir değer ile gösterilir. -55 C derece ile 125 C derece arasında ölçebilir. Alınan değer 2′ ye bölünerek gerçek sıcaklık bulanabilir. İkiye tamlanmış sayı kullanmak negatif değerleri göstermek için güvenilir bir yoldur. Aşağıdaki tabloda 4 bit ve ikiye tamlanmış sayılar gözükmektedir. 0111 : 7 0110 : 6 0101 : 5 0100 : 4 0011 : 3 0010 : 2 0001 : 1 0000 : 0 1111 :-1 1110 :-2 1101 :-3 1100 :-4 1011 :-5 1010 :-6 1001 :-7 1000 :-8
Yukarıda gösterilen dijital termometre programında temel olarak şunlar gerçekleşmektedir. 1- symbol anahtar kelimesi kullanılarak programın daha rahat okunup anlaşılabilmesini sağlayan sabitler tanımlanmıştır. 2- 1620′ nin CLK ve RST pinleri istenilen değerlere ayarlanmıştır. 3- DS1620 üzerindeki EEPROM’ a termometre modunda çalışmasını sağlayacak veri yazılmıştır. 4- Program $EE ( hexadesimal bu sayı onluk sistemde 238′ e karşılık gelir. ) komutunu göndererek termometreye dönüştürme işlemini başlattırır. Daha sonra program bir döngüye girer. Her saniye DS1620′ ye komut gönderek DS1620′ nin güncel sıcaklık değerini vermesini sağlar ve DS1620′ den w0 değişkenine gelen 9 bitlik sıcaklık değerini okur. Stamp DS1620′ deki CLK hattına 1 bit veri gönderip alarak durumunun değişmesini sağlar. w0 değişkeninin b0/b1 değişkenlerini ve dolayısıyla bit0/bit1…/bit15′ i kapsadığını unutmayınız. Böylece DS1620′ den gelen bir bit Stampın bit 8′ ine girdiğinde w0 ikiye bölünür ve her bir bitin 9 bitlik sıcaklık değerini tamalayacak şekilde kaydırılmasını sağlar. Sıcaklık w0 değişkeninde saklandıktan sonra gösterim altyordamı ekranda santigrat derece cinsinden gösterilecek sayının pozitif veya negatif olduğuna karar verir.
7 segment LED, basic, BASIC dili, basic stamp, bellek, bilgisayar, bit, branch, button, byte, çarpma, çıkarma, clock, CPU, data, debug, değişken, Dijital Saat Programı, Dijital Saat Şeması, Dijital Saat Uygulaması, Dijital Saat yapımı, Dijital Termometre Programı, Dijital Termometre Şeması, Dijital Termometre Yapımı, düşük-word, EEPROM, end, for next, gosub, goto, hexadesimal, high, if then, input, IO pinleri, kondansatör, LCD, LED, let, logic, lojik, lookdown, lookup, low, masaüstü bilgisayar, microconttroller, mikrokontrolör, nap, output, paralel port, PARALLAX, pause, pin, pot, potansiyometre, program, pulsin, pulsout, PWM, RAM, random, read, reset, return, ROM, saat, santigrat, seri haberleşme, serin, serout, sıcaklık, sleep, sound, termometre, termostat, toggle, toplama, veri yazma, voltage,
boyut, DEA, deneysel ölçümler, Dielektrik sabiti, Dielektrik Termal Analiz, Diferansiyel Analiz, diferansiyel sıcaklık analizi, Differantial Scanning Calorimetry, DIL, Dilatometri, Dinamik Mekanik Analiz, DMA, DSC, dsc eğrisi, DTA, EGA, entalpi, Gaz ayrıştırma ürünleri, Genleşen Gaz Analizi, gıda endüstrisi, Gıdaların Analizi, hacim, Isı farkı, ısıl özellikler, kalorimetri kabı, kayıp faktörü, Kütle, kütle ölçümü, Mekanik direnç, Mekanik sönüm, numune sıcaklığı, Optik özellikler, öz ısı, polimer kimyası, Sıcaklık farkı, sıcaklık ölçümü, su dağılımı, termal analitik yöntemler, Termal Analiz, termoanalitik ölçümler, termoanaliz yöntemleri, Termogravemetrik Analiz, Termomekanik Analiz, Termooptik Analiz, test aparatları, TGA, TGADSC, TGAEGA, TMA, TOA |
anahtarlama devreleri, cmos transistörler, double pole, double throw, drain source, düşük akım, düşük voltaj, elektrik enerjisi, Elektromekanik Röle, elektromekanik röleler, elektronik anahtarlama uygulamaları, FET Anahtar, FET switch, Form A, Form B, Form C, Kaçak akım, ledli aydınlatma, Matrix, matrix cihazlar, MOSFET, mosfet devreleri, Multiplexer, multiplexer cihazlar, normalde açık, Normalde kapalı, otomatik kontrol, Reed Röle, reed röleler, röle uygulamaları, Single pole, Solid State, SPDT röle, transistör devreleri, yarıiletken anahtarlar, yüksek akım, yüksek hızlı uygulamalar, yüksek voltaj
2, 4-D, 4DB, 60B, atrazine, Bağıl Nem, Boom type sprayers, Boomless type sprayers, buharlaşma, Damlacık boyu, Damlacık Boyutu, diquat, Directa Spra, ekin kanopisi, Hava püskürtmeli ilaçlayıcılar, Herbisit, IVICPA, Nalco-Thol, Pestisitler, Püskürtme, Püskürtme ilaçlama, püskürtme memeleri, Radiarc, Rüzgar hızı, rüzgarla taşınma, sıcaklık, Su Kirliliği, Sürüklenme, Tarım ilaçları, Tarımsal ilaçlama, tarımsal sulama, Wiper/wick systems
USB, USB 1.1, USB 2.0, Usb aygıt, Usb bağlantı, usb bağlantısı, usb bellek, usb cd writer, Usb cihaz, Usb çıkış, usb Depolama cihazları, usb harddiskler, usb hub, usb Joystick, USB Kablo, usb kablosu, usb kamera, USB Konnektör, usb Modem, usb mouse, usb Network, Usb port, usb Speaker, usb Tarayıcı, usb Telefon, usb uzatma kablosu, usb veri aktarımı, usb Webcam, usb yazıcı, usb yazıcılar, usb-dvd writer, usb2.0 standartı
|