Tulisan ini dibuat dengan merujuk dari artikel, bagi yang ingin mengetahui secara utuh dari tulisan tersebut dianjurkan untuk merujuk langsung. Pada tulisan ini saya buat dengan menambahkan apa yang telah saya praktikkan mengenai Shift Register 74HC595.

Animasi

Skema Pin 74HC595

595

Diagram clock pada Chip 74HC595

Dari diagram di atas, dapat dibuat urutan logika sebagai berikut:

  1. Membuat clock

coding AVR dengan menggunakan CodeVision adalah sebagai berikut:

</pre>
<blockquote>/*****************************************************
 This program was produced by the
 CodeWizardAVR V2.05.3 Standard
 Automatic Program Generator
 © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
 http://www.hpinfotech.com

Project :
 Version :
 Date : 11/29/2012
 Author : Rohmadi
 Company : Produk Inovatif
 Comments:
 Chip type : ATtiny2313
 AVR Core Clock frequency: 20.000000 MHz
 Memory model : Tiny
 External RAM size : 0
 Data Stack size : 32
 *****************************************************/

#include <tiny2313.h>
 #include <delay.h>

#define SHCP PORTD.0
 #define DS PORTD.1
 #define STCP PORTD.2
 #define MR PORTD.3
 #define OE PORTD.4

// Declare your global variables here
 void tunda(void)
 {
 delay_ms(100);
 }
 void main(void)
 {
 // Declare your local variables here

// Crystal Oscillator division factor: 1
 #pragma optsize-
 CLKPR=0x80;
 CLKPR=0x00;
 #ifdef _OPTIMIZE_SIZE_
 #pragma optsize+
 #endif

// Port D initialization

// Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
 // State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
 PORTD=0x00;
 DDRD=0x7F;

while (1)
 {
 // Place your code here
 int i;
 //--1
 SHCP=0; DS=0; STCP=0; MR=1; OE=0; tunda();
 //--2
 SHCP=1; tunda();
 //--3
 SHCP=0; MR=0; tunda();
 //--4
 SHCP=1; tunda();
 //---5
 SHCP=0; DS=1; MR=1; tunda();
 //---6
 SHCP=1; tunda();
 //---7
 DS=0;
 for(i=0;i<9;i++)
 {
 SHCP=0; STCP=1; tunda();
 SHCP=1; STCP=0; tunda();
 }
 //--24
 SHCP=1; OE=1; tunda();
 //--25
 SHCP=0; DS=1; tunda();
 //--26
 SHCP=1; tunda();
 //--27
 SHCP=0; DS=0; STCP=1; tunda();
 //--28
 SHCP=1; STCP=0; OE=0;
 //--29
 SHCP=0; tunda();
 //--30
 SHCP=1; tunda();
 }
 }
<pre>

Berikut adalah hasilnya:

Demikian, semoga bermanfaat.

Rohmadi