Faydalı Linkler

   Duyuru Panosu
DİKKAT! YASAL UYARI:

HABERLER HABERLER SON DAKİKA

SON DEPREMLERİN LİSTESİNİ GÖRMEK İÇİN TIKLAYINIZ

WEB SİTEMİZ TAMİR EDİLMEKTE OLUP; GEÇİCİ SÜRE İLE TEST YAYININDADIR.

IP Adresiniz: 38.107.191.94
Veri Bankası
POLİTİKA EKONOMİ
Düşünenlerin Köşesi
İç ve Dış Politika Yazıları Tarih ve Araştırma Memleket Yazıları Türkiye Yönetim Hukuk Eğitim İş ve Yapı Sektörü Yararlı Bilgileri İç ve Dış Ticaret Ve Bilgi Paylaşımı
Sizden Gelenler Misafir Defteri Bize Yazın

» 54.TEMEL LOJIK KAPILAR VE BOOLE ALGORITMASI
» Veri Bankası » İş ve Yapı Sektörü Yararlı Bilgileri » 54.TEMEL LOJIK KAPILAR VE BOOLE ALGORITMASI

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.
Bool not

Değil Kapısı

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.

Bool and

VE kapısı

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.

Bool OR

VEYA Kapısı

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.

Bool NoR

VEYA DEĞİL kapısı

NAND Gate

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

Bool NAND

VE DEĞİL kapısı

XOR Gate

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

Bool XOR

ÖZEL VEYA kapısı

Ö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.

Bool XNOR

ÖZEL VEYA DEĞİL kapısı

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.

Bool XOR

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.

Basit Toplayıcı

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

Bir Bit Toplayıcı

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.
Tam Toplayıcı

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.

Toplayıcı

Şü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 :

Tam toplayıcı devre

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

4 bit tam toplayıcı

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.

Flip Flops

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.

feedback devresi

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.

Doğruluk tablosu

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.

J-K Tipi Flip Flop

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

J-K Tipi Flip Flop

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.

sayıcı

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.

JK flip floplar seviye tetiklemeli tutucu

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.

JLojik Kapı

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.

Röle ile VE kapısı oluşturmak

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
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.

Stamp Uygulaması

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.

Dijital Saat Uygulaması

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 Ekran

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.

Dijital Termometre

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.

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , |

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

 

 


« Geri Sayfa Son Güncelleme Tarihi : 30/06/2009 21:26

Yorumlar:
Henüz Yorum Eklenmemiş, ilk yorum yapan siz olun
 
Yorum Ekle
Ad Soyad :
E-Posta :
Konu :
Yorum :
» Yorum Uyarıları

UYARI ! HAKAN YAZAR’IN gönderilen alıntı ve yazıların yazarlarıyla herhangi bir ilişkisi yoktur ve içeriklerinden sorumlu değildir. Kaynak gösterilmesi ve site sahibinden izin alınması halinde bu siteden yapılmış her türlü alıntıya izin verilmiştir. Uyarılar  Gizlilik İlkeleri  Telif Hakkı