Home / Elektronika / Rangkaian Seven Segment Driver Dengan IC 74HC595

Rangkaian Seven Segment Driver Dengan IC 74HC595

Rangkaian Seven Segment

Rangkaian seven segment merupakan sebuah rangkaian yang berfungsi untuk mengendalikan 7 segment display. Seven segment sendiri pada dasarnya merupakan gabungan dari beberapa LED yang membentuk pola angka digital. Untuk menyalakan seven segment sesuai dengan angka yang diinginkan maka dibutuhkan sebuah rangkaian seven segment driver. Rangkaian seven segment driver sebetulnya sifatnya opsional, bisa digunakan bisa saja tidak. Jika tidak menggunakan rangkaian driver 7 segment, maka koneksi 7 segment bisa langsung dihubungkan dengan pengendali mikrokontroler. Rangkaian seven segment driver dibutuhkan jika display yang digunakan ukurannya cukup besar, sehingga tegangan yang dibutuhkan untuk menyalakan 7 segment juga besar. Untuk kasus seperti ini diperlukan sebuah driver 7 segment sebagai perantara antara mikrokontroler dengan 7 segment.

Display Seven Segment
Display Seven Segment

7 Segment Menggunakan IC 74HC595

Banyak sekali jenis rangkaian seven segment yang dapat Anda gunakan. Anda bisa mencari referensi di google tentang rangkaian 7 segment driver ini. Pada kesempatan kali ini saya akan membahas salah satu rangkaian seven segment yang menggunakan IC TTL jenis 74HC595. IC ini merupakan IC shift register, dimana fungsinya merubah input yang berupa data serial menjadi data paralel yang nantinya dihubungkan ke 7 segment display. Sebagai contoh, pada tutorial kali ini saya akan menjelaskan driver seven segment untuk 4 digit. Namun rangkaian ini bisa Anda kembangkan untuk driver lebih dari 4 digit setelah Anda memahami prinsip kerjanya.

Gambar Rangkaian Seven Segment

Gambar rangkaian seven segment yang akan saya jelaskan dapat dilihat pada gambar di bawah ini.

Rangkaian Seven Segment
Rangkaian Seven Segment

IC 74HC595 memiliki beberapa pin input dan output. Input terdiri dari pin-pin berikut ini :

  • SH_CP, merupakan pin masukan clock
  • DS, merupakan pin masukan data serial
  • ST_CP, merupakan pin latch data
  • MR, merupakan pin clear output. Jika pin ini low maka output akan bernilai 0 semua
  • OE, Output Enable pin yang berfungsi untuk mengaktfkan output

Sedangkan output dari IC 74HC595 terdiri dari pin Q0-Q7 dan Q7′. Pin Q0 – Q7 merupakan output data paralel yang dimasukkan secara serial dari pin DS.  Sedangkan pin Q7′ merupakan serial output yang dapat dihubungkan dengan IC 74HC595 lainnya, seperti yang terlihat pada gambar rangkaian 7 segment diatas. Prinsip kerja dari rangkaian diatas adalah sebagai berikut ini :

Data serial diinputkan melalui pin DS, setiap 1 bit data harus disertai 1 cycle clock. Data serial yang diinputkan sebanyak 32 bit, karena rangkaian diatas terdapat 4 buah IC74HC595 dimana 1 buah IC memiliki 8 bit data output. Setelah 32 bit data diinputkan, untuk mengeluarkan output secara paralel bersamaan pin ST_CP harus di set high kemudian low.

Pada gambar diaatas saya menggunakan mikrokontroler AT89S51 sebagai kontroler. Dimana fungsi mikrokontroler ini untuk memberikan data ke driver 7 segment. Source code lengkap pengendali 7 segment diatas dapat diliihat di bawah ini. Program di bawah ini sangat sederhana, fungsinya menampilkan hitungan counting up dari 0 – 9999 pada display 7 segment 4 digit. Program di bawah ini di compile menggunakan compiler Keil C51. Untuk melihat source code di bawah ini Anda harus melakukan Like atau Share Link untuk unclock kontennya !

/* Main.c file generated by New Project wizard
 *
 * Created:   Sat Feb 20 2016
 * Processor: AT89C51
 * Compiler:  Keil for 8051
 */

#include 
#include 

sbit Data = P1^0;
sbit Clock = P1^1;
sbit Load = P1^2;

unsigned int decDigits[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void msdelay(unsigned int value) {
   unsigned int x,y;
   for(x=0; x<value; x++) {
      for(y=0;y<120;y++) {
      }
   }
}

void displayInit() {
   Data = 0;
   Clock = 0;
   Load = 0;
}

void shiftOut(unsigned char val) {
   unsigned int i;
   for (i = 0; i < 8; i++)  {
      Data =  val & (1 << (7 - i));       
      Clock = 1;
      Clock = 0;
   } 
}

void displayNumber(unsigned int number) {
   unsigned int satuan, puluhan, ratusan, ribuan;
   unsigned int modulus;
   
   ribuan = number / 1000;
   modulus = number % 1000;
   ratusan = modulus / 100;
   modulus = modulus % 100;
   puluhan = modulus / 10;
   satuan = modulus % 10;
   
   Load = 0;
   shiftOut(decDigits[satuan]);
   shiftOut(decDigits[puluhan]);
   shiftOut(decDigits[ratusan]);
   shiftOut(decDigits[ribuan]);
   Load = 1;
}

void main (void) {
   unsigned int i=0;
   displayInit();
   while(1){
      displayNumber(i);
      i++;
      msdelay(500);
   }
}

Penjelasan lebih detail tentang rangkaian seven segment diatas dapat Anda lihat pada video saya berikut ini :

https://www.youtube.com/watch?v=OT3FwTnuvaw

Rangkaian seven segment ini cukup sederhana dan murah untuk dibuat. Ada satu lagi rangkaian 7 segment driver yang menggunakan IC MAX7219. Prinsip kerjanya kurang lebih sama dengan IC74HC595, untuk rangkaian driver seven segment dengan IC MAX7219 akan saya bahas pada postingan berikutnya !

 

About Eko Rudiawan

Seorang lelaki yang punya ketertarikan dengan dunia elektronika dan robot yang saat ini sedang serius belajar tentang dunia bisnis dan internet marketing. My dream to be success technopreneur

Check Also

AppsGeyser

Cara Membuat Aplikasi Android Tanpa Coding Dengan AppsGeyser

Bagaimana Cara Membuat Aplikasi Android Tanpa Coding ? Cara membuat aplikasi android tanpa coding merupakan …

Leave a Reply

Your email address will not be published. Required fields are marked *

13 − three =