BINUS UNIVERSITY
JAKARTA
2008
1000835316
1000836445
1000837624
1000838085
1000838330
Asisten Pembimbing
Ronny Haryanto
BINUS UNIVERSITY
JAKARTA
1000835316
1000836445
1000837624
1000838085
1000838330
2008
Binus University
Jurusan Sistem Komputer
Tugas Rancang Sistem Digital
semester genap tahun 2007/2008
JAM ALARM DIGITAL
Nama Anggota Kelompok
Teddy Tjahyadi
Friska Setiokoadiputro
Stephen
Jeffry Vernando Bustam
Daniel Giovanni
1000835316
1000836445
1000837624
1000838085
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 OnOff, Buzzer, Socket DC.
DAFTAR ISI
Halaman luar makalah.................................................................................................
Halaman dalam makalah..............................................................................................
Abstrak.........................................................................................................................
Daftar isi......................................................................................................................
i
ii
iii
iv
Bab I Pendahuluan..................................................................................................... 1
1.1 Latar Belakang........................................................................................... 2
1.2 Tujuan dan Manfaat................................................................................... 2
Bab II Landasaran Teori..............................................................................................
2.1 Programmable Logic device (PLD)..........................................................
2.2 Software Development Tools (Wincupl)..................................................
2.3 Rangkaian Sekuensial (Stepper) pada PLD..............................................
2.4 Seven Segment.........................................................................................
2.5 Timer Dan Multivibrator...........................................................................
4
5
8
15
19
21
35
36
38
39
40
69
83
85
BAB I
PENDAHULUAN
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
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 logiklogik 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.
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.
BAB II
LANDASAN TEORI
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
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.
: Pin tempat masuknya Clock, untuk rangkaian D FlipFlop yang berada di dalam GAL
Pin 2,3,4,5,6,7,8,9
Pin 10
Pin 11
Pin 12,13,14,15,16,1,71,8,19
Pin 20
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 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.
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.
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
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.
in 0 & in1 ;
/*gerbang and*/
b) Or
in 0 # in1 ;
/*gerbang or*/
c) Not
! in0 ;
/*gerbang not*/
d) XOR
in0 $ in1
Penulisannya dengan cara menempatkan character & diantara kedua inputnya lalu diberi
tanda kurung serta di depannya diletakkan character !
f) NOR
! ( in0 # in1 ) ;
Penulisannya dengan cara menempatkan character # diantara kedua inputnya lalu diberi
tanda kurung serta di depannya diletakkan character !
Penulisannya dengan cara menempatkan character $ diantara kedua inputnya lalu diberi
tanda kurung serta di depannya diletakkan character !
$define negasi !
$ define and &
$define or #
$define xor $
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.
Hal diatas dapat diganti dengan menggabungkannya ke dalam sebuah kalimat perintah
sebagai berikut :
Pin [2..5] = [in0..3];
Ketiga pin diatas tidak mempunyai maksud yang berbeda.Pada intinya ketiganya
mempunyai maksud yang sama dengan pendeklarasian pin input secara umum di atas.
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 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).
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
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 ;
PIN
[2..3]
CLK
=
; /*
[D0..1]
*/
; /*
*/
[12..15]
= [Q3..0]
$define S0 'b'0000
; /*
*/
$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
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;
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.
Logika-logika seperti inilah yang nantinya akan diterapkan pada coding pada Jam Alarm
Digital.
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.
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
Pin Ground
Pin 2
Pin 3
Pin Output
Pin 4
Flip-Flop yang
mengontrol tegangan
Pin 7
Pin 8
Pin Vcc merupakan pin input daya untuk LM554 agar bekerja.
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).
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.
Duty Cycle =
Rangkaian pembangkit signal clock sering disebut multivibrator.
Multivibrator adalah suatu rangkaian yang terdiri dari dua buah piranti aktif
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.
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
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.
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)
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.
Dengan demikian,duty cycle dari operasi astable ini dapat dihitung dengan rumus
:
D=
Siklus periode dari gelombang keluaran (pin 3) dapat digambarkan sebagai berikut:
Keterangan :
t
: berlangsungnya periode
tL
tH
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
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
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 opamp 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.
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
BAB III
PERANCANGAN SISTEM
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
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.
3.3Skematik Rangkaian
detsat;
PartNo
00 ;
Date
3/26/2008 ;
Revision 01 ;
Designer Engineer ;
Company
Atmel ;
Assembly None ;
Location
Device
;
G16V8 ;
= CLK
; /*
$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
sequenced count {
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.
7) sequenced count {
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.
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...
detpul ;
PartNo
00 ;
Date
3/27/2008 ;
Revision 01 ;
Designer Engineer ;
Company
Atmel ;
Assembly None ;
Location
Device
;
G16V8 ;
= CLK
; /*
$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 {
*/
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.
$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.
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...
jamsat ;
PartNo
00 ;
Date
3/27/2008 ;
Revision 01 ;
Designer Engineer ;
Company
Atmel ;
Assembly None ;
Location
Device
;
G16v8 ;
= CLK
; /*
*/
PIN
= RST ;
$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
sequenced count {
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.
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
9) sequenced count {
present S8 if go next S9 ;
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...
jampul ;
PartNo
00 ;
Date
5/20/2008 ;
Revision 01 ;
Designer Engineer ;
Company
Atmel ;
Assembly None ;
Location
Device
;
G16V8 ;
PIN
[2..4]
CLK
= [D0..2]
; /*
*/
; /*
*/
[12..19]
= [Q0..7]
$define S0 'b'00010001
$define S1 'b'01111101
$define S2 'b'00100010
$define S3 'b'00000000
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 ;
; /*
*/
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
9) sequenced count {
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...
Alarm1 ;
PartNo
00 ;
Date
4/1/2008 ;
Revision 01 ;
Designer Engineer ;
Company
Atmel ;
Assembly None ;
Location
Device
;
G16V8 ;
[2..9]
= [S0..7]
; /*
*/
= [D0..3]
; /*
*/
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.
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
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.
ALARM2 ;
PartNo
00 ;
Date
4/1/2008 ;
Revision 01 ;
Designer Engineer ;
Company
Atmel ;
Assembly None ;
Location
Device
;
G22V10 ;
[8..2]
[S0..6]
[S10..14]
;
/*
*/
; /*
*/
= [D0..4]
FIELD SEL=[S0..6];
FIELD OUTPUT=[D0..3];
; /*
*/
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.
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.
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
Pin 15: e
Pin 16: g
- Pin 19: b
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= 10F.
C1 ditentukan terlebih dahulu kemudian baru dilakukan pemilihan resistor yang tepat karena
variasi resistor lebih mudah didapatkan. Penggunaan kapasitor 0.01F 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
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
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
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.5Flow Chart
Start
Initialisas
i
Apakah
ada clock?
Next state
Apakah
S0?
Out Q7
End
Start
Initialisasi
Apakah
ada clock?
Next state
Apakah
S0?
Out Q7
End
Jam Puluhan
Start
Initialisasi
C
Apakah
ada clocYk?
ApaYkaYh Y
mode: [1,2,7]?
Next state
Apakah
S0?
Apakah
mode: [0,3,4,5,
Out Q7
C
End
Jam Satuan
Start
Initialisasi
C
Apakah
ada clock?
Apakah
mode: 1?
Next state
Apakah
mode: 0?
Apakah
S0?
Out Q7
C
End
Initialisasi
End
Initialisasi
D3=S6&S7
Apakah
D3
berlogic 1 ??
Menghidupkan
Buzzer
End
BAB IV
EVALUASI DAN IMPLEMENTASI
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
Jam Komputer
20 : 27 : 00
07 : 29 : 16
09 : 54 : 50
12 : 00 : 00
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
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.
BAB V
KESIMPULAN
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
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.
DAFTAR PUSTAKA
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
Daftar Pustaka
http://home.cogeco.ca/~rpaisley4/LM555.html
LAMPIRAN
TUGAS RANCANG SISTEM DIGITAL
SEMESTER GENAP 2007 /2008
BINUS UNIVERSITY
Jumlah@Harga
GAL
GAL
Socket
Socket
Socket
Socket
TIMER
TTL
TTL
Regulator
Resistor
Resistor
Resistor
Resistor
Capacitor
Capacitor
Seven Segment
Toggle Switch
Push Button
LED
Saklar
Socket DC
Buzzer
Satuan
7 @ Rp7.000
1 @ Rp 25.000
7 @ Rp 400
2 @ Rp 300
4 @ Rp 200
1 @ Rp 500
4 @ Rp 1.500
1 @ Rp 2.500
1 @ Rp 2.500
1 @ Rp 2.000
42 @ Rp 100
1 @ Rp 100
4 @ Rp100
4 @ Rp 200
4 @ Rp 300
4 @ Rp 300
6 @ Rp 10.000
6 @ Rp 1.500
4 @ Rp 2.000
1 @ Rp 300
2 @ Rp 1.500
1 @ 2.500
1 @ Rp 3000
MISC (Lain-Lain)
Keterangan
Harga
16V8
22V10
20 Pin
14 Pin
8 Pin
24 Pin
LM 555
74LS04
74LS86
7805
100 Ohm
1K Ohm
10K Ohm
56K Ohm
10 F
0,01 F
Common Anode
Merah
On-Off
Kabel, Tulang Ikan,
Rp 49.000
Rp 25.000
Rp 2.800
Rp 600
Rp 800
Rp 500
Rp 6.000
Rp 2.500
Rp 2.500
Rp 2.000
Rp 4200
Rp 100
Rp 400
Rp 800
Rp 1.200
Rp 1.200
Rp 60.000
Rp 9.000
Rp 8.000
Rp 300
Rp 3000
Rp 2.500
Rp 3.000
PCB, Connector,
Rp 60.000
Kotak, Stiker
Total
Rp 245.400
GAL 22V10
LM 555
74LS04 ( NOT )
74LS86 (XOR)