digital clock

98
MAKALAH TUGAS RANCANG PRAKTIKUM SISTEM DIGITAL TAHUN AJARAN 2007/2008 JAM ALARM DIGITAL Nama Anggota Kelompok Teddy Tjahyadi 1000835316 Friska Setiokoadiputro 1000836445 Stephen 1000837624 Jeffry Vernando Bustam 1000838085 Daniel Giovanni 1000838330 BINUS UNIVERSITY JAKARTA 2008

Upload: ladede

Post on 14-Aug-2015

241 views

Category:

Documents


18 download

DESCRIPTION

Jam Digital

TRANSCRIPT

Page 1: Digital Clock

MAKALAH TUGAS RANCANG PRAKTIKUMSISTEM DIGITAL TAHUN AJARAN 2007/2008

JAM ALARM DIGITAL

Nama Anggota Kelompok

Teddy Tjahyadi 1000835316Friska Setiokoadiputro 1000836445Stephen 1000837624Jeffry Vernando Bustam 1000838085Daniel Giovanni 1000838330

BINUS UNIVERSITYJAKARTA

2008

Page 2: Digital Clock

JAM ALARM DIGITAL

Diajukan sebagai salah satu syarat untuk menyelesaikan program studi praktikum sistem digital

tahun ajaran 2007/2008

Nama Anggota Kelompok

Teddy Tjahyadi 1000835316Friska Setiokoadiputro 1000836445Stephen 1000837624Jeffry Vernando Bustam 1000838085Daniel Giovanni 1000838330

Asisten PembimbingRonny Haryanto

BINUS UNIVERSITYJAKARTA

2008

Page 3: Digital Clock

Binus University

Jurusan Sistem KomputerTugas Rancang Sistem Digital

semester genap tahun 2007/2008

JAM ALARM DIGITAL

Nama Anggota Kelompok

Teddy Tjahyadi 1000835316Friska Setiokoadiputro 1000836445Stephen 1000837624Jeffry Vernando Bustam 1000838085Daniel Giovanni 1000838330

Abstrak

Dewasa ini, kita telah mengetahui banyaknya penggunaan jam digital. Hal ini dimaksudkan untuk pembacaan jam yang lebih mudah. Dengan demikian penulis bermaksud untuk membuat aplikasi dari pelajaran Sistem Digital dengan membuat sebuah jam alarm digital. Jam alarm digital yang penulis buat akan ditampilkan pada 6 buah seven segment, dan untuk melakukan setting jam, penulis menyediakan 4 buah tombol yang digunakan untuk melakukan setting terhadap jam alarm digital ini. Sedangkan untuk setting waktu alarm itu sendiri, penulis menyediakan 6 buah toggle-switch yang akan digunakan untuk melakukan setting kepada alarm. Dan 1 buah switch On-Off untuk alarm itu sendiri. Sedangkan untuk bunyi alarm sendiri, penulis menggunakan buzzer. Penulis juga menyediakan 1 buah socket DC yang akan digunakan untuk sebagai tempat masuknya sumber daya utama dari jam alarm digital yang penulis buat ini serta satu buah switch On-Off untuk sumber daya utama tersebut. Untuk pengolahan gerbang-gerbang logika yang digunakan, penulis menggunakan 7 buah IC GAL 16V8, 1 buah IC GAL 22V10, 1 buah IC gerbang NOT (74LS04), dan 1 buah IC gerbang XOR (74LS86). Sementara untuk pencengahan bouncing pada 4 buah tombol yang digunakan untuk pen-settingan waktu maka penulis menggunakan rangkaian monostable dari IC LM555.

Kata Kunci: GAL 16V8, GAL 22V10, LM555, Seven Segment, Toggle Switch, Switch On-Off, Buzzer, Socket DC.

Page 4: Digital Clock

DAFTAR ISI

Halaman luar makalah................................................................................................. iHalaman dalam makalah.............................................................................................. iiAbstrak......................................................................................................................... iiiDaftar isi...................................................................................................................... iv

Bab I Pendahuluan..................................................................................................... 11.1 Latar Belakang........................................................................................... 21.2 Tujuan dan Manfaat................................................................................... 2

Bab II Landasaran Teori.............................................................................................. 4 2.1 Programmable Logic device (PLD).......................................................... 5 2.2 Software Development Tools (Wincupl).................................................. 82.3 Rangkaian Sekuensial (Stepper) pada PLD.............................................. 152.4 Seven Segment......................................................................................... 19

2.5 Timer Dan Multivibrator........................................................................... 21

Bab III Perancangan Sistem......................................................................................... 353.1 Gambaran Sistem Secara Umum............................................................... 363.2 Blok Diagram............................................................................................. 383.3 Skematik Rangkaian.................................................................................. 393.4 Cara Kerja Rangkaian Dan Coding........................................................... 403.5 Flow Chart................................................................................................. 69

Bab IV Evaluasi dan implementasi.............................................................................. 784.1 Data Hasil Percobaan................................................................................. 79

Bab V Kesimpulan....................................................................................................... 82

Daftar Pustaka............................................................................................................. 83Lampiran..................................................................................................................... 85

Page 5: Digital Clock

BAB I

PENDAHULUAN

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 6: Digital Clock

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Seperti kata pepatah “waktu adalah uang”, dijaman modern seperti sekarang ini

waktu adalah hal yang sangat berharga bagi manusia. Jam adalah alat yang digunakan

manusia untuk mengetahui waktu. Ada berbagai macam jenis dan model jam yang sudah

beredar di pasaran, mulai dari jam analog biasa, jam analog dengan fitur khusus seperti

alarm, sampai jam digital dengan alarm. Namun, kebanyakan orang masih menggunakan

jam alarm analog.

Jam analog memiliki beberapa kelemahan seperti ketelitian yang kurang tepat

dalam membaca jam analog, sebagai contoh jika jarum jam panjang yang menunjukan

menit jika terletak diantara angka tiga dan angka empat, akan sangat sulit untuk

mengetahui tepat menit berapa saat itu. Pada Jam analog yang memiliki fasilitas alarm,

pada pengaturan alarm jam analog tidak memiliki presisi yang tinggi, sebagai contoh jika

ingin mengatur alarm pada pukul 05.00 pada jam analog alarm bisa saja bunyi pada

pukul 05.01 atau 04.59 karena tidak memiliki presisi yang tinggi.

Pada jam digital, pengaturan alarm akan lebih presisi karena menggunakan logik-

logik yang membuat alarm akan lebih presisi, sebagai contoh pada saat alarm di set pada

pukul 05.00 maka pada saat jam menunjukan pukul 05.00 alarm akan langsung

berbunyi.Sehingga ini membuat penulis tertarik untuk membuat jam alarm digital.

1.2 Tujuan dan Manfaat

Tujuan

Page 7: Digital Clock

Penulis bermaksud agar makalah dan tugas rancang ini dapat membuat pengguna jam

akan menjadi mudah untuk membaca. Pada pembacaan jam digital akan sangat mudah

untuk dibaca dan sangat tepat karena jam digital menampilkan angka secara presisi

karena jam digital menampilkan jam berupa angka-angka. Pada jam digital, pengaturan

alarm juga akan lebih presisi karena menggunakan logika-logika yang membuat alarm

akan lebih presisi.

Manfaat

Penulis berharap agar jam alarm digital yang dibuat dapat bermanfaat bagi banyak orang

khususnya dalam hal ketepatan indikasi waktu dan ketepatan alarm sebagai pengingat

waktu. Serta penulis juga merasakan manfaat yaitu penulis dapat mengenal sistem digital

dengan lebih baik beserta aplikasi-aplikasinya.

Page 8: Digital Clock

BAB II

LANDASAN TEORI

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 9: Digital Clock

BAB 2 LANDASAN TEORI

2.1 Progamable Logic Device (PLD)

Selama ini kita mengenal pembuatan gerbang-gerbang logika menggunakan IC-IC khusus

yang didalam telah terintegrasi gerbang-gerbang logika yang telah ditentukan.

Karena perkembangan zaman maka produsen pembuat IC memikirkan bagaimana kita

membuat sebuah gerbang logika di dalam IC tidak ditentukan oleh produsen IC tersebut

tetapi dapat diprogram oleh User. Tentunya ini bertujuan untuk memudahkan user dalam

membuat gerbang-gerbang logika.

IC (Integrated Circuit) yang dapat diprogram gerbang-gerbang logikanya bernama PLD

(Programmable Logic Device).

Sebelumnya kita harus mengenal dahulu jenis-jenis PLD, diantaranya :

a) SPLD ( Simple Programmable Logic Device)

SPLD adalah sebuah device yang dapat diprogram secara logika yang mempunyai

komplekstivitas dibawah CPLD

Contoh : GAL 16V8

b) CPLD ( Complex Programmable Logic Device)

CPLD adalah sebuah device yang dapat diprogram secara logika yang mempunyai

komplekstivitas diantara PAL dan FPGA

Contoh : Altera MAX 7000 (mempunyai 2500 gerbang)

Page 10: Digital Clock

Konfigurasi GAL

GAL 16V8 merupakan IC PLD (Programmable Logic Device) berjenis SPLD (Simple

Programmable Logic Device) keluaran perusahaan Lattice.

GAL 16V8 sesuai dengan namanya mempunyai 16 pin input dan 8 pin output. Tetapi

sebenarnya GAL 16V8 hanya mempunyai 20 pin. Sehingga nantinya ada pin yang dapat

berfungsi sebagai input dan output.

Berikut adalah gambar konfigurasi dari pin GAL 16V8

Fungsi- Fungsi Pin :

Pin 1 : Pin tempat masuknya Clock, untuk rangkaian D –Flip-

Flop yang berada di dalam GAL

Pin 2,3,4,5,6,7,8,9 : Pin yang berfungsi sebagai input

Pin 10 : Pin ground dari Gal 16V8

Page 11: Digital Clock

Pin 11 : Pin yang harus diaktifkan ketika GAL akan

menggunakan Clock

Pin 12,13,14,15,16,1,71,8,19 : Pin yang dapat berfungsi sebagai input ataupun output

Pin 20 : Pin tempat VCC (5V) sebagai syarat agar GAL dapat

bekerja.

IC GAL dibawah ini diberi nama 22V10 karena memilki 22 pin input (11 pin input dan 11

lainnya pin input yang dapat berfungsi sebagai pin output) dan 10 pin output.

- Pin 1 : Pin Tempat masuknya Clock.

- Pin 2-11 dan 13 : Pin yang berfungsi sebagai input

- Pin 12 : Pin Ground dari GAL 22V10

- Pin 14 – 23 : Pin yang dapat berfungsi sebagai input ataupun output ( tergantung

deklarasi pin tersebut)

- Pin 24 : Pin tempat Vcc (5V), input daya agar GAL 22V10 dapat bekerja.

Page 12: Digital Clock

2.2 Software Development Tools (WinCupl)

WinCUPL adalah program (Software Development Tools) buatan ATMEL yang berfungsi

untuk memprogram PLD (Programmable Logic Device). Program ini tidak tertutup untuk

digunakan PLD diluar keluaran ATMEL. Contohnya PLD keluaran LATTICE GAL 16V8

dapat memakai program ini.

Pembuatan File Baru

Untuk pembuatan file baru dapat dilakukan dengan prosedur berikut :

1. Bukalah program WinCupl

2. Klik File New Project atau Design File.

3. Lalu akan muncul dialog box.

Isilah Name : (dengan nama file yang akan di save)

Device : (dengan nama device yang dipakai Contoh:Gal16V8)

Kedua bagian inilah yang terpenting untuk diisi secara benar. Yang lain biarkanlah

secara default atau jika diganti tidak akan bermasalah.

4. Lalu akan muncul beberapa dialog box, diantaranya :

a) Input Pin : Isi sebanyak input pin yang akan dipakai

b) Output Pin : Isi sebanyak output pin yang akan dipakai

c) Pinnode Pin : Pinnode adalah pin virtual yang dapat diubah perannya dalam program

(biasanya diisi 0)

Page 13: Digital Clock

Dialog box untuk menginput ke 3 pin tersebut hanyalah membantu kita dalam mengisi

property yang akan kita gunakan dalam program, dan dialog box ini hanya muncul 1 kali

pada saat kita membuat project baru.

Namun demikian property tersebut masih dapat ditambahkan secara manual dengan

mengetikkannya di program tersebut.

5. Pin yang telah ditentukan harus diberi inisialisasi dengan mengetikkan no pin sebelum

tanda sama dengan dan nama pin sesudah tanda sama dengan.

6. Sampai langkah ini kita telah siap melakukan pemrograman

7. Setelah melakukan pemrograman compilelah dengan menggunakan tombol F9 atau

Device Dependent Compile dan lakukan simulasi dengan WinSim.

8. Setelah compile sukses dan hasil simulasi sesuai dengan keinginan, maka kita dapat

menuliskan program ke IC, file yang dituliskan adalah file yang berekstensi Jed.

Perlu diketahui ada beberapa keyword yang cukup penting di WinCupl, diantaranya

adalah :

a) Pin

Page 14: Digital Clock

Pin adalah keyword yang digunakan untuk menyatakan pin yang dipakai pada GAL,

digunakan untuk pin input maupun output. Dan juga digunakan untuk

mendeklarasikan nama dari sebuah pin.

Contoh : Pin 3 = In1; Artinya Pin 3 diberi nama In1. Dan untuk selanjutnya jika ingin

melakukan operasi logika pada pin 3 cukup menggunakan nama In1.

b) Field

Field yang berarti lapangan. Digunakan untuk mengumpulkan nama-nama pin

menjadi satu variable.

Contoh field output =[D0,D1,D2] ; artinya pin dengan nama D0,D1,D2 diberi nama

output.

c) Table

Table adalah sebuah keyword untuk membuat sebuah table kebenaran. Dengan table

kebenaran yang telah ditentukan oleh user maka user tidak perlu lagi memikirkan

gerbang-gerbang logika untuk membuat table kebenaran tersebut. Sehingga dengan

table kebenaran ini input yang diberikan akan keluar menjadi output sesuai dengan

table kebenaran.

Syntax-Syntax dan Deklarasi Variable pada WinCupl

Karena wincupl merupakan software development tools untuk memprogram PLD. Maka

nantinya kita akan sering bermain dengan gerbang-gerbang logika.

Pada WinCupl penulisan gerbang logika mempunyai syntax sebagai berikut :

Page 15: Digital Clock

Misal input yang ada diberi nama in0 dan in1

a) And in 0 & in1 ; /*gerbang and*/

Penulisannya dengan cara menempatkan character & diantara kedua inputnya

b) Or in 0 # in1 ; /*gerbang or*/

Penulisannya dengan cara menempatkan character # diantara kedua inputnya

c) Not ! in0 ; /*gerbang not*/

Penulisannya dengan cara menempatkan character ! sebelum inputnya

d) XOR in0 $ in1 ; /*gerbang exclusive or*/

Penulisannya dengan cara menempatkan character $ diantara kedua inputnya

e) NAND ! ( in0 & in1 ) ; /*gerbang not and*/

Penulisannya dengan cara menempatkan character & diantara kedua inputnya lalu diberi

tanda kurung serta di depannya diletakkan character !

f) NOR ! ( in0 # in1 ) ; /*gerbang not or*/

Penulisannya dengan cara menempatkan character # diantara kedua inputnya lalu diberi

tanda kurung serta di depannya diletakkan character !

g) XNOR ! ( in0 $ in1 ) ; /*gerbang exclusive not or*/

Page 16: Digital Clock

Penulisannya dengan cara menempatkan character $ diantara kedua inputnya lalu diberi

tanda kurung serta di depannya diletakkan character !

Namun demikian kita dapat mengubah character-character tersebut menggunakan kata-kata

yang lebih familiar dengan kita. Hal ini bertujuan untuk mempermudah pembacaan program

yang telah kita buat. Hal ini dapat dilakukan dengan melakukan dekalarasi terlebih dahulu

sebelum kita memulai menulis program.

$define negasi !

$ define and &

$define or #

$define xor $

Out 0 = in0 and in1;

Jika sebelumnya untuk menuliskan gerbang and dengan memberikan character &

diantara kedua inputnya, maka character tersebut dapat diganti dengan tulisan and

(sesuai dengan kata-kata yang telah kita define di atas untuk mengganti character &)

Out 0 = in0 or in1;

Jika sebelumnya untuk menuliskan gerbang or dengan memberikan character # diantara

kedua inputnya, maka character tersebut dapat diganti dengan tulisan or (sesuai dengan

kata-kata yang telah kita define di atas untuk mengganti character #)

Page 17: Digital Clock

Out 0 = negasi in1;

Jika sebelumnya untuk menuliskan gerbang not dengan memberikan character ! si

sebelum inputnya, maka character tersebut dapat diganti dengan tulisan negasi (sesuai

dengan kata-kata yang telah kita define di atas untuk mengganti character !)

Out 0 = in0 xor in1;

Jika sebelumnya untuk menuliskan gerbang exclusive or dengan memberikan character $

diantara kedua inputnya, maka character tersebut dapat diganti dengan tulisan xor (sesuai

dengan kata-kata yang telah kita define di atas untuk mengganti character $)

Setelah kita mengenal character-character yang kita gunakan untuk melakukan operasi

logika. Ada beberapa hal yang perlu kita ketahui untuk mempermudah pendeklarasian nama

pin dan field.

Pada umumnya kita mendeklarasikan pin input sebagai berikut :

Pin 2 = in0;

Pin 3 = in1;

Pin 4 = in2;

Pin 5 = in3;

Hal diatas dapat diganti dengan menggabungkannya ke dalam sebuah kalimat perintah

sebagai berikut :

Pin [2..5] = [in0..3];

Page 18: Digital Clock

Pin [2..5] = [in0,in1,in2,in3];

Pin [2..5] = [in0,in1..in3] ;

Ketiga pin diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya

mempunyai maksud yang sama dengan pendeklarasian pin input secara umum di atas.

Hal ini berlaku juga di pin Output:

Pada umumnya kita mendeklarasikan pin output sebagai berikut :

Pin 2 = out0;

Pin 3 = out1;

Pin 4 = out2;

Pin 5 = out3;

Hal diatas dapat diganti dengan menggabungkannya ke dalam sebuah kalimat perintah

sebagai berikut :

Pin [2..5] = [out0..3];

Pin [2..5] = [out0,out1,out2,out3];

Pin [2..5] = [out0,out1..out3] ;

Ketiga pin diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya

mempunyai maksud yang sama dengan pendeklarasian pin output secara umum di atas.

Hal ini berlaku juga untuk pendeklarasian field:

Page 19: Digital Clock

Pada umumnya kita mendeklarasikan field sebagai berikut :

Field input = [in0,in1,in2,in3]

Hal diatas dapat diganti menjadi penulisan yang lebih simple menjadi :

Field input = [in0..3];

Field input = [in0,in1..3];

Kedua cara penulisan diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya

mempunyai maksud yang sama dengan pendeklarasian field secara umum di atas, hal ini

juga berlaku untuk pendeklarasian field output (dengan cara yang sama).

2.3 Rangkaian Sekuensial (Stepper) pada PLD

Telah kita ketahui bahwa rangkaian digital terdiri dari dua buah yaitu :

a) Rangkaian Kombinasional

Rangkaian Kombinasional adalah rangkaian yang outputnya tidak tergantung output-

output sebelumnya. Jadi ketika kita menginput sesuatu maka outputnya akan sama

sampai kapanpun selama yang kita input selalu sama.

b) Rangkaian Sekuensial

Rangkaian Sekuensial adalah rangkaian yang outputnya tergantung output-output

sebelumnya. Jadi ketika kita menginput sesuatu maka outputnya bisa saja berbeda,

walaupun dengan input yang sama.

Contohnya : rangkaian flip-flop, Counter, Shift Register

Page 20: Digital Clock

Perlu diketahui juga bahwa PLD (Programmable Logic Device) tidak hanya dapat

memprogram rangkaian kombinasional, tetapi juga dapat memprogram rangkaian

sekuensial.

Telah diketahui bahwa pada percobaan di LAB CE pada pertemuan 6 bahwa penggunaan

rangkaian sekuensial pada PLD dikonsentrasikan untuk menggerakkan motor stepper. Dapat

dilihat dicontoh program berikut ini:

Name HalfStep ;

PartNo 00 ;

Date 5/22/2008 ;

Revision 01 ;

Designer Engineer ;

Company Atmel ;

Assembly None ;

Location ;

Device G16V8 ;

/* *************** INPUT PINS *********************/

PIN 1 = CLK ; /* */

PIN [2..3] = [D0..1] ; /* */

/* *************** OUTPUT PINS *********************/

PIN [12..15] = [Q3..0] ; /* */

field count = [Q3..0];

$define S0 'b'0000

Page 21: Digital Clock

$define S1 'b'0001

$define S2 'b'0011

$define S3 'b'0010

$define S4 'b'0110

$define S5 'b'0100

$define S6 'b'1100

$define S7 'b'1000

$define S8 'b'1001

field mode = [D0..1];

go = mode :1 ; /*Clockwise*/

back = mode :2 ; /*Counter CLockWise*/

stop = mode : [0,3] ; /*Stop*/

sequenced count

present S0 if go next S1;

if back next S8;

if stop next S0;

present S1 if go next S2;

if back next S8;

if stop next S1;

present S2 if go next S3;

if back next S1;

if stop next S2;

present S3 if go next S4;

if back next S2;

if stop next S3;

present S4 if go next S5;

if back next S3;

if stop next S4;

present S5 if go next S6;

if back next S4;

Page 22: Digital Clock

if stop next S5;

present S6 if go next S7;

if back next S5;

if stop next S6;

present S7 if go next S8;

if back next S6;

if stop next S7;

present S8 if go next S1;

if back next S7;

if stop next S8;

Dapat dilihat bahwa program diatas bertujuan untuk menggerakkan motor stepper secara half

step dengan arah yang dapat diatur sesuai input user pada pin 2 maupun pin 3 (Clockwise ,

Counter Clockwise, Stop). Pada awalnya PLD akan mencheck kondisi mana yang terpenuhi

di outputnya kemudian melihat kondisi di pin input (kondisi mana yang ingin dipenuhi oleh

user) untuk clock selanjutnya.

Contoh : Ketika output berada pada kondisi State S1 (0001) maka jika input pin 3 dan pin 2

menunjukkan mode go (01) maka jika clock berikutnya diberikan akan meloncat ke State S2.

Tetapi jika mode back (10) yang menjadi input di pin 3 dan pin 2 maka jika clock berikutnya

diberikan maka akan meloncat ke State S8. Atau jika mode stop (00 atau 11) yang menjadi

input di pin 3 dan pin 2 maka jika clock berikutnya diberikan maka akan tetap berada pada

state S1.

Page 23: Digital Clock

Logika-logika seperti inilah yang nantinya akan diterapkan pada coding pada Jam Alarm

Digital.

2.4 Seven Segment

Seven Segment merupakan device yang berfungsi untuk menampilkan bilangan decimal

dimana bilangan tersebut dinyatakan oleh segment (LED) yang akan menyala untuk

menampilkan bilangan decimal tersebut.

Seven Segment dibedakan menjadi dua yaitu :

a) Common Anode

Common Anode adalah jenis seven segment yang menggabungkan seluruh kaki anode

dari LED dan menghubungkannya ke satu pin yang akan diberi dengan Vcc. Sehingga

untuk menyalakan satubuah segment, kaki cathode dari setiap LED perlu dihubungkan

dengan Ground.

Page 24: Digital Clock

Dapat kita lihat dari gambar di atas bahwa untuk menyalakan setiap segment dari LED

tersebut pin2 cathode tersebut yang telah diberi nama huruf,harus diberikan logic 0

(ground) sehingga segment tersebut dapat menyala karena terjadi perbedaan tegangan di

kaki cathode dan anode, kaki anode mempunyai tegangan lebih tinggi dari cathode.

b) Common Cathode

Common Cathode adalah jenis seven segment yang menggabungkan seluruh kaki

Cathode dari LED dan menghubungkannya ke satu pin yang akan diberi dengan

Ground. Sehingga untuk menyalakan satu buah segment kaki Anode dari setiap LED

perlu dihubungkan dengan Vcc (5V).

Dapat kita lihat dari gambar di atas bahwa untuk menyalakan setiap segment dari LED

tersebut pin2 Anode tersebut yang telah diberi nama huruf, harus diberikan logic 1

(Vcc) sehingga segment tersebut dapat menyala karena terjadi perbedaan tegangan di

kaki cathode dan anode, kaki anode mempunyai tegangan lebih tinggi dari cathoode.

Page 25: Digital Clock

2.5 Timer dan Multivibrator

Pada saat ini sudah banyak rangkaian digital yang menggunakan clock. Terutama dalam

penggunaan rangakaian synchronous. Pada rangkaian ini pengunaan clock amatlah penting.

Clock biasanya terdiri dari logic-logic high dan low. Yang biasanya diberikan kepada suatu

rangkaian. Agar rangkaian tersebut dapat bekerja. Clock dapat dihasilkan dari berbagai cara

mulai dari penggunaan gerbang-gerbang logika sampai dengan penggunaan IC contohnya

LM555.

IC LM 555

Rangkaian timer (pewaktu) adalah rangkaian yang menghasilkan perubahan keadaan

output sesudah selang waktu yang ditentukan. Salah satu rangkaian terpadu (IC) yang

paling banyak digunakan sebagai timer adalah IC tipe 555. IC ini digunakan untuk

membuat tundaan waktu atau osilasi (Osilator) yang cukup akurat dari mikro detik sampai

beberapa menit. Pada IC Timer 555, didalamnya digabungkan sebuah osilator relaksasi,

dua pembanding (comparator), flip-flop RS dan transistor

Page 26: Digital Clock

Konfigurasi Pin dari LM 555 :

Pin 1 Pin Ground

Pin 2 Pin untuk eksternal trigger, diperlukan untuk rangkaian monostable dan

bistable pada LM 555.

Pin 3 Pin Output

Pin 4 Pin Reset yang berfungsi untuk mereset rangkaian Flip-Flop yang

terdapat di dalam LM 555.

Pin 5 Pin Control Voltage, biasanya digunakan untuk mengontrol tegangan

agar lebih stabil dengan dihubungkan ke kapasitor.

Pin 6 Pin Threshold merupakan pin tempat masuknya tegangan kapasitor yang

digunakan untuk konfigurasi rangkaian astbale , monosatble dan bistable.

Pin 7 Pin Discharge merupakan pin tempat masuknya arus discharging dari

kapasitor ke ground yang melalui transistor yang terdapat di dalam LM 555.

Pin 8 Pin Vcc merupakan pin input daya untuk LM554 agar bekerja.

Berikut adalah contoh gambar output dari sebuah clock :

Penggunaan clock tidak lepas juga dari hal-hal yang perlu kita ketahui yaitu :

a) Periode

Periode adalah waktu yang diperlukan suatu signal untuk mendapatkan 1 cycle

signalnya. Biasanya dilambangkan dengan huruf T dan dalam satuan second (detik).

Page 27: Digital Clock

b) Frekuensi

Frekuensi adalah banyaknya cycle yang dapat dibentuk oleh suatu signal dalam 1 detik.

Biasanya dilambangkan dengan huruf f dan dalam satuan Hertz (Hz).

c) Duty Cycle

Duty Cycle adalah perbandingan lama waktu suatu signal berada dalam kondisi high

dengan lama waktu suatu signal tersebut dalam kondisi (high+low), duty cycle sangat

berguna dalam merancang alat-alat yang menggunakan konsep PWM (Pulse Width

Modulation).

Contoh alat-alat yang menggunakan konsep PWM adalah penggunaan lampu yang

dapat diatur terangnya, tidak seperti lampu yang biasa dimana hanya dapat menyala dan

mati, namun lampu yang mengunakan konsep PWM dapat membuat derajat terangnya

diantara terang total dan mati.

Rumus Duty Cycle

Duty Cycle =

Rangkaian pembangkit signal clock sering disebut multivibrator.

Multivibrator adalah suatu rangkaian yang terdiri dari dua buah piranti aktif

Page 28: Digital Clock

dengan keluaran yang saling berhubungan dengan masukan yang lain. Umpan balik positif

yang dihasilkan menyebabkan piranti yang satu harus di cut off, sedangkan piranti yang

lain dipaksa melakukan penghantaran. Multivibrator dikelompokkan kedalam bistable,

monostable dan astable.

Berikut adalah contoh-contoh rangkaian multivibrator :

a) Astable

Astable adalah rangkaian pembangkit signal yang outputnya tidak stabil di dua state

(high dan lownya) dan terus beroscilasi dari satu state ke state lainnya. Dalam hal ini tidak

diperlukan sinyal trigger luar untuk menghasilkan perubahan keadaan. Karena sifat osilasi

diantara dua keadaan ini, rangkaian astabil digunakan untuk menghasilkan gelombang segi

empat.

Penggunaan konfigurasi astable dengan timer 555

Page 29: Digital Clock

Cara kerja dari konfigurasi Astable pada LM 555

Tegangan kapasitor pada awalnya masih berlogic 0 . Sehingga Op-Amp atas kaki

input – mendapatkan tegangan 2/3 Vcc sedangkan kaki + mendapatkan tegangan 0V,

karena tegangan kaki – lebih besar dari kaki + maka op-amp atas akan mengeluarkan

logic 0. Kemudian Op-Amp bawah kaki input – mendapatkan tegangan 0 V, dan kaki

+ mendapatkan tegangan 1/3 Vcc, karena tegangan kaki + lebih besar dari kaki –

maka Op-Amp mengeluarkan logic 1. Kedua hal tersebut diatas membuat pin S

mendapatkan logic 0 dan pin R mendapatkan logic 1 sehingga RS Flip-Flop akan

membuat Q berlogic 0 (membuat transistor tidak aktif dan kapasitor tidak bisa

discharging) dan Q’ (Output) berlogic 1.

Kemudian karena kapasitor yang terus charging, dan ketika tegangan kapasitor

mencapai titik tegangan sedikit diatas 1/3 Vcc. Ini membuat Op-Amp atas kaki input

Page 30: Digital Clock

– mendapatkan tegangan 2/3 Vcc sedangkan kaki + mendapatkan tegangan sedikit

diatas 1/3Vcc, karena tegangan kaki – lebih besar dari kaki + maka op-amp atas akan

mengeluarkan logic 0. Kemudian Op-Amp bawah kaki input – mendapatkan

tegangan sedikit diatas 1/3Vcc, dan kaki + mendapatkan tegangan 1/3 Vcc, karena

tegangan kaki + lebih kecil dari kaki – maka Op-Amp mengeluarkan logic 0. Kedua

hal tersebut diatas membuat pin S mendapatkan logic 0 dan pin R mendapatkan logic

0 sehingga RS Flip-Flop akan membuat kondisi hold dan output sebelumnya yaitu Q

berlogic 0 (membuat transistor tidak aktif dan kapasitor tidak bisa discharging) dan

Q’ (Output) berlogic 1 akan dipertahankan.

Kemudian kapasitor akan terus charging sampai tegangan kapasitor mencapai titik

tegangan sedikit di atas 2/3 Vcc. Ini membuat Op-Amp atas kaki input –

mendapatkan tegangan 2/3 Vcc sedangkan kaki + mendapatkan tegangan sedikit

diatas 2/3Vcc, karena tegangan kaki – lebih kecil dari kaki + maka op-amp atas akan

mengeluarkan logic 1. Kemudian Op-Amp bawah kaki input – mendapatkan

tegangan sedikit diatas 2/3Vcc, dan kaki + mendapatkan tegangan 1/3 Vcc, karena

tegangan kaki + lebih kecil dari kaki – maka Op-Amp mengeluarkan logic 0. Kedua

hal tersebut diatas membuat pin S mendapatkan logic 1 dan pin R mendapatkan logic

0 sehingga RS Flip-Flop akan membuat kondisi Q berlogic 1 (membuat transistor

aktif dan kapasitor bisa discharging) dan Q’ (Output) berlogic 0.

Page 31: Digital Clock

Kemudian karena kapasitor terus dapat discharging maka tegangan kapasitor akan

turun ketika tegangan kapasitor sedikit dibawa 2/3 Vcc. Ini membuat Op-Amp atas

kaki input – mendapatkan tegangan 2/3 Vcc sedangkan kaki + mendapatkan

tegangan sedikit dibawah 2/3Vcc, karena tegangan kaki – lebih besar dari kaki +

maka op-amp atas akan mengeluarkan logic 0. Kemudian Op-Amp bawah kaki input

– mendapatkan tegangan sedikit dibawah 2/3Vcc, dan kaki + mendapatkan tegangan

1/3 Vcc, karena tegangan kaki + lebih kecil dari kaki – maka Op-Amp mengeluarkan

logic 0. Kedua hal tersebut diatas membuat pin S mendapatkan logic 0 dan pin R

mendapatkan logic 0 sehingga RS Flip-Flop akan membuat kondisi hold dimana

output sebelumnya Q berlogic 1 (membuat transistor aktif dan kapasitor bisa

discharging) dan Q’ (Output) berlogic 0 akan terus dipertahankan.

Kemudian karena kapasitor terus dapat discharging maka tegangan kapasitor akan

turun ketika tegangan kapasitor sedikit dibawah 1/3 Vcc. Ini membuat Op-Amp atas

kaki input – mendapatkan tegangan 2/3 Vcc sedangkan kaki + mendapatkan

tegangan sedikit dibawah 1/3Vcc, karena tegangan kaki – lebih besar dari kaki +

maka op-amp atas akan mengeluarkan logic 0. Kemudian Op-Amp bawah kaki input

– mendapatkan tegangan sedikit dibawah 1/3Vcc, dan kaki + mendapatkan tegangan

1/3 Vcc, karena tegangan kaki + lebih besar dari kaki – maka Op-Amp mengeluarkan

logic 1. Kedua hal tersebut diatas membuat pin S mendapatkan logic 0 dan pin R

mendapatkan logic 1 sehingga RS Flip-Flop akan membuat kondisi Q berlogic 0

(membuat transistor tidak aktif dan kapasitor tidak bisa discharging) dan Q’ (Output)

Page 32: Digital Clock

berlogic 1. Kondisi tersebut diatas akan membuat kapasitor charging kembali dan

mengulang kondisi dimana tegangan kapsitor sedikit diatas 1/3 Vcc dan seterusnya.

Hal penting yang perlu diketahui dalam konfigurasi Astable LM 555 adalah

A) Resistor A dan B akan mempengaruhi kecepatan charging dari kapsitor.

B) Resistor B akan mempengaruhi kecepatan discharging dari kapasitor.

C) Besarnya Capasitor ( C ) juga akan mempengaruhi cepat atau lambatnya

proses charging dan discharging.

Dan dapat dihitung melalui rumus-rumus berikut ini :

tH = 0,693 (RA+RB).C

tL = 0,693 (RB).C

Periode dan frekuensi

T = tH+tL = 0,693 ( RA + 2RB ) C

f =

Dengan demikian,duty cycle dari operasi astable ini dapat dihitung dengan rumus

:

Page 33: Digital Clock

D =

Siklus periode dari gelombang keluaran (pin 3) dapat digambarkan sebagai berikut:

Keterangan :

t : berlangsungnya periode

tL : berlangsungnya periode saat sinyal “0” (low)

tH : berlangsungnya periode saat sinyal “1” (high)

b) Monostable

Monostable adalah rangkaian pembagkit signal yang outputnya stabil di satu state

saja dengan kata lain menghasilkan satu pulsa dengan selang waktu tertentu dalam

menanggapi suatu sinyal trigger dari luar. Ini berarti bahwa hanya satu saja keadaan

stabil. Sedangkan state yang lainnya tidak stabil. Rangkaian monostable output

statenya akan tidak stabil di suatu periode waktu tertentu (yang dapat ditentukan

lewat rumus monostable) ketika mendapatkan trigger external, namun setelah itu

akan langsung berpindah state ke posisi stabil lagi. Karena itu rangkaian monostable

banyak sekali dikenal dengan nama one shot circuit. Aplikasi yang banyak

Page 34: Digital Clock

digunakan pada rangkaian monostable adalah penggunaan untuk mencegah

bouncing pada saklar.

Cara kerja dari konfigurasi Monostable pada LM 555

Page 35: Digital Clock

Step 0 : Pada awalnya tegangan kapasitor 0V sehingga membuat op-amp atas

mempunyai kaki – bertegangan 2/3 Vcc dan kaki + bertegangan 0 V karena kaki –

mempunyai tegangan lebih tinggi dari kaki + maka Op-Amp atas akan mengeluarkan

logic 0. Untuk Op-Amp bawah ketika trigger dibiarkan dalam posisi high maka kaki

– mempunyai tegangan sebesar Vcc, sedangkan kaki + mempunyai tegangan 1/3

Vcc karena kaki – mempunyai tegangan lebih besar dari kaki + maka Op-Amp

bawah mengeluarkan logic 0. Sehingga RS Flip-Flop mempunyai input S berlogic 0

dan R berlogic 0. Ini akan membuat kondisi hold sehingga membuat output

sebelumnya tertahan (jika dimisalkan output sebelumnya Q bernilai 1 dan Q’ bernilai

0) maka output sekarang Q berlogic 1 (membuat transistor aktif dan kapasitor dapat

discharging) dan Q’ berlogic 0. Hal ini akan terus berulang sampai mendapatkan

trigger.

Step 1: Lalu ketika trigger diberikan artinya terhubung ke ground sesaat. Maka kaki -

dari Op-Amp bawah akan berlogic 0 sesaat sehingga membuat kaki – mendapatkan

tegangan yang lebih rendah dari kaki + yaitu 1/3 Vcc sehingga ini membuat Op-Amp

bawah mengeluarkan logic 1. Karena kondisi Op-AMP atas output tidak berubah

artinya mengeluarkan logic 0, maka Rs Flip-Flop akan mendapat kondisi logic S

bernilai 0 dan R berlogic 1, sehingga output nya berubah menjadi Q berlogic 0

(membuat transistor tidak aktif dan kapasitor tidak dapat discharging melainkan

kapasitor akan charging) dan Q’ berlogic 1. Inilah yang dinamakan one shot. Setelah

periode waktu tertentu karena trigger telah kembali ke posisi Vcc maka ini membuat

kondiosi kaki – op-amp bawah lebih besar dari kaki + nya membuat op-amp bawah

Page 36: Digital Clock

mengeluarkan logic 0 sehingga ini dapat membuat RS Flip-Flop mengeluarkan

kondisi hold (menahan output sebelumnya )karena input S berlogic 0 dan R berlogic

0. Pada saat kondisi inilah bouncing dapat dihilangkan (salah satu keunggulan dari

Monostable)

Step 2: Ketika kapasitor charging terus dan mencapai tegangan sedikit diatas 2/3 Vcc

(lamanya tergantung dari resistor Ra dan Kapasitor) sehingga membuat op-amp atas

mempunyai kaki – bertegangan 2/3 Vcc dan kaki + bertegangan sedikit diatas 2/3

Vcc karena kaki – mempunyai tegangan lebih rendah dari kaki + maka Op-Amp atas

akan mengeluarkan logic 1. Untuk Op-Amp bawah ketika trigger dibiarkan dalam

posisi high maka kaki – mempunyai tegangan sebesar Vcc, sedangkan kaki +

mempunyai tegangan 1/3 Vcc karena kaki – mempunyai tegangan lebih besar dari

kaki + maka Op-Amp bawah mengeluarkan logic 0. Sehingga RS Flip-Flop

mempunyai input S berlogic 1 dan R berlogic 0. Ini akan membuat output sekarang

Q berlogic 1 (membuat transistor aktif dan kapasitor discharging) dan Q’ berlogic 0

(kondisi ini akan stabil).

Step 3 : Hal tersebut diatas akan membuat kapasitor discharging terus sehingga

tegangan kapasitor 0 V dan membuat op-amp atas mengeluarkan logic 0. Dan op-

amp bawah juga mengeluarkan logic 0, karena kaki – mempunyai tegangan Vcc dan

kaki + hanya mempunyai 1/3 Vcc. Sehingga ini Output dari RS FF akan hold dan

mengeluarkan output sebelumnya yaitu akan tetap yaitu Q berlogic 1 dan Q’ berlogic

0. Hal ini akan tetap sampai trigger kemabali diberikan.

Page 37: Digital Clock

Untuk step selanjutnya, cara kerja akan terus berulang dimulai dari urutan step 1

(ketika trigger diberikan akan lanjut ke step 1 jika tidak diberikan akan terus

berulang di step 3) 2 3 lalu kembali lagi ke step 1.

Hal yang perlu diketahui dalam konfigurasi monostable. Logic perubahan (One Shot)

akan ditahan berdasarkan waktu yang tergantung oleh konfigurasi Ra dan C. Dan

dapat dihitung melaui rumus berikut :

tH = 1.1 RA.C

c) Bistable

Page 38: Digital Clock

Bistable adalah rangkaian pembangkit signal yang outputnya stabil di kedua

statenya (high maupun low). Rangkaian multivibrator bistable memiliki ciri-ciri,

bahwa rangkaian ini tetap berada pada tingkatan (level) keluaran yang diberikan

apabila tidak dikenakan sinyal (trigger) dari luar. Penerapan sinyal dari luar akan

menyebabkan perubahan keadaan, dan tingkat keluaran ini akan tetap sampai ada

sinyal dari luar berikutnya. Jadi rangkaian bistable memerlukan dua sinyal sebelum

kembali kekeadaan awal.

Page 39: Digital Clock

BAB III

PERANCANGAN SISTEM

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 40: Digital Clock

BAB 3 PERANCANGAN SISTEM

3.1 Gambaran Sistem Secara Umum

Clock 1 Hz diberikan pada GAL 16V8 yang digunakan untuk memberikan tampilan angka

pada 7 segment, dimulai dari GAL 16V8 (satuan detik) yang mendapatkan clock 1 Hz.

Setelah itu clock tersebut akan menggerakkan digit detik satuan untuk melakukan

perpindahan state mulai dari menampilkan angka 0 sampai dengan 9. Dengan interval

waktu masing-masing 1 detik. Ketika digit detik satuan telah menunjukkan state yang

menunjukkan angka 0. Maka GAL 16V8 (satuan detik) ini akan mengeluarkan flag (clock)

berikutnya untuk menggerakkan state dari GAL 16V8 (puluhan detik) dan membuat

sevensegment mengcounter angka mulai dari 0 sampai 5. Kemudian setalah kembali ke

angka 0 lagi maka GAL 16V8 (puluhan detik) akan mengeluarkan flag (clock) berikutnya

untuk menggerakkan state dari GAL 16V8 (satuan menit) sehingga dapat membuat

tampilan dari digit seven segment menit satuan pun ikut bergerak dan mengcounter angka

mulai dari 0 sampai dengan 9.Dan ketika sampai dengan angka 0 maka GAL 16V8 (satuan

menit) ini akan memberikan clock untuk menggerakkan state dari Gal 16V8( menit

puluhan ) dari angka 0 sampai angka 5. Ketika kembali lagi ke angka 0 maka GAL 16V8

(menit puluhan) ini akan memberikan clock untuk menggerakkan state dari GAL 16V8

( jam satuan), untuk jam satuan ini agak sedikit berbeda dengan sebelumnya. Karena kita

tahu sebelumnya bahwa jam satuan dapat bergerak dari angka 9 ke 0 ( jam 00 sampai

dengan jam 19) atau dari 4 ke 0 (ketika jam 23 ke jam 00) sehingga ini diperlukan

hubungan antara GAL 16V8 (jam satuan) dan GAL 16V8 (jam puluhan) agar terjadi

Page 41: Digital Clock

sinkronisasi yang tepat dalam memberikan clock satu sama lainnya (akan dijelaskan di

cara kerja).

Untuk masalah pen-settingan waktu, kami penulis menggunakan sistem dari rangkaian

timer monostable. Cara ini cukup efektif untuk mencegah permasalahan bouncing pada

saklar. Kami penulis menyediakan 4 buah tombol untuk mensetting digit waktu dari jam

puluhan, jam satuan, menit puluhan dan menit satuan.

Untuk alarm sendiri kami penulis menggunakan 6 buah switch ( 2 buah untuk digit jam

puluhan dan 4 buah untuk digit jam satuan ) yang akan dibentuk secara biner untuk

dibandingkan dengan jam puluhan dan jam satuan yang tertera pada seven segment jika

keduanya sama dengan inputan user dari switch maka buzzer akan berbunyi. Untuk

mematikan alarm penulis juga menyediakan saklar On-Off.

Page 42: Digital Clock

3.2 Blok Diagram

Page 43: Digital Clock

3.3 Skematik Rangkaian

Page 44: Digital Clock

3.4 Cara Kerja Rangkaian dan Coding

Coding

Detik Satuan dan Menit Satuan (GAL 16V8)

Name detsat;

PartNo 00 ;

Date 3/26/2008 ;

Revision 01 ;

Designer Engineer ;

Company Atmel ;

Assembly None ;

Location ;

Device G16V8 ;

/* *************** INPUT PINS *********************/

PIN 1 = CLK ; /* */

/* *************** OUTPUT PINS *********************/

PIN [13..19] = [Q0..6] ;

PIN 12 = Q7;

field count = [Q0..6];

$define S0 'b'0001000

$define S1 'b'0111110

$define S2 'b'0010001

$define S3 'b'0010100

$define S4 'b'0100110

$define S5 'b'1000100

$define S6 'b'1000000

$define S7 'b'0011110

Page 45: Digital Clock

$define S8 'b'0000000

$define S9 'b'0000100

sequenced count

present S0 next S1;

present S1 next S2;

present S2 next S3;

present S3 next S4;

present S4 next S5;

present S5 next S6;

present S6 next S7;

present S7 next S8;

present S8 next S9;

present S9 next S0 out Q7;

Cara kerja :

1) Penulis menggunakan nama file detsat

2) Device yang penulis pakai untuk Codingan ini merupakan G16V8 (Gal 16V8)

3) Pin 1 = Clk menunjukkan deklarasi pin input clock yang akan digunakan, dengan nama

clk

4) Pin [13..19] = [Q0..6] serta Pin 12 = Q7 menunjukkan deklarasi pin output yang akan

digunakan, artinya pin 13 memiliki nama Q0, pin 14 memiliki nama Q1, dst, sampai

dengan pin 19 memiliki nama Q6, dan pin 12 memiliki nama Q7. Nama-nama tersebut

akan digunakan pada coding selanjutnya untuk mewakili setiap pin.

Page 46: Digital Clock

5) Field count = [Q0..6] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama count.

6) $define S0 'b'0001000 merupakan define untuk menunjukan data angka nol pada seven

segment.

$define S1 'b'0111110 merupakan define untuk menunjukan data angka satu pada

seven segment.

$define S2 'b'0010001 merupakan define untuk menunjukan data angka dua pada seven

segment.

$define S3 'b'0010100 merupakan define untuk menunjukan data angka tiga pada

seven segment.

$define S4 'b'0100110 merupakan define untuk menunjukan data angka empat pada

seven segment.

$define S5 'b'1000100 merupakan define untuk menunjukan data angka lima pada

seven segment.

$define S6 'b'1000000 merupakan define untuk menunjukan data angka enam pada

seven segment.

$define S7 'b'0011110 merupakan define untuk menunjukan data angka tujuh pada

seven segment.

$define S8 'b'0000000 merupakan define untuk menunjukan data angka delapan pada

seven segment.

$define S9 'b'0000100 merupakan define untuk menunjukan data angka sembilan pada

seven segment.

Page 47: Digital Clock

7) sequenced count

present S0 next S1;

present S1 next S2;

present S2 next S3;

present S3 next S4;

present S4 next S5;

present S5 next S6;

present S6 next S7;

present S7 next S8;

present S8 next S9;

present S9 next S0 out Q7;

Sequenced Count digunakan untuk mendeklarasi alur program sekuensial dari program

yang kita buat.

Clock 1 Maka state akan loncat ke S8 (default GAL ) dan menunjukkan angka 8.

Dan next clock selanjutnya akan loncat ke S9.

Clock 2 Maka state akan loncat ke S9 dan menunjukkan angka 9. Dan next clock

selanjutnya akan loncat ke S0.

Clock 3 Maka state akan loncat ke S0 dan menunjukkan angka 0 serta

mengeluarkan bit 1 pada Q7. Dan next clock selanjutnya akan loncat ke

S1.

Page 48: Digital Clock

Clock 4 Maka state akan loncat ke S1 dan menunjukkan angka 1. Dan next clock

selanjutnya akan loncat ke S2.

Clock 5 Maka state akan loncat ke S2 dan menunjukkan angka 2. Dan next clock

selanjutnya akan loncat ke S3.

Clock 6 Maka state akan loncat ke S3 dan menunjukkan angka 3. Dan next clock

selanjutnya akan loncat ke S4.

Clock 7 Maka state akan loncat ke S4 dan menunjukkan angka 4. Dan next clock

selanjutnya akan loncat ke S5.

Clock 8 Maka state akan loncat ke S5 dan menunjukkan angka 5. Dan next clock

selanjutnya akan loncat ke S6.

Clock 9 Maka state akan loncat ke S6 dan menunjukkan angka 6. Dan next clock

selanjutnya akan loncat ke S7.

Clock 10 Maka state akan loncat ke S7 dan menunjukkan angka 7. Dan next clock

selanjutnya akan loncat ke S8.

Clock 11 Maka state akan loncat ke S8 dan menunjukkan angka 8. Dan next clock

selanjutnya akan loncat ke S9.

Untuk Clock selanjutnya akan berurut kembali ke clock 2, 3 ,4 ,5 dst...

Detik Puluhan dan Menit Puluhan (GAL 16V8)

Name detpul ;

PartNo 00 ;

Date 3/27/2008 ;

Revision 01 ;

Designer Engineer ;

Page 49: Digital Clock

Company Atmel ;

Assembly None ;

Location ;

Device G16V8 ;

/* *************** INPUT PINS *********************/

PIN 1 = CLK ; /* */

/* *************** OUTPUT PINS *********************/

PIN [13..19] = [Q0..6] ;

PIN 12 = Q7;

field count = [Q0..6];

$define S0 'b'0001000

$define S1 'b'0111110

$define S2 'b'0010001

$define S3 'b'0010100

$define S4 'b'0100110

$define S5 'b'1000100

$define S6 'b'0000000

sequenced count

present S6 next S0 out Q7;

present S0 next S1;

present S1 next S2;

present S2 next S3;

present S3 next S4;

present S4 next S5;

present S5 next S0 out Q7;

Page 50: Digital Clock

Cara kerja :

1) Penulis menggunakan nama file detpul

2) Device yang penulis pakai untuk Codingan ini merupakan G16V8 (Gal 16V8)

3) Pin 1 = Clk menunjukkan deklarasi pin input clock yang akan digunakan, dengan nama

clk

4) Pin [13..19] = [Q0..6] serta Pin 12 = Q7 menunjukkan deklarasi pin output yang akan

digunakan, artinya pin 13 memiliki nama Q0, pin 14 memiliki nama Q1, dst, sampai

dengan pin 19 memiliki nama Q6, dan pin 12 memiliki nama Q7. Nama-nama tersebut

akan digunakan pada coding selanjutnya untuk mewakili setiap pin.

5) Field count = [Q0..6] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama count.

6) $define S0 'b'0001000 merupakan define untuk menunjukan data angka nol pada seven

segment.

$define S1 'b'0111110 merupakan define untuk menunjukan data angka satu pada

seven segment.

$define S2 'b'0010001 merupakan define untuk menunjukan data angka dua pada seven

segment.

$define S3 'b'0010100 merupakan define untuk menunjukan data angka tiga pada

seven segment.

$define S4 'b'0100110 merupakan define untuk menunjukan data angka empat pada

seven segment.

Page 51: Digital Clock

$define S5 'b'1000100 merupakan define untuk menunjukan data angka lima pada

seven segment.

$define S6 'b'0000000 merupakan define untuk menunjukan data angka delapan pada

seven segment State ini hanya akan berlaku pada awal melakukan pensettingan.

7) sequenced count

present S6 next S0 out Q7;

present S0 next S1;

present S1 next S2;

present S2 next S3;

present S3 next S4;

present S4 next S5;

present S5 next S0 out Q7;

Sequenced Count digunakan untuk mendeklarasi alur program sekuensial dari program

yang kita buat.

Clock 1 Maka state akan loncat ke S6 (default GAL) dan menunjukkan angka 8.

Dan next clock selanjutnya akan loncat ke S0.

Clock 2 Maka state akan loncat ke S0 dan menunjukkan angka 0 serta

mengeluarkan bit 1 pada Q7. Dan next clock selanjutnya akan loncat ke

S1.

Clock 3 Maka state akan loncat ke S1 dan menunjukkan angka 1. Dan next clock

selanjutnya akan loncat ke S2.

Page 52: Digital Clock

Clock 4 Maka state akan loncat ke S2 dan menunjukkan angka 2. Dan next clock

selanjutnya akan loncat ke S3.

Clock 5 Maka state akan loncat ke S3 dan menunjukkan angka 3. Dan next clock

selanjutnya akan loncat ke S4.

Clock 6 Maka state akan loncat ke S4 dan menunjukkan angka 4. Dan next clock

selanjutnya akan loncat ke S5.

Clock 7 Maka state akan loncat ke S5 dan menunjukkan angka 5. Dan next clock

selanjutnya akan loncat ke S0.

Clock 8 Maka state akan loncat ke S0 dan menunjukkan angka 0 serta

mengeluarkan bit 1 pada Q7. Dan next clock selanjutnya akan loncat ke

S1.

Untuk Clock selanjutnya akan berurut kembali ke clock 3 ,4 ,5 dst...

Jam Satuan (GAL 16V8)

Name jamsat ;

PartNo 00 ;

Date 3/27/2008 ;

Revision 01 ;

Designer Engineer ;

Company Atmel ;

Assembly None ;

Location ;

Device G16v8 ;

/* *************** INPUT PINS *********************/

PIN 1 = CLK ; /* */

Page 53: Digital Clock

PIN 2 = RST ;

/* *************** OUTPUT PINS *********************/

PIN [13..19] = [Q0..6] ;

PIN 12 = Q7;

field count = [Q0..6];

$define S0 'b'0001000

$define S1 'b'0111110

$define S2 'b'0010001

$define S3 'b'0010100

$define S4 'b'0100110

$define S5 'b'1000100

$define S6 'b'1000000

$define S7 'b'0011110

$define S8 'b'0000000

$define S9 'b'0000100

field mode = RST;

go = mode:1;

stop = mode:0;

sequenced count

present S0 if go next S1;

if stop next S1;

present S1 if go next S2;

if stop next S2;

present S2 if go next S3;

if stop next S3;

present S3 if go next S4;

Page 54: Digital Clock

if stop next S0 out Q7;

present S4 if go next S5;

present S5 if go next S6;

present S6 if go next S7;

present S7 if go next S8;

present S8 if go next S9 ;

if stop next S9;

present S9 if go next S0 out Q7;

if stop next S0 out Q7;

Cara kerja :

1) Penulis menggunakan nama file jamsat

2) Device yang penulis pakai untuk Codingan ini merupakan G16V8 (Gal 16V8)

3) Pin 1 = Clk, Pin 2 =RST menunjukkan deklarasi pin 1 sebagai input clock yang akan

digunakan dengan nama clk, dan pin 2 sebagai input dengan nama RST

4) Pin [13..19] = [Q0..6] serta Pin 12 = Q7 menunjukkan deklarasi pin output yang akan

digunakan, artinya pin 13 memiliki nama Q0, pin 14 memiliki nama Q1, dst, sampai

dengan pin 19 memiliki nama Q6, dan pin 12 memiliki nama Q7. Nama-nama tersebut

akan digunakan pada coding selanjutnya untuk mewakili setiap pin.

5) Field count = [Q0..6] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama count.

Page 55: Digital Clock

6) $define S0 'b'0001000 merupakan define untuk menunjukan data angka nol pada seven

segment

$define S1 'b'0111110 merupakan define untuk menunjukan data angka satu pada

seven segment.

$define S2 'b'0010001 merupakan define untuk menunjukan data angka dua pada seven

segment.

$define S3 'b'0010100 merupakan define untuk menunjukan data angka tiga pada

seven segment.

$define S4 'b'0100110 merupakan define untuk menunjukan data angka empat pada

seven segment.

$define S5 'b'1000100 merupakan define untuk menunjukan data angka lima pada

seven segment.

$define S6 'b'1000000 merupakan define untuk menunjukan data angka enam pada

seven segment.

$define S7 'b'0011110 merupakan define untuk menunjukan data angka tujuh pada

seven segment.

$define S8 'b'0000000 merupakan define untuk menunjukan data angka delapan pada

seven segment.

$define S9 'b'0000100 merupakan define untuk menunjukan data angka sembilan pada

seven segment.

7) Field mode = RST menunjukkan RST digabungkan menjadi satu field bernama mode

Page 56: Digital Clock

8) Go = mode : 1 menunjukkan jika di pin RST menunjukkan logik 1 maka kondisi go

yang dipenuhi sedangkan untuk stop = mode:0 menunjukkan jika di pin RST

menunjukkan logic 0 maka kondisi stop yang dipenuhi

9) sequenced count

present S0 if go next S1;

if stop next S1;

present S1 if go next S2;

if stop next S2;

present S2 if go next S3;

if stop next S3;

present S3 if go next S4;

if stop next S0 out Q7;

present S4 if go next S5;

present S5 if go next S6;

present S6 if go next S7;

present S7 if go next S8;

present S8 if go next S9 ;

Page 57: Digital Clock

if stop next S9;

present S9 if go next S0 out Q7;

if stop next S0 out Q7;

Sequenced Count digunakan untuk mendeklarasi alur program sekuensial dari program

yang kita buat.

Clock 1 Maka state akan loncat ke S8 (default GAL ) dan menunjukkan angka 8.

Dan next clock selanjutnya baik untuk kondisi go maupun stop akan loncat

ke S9.

Clock 2 Maka state akan loncat ke S9 dan menunjukkan angka 9. Dan next clock

selanjutnya baik untuk kondisi go maupun stop akan loncat ke S0.

Clock 3 Maka state akan loncat ke S0 dan menunjukkan angka 0 serta

mengeluarkan bit 1 pada Q7. Dan next clock selanjutnya baik untuk

kondisi go maupun stop akan loncat ke S1.

Clock 4 Maka state akan loncat ke S1 dan menunjukkan angka 1. Dan next clock

selanjutnya baik untuk kondisi go maupun stop akan loncat ke S2.

Clock 5 Maka state akan loncat ke S2 dan menunjukkan angka 2. Dan next clock

selanjutnya baik untuk kondisi go maupun stop akan loncat ke S3.

Clock 6 Maka state akan loncat ke S3 dan menunjukkan angka 3. Dan next clock

selanjutnya untuk kondisi go akan loncat ke S4, untuk kondisi stop akan

loncat ke S0.

Clock 7a (Go) Maka state akan loncat ke S4 dan menunjukkan angka 4. Dan next

clock selanjutnya untuk kondisi go akan loncat ke S5.Untuk kondisi stop

Page 58: Digital Clock

pada sistem Jam Alarm digital tidak mungkin terjadi sehingga pada

langkah ini tidak perlu didefine.

Clock 7b (stop) Maka akan ke kondisi clock 3 dan seterusnya.

Clock 8 Maka state akan loncat ke S5 dan menunjukkan angka 5. Dan next clock

selanjutnya untuk kondisi go akan loncat ke S6.Untuk kondisi stop pada

sistem Jam Alarm digital tidak mungkin terjadi sehingga pada langkah ini

tidak perlu didefine.

Clock 9 Maka state akan loncat ke S6 dan menunjukkan angka 6. Dan next clock

selanjutnya untuk kondisi go akan loncat ke S7.Untuk kondisi stop pada

sistem Jam Alarm digital tidak mungkin terjadi sehingga pada langkah ini

tidak perlu didefine.

Clock 10 Maka state akan loncat ke S7 dan menunjukkan angka 7. Dan next clock

selanjutnya untuk kondisi go akan loncat ke S8.Untuk kondisi stop pada

sistem Jam Alarm digital tidak mungkin terjadi sehingga pada langkah ini

tidak perlu didefine.

Clock 11 Maka state akan loncat ke S8 dan menunjukkan angka 8. Dan next clock

selanjutnya baik untuk kondisi go maupun stop akan loncat ke S9.

Untuk Clock selanjutnya akan berurut kembali ke clock 2, 3 ,4 ,5 dst...

Jam Puluhan (GAL 16V8)

Name jampul ;

PartNo 00 ;

Date 5/20/2008 ;

Revision 01 ;

Page 59: Digital Clock

Designer Engineer ;

Company Atmel ;

Assembly None ;

Location ;

Device G16V8 ;

/* *************** INPUT PINS *********************/

PIN 1 = CLK ; /* */

PIN [2..4] = [D0..2] ; /* */

/* *************** OUTPUT PINS *********************/

PIN [12..19] = [Q0..7] ; /* */

field count = [Q0..7];

$define S0 'b'00010001

$define S1 'b'01111101

$define S2 'b'00100010

$define S3 'b'00000000

field mode = [D0..2];

go = mode : [1,2,7];

stop = mode : [0,3,4,5,6];

sequenced count

present S0 if go next S1 ;

if stop next S1;

present S1 if go next S2 ;

if stop next S0;

present S2 if go next S0 ;

if stop next S0;

present S3 if go next S0 ;

Page 60: Digital Clock

if stop next S0;

Cara kerja :

1) Penulis menggunakan nama file jampul

2) Device yang penulis pakai untuk Codingan ini merupakan G16V8 (Gal 16V8)

3) Pin 1 = Clk, Pin [2..4] =[D0..2] menunjukkan deklarasi pin 1 sebagai input clock yang

akan digunakan dengan nama clk, dan pin 2 sebagai input dengan nama D0, pin 3

sebagai input dengan nama D1 dan pin 4 sebagai input dengan nama D2.

4) Pin [12..19] = [Q0..7] menunjukkan deklarasi pin output yang akan digunakan, artinya

pin 12 memiliki nama Q0, pin 13 memiliki nama Q1, dst, sampai dengan pin 19

memiliki nama Q7. Nama-nama tersebut akan digunakan pada coding selanjutnya

untuk mewakili setiap pin.

5) Field count = [Q0..7] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama count.

6) $define S0 'b'00010001 merupakan define untuk menunjukan data [Q7..1] angka 0

pada seven segment dan flag pada bit terakhir pada Q0 berlogic 1

$define S1 'b'01111101 merupakan define untuk menunjukan data [Q7..1] angka 1

pada seven segment dan flag pada bit terakhir pada Q0 berlogic 1

$define S2 'b'00100010 merupakan define untuk menunjukan data [Q7..1] angka 2

pada seven segment dan flag pada bit terakhir pada Q0 berlogic 0

Page 61: Digital Clock

$define S3 'b'00000000 merupakan define untuk menunjukan data angka delapan

(default GAL yang harus didefine jika tidak akan hang) pada seven segment dan flag

pada bit terakhir pada Q0 berlogic 0.

7) Field mode = [D0..2] menunjukkan pin [D0..2] digabungkan menjadi satu field

bernama mode

8) Go = mode : [1,2,7] menunjukkan jika di pin [D0..2] menunjukkan logik 001(1) atau

010(2) atau 111(7) maka kondisi go yang dipenuhi sedangkan untuk stop = mode:

[0,3,4,5,6] menunjukkan jika di pin [D0..2] menunjukkan logic 000 (0) atau 011 (3)

atau 100(4) atau 101(5) atau 110(6) maka kondisi stop yang dipenuhi

9) sequenced count

present S0 if go next S1;

if stop next S1;

present S1 if go next S2;

if stop next S0;

present S2 if go next S0;

if stop next S0;

present S3 if go next S0;

if stop next S0;

Sequenced Count digunakan untuk mendeklarasi alur program sekuensial dari program

yang kita buat.

Page 62: Digital Clock

Clock 1 Maka state akan loncat ke S3 (default GAL ) dan menunjukkan angka 8.

Dan next clock selanjutnya baik untuk kondisi go maupun stop akan loncat

ke S0.

Clock 2 Maka state akan loncat ke S0 dan menunjukkan angka 0. Dan next clock

selanjutnya baik untuk kondisi go maupun stop akan loncat ke S1.

Clock 3 Maka state akan loncat ke S1 dan menunjukkan angka 1. Dan next clock

selanjutnya untuk kondisi go akan loncat ke S2 sedangkan untuk kondisi

stop akan loncat ke S0.

Clock 4a (go) Maka state akan loncat ke S2 dan menunjukkan angka 2. Dan next

clock selanjutnya baik untuk kondisi go maupun stop akan loncat ke S0.

Clock 4b (stop) Maka akan kembali seperti clock 2

Untuk Clock selanjutnya akan berurut kembali ke clock 2, 3, dst...

Alarm 1 (GAL 16V8)

Name Alarm1 ;

PartNo 00 ;

Date 4/1/2008 ;

Revision 01 ;

Designer Engineer ;

Company Atmel ;

Assembly None ;

Location ;

Device G16V8 ;

/* *************** INPUT PINS *********************/

PIN [2..9] = [S0..7] ; /* */

Page 63: Digital Clock

/* *************** OUTPUT PINS *********************/

PIN [19..16] = [D0..3] ; /* */

FIELD SEL = [S0,S1];

FIELD OUTPUT = [D0,D1];

TABLE SEL => OUTPUT

'b'00 => 'b'00;

'b'11 => 'b'01;

'b'10 => 'b'10;

D2=(!(S2$S4))&(!(S3$S5));

D3=S6&S7;

Cara kerja :

1) Penulis menggunakan nama file Alarm1

2) Device yang penulis pakai untuk Codingan ini merupakan G16V8 (Gal 16V8)

3) Pin [2..9] = [S0..7] menunjukkan deklarasi pin 2 sebagai input dengan nama S0, pin 3

sebagai input dengan nama S1 dst sampai dengan pin 9 sebagai input dengan nama S7.

4) Pin [19..16] = [D0..3] menunjukkan deklarasi pin output yang akan digunakan, artinya

pin 19 memiliki nama D0, pin 18 memiliki nama D1, dst, sampai dengan pin 16

memiliki nama D3. Nama-nama tersebut akan digunakan pada coding selanjutnya

untuk mewakili setiap pin.

Page 64: Digital Clock

5) Field SEL = [S0,S1] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama SEL.

6) Field OUTPUT = [D0,D1] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama OUTPUT.

7) TABLE SEL => OUTPUT

'b'00 => 'b'00;

'b'11 => 'b'01;

'b'10 => 'b'10;

Pada coding diatas artinya kita membuat sebuah rangkaian kombinasional sehingga

ketika pin-pin SEL ( S1,S0 ) menunjukkan logic 0 dan 0 maka pin-pin OUTPUT

( D1,D0 ) menunjukkan logic 0 dan 0. Ketika pin-pin SEL ( S1,S0 ) menunjukkan

logic 1 dan 1 maka pin-pin OUTPUT ( D1,D0 ) menunjukkan logic 0 dan 1. Ketika

pin-pin SEL ( S1,S0 ) menunjukkan logic 1 dan 0 maka pin-pin OUTPUT ( D1,D0 )

menunjukkan logic 1 dan 0.

8) D2=(!(S2$S4))&(!(S3$S5));

D3=S6&S7;

Pada baris pertama coding diatas artinya input dari S2 akan diXOR dengan S4 lalu

hasilnya dilakukan operasi NOT serta dilakukan operasi AND dengan input S3 yang di

Page 65: Digital Clock

XOR dengan S5 serta dilakukan operasi NOT terlebih dahulu. Dan hasilnya

dikeluarkan pada pin D2.

Pada baris kedua coding diatas artinya input dari pin S6 dan S7 dilakukan operasi

AND serta hasilnya dikeluarkan pada pin D3.

Alarm 2 (GAL 22V10)

Name ALARM2 ;

PartNo 00 ;

Date 4/1/2008 ;

Revision 01 ;

Designer Engineer ;

Company Atmel ;

Assembly None ;

Location ;

Device G22V10 ;

/* *************** INPUT PINS *********************/

PIN [8..2] = [S0..6] ;

PIN [9..11] = [S7..9]; /* */

PIN [14..18] = [S10..14] ; /* */

/* *************** OUTPUT PINS *********************/

PIN [23..19] = [D0..4] ; /* */

FIELD SEL=[S0..6];

FIELD OUTPUT=[D0..3];

TABLE SEL => OUTPUT

'b'0001000 => 'b'0000;

Page 66: Digital Clock

'b'0111110 => 'b'0001;

'b'0010001 => 'b'0010;

'b'0010100 => 'b'0011;

'b'0100110 => 'b'0100;

'b'1000100 => 'b'0101;

'b'1000000 => 'b'0110;

'b'0011110 => 'b'0111;

'b'0000000 => 'b'1000;

'b'0000100 => 'b'1001;

D4 = (!(S14$S7))&(!(S13 $S8))&(!(S12 $S9 ))&(!(S11 $S10 ));

Cara kerja :

1) Penulis menggunakan nama file Alarm2

2) Device yang penulis pakai untuk Codingan ini merupakan G22V10 (Gal 22V10)

3) Pin [8..2] = [S0..6] menunjukkan deklarasi pin 8 sebagai input dengan nama S0, pin 7

sebagai input dengan nama S1 dst sampai dengan pin 2 sebagai input dengan nama S6.

Pin [9..11] = [S7..9] menunjukkan deklarasi pin 9 sebagai input dengan nama S7, pin

10 sebagai input dengan nama S8 dan pin 11 sebagai input dengan nama S9.

Pin [14..18] = [S10..14] menunjukkan deklarasi pin 14 sebagai input dengan nama S10,

pin 15 sebagai input dengan nama S11 dst sampai dengan pin 18 sebagai input dengan

nama S14.

4) Pin [23..19] = [D0..4] menunjukkan deklarasi pin output yang akan digunakan, artinya

pin 23 memiliki nama D0, pin 22 memiliki nama D1, dst, sampai dengan pin 19

memiliki nama D4. Nama-nama tersebut akan digunakan pada coding selanjutnya

untuk mewakili setiap pin.

Page 67: Digital Clock

5) Field SEL = [S0..6] merupakan syntax yang digunakan untuk mengabungkan beberapa

pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis menggunakan

nama SEL.

6) Field OUTPUT = [D0..3] merupakan syntax yang digunakan untuk mengabungkan

beberapa pin-pin menjadi satu nama field gabungan. Pada kondisi ini penulis

menggunakan nama OUTPUT.

7) TABLE SEL => OUTPUT

'b'0001000 => 'b'0000;

'b'0111110 => 'b'0001;

'b'0010001 => 'b'0010;

'b'0010100 => 'b'0011;

'b'0100110 => 'b'0100;

'b'1000100 => 'b'0101;

'b'1000000 => 'b'0110;

'b'0011110 => 'b'0111;

'b'0000000 => 'b'1000;

'b'0000100 => 'b'1001;

Pada coding diatas artinya kita membuat sebuah rangkaian kombinasional sehingga

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0001000 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0000.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0111110 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0001.

Page 68: Digital Clock

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0010001maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0010.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0010100 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0011.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0100110 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0100.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 1000100 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0101.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 1000000 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0110.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0011110 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 0111.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0000000 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 1000.

ketika pin-pin SEL ( S0..6 ) mendapatkan input logic 0000100 maka pin-pin

OUTPUT (D0..3) menunjukkan logic 1001.

8) D4 = (!(S14$S7))&(!(S13 $S8))&(!(S12 $S9 ))&(!(S11 $S10 ));

Pada baris coding diatas artinya input dari S14 akan di XOR dengan S7 lalu hasilnya

dilakukan operasi NOT. input dari S13 akan di XOR dengan S8 lalu hasilnya

dilakukan operasi NOT. input dari S12 akan di XOR dengan S9 lalu hasilnya

dilakukan operasi NOT. input dari S11 akan di XOR dengan S10 lalu hasilnya

dilakukan operasi NOT. Dan keempat hasil operasi diatas akan dilakukan operasi

AND. Dan hasilnya akan dikeluarkan pada pin D4.

Page 69: Digital Clock

Rangkaian

Power DC

Power DC lewat adaptor 9V masuk ke dalam regulator 5V sehingga supply tegangan untuk

rangkaian menjadi 5V. Clock pada rangkaian diambil dari rangkaian clock pada jam analog.

Rangkaian tersebut diberi gerbang NOT agar didapatkan clock yang presisi yaitu 1 Hz. Jika

tidak menambahkan gerbang NOT pada rangkaian, maka clock yang dihasilkan tidak mampu

mengubah logika dari high ke low secara sempurna. Hal ini diketahui setelah penulis

melakukan percobaan.

GAL 16V8 dan Seven Segment

Clock yang berasal dari rangkaian clock 1 Hz masuk ke pin 1 dari GAL 16V8 yang digunakan

untuk detik satuan. Perlu diketahui bahwa pin 11 pada seluruh IC GAL yang dipakai pada

rangkaian jam alarm digital ini dihubungkan ke ground agar clock yang masuk ke pin 1

berfungsi sebagai input clock. Pin 10 dihubungkan dengan ground sedangkan pin 20

dihubungkan ke VCC. Pin 13-19 pada seluruh GAL dihubungkan dengan seven segment. Pada

pin 12 akan keluar clock untuk memberikan clock bagi GAL selanjutnya sesuai dengan

penjelasan coding di atas.

Sementara Seven segment yang penulis gunakan adalah seven segment jenis common anode

dimana semua kaki anodenya dihubungkan dengan VCC dan dengan memberikan logika 0

pada kaki cathode dapat mengaktifkan atau menyalakan segment-segment yang ada.

Konfigurasi seluruh pin GAL yang menuju seven segment adalah sebagai berikut:

- Pin 13: c - Pin 17: f

- Pin 14: d - Pin 18: a

Page 70: Digital Clock

- Pin 15: e - Pin 19: b

- Pin 16: g

Diantara pin-pin seven segment dan pin GAL 16V8 dipasangkan resistor 100Ohm, hal ini

dimaksudkan agar pada saat sevensegment menyala arus yang berasal dari seven segment

yang akan masuk ke GAL 16V8 tidak terlalu besar.

LM555

Pin 1 pada IC LM555 dihubungkan dengan ground dan pin 2 berfungsi untuk input trigger.

Trigger ini berasal dari push button yang jika ditekan akan terhubung dengan ground, jika

tidak ditekan maka trigger akan menerima logic high terus menerus (Vcc).

IC LM555 dioperasikan sebagai rangkaian monostable dengan RA= 56KΩ dan C1= 10µF.

C1 ditentukan terlebih dahulu kemudian baru dilakukan pemilihan resistor yang tepat karena

variasi resistor lebih mudah didapatkan. Penggunaan kapasitor 0.01µF digunakan segabai

control voltage pada rangkaian monostable. Rangkaian monostable ini digunakan mulai dari

GAL yang mengatur menit satuan hingga jam puluhan. Sesuai dengan rumus Th=1,1.R.C ,

maka ketika push button ditekan maka LM 555 akan mengeluarkan logic high selama Th =

1,1.56000.10E-6 = 0,616S. Penulis mendapatkan resistor yang tepat pada rangkaian

monostable ini berdasarkan percobaan untuk menghindari bouncing yang terjadi pada saklar

yang digunakan.

Gerbang XOR

Gerbang XOR pada rangkaian ini memiliki inputan dari output LM 555 dan dari pin 12 pada

GAL 16V8. Gerbang ini hanya akan mengeluarkan input 1 apabila kedua inputnya berbeda.

apabila pada GAL yang mengatur detik puluhan clocknya langsung berasal dari pin 12 GAL

Page 71: Digital Clock

sebelumnya. Namun mulai dari menit satuan, clock tidak langsung berasal dari pin 12 GAL

sebelumnya. Melainkan pin 12 GAL sebelumnya harus masuk terlebih dahulu pada gerbang

XOR. Input dari LM 555 dan pin 12 GAL sebelumnya ini akan dikeluarkan menjadi sebuah

logika sebagai clock untuk GAL yang otomatis akan merubah statenya jika mendapatkan

clock rising edge.

Jika kondisi push button tidak ditekan maka pin trigger dari LM 555 terhubung dengan VCC

sehingga rangkaian monostable akan memberikan logic low terus menerus dan logika output

yang dikeluarkan LM 555 adalah 0. Hal ini membuat clock output dari gerbang XOR hanya

terpengaruh oleh lemparan clock GAL sebelumnya yang diberikan pada saat data yang

masuk ke seven segment berupa angka nol (yang sebelumnya telah didefinisikan pada bagian

coding).

Jika GAL sebelumnya belum memberikan clock namun push button telah ditekan maka

inputan yang masuk ke gerbang XOR adalah input logika nol dari pin 12 GAL sebelumnya

dan input logika 1 (one-shot) dari LM 555. Lama dari one-shot (logika high) yang dihasilkan

oleh LM 555 berasal dari konfigurasi R dan C. Sehinga ini membuat output Xor akan

mengeluarkan logic 1 sehingga memberikan clock untuk GAL yang akan disetting

waktunya. Hal ini berlaku untuk GAL menit satuan, menit puluhan, jam satuan, jam

puluhan.

Pada GAL jam satuan terdapat 7 pin yang memberikan logika untuk menyalakan seven

segment. Diantara ketujuh pin tersebut terdapat 3 pin (pin 18,17,16) yang memiliki bit unik

yang akan masuk ke pin 2,3,4 dari GALjam puluhan untuk membedakan antara nilai-nilai

pemberi flag yang telah didefinisikan pada coding sebelumnya (stop & go pada jam

puluhan). Ketiga pin ini akan dihubungkan dengan 3 pin input pada GAL yang mengatur

Page 72: Digital Clock

jam puluhan. Gunanya adalah memberi tahu kondisi dari jam satuan tersebut, tentunya hal

ini diperlukan ketika jam satuan berada pada angka 4,5,6,7,8,9 maka angka 2 tidak boleh

muncul di jam puluhan.

Alarm (Jam Satuan)

Untuk men-setting alarm jam satuan, data diolah pada GAL 22V10. Pada pin 2-8, pada

GAL22V10 merupakan input yang berasal dari pin output GAL 16V8 jam satuan (yang

memberikan data ke -7 segment). Ketujuh input tersebut akan di decode dari kombinasi bit

untuk menyalakan 7-segment menjadi kombinasi bit BCD sesuai dengan nilai 7-segment

yang dinyalakan. Output decode ini (yang keluar dari pin 20-23) akan disambung secara

hardware dengan pin 9, 10 , 11, 14 dan selanjutnya input ini akan dibandingkan dengan

input toggle untuk menset alarm (jam satuan) yang terhubung dengan pin 15-18. Hasil

perbandingan antara input toggle dan output decode apabila sama akan menghasilkan logic 1

pada output compare keseluruhan (pin19). Sehinga ini menandakan angka pada display

seven-segment jam satuan sama dengan inputan biner alarm untuk jam satuan.

Alarm (Jam puluhan)

Untuk menset alarm jam puluhan, data yang terhubung dengan kaki e & f pada seven

segment jam puluhan dihubungkan dengan pin 2 dan 3 dari GAL16V8. Berbeda dengan

setting jam satuan, pada setting jam puluhan hanya butuh 2 pin data. Karena range data pada

jam puluhan hanya ada 3. Sehingga tidak terlalu sulit untuk menemukan kombinasi bit yang

membedakan 3 data tersebut. Penulis menemukan perbedaan bit-bit ke -3 data tersebut pada

pin e dan f pada sevensegment nya. Input kombinasi bit unik ini akan didecode dan

dikeluarkan pada pin 18 dan 19 sebagai output decode. Output decode tersebut akan

dihubungkan secara hardware dengan pin 4 dan 5 untuk di compare dengan toggle setting

Page 73: Digital Clock

alarm jam puluhan dari pin 6 dan 7. Apabila nilai nya sama akan menghasilkan logic

1( setelah di proses melalui gerbang XOR dan AND ) pada pin 17( output compare puluhan )

sehingga ini menandakan angka pada display seven-segment jam puluhan sama dengan

inputan biner alarm untuk jam puluhan dan output ini akan dihubungkan dengan pin 8 untuk

menjadi input kembali, agar siap untuk dibandingkan dengan output compare dari jam

satuan.

Pada GAL16V8 yang sama akan diproses output compare dari GAL22V10 ( GAL22V10 pin

19 dihubungkan ke pin 9 GAL16V8 ) dan output compare dari GAL 16V8 ( pin 17

dihubungkan ke pin 8). Keduanya akan diproses melalui gerbang AND. Jika keduanya

berlogic 1, maka hasil compare akan menimbulkan ( logic 1 ) yang artinya kedua kedua

digit jam telah menunjukkan display yang sama dengan inputan biner dari user sehingga ini

akan membunyikan buzzer yang terhubung pada pin 16.

3.5 Flow Chart

Page 74: Digital Clock

Detik Puluhan dan Menit Puluhan

Start

Initialisasi

Apakah ada

clock?

Next state

End

Apakah S0?

Out Q7

Page 75: Digital Clock

Detik Satuan dan Menit Satuan

Start

Initialisasi

Apakah ada

clock?

Next state

End

Apakah S0?

Out Q7

Page 76: Digital Clock

Jam Puluhan

T Y

Y Y Y

Start

Initialisasi

Apakah ada

clock?

Apakah mode:

[1,2,7]?

Apakah mode:

[0,3,4,5,

Next state

Apakah S0?

B

C

Page 77: Digital Clock

Out Q7

End

B

C

Page 78: Digital Clock

Jam Satuan

Start

Initialisasi

Apakah ada

clock?

Next state

Apakah mode: 0?

Apakah mode: 1?

B

C

Page 79: Digital Clock

B

C

End

Out Q7

C

Apakah S0?

Page 80: Digital Clock

Alarm Jam Puluhan

Start

Initialisasi

D4 = (!(S14 $ S7)) & (!(S13 $ S8)) & (!(S12 $ S9 )) & (!(S11 $ S10 ))

End

Page 81: Digital Clock

Alarm Jam Satuan

Start

Initialisasi

D2 = (!(S2 $ S4)) & (!(S3 $ S5))

D3=S6&S7

End

Apakah D3

berlogic 1 ??

Menghidupkan Buzzer

Page 82: Digital Clock

BAB IV

EVALUASI DAN IMPLEMENTASI

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 83: Digital Clock

BAB IV EVALUASI DAN IMPLEMENTASI

4.1 Data Hasil Percobaan

Data Jam Komputer Jam Alarm Digital1 20 : 27 : 00 20 : 27 : 002 07 : 29 : 16 07 : 29 : 163 09 : 54 : 50 09 : 54 : 50 4 12 : 00 : 00 12 : 00 : 005 21 : 54 : 02 21 : 54 : 02

Pada percobaan di atas, penulis melihat bahwa penggunaan clock pada jam analog untuk

diimplementasikan pada clock jam digital cukup presisi, perlu diketahui bahwa sebelumnya

penulis telah melakukan percobaan menggunakan timer 555 dengan konfigurasi rangkaian

Astable yang telah disetting sedemikian rupa sehingga mendapatkan frekuensi 1Hz, ternyata

setelah 12 jam penulis melihat bahwa pada jam komputer dan jam alarm digital yang penulis

buat mengalamai perbedaan 5 menit. Sehingga penulis memutuskan untuk menggunakan clock

jam analog yang jauh lebih presisi.

Rangkaian Monostable

Page 84: Digital Clock

Pada rangkaian monostable yang penulis buat penulis pada awalnya mengunakan

potentiometer (resistor variable) untuk mengetahui batas waktu bouncing dari switch yang

gunakan. Ternyata pada resistor 56K Ohm dan dengan capacitor 10 µF, penulis berhasil

mengatasi bouncing. Setelah dihitung dengan rumus Th = 1,1.R.C, maka didapatkan Th =

1,1.56000.10E-6 = 0,616S. Sehingga penulis mengerti bahwa bouncing dari switch yang

penulis gunakan ketika dioperasikan tidak lebih dari 0,616S.

Page 85: Digital Clock

BAB V

KESIMPULAN

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 86: Digital Clock

BAB 5 Kesimpulan

1. State yang sama tidak boleh berada dalam penggunaan sequeenced stepper.

2. Rangkaian Bouncing dapat dihilangkan dengan rangkaian monostable.

3. Untuk penggunaan pin 1 sebagai clock maka pin 11 yaitu pin OE pada GAL harus

dihubungkan ke ground.

4. Rangkaian Astable sangat tidak cocok untuk membuat jam yang presisi, maka dari itu

penulis mengunakan clock yang biasa digunakan untuk jam analog.

5. Pada Jam Alarm Digital yang penulis buat tidak dapat menggunakan baterai karena arus

yang tidak cukup, sehingga penulis mengunakan adaptor dengan arus sekitar 1200mA.

6. Nilai R dan C yang penulis pakai dalam rangkaian monostable sudah dilakukan dengan

percobaan sebelumnya, dan penulis berkesimpulan bahwa switch yang penulis buat akan

bouncing sekitar 0,6 detik ketika dioperasikan.

Page 87: Digital Clock

DAFTAR PUSTAKA

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 88: Digital Clock

Daftar Pustaka

http://home.cogeco.ca/~rpaisley4/LM555.html

Page 89: Digital Clock

LAMPIRAN

TUGAS RANCANG SISTEM DIGITAL

SEMESTER GENAP 2007 /2008

BINUS UNIVERSITY

Page 90: Digital Clock

Daftar Harga Komponen yang Digunakan

Komponen Jumlah@Harga

Satuan

Keterangan Harga

GAL 7 @ Rp7.000 16V8 Rp 49.000GAL 1 @ Rp 25.000 22V10 Rp 25.000Socket 7 @ Rp 400 20 Pin Rp 2.800Socket 2 @ Rp 300 14 Pin Rp 600Socket 4 @ Rp 200 8 Pin Rp 800Socket 1 @ Rp 500 24 Pin Rp 500TIMER 4 @ Rp 1.500 LM 555 Rp 6.000

TTL 1 @ Rp 2.500 74LS04 Rp 2.500TTL 1 @ Rp 2.500 74LS86 Rp 2.500

Regulator 1 @ Rp 2.000 7805 Rp 2.000Resistor 42 @ Rp 100 100 Ohm Rp 4200Resistor 1 @ Rp 100 1K Ohm Rp 100Resistor 4 @ Rp100 10K Ohm Rp 400Resistor 4 @ Rp 200 56K Ohm Rp 800

Capacitor 4 @ Rp 300 10 µF Rp 1.200Capacitor 4 @ Rp 300 0,01 µF Rp 1.200

Seven Segment 6 @ Rp 10.000 Common Anode Rp 60.000Toggle Switch 6 @ Rp 1.500 - Rp 9.000Push Button 4 @ Rp 2.000 - Rp 8.000

LED 1 @ Rp 300 Merah Rp 300Saklar 2 @ Rp 1.500 On-Off Rp 3000

Socket DC 1 @ 2.500 - Rp 2.500Buzzer 1 @ Rp 3000 - Rp 3.000

MISC (Lain-Lain) -

Kabel, Tulang Ikan,

PCB, Connector,

Kotak, Stiker

Rp 60.000

Total Rp 245.400

Data Sheet Ic yang Digunakan

GAL 16V8

Page 91: Digital Clock
Page 92: Digital Clock

GAL 22V10

LM 555

Page 93: Digital Clock
Page 94: Digital Clock
Page 95: Digital Clock

74LS04 ( NOT )

Page 96: Digital Clock
Page 97: Digital Clock

74LS86 (XOR)

Page 98: Digital Clock