74LS74 decoder entegresi ile 7 segment display devresini kuracağız. Öncelikle kullanacağımız entegreyi iyice tanıyalım.

75LS47 DIP-16 BCD  - 7 Segment Decoder Entegresi:

 74LS47 Entegresi Decoder - Encoder kategorisinde olup fonksiyon olarak bir BCD - 7 Segment Decoder entegresidir. 7 adet çıkışı bulunan 74LS47 BCD - 7 Segment Decoder Entegresi 4.75 - 5.25 V aralığında besleme gerilimi ile çalışmaktadır.

74LS47 IC, ortak anot LED'leri doğrudan sürmek için tasarlanmış aktif düşük çıkışlara sahiptir. Giriş olarak ikili kodlanmış bir ondalığı kabul eder ve 0 ila 9 arasındaki rakamları görüntülemek için 7 segmenti sürmek için onu bir modele dönüştürür. İkili kodlu ondalık (BCD), bir sayının her basamağının kendi ikili dizisi ile temsil edildiği bir kodlamadır. (genellikle dört bitlik).

74LS47 Pinleri:


74LS47 Kod Çözücü:

74LS47 kod çözücü / sürücü ile ortak anot ekranı arasındaki baÄŸlantı, akım akışını sınırlamak için yedi direnç gerektirir. Ekranın her LED bölümünün düzgün yanması için, her bölümden geçen akım akışının dikkatlice kontrol edilmesi gerekir. Akımı bir ekran segmenti aracılığıyla sınırlamanın en iyi yöntemi, yedi LED segmentinin her biri ile seri olarak bir akım sınırlama direnci kullanmaktır. Seri baÄŸlı bir direnç kullanmazsak, maksimum akım akacak ve LED kalıcı olarak bozulmadan önce kısa bir süre için çok parlak olacaktır.

Tipik bir 7 segmentli LED ekranın her bir LED segmenti 6 ila 20mA arasında çalışacak şekilde derecelendirildiğinden, normal parlaklık için LED'in diyot bağlantısında yaklaşık 1,8 voltluk bir voltaj düşüşü sunar. LED segmenti başına gerekli akımı üretmek için gereken akım sınırlayıcı direncin değerini hesaplayabiliriz.


Ortak anot gösterimi için, her bir LED bölümünün anotları birlikte 5 voltluk bir kaynağa (VS) bağlanır. Yandığında, LED bağlantısındaki ileri voltaj düşüşü yaklaşık 1,8 volt ise, seri direnç üzerindeki voltaj da eşit olmalıdır: VS - VLED = 5 - 1,8 = 3,2 volt.

Dolayısıyla, tek bir segmentin seri akım sınırlayıcı direnci için gerekli direnç deÄŸeri, onu aydınlatmak için gerekli akım akışında Ohm Yasası kullanılarak basitçe bulunur. 



7 - Segment Display Direnç Değerleri:




Bu nedenle, 6mA akımda, tercih edilen en yakın değere 533Ω veya 560Ω'lik bir seri akım sınırlama direnci ve akımı 20mA ile sınırlamak için 160Ω'luk bir direnç gerekir. Gerçekte, 220Ω ve 360Ω arasında herhangi bir iyi standart tercih edilen direnç değeri, 5 voltluk bir beslemeden 7 segmentli bir ekranı aydınlatmak için kullanılabilir; bunların tümü, sahip olduğunuz direnç değerlerine bağlıdır.


74LS47 BCD 7 - Segment Devresi:




Devrenin Proteus Dosyası:

Drive linkinden devrenin proteus dosyasını indirebilirsiniz.


















C ++ da bu sefer deÄŸiÅŸkenleri ve sabitleri iÅŸliyoruz.


DeÄŸiÅŸkenler :

Program içerisinde deÄŸerini deÄŸiÅŸtirebileceÄŸimiz verilere deÄŸiÅŸkenler adını veririz.  Bir deÄŸiÅŸken bize adlandırılmış bir depolama yeteneÄŸi saÄŸlar. Programcının verileri ihtiyaca göre deÄŸiÅŸtirmesine izin verir. C ++ 'daki her deÄŸiÅŸkenin bir türü vardır. DeÄŸiÅŸken türü, deÄŸiÅŸkenin bellek haritasının boyutunu ve düzenini, bu bellekte saklanabilecek deÄŸer aralığını ve ona uygulanabilecek iÅŸlemler kümesini belirlemeye yardımcı olur.

DeÄŸiÅŸkenleri tanımlarken büyük ve küçük harflere dikkat etmemiz gerekir. DeÄŸiÅŸkenler _ ile baÅŸlayabilirler. DeÄŸiÅŸken isimleri sayı içerebilir ama sayı ile baÅŸlayamazlar .

Değişken tanımlama;

değişken_türü değişken_adı;

Örnek olarak;

int x;

EÄŸer  deÄŸiÅŸkene bir deÄŸer atamak istersek,

Öncelikle biz bu değişkeni int ya da unsigned int veri tipinden olduğunu belirtmeliyiz (unsigned int ve int veri tipi ikisi de tam sayıları belirtmek için kullanılıyordu ) , daha sonra değişkenimizin adını yazarız , biz burada değişkenimize x adını verelim. O halde kodumuz şöyle olacaktır ;

int x=6;



Yerel ( Local ) DeÄŸiÅŸkenler

Bir işlev içinde tanımlanan bir değişken (işlev gövdesi içinde kaşlı ayraçlar arasında tanımlanır) yerel değişken veya otomatik değişken olarak adlandırılır. Kapsamı yalnızca tanımlandığı işlevle sınırlıdır. Basit bir ifadeyle, yerel değişken vardır ve yalnızca bir işlevin içinden erişilebilir. Fonksiyon çıktığında yerel bir değişkenin ömrü sona erer (yok edilir).

Örnek:

#include <iostream>
using namespace std;
void test();
int main()
{

    int var = 5;
    test();
   

    var1 = 9;
}
void test()
{
   
    int var1;
    var1 = 6;
    // illegal: var not declared inside test()
    cout << var;
}

Var değişkeni test () içinde kullanılamaz ve var1 main () işlevi içinde kullanılamaz. Otomatik anahtar kelime daha önce yerel değişkenleri tanımlamak için kullanılırdı: auto int var; Ancak, C ++ 'den sonra auto farklı bir anlama sahiptir ve yerel değişkenleri tanımlamak için kullanılmamalıdır.

Genel ( Global ) DeÄŸiÅŸken

Bir değişken tüm fonksiyonların dışında tanımlanırsa, o zaman global değişken olarak adlandırılır. Global bir değişkenin kapsamı tüm programdır. Bu, beyanından sonra programın herhangi bir bölümünde kullanılabilir ve değiştirilebilir demektir. Aynı şekilde ömrü ancak program bittiğinde biter.

Örnek

#include <iostream>
using namespace std;


int c = 12;

void test();

int main()
{
    ++c;
    cout << c <<endl;
    test();

    return 0;
}

void test()
{
    ++c;
    cout << c;
}

Ekran çıktısı:

13
14

Yukarıdaki programda, c global bir değişkendir. Bu değişken, yukarıdaki programda hem main () hem de test () tarafından görülebilir.

Statik Yerel DeÄŸiÅŸken

Statik değişkeni tanımlamak için kullanılır.

Örnek olarak
... .. ...
int main()
{
   static float a;
   ... .. ...
}

Statik bir yerel değişken, yalnızca bildirildiği (yerel bir değişkene benzer) bir işlevin içinde bulunur, ancak ömrü işlev çağrıldığında başlar ve yalnızca program bittiğinde sona erer. Yerel değişken ile statik değişken arasındaki temel fark, statik değişkenin değerinin programın sonunda devam etmesidir.

Örnek

include <iostream>
using namespace std;

void test()
{
    // var is a static variable
    static int var = 0;
    ++var;

    cout << var << endl;
}

int main()
{
    
    test();
    test();

    return 0;
}

Ekran çıktısı:

1
2
Yukarıdaki programda test () işlevi 2 kez çağrılır. İlk çağrı sırasında değişken var, statik değişken olarak bildirilir ve 0 olarak ilklendirilir. Ardından ekranda görüntülenen var'a 1 eklenir. Fonksiyon test () döndüğünde, var değişkeni statik bir değişken olduğu için hala mevcuttur. İkinci işlev çağrısı sırasında, yeni değişken var oluşturulmaz. Aynı değişken 1 artırılır ve ardından ekranda görüntülenir.


Sabitler :

Sabitler , değişkenlerin aksine programda belirli bir değere sahiplerdir. Program boyunca bu değer hafızada tutulur ve kullanılır. Yani sabitlerin değerini değiştiremeyiz.

Sabit bildirimi, baÅŸlangıç deÄŸeri verilen deÄŸiÅŸken bildirimi gibi yapılır. Ancak, veri tipinin önüne const anahtar sözcüğü konmalıdır.


Örnek;


const float PI = 3.142857;
const double NOT= 12345.8596235489;
const int EOF= -1;


Aynı ÅŸekilde sabit tanımlamayı #define ön iÅŸlemci komutu ile de gerçekleÅŸtirebiliriz.   

#define MAX 100
#define LENGTH 10
#define  WIDTH 5

VERİ TİPLERİ


Herhangi bir dilde program yazarken, çeÅŸitli bilgileri depolamak için çeÅŸitli deÄŸiÅŸkenler kullanmanız gerekir. DeÄŸiÅŸkenler, deÄŸerleri saklamak için ayrılmış bellek konumlarından baÅŸka bir ÅŸey deÄŸildir. Bu, bir deÄŸiÅŸken oluÅŸturduÄŸunuzda bellekte biraz yer ayırdığınız anlamına gelir.



C++ da veri türleri temel olarak üçe ayrılır.


İLKEL YERLEŞİK TÜRLER

Bu veri türleri yerleÅŸik veya önceden tanımlanmış veri türleridir ve kullanıcı tarafından deÄŸiÅŸkenleri bildirmek için doÄŸrudan kullanılabilir. Ã¶rnek: int, char, float, bool vb. C ++ 'da bulunan ilkel veri türleri aÅŸağıdaki tabloda verilmiÅŸtir. 




İlkel veri tiplerinden birkaçını açıklayalım.

int: Tam sayı olan deÄŸiÅŸkenleri tanımlamak istediÄŸimizde int veri tipini kullanırız. int ingilizce de tam sayı anlamına gelen integer kelimesinden gelmektedir. 

double: Ondalıklı olarak tanımlayacağımız deÄŸiÅŸkenleri double veri tipiyle yazarız.

float: Float veri tipini de double veri tipi gibi ondalıklı olarak yazdırmamız gereken deÄŸiÅŸkenleri tanımlarken kullanırız. 

char:  char tipinde deÄŸiÅŸken deÄŸer atandıktan sonra bir karakteri temsil etmektedir.







TÜRETİLMİŞ VERİ TÜRLERİ

Türetilmiş veri türleri ilkel yerleşik veri türlerinden türetilmiştir . Bunlar 4 tipte olabilir;
  • Function
  • Array
  • Pointer
  • Referance

KULLANICI TANIMLI VERİ TÜRLERİ

Bu veri türleri kullanıcının kendisi tarafından tanımlanırC ++, aşağıdaki kullanıcı tanımlı veri türlerini sağlar:
  • Class
  • Structure
  • Union
  • Enumeration
  • Typedef defined DataType




Kaynakça

https://www.tutorialspoint.com/cplusplus/cpp_constants_literals.htm#:~:text=Advertisements,Characters%2C%20Strings%20and%20Boolean%20Values.

https://www.quora.com/What-things-would-you-change-about-C++-if-you-could

https://www.guru99.com/cpp-tutorial.html

https://medium.com/@dijitalgezginler16/c-programlama-dili-veri-tipleri-de%C4%9Fi%C5%9Fkenler-ve-sabitler-1ce8c43003c1

http://yapbenzet.kocaeli.edu.tr/cpp-degiskenleri-sabitleri/

https://merttopuz.com/yazilim/cpp/cpp-sabitler

https://firateski.com/ders-2-cpp-degiskenler

https://www.programiz.com/cpp-programming/storage-class#:~:text=A%20variable%20defined%20inside%20a,accessed%20only%20inside%20a%20function.