74HC164.. SIPO (Serial In Parallel Out) Shift Register..
Adalah IC register geser 8 bit jenis SIPO, yaitu data yang dimasukkan secara serial dengan cara menggeser data sebelumnya dan menampilkannya secara parallel (ke delapan data yang tersimpan ditampilkan secara bersamaan)..
FYI : IC 74HC164 adalah IC yang saya gunakan untuk mengontrol nyala dari 60 buah LED pada jam digital yang sudah saya bahas pada post Jam Digital dengan DS1307 dan Animasi 60 Buah LED  

IC 74HC164

Pin Out IC 74HC164

Tabel Kebenaran

Fitur utama 74HC164 :
– Tegangan kerja : 2 – 6 volt
– Frekuensi kerja maksimum : 50 MHz
– Delay minimum untuk clock : 19 ns

Keterangan lebih lanjut tentang IC 74HC164 bisa dilihat di datasheetnya..
Download Datasheet 74HC164 di sini..

Okee.. Cukup untuk perkenalan IC nya..😀
sekarang yang akan saya bahas adalah gimana cara make IC 74HC164 ini menggunakan ATMega32 dan program dengan BASCOM AVR..
Pada dasarnya kita cuma membutuhkan 3 buah pin I/O dari ATMega32 untuk mengakses IC 74HC164 ini. Port I/O manapun bisa dipakai. Ketiga pin I/O tersebut kemudian dihubungkan ke : pin Serial Input (Data), pin Clock, dan pin Reset (Clear) pada IC 74HC164.
Langsung saja, berikut hasil simulasinya :

Rangkaian dan Hasil Simulasi IC 74HC164

Listing Programnya :

'Oleh : Pramudita J.I.  (joe4cva)
'Elektronika Dan Instrumentasi
'Universitas Gadjah Mada

$regfile = "m32def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5
Config Lcdbus = 4
Config Lcd = 16 * 2
Cursor Off

Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output

Rst Alias Portd.5
Clock Alias Portd.6
Dat Alias Portd.7

Dim Data_out As Byte , Buffer As Byte
Data_out = 0

Set Rst

Do
Locate 1 , 1
Lcd Data_out ; "  "
Incr Data_out
Waitms 200
If Data_out > 46 Then Data_out = 0

'=============Proses Menyalakan Semua LED================
If Data_out <= 23 And Data_out <> Buffer Then
Set Dat
Reset Clock
Set Clock
End If
'========================================================

'==============Proses Mematikan Semua LED================
If Data_out > 23 And Data_out <> Buffer Then
Reset Dat
Reset Clock
Set Clock
End If
'========================================================

Buffer = Data_out
Loop

Konfigurasi rangkaian :
– PORTD.5 ke pin Clear/Reset
– PORTD.6 ke pin Clock
– PORTD.7 ke kedua buah pin Serial Input (Input A dan B disambung)

Pada aplikasi ini saya menggunakan 3 buah IC 74HC164 yang disusun secara “CASCADE” (Berurutan), jadi data input yang diterima oleh IC SIPO di depan adalah data output bit terakhir dari IC SIPO di belakangnya. Sedangkan untuk Clock dan Clear nya, ketiga IC ini dirangkai secara parallel dan sinkron (pulsa clock dan clear untuk masing – masing IC diberikan secara bersamaan).
Kemudian peran LCD di sini cuma sebagai penampil sudah data ke berapa yang dimasukkan ke rangkaian SIPO nya..😀

Semoga Bermanfaat..😀