OLEH:
YOGYAKARTA
2016
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yang Maha Esa atas segala rahmat-Nya sehingga
makalah tugas besar elektronika digital yang berjudul Jam Digital Jadwal Sholat
Berbasis Counter Dengan Kendali ATMega16 ini dapat tersusun hingga selesai. Tidak
lupa kami juga mengucapkan banyak terimakasih atas bantuan dari pihak yang telah
berkontribusi dengan memberikan sumbangan baik materi maupun pikirannya.
Makalah ini disusun sebagai salah satu kriteria penilaian mata kuliah
Elektronika Digital Program Studi Elektronika dan Instrumentasi, Departemen Ilmu
Komputer dan Elektronika, Fakultas Matematika dan Ilmu Pengetahuan Alam,
Universitas Gadjah Mada.
Penulis
ii
DAFTAR ISI
Halaman
HALAMAN JUDUL ........................................................................................... i
KATA PENGANTAR ......................................................................................... ii
DAFTAR ISI ....................................................................................................... iii
INTISARI ............................................................................................................. iv
iii
INTISARI
Jam digital jadwal sholat merupakan suatu alat penunjuk waktu saat ini yang
dilengkapi dengan jadwal sholat lima waktu beserta alarm untuk mengingatkan jamaah
untuk mengumandangkan adzan. Jam digital jadwal sholat ini menggunakan Counter
sebagai komponen utama penghitung waktu. Selain counter, digunakan pula
mikrokontroller ATMega16 sebagai pengendali jadwal waktu sholat serta pemberi
instruksi kapan alarm dibunyikan, yaitu ketika waktu saat ini sama dengan waktu sholat.
Pada rangkaian ini digunakan astable multivibrator sebagai pembangkit pulsa 1 Hz.
Selanjutnya, pulsa akan dikirim ke rangkaian counter divide by 10, kemudian ke divide
by 6, lalu ke divide by 10 dan 6 lagi, dan terakhir menuju rangkaian divide by 24 untuk
membentuk rangkaian jam digital yang menampilkan waktu saat ini serta dihubungkan
ke 7-Segment BCD Display. Digunakan pula multiplexer untuk menyeleksi data dari 2
input berupa output dari counter, dan selector adalah hasil keluaran push button.
iv
BAB I
PENDAHULUAN
A. LATAR BELAKANG
Jam adalah alat yang berfungsi untuk menunjukkan waktu. Dahulu jam terbuat
dari bahan-bahan mekanik saja, namun sekarang telah semakin maju dengan
ditambahkannya komponen elektronik. Tak lagi hanya bekerja secara mekanis, jam kini
dapat bekerja secara elektronis dengan menggunakan tenaga baterai. Lebih jauh lagi,
jam kini tidak hanya berbentuk analog, namun sudah terdapat pula jam digital.
Semua hal kini berpatokan pada waktu, begitu pula dengan salah satu kewajiban
umat Muslim, yakni sholat. Sholat di zaman modern ini tak lagi hanya berpatokan pada
posisi matahari, tapi juga dapat ditentukan oleh waktu yang ada pada jam. Dengan ilmu
pengetahuan yang ada saat ini, waktu sholat dapat diprediksi bahkan hingga beberapa
waktu ke depan.
Pengingat waktu atau alarm sangat diperlukan sebagai penanda suatu kegiatan,
seperti adzan dan iqomah pada saat sholat. Dengan adanya alarm, para muadzin dan
jamaah tidak akan kebingungan menentukan saat adzan dan iqomah harus
dikumandangkan. Juga sholat akan selalu dilaksanakan dengan lebih tepat waktu.
B. TUJUAN
1. Memahami implementasi komponen-komponen elektronika untuk membuat
rangkaian jam digital waktu sholat
2. Memahami prinsip rangkaian elektronika yang digunakan dalam pembuatan
jam digital waktu sholat
3. Mengimplementasikan penggunaan IC Counter 74LS93 untuk membuat
rangkaian jam digital yang dapat menampilkan waktu
1
4. Mengimplementasikan penggunaan ATMega16 sebagai pengendali waktu
untuk dapat menjadi pengingat waktu sholat wajib 5 waktu
5. Mengimplementasikan penggunaan Buzzer sebagai pengingat untuk adzan
2
BAB II
LANDASAN TEORI
Jam digital jadwal sholat adalah suatu alat yang digunakan untuk menghitung
waktu saat ini dan memberikan peringatan berupa alarm jika waktu saat ini sama
dengan waktu sholat. Rangkaian ini menggunakan komponen utama berupa IC Counter
74LS93 untuk menampilkan jam digital, serta mikrokontroller ATMega16 untuk
menampilkan jadwal sholat dan alarm. Jam digital jadwal sholat ini menggunakan
rangkaian astable multivibrator dengan IC 555 sebagai penghasil sinyal yang
menghasilkan pulsa satu gelombang per detik (1 Hz). Jam digital jadwal sholat dibuat
dalam format 24 jam.
3
di-reset. Divide by 6 akan menghitung dari 1-6 dan akan menambahkan angka 1 pada
satuan yang lebih besar (detik ke menit dan menit ke jam) setiap mencapai angka 6,
serta akan me-reset menjadi 0 ketika mencapai angka 6. Dengan demikian, pada
rangkaian ini output juga akan menghasilkan nilai 1 ketika di-reset. Divide by 24 akan
menghitung dari 1-24 dan akan me-reset menjadi 0 ketika mencapai angka 24.
Divide By 10
INPUT OUTPUT
BCD IC 74LS93
QD(H) QC(I) QB(J) QA(K) MR(Y) Product Term
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 0
8 1 0 0 0 0
9 1 0 0 1 0
A 1 0 1 0 1 QD.QB = HJ
Divide By 6
INPUT
OUTPUT
BCD IC 74LS93
QD(H) QC(I) QB(J) QA(K) MR(Y) Product Term
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 1 QC.QB = IJ
4
Divide By 24
INPUT
OUTPUT Product Term
BCD IC 74LS93 (A) IC 74LS93 (B)
QD(D) QC(E) QB(F) QA(G) QD(H) QC(I) QB(J) QA(K) MR IC A(X) MR IC B (Y)
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 0 0
2 0 0 0 0 0 0 1 0 0 0
3 0 0 0 0 0 0 1 1 0 0
4 0 0 0 0 0 1 0 0 0 0
5 0 0 0 0 0 1 0 1 0 0
6 0 0 0 0 0 1 1 0 0 0
7 0 0 0 0 0 1 1 1 0 0
8 0 0 0 0 1 0 0 0 0 0
9 0 0 0 0 1 0 0 1 0 0
0A 0 0 0 0 1 0 1 0 0 1 HJ
10 0 0 0 1 0 0 0 0 0 0
11 0 0 0 1 0 0 0 1 0 0
12 0 0 0 1 0 0 1 0 0 0
13 0 0 0 1 0 0 1 1 0 0
14 0 0 0 1 0 1 0 0 0 0
15 0 0 0 1 0 1 0 1 0 0
16 0 0 0 1 0 1 1 0 0 0
17 0 0 0 1 0 1 1 1 0 0
18 0 0 0 1 1 0 0 0 0 0
19 0 0 0 1 1 0 0 1 0 0
1A 0 0 0 1 1 0 1 0 0 1 GHJ
20 0 0 1 0 0 0 0 0 0 0
21 0 0 1 0 0 0 0 1 0 0
22 0 0 1 0 0 0 1 0 0 0
23 0 0 1 0 0 0 1 1 0 0
24 0 0 1 0 0 1 0 0 1 1 FI
Divide by 10 = QD.QB
Divide by 6 = QC.QB
Divide by 24 A = FI
Divide by 24 B = HJ(1+G) + FI = HJ + FI
5
INPUT OUTPUT DISPLAY
D C B A a b c d e f g h
0 0 0 0 1 1 1 1 1 1 0 0 0
0 0 0 1 0 1 1 0 0 0 0 0 1
0 0 1 0 1 1 0 1 1 0 1 0 2
0 0 1 1 1 1 1 1 0 0 1 0 3
0 1 0 0 0 1 1 0 0 1 1 0 4
0 1 0 1 1 0 1 1 0 1 1 0 5
0 1 1 0 1 0 1 1 1 1 1 0 6
0 1 1 1 1 1 1 0 0 0 0 0 7
1 0 0 0 1 1 1 1 1 1 1 0 8
1 0 0 1 1 1 1 1 0 1 1 0 9
1 0 1 0 1 1 1 0 1 1 1 0 A
1 0 1 1 0 0 1 1 1 1 1 0 b
1 1 0 0 1 0 0 1 1 1 0 0 C
1 1 0 1 0 1 1 1 1 0 1 0 d
1 1 1 0 1 0 0 1 1 1 1 0 E
1 1 1 1 1 0 0 0 1 1 1 0 F
6
BAB III
A. RANCANGAN SISTEM
1. Komponen yang digunakan
1.1. LED
Sumber: http://elektronika-dasar.web.id
7
pada umumnya, kemampuan mengalirkan arus pada LED cukup rendah
yaitu maksimal 20 mA. Warna-warna cahaya yang dipancarkan oleh
LED dalam rangkaian ini adalah merah.
Sumber: http://www.electronics-tutorials.ws
Gambar 3.2 Rangkaian 7-Segment Common Cathode Display
8
Pada rangkaian Jam digital jadwal sholat, jenis 7 segment yang
digunakan adalah LED 7 Segmen Tipe Common Cathode (Katoda). Pada
LED 7 Segmen jenis Common Cathode (Katoda), Kaki Katoda pada
semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan Kaki
Anoda akan menjadi Input untuk masing-masing Segmen LED. Kaki
Katoda yang terhubung menjadi 1 Pin ini merupakan Terminal Negatif (-
) atau Ground sedangkan Signal Kendali (Control Signal) akan diberikan
kepada masing-masing Kaki Anoda Segmen LED.
Sumber: http://www.sigmatone.com
1.4. Resistor
9
Sumber: http://zonaelektro.net
Pada rangkaian jam digital jadwal sholat, jenis resistor yang digunakan
adalah resistor tetap. Resistor Tetap adalah Resistor yang nilai
hambatannya tetap dan tidak dapat diubah – ubah nilainya. Besar
kecilnya kemampuan Resistor untuk dilewati arus tergantung dari bahan
pembuat Resistor itu sendiri. Resistor tetap ini digunakan pada rangkaian
astable multivibrator pembangkit pulsa untuk menahan arus yang
mengalir pada rangkaian tersebut. Pada rangkaian astable multivibrator,
digunakan dua buah resistor tetap yang disusun secara paralel dengan
resistansi masing-masing sebesar 14,6 kΩ dan 1 kΩ.
1.5. Kapasitor
Kapasitor adalah suatu komponen elektronika yang dapat menyimpan
dan melepaskan muatan listrik atau energi listrik. Kemampuan untuk
menyimpan muatan listrik pada kapasitor disebut dengan kapasitansi atau
kapasitas. Seperti halnya hambatan, kapasitor dapat dibagi menjadi
kapasitor tetap dan kapasitor tidak tetap.
Sumber: http://zonaelektro.net
10
Pada rangkaian jam digital jadwal sholat, jenis kapasitor yang digunakan
adalah kapasitor tetap. Kapasitor tetap merupakan kapasitor yang
mempunyai nilai kapasitas yang tetap. Kapasitor tetap ini digunakan
pada rangkaian astable multivibrator untuk menyimpan muatan listrik,
dan kemudian melepaskannya. Kapasitor yang digunakan masing-masing
memiliki kapasitansi sebesar 47 μF dan 10 nF yang terhubung secara
paralel.
Sumber: http://www.abi-blog.com
Gambar 3.6 Simbol Dan Bentuk Fisik Push Button Switch
Pada rangkaian jam digital jadwal sholat, push button berfungsi sebagai
pengatur waktu jam digital. Ketika saklar ini ditekan, maka waktu yang
dipilih akan meningkat secara terus menerus sampai saklar ini dilepas.
Saklar ini bekerja sebagai pemberi sinyal masukan pada rangkaian listrik,
11
selama bagian knopnya ditekan maka alat ini akan bekerja sehingga
kontak-kontaknya akan terhubung dan sebaliknya ketika knopnya dilepas
kembali maka kontaknya akan terlepas.
1.7. IC 74LS93
IC 74LS93 adalah IC counter 4-bit yang digunakan untuk membuat
rangkaian divide by 10, 6, dan 24. Pencacah atau penghitung (counter)
ini merupakan piranti yang penting fungsinya dalam suatu sistem
rangkaian digital. Suatu pencacah akan menghitung jumlah daur yang
dilewati oleh pulsa clock pemicunya. Rangkaian ini tersusun dari
beberapa buah FF JK yang terpicu pada pinggiran positif atau negatif,
dengan fungsi-fungsi set dan clear-nya.
12
b. Ketika pulsa clock pertama tiba (clock = 1), maka FF A akan dipicu
pada pinggiran negatifnya, sehingga diperoleh A = 1, sedangkan FF
lainnya belum bekerja dan tetap pada keadaan awalnya. Untuk daur
yang pertama diperoleh keluaran DCBA = 0001.
c. Ketika pulsa clock kedua tiba, maka FF A kembali dipicu pada
pinggiran negatifnya, sehingga keluarannya berubah menjadi A = 0.
Perubahan keadaan pada A merupakan picuan negatif pada FF B,
sehingga menghasilkan B = 1. sedangkan FF C dan D tetap pada
keadaan awalnya. Untuk daur ini diperoleh DCBA = 0010.
d. Ketika pulsa clock ketiga tiba, maka FF A akan dipicu kembali pada
pinggiran negatifnya, sehingga keluaran A menjadi tinggi. Sedangkan
FF lainnya tetap berada pada keadaan terakhirnya. Dengan demikian
pada daur ini diperoleh DCBA = 0011.
e. Ketika pulsa clock keempat tiba, FF A akan dipicu kembali pada
pinggiran negatifnya, sehingga keluaran FF A menjadi rendah.
Perubahan keluaran FF A merupakan picuan negatif untuk FF B
sehingga keluaran FF B berayun menjadi rendah (B = 0). Perubahan
keluaran FF B ini akan memicu FF C sehingga keluaran dari FF C
yang semula rendah menjadi tinggi (C = 1). Karena FF D belum
terpicu, maka keluaran pada daur ini DCBA = 0100.
1.8. IC 74LS157
IC 74LS157 merupakan IC yang terdiri dari 4 buah multiplexer 2x1.
Sebuah Multiplexer adalah rangkaian logika yang menerima beberapa
input data digital dan menyeleksi salah satu dari input tersebut pada saat
tertentu, untuk dikeluarkan pada sisi output. Seleksi data-data input
dilakukan oleh selector line, yang juga merupakan input dari multiplexer
tersebut. Selektor pada Multiplexer akan memilih saklar yang akan
13
dihubungkan. Jumlah masukan selektor adalah ‘n’ yang dapat
menyeleksi ‘2n’ saluran masukan.
14
rendah seperti 7555 dan TLC555. Nama IC 555 diambil dari 3 buah
resistor yang terdapat dalam kemasan IC dengan nilai masing-masing
5kΩ.
Berikut ini adalah susunan dan konfigurasi Kaki IC 555 yang berbentuk
DIP 8 kaki.
15
f. Kaki 6 (THRES): Terminal Threshold, digunakan untuk membuat
Output menjadi “Low”. Kondisi “Low” pada Output ini akan terjadi
apabila Kaki 6 atau Kaki Threshold ini berubah dari Low menuju >
1/3Vcc (lebih besar dari 1/3Vcc).
g. Kaki 7 (DISCH) : Terminal Discharge. Pada saat Output “Low”,
Impedansi kaki 7 adalah “Low”. Sedangkan pada saat Output
“High”, Impedansi kaki 7 adalah “High”.
h. Kaki Discharge ini biasanya dihubungkan dengan Kapasitor yang
berfungsi sebagai penentu interval pewaktuan. Kapasitor akan
mengisi dan membuang muatan seiring dengan impedansi pada kaki
7. Waktu pembuangan muatan inilah yang menentukan Interval
Pewaktuan dari IC555.
i. Kaki 8 (Vcc) : Terminal Positif sumber tegangan DC (sekitar 4,5V
atau 16V).
1.10. IC 7408
IC 7408 merupakan IC yang berisi 4 buah gerbang logika AND. Gerbang
logika AND adalah gerbang logika yang menghasilkan output bernilai 1
jika kedua inputnya bernilai 1, dan akan menghasilkan output bernilai 0
jika salah satu atau kedua inputnya bernilai 0. Pada rangkaian jam digital
jadwal sholat, gerbang logika AND digunakan pada rangkaian divide by
24.
16
bernilai 0, dan akan menghasilkan output bernilai 1 jika salah satu atau
kedua inputnya bernilai 1. Pada rangkaian jam digital jadwal sholat,
gerbang logika OR digunakan pada rangkaian divide by 24.
17
Sumber: Atmel
18
d. CPU yang terdiri dari 32 buah register.
e. User interupsi internal dan eksternal
f. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi
serial
g. Fitur Peripheral:
Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode
compare
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode
compare, dan mode capture
Real time counter dengan osilator tersendiri
Empat kanal PWM dan Antarmuka komparator analog
8 kanal, 10 bit ADC
Byte-oriented Two-wire Serial Interface
Watchdog timer dengan osilator internal
1.13. Buzzer
Buzzer Listrik adalah sebuah komponen elektronika yang dapat
mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer
yang merupakan sebuah perangkat audio ini sering digunakan pada
rangkaian Alarm pada Jam Tangan, Bel Rumah, dan perangkat
peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan
digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan
Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah,
relatif lebih ringan dan lebih mudah dalam menggabungkannya ke
Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga
Transduser ini juga sering disebut dengan Beeper.
19
Sumber: http://teknikelektronika.com
Gambar 3.13 Simbol Dan Bentuk Fisik Buzzer
Pada rangkaian jam digital jadwal sholat, buzzer ini digunakan sebagai
alarm untuk memberitahu bahwa waktu saat ini sama dengan waktu sholat,
sehingga memberi petunjuk untuk segera mengumandangkan adzan. Buzzer
ini menggunakan efek Piezoelectric untuk menghasilkan suara atau
bunyinya. Tegangan listrik yang diberikan ke bahan Piezoelectric akan
menyebabkan gerakan mekanis, gerakan tersebut kemudian diubah menjadi
suara atau bunyi yang dapat didengar oleh telinga manusia dengan
menggunakan diafragma dan resonator.
1.14. IC ULN2803
Pada rangkaian jam digital jadwal sholat, IC ULN2803 ini digunakan untuk
menghubungkan rangkaian digital dengan buzzer, sehingga ketika jam
digital menunjukkan waktu yang sama dengan jadwal sholat, buzzer dapat
dibunyikan. Berikut ini adalah rangkaian logika di dalam IC ULN2803:
20
Sumber: Texas Instruments
Gambar 3.14 Rangkaian logika dalam IC ULN2803
21
PCB dari skematik yang kita buat. Software ini bagus digunakan untuk
desain rangkaian mikrokontroller.
Gambar 3.15 Tampilan depan software simulasi Proteus Design Suite 8.3
22
i. Mendukung pembuatan PCB yang di-update secara langsung dari
program ISIS ke program pembuat PCB-ARES.
Pada proses perancangan Jam digital jadwal sholat, software Proteus ini
digunakan untuk membuat rangkaian digital maupun analog jam digital
jadwal sholat. Dengan software ini, rangkaian yang telah dibuat dan
23
diprogram dapat disimulasikan sehingga dapat diketahui hasil output
rangkaian tersebut.
Pada perancangan jam digital jadwal sholat, software AVR Studio ini
digunakan untuk membuat program dalam bahasa Assembly pada
24
pemrograman ATMega16. Program ini dibuat untuk menampilkan
jadwal sholat lima waktu serta mengatur waktu alarm dibunyikan.
( ) ( )
dimana waktu untuk pulsa 1 adalah :
( )( )
dan waktu untuk pulsa 0 adalah :
25
( )
Dari perhitungan tersebut diperoleh nilai untuk komponen R1, R2, dan C1.
Perbandingan antara waktu sinyal 1 dan 0 dalam 1 periode disebut duty-cycle.
Dengan IC 555 nilai minimum untuk R1 adalah 1kΩ yang berarti kita tidak
dapat memperoleh duty cycle tepat 50%. Jika kita memakai R1 < 1kΩ dapat
menyebabkan kelebihan arus dan dapat merusak IC 555. Untuk mendapatkan
frekuensi duty cycle sekitar 50% maka kita menggunakan R1 dengan hambatan
1kΩ. Untuk mendapatkan frekuensi sekitar 1 Hz maka nilai f = 1 Hz.
Substitusikan nilai R1 dan f
( ) ( )
maka
( ) ( )
( ) ( )
( )
didapatkan
( )
Dengan plotting R2 (sumbu y) dan C1 (sumbu x) kita mendapatkan grafik sbb:
Dari grafik tersebut diperoleh nilai R2 = 14,6 kΩ dan C1 = 47μF, namun karena
ketika menggunakan simulasi Proteus terjadi delay pemrosesan (simulasi tidak
26
berjalan secara real-time) yang disebabkan terjadinya excessive CPU load, maka
pada simulasi ini nilai R2 = 10,3 kΩ agar nilai waktu detik pada simulasi sesuai
dengan waktu sebenarnya.
2. Rangkaian Divide by 10
3. Rangkaian Divide by 6
27
Untuk rangkaian divide by 6, QA dihubungkan ke CKB untuk menggunakan
counter 4 bit. QA adalah LSB dan QD adalah MSB. Input clock dihubungkan ke
CKA. Untuk mengimplementasikan divide by 6 atau MOD6 counter, QD
dihubungkan ke R0(2) dan QB dihubungkan ke R0(1). Sehingga ketika
mencapai 6 (0110 biner) dimana QC bernilai 1 dan QB bernilai 1, nilai akan di-
reset menjadi 0. Output dari QD juga dihubungkan ke counter lainnya sebagai
input clock dari divide by 6. Untuk menampilkan nilai counter, QD,...QA
dihubungkan ke 7-Segment BCD Display.
4. Rangkaian Divide by 24
28
Divide By 24
INPUT
OUTPUT Product Term
BCD IC 74LS93 (A) IC 74LS93 (B)
QD(D) QC(E) QB(F) QA(G) QD(H) QC(I) QB(J) QA(K) MR IC A(X) MR IC B (Y)
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 0 0
2 0 0 0 0 0 0 1 0 0 0
3 0 0 0 0 0 0 1 1 0 0
4 0 0 0 0 0 1 0 0 0 0
5 0 0 0 0 0 1 0 1 0 0
6 0 0 0 0 0 1 1 0 0 0
7 0 0 0 0 0 1 1 1 0 0
8 0 0 0 0 1 0 0 0 0 0
9 0 0 0 0 1 0 0 1 0 0
0A 0 0 0 0 1 0 1 0 0 1 HJ
10 0 0 0 1 0 0 0 0 0 0
11 0 0 0 1 0 0 0 1 0 0
12 0 0 0 1 0 0 1 0 0 0
13 0 0 0 1 0 0 1 1 0 0
14 0 0 0 1 0 1 0 0 0 0
15 0 0 0 1 0 1 0 1 0 0
16 0 0 0 1 0 1 1 0 0 0
17 0 0 0 1 0 1 1 1 0 0
18 0 0 0 1 1 0 0 0 0 0
19 0 0 0 1 1 0 0 1 0 0
1A 0 0 0 1 1 0 1 0 0 1 GHJ
20 0 0 1 0 0 0 0 0 0 0
21 0 0 1 0 0 0 0 1 0 0
22 0 0 1 0 0 0 1 0 0 0
23 0 0 1 0 0 0 1 1 0 0
24 0 0 1 0 0 1 0 0 1 1 FI
Divide by 24 A = FI
Divide by 24 B = HJ(1+G) + FI = HJ + FI
29
Persamaan Boolean didapatkan dengan cara ketika MR IC (output) bernilai
1 maka nilai input yang bernilai 1 di-AND-kan lalu persamaan Boolean setiap MR
IC yang bernilai 1 tersebut diubah menjadi persamaan SOP.
Persamaan Boolean reset nilai dari puluhan jam yaitu ketika counter
mencapai angka 24 yaitu MR IC A (X) = FI sehingga dengan sebuah gerbang
logika AND yang inputnya dihubungkan dengan F dan I, outputnya dihubungkan
ke R0 IC A atau MR IC A.
Persamaan Boolean reset nilai dari satuan jam yaitu ketika counter mencapai
angka 10, 20 dan 24 yaitu MR IC B = HJ + FI sehingga dengan sebuah gerbang
logika AND yang inputnya dihubungkan dengan H dan J, outputnya dihubungkan
ke input OR. Sebuah gerbang logika OR yang inputnya adalah FI dan HJ,
outputnya dihubungkan ke R0 IC B atau MR IC B.
Dengan bentuk rangkaian counter seperti rangkaian di atas maka satuan jam
akan di-reset menjadi 0 ketika mencapai angka 10 dan 20. Selain itu puluhan dan
satuan jam keduanya akan di-reset ketika mencapai angka 24.
Sumber: Atmel
Gambar 3.22 Pinout ATMega16
30
Sistem minimum ATMega16 bisa hanya terdiri dari mikrokontroller ATMega16
saja tetapi dengan syarat frekuensinya hanya 1 MHz, oleh karena itu dengan
menggunakan XTAL maka frekuensi ATMega16 bisa lebih besar.
Untuk memperbesar frekuensi kerja ATMega16 agar bisa lebih besar daripada 1
MHz maka dapat menggunakan rangkaian system minimum ATMega16
31
Pada rangkaian di atas digunakan XTAL 12MHz dan 2 kapasitor 22pF yang
digunakan untuk memperbesar frekuensi kerja ATMega16 menjadi 12MHz.
Gambar 3.25 Bagian rangkaian counter waktu yang terdiri dari rangkaian Astable
Multivibrator IC 555, Multiplexer 2x1, rangkaian counter yang terdiri dari divide
by 10, divide by 10, divide by 24, 7 segment BCD display dan 2 push button yang
digunakan untuk mengatur jam dan menit
32
Gambar 3.26 Rangkaian alarm sholat 5 waktu, rangkaian ini terdiri dari ATMega16,
7 segment BCD display, IC ULN2083, Buzzer.
Gambar 3.27 Rangkaian penghubung antara bagian counter jam digital dan bagian
alarm waktu sholat yang terdiri dari ATMega16 dan 2 buah IC 74LS147
(multiplexer 2x1)
33
Gambar 3.28 Rangkaian lengkap jam digital dengan alarm sholat 5 waktu yang
terdiri dari rangkaian counter, rangkaian penghubung rangkaian counter dengan
alarm, dan rangkaian alarm sholat 5 waktu disertai push button untuk mengatur
waktu.
34
BAB IV
PENUTUP
A. KESIMPULAN
Dari hasil akhir perancangan rangkaian jam digital jadwal sholat berbasis
counter dengan kendali ATMega16, dapat diambil beberapa kesimpulan sebagai
berikut:
B. SARAN
Beberapa saran penulis tentang pengembangan jam digital jadwal sholat ini:
1. Untuk mengurangi delay pemrosesan pada Proteus, diperlukan penggunaan
mikrokontroller yang lebih efisien lagi, serta penggunaan source code
program yang efektif agar pemrosesan dapat berjalan secara real-time.
2. Agar simulasi dengan software Proteus berjalan lancar, diperlukan komputer
dengan spesifikasi yang cukup tinggi sehingga tidak terjadi excessive CPU
load.
3. Untuk meningkatkan fitur pada jam digital waktu sholat, diperlukan
perancangan rangkaian yang lebih kompleks.
35
DAFTAR PUSTAKA
Atmel. 2010. 8-bit AVR Microcontroller with 16K Bytes In-System Programmable
Flash
http://www.ablab.in/buzzer-interfacing-with-avr-atmega16-microcontroller/, diakses
pada 5 Juni 2016
http://teknikelektronika.com/pengertian-led-light-emitting-diode-cara-kerja/, diakses
pada 5 Juni 2016
http://teknikelektronika.com/pengertian-piezoelectric-buzzer-cara-kerja-buzzer/, diakses
pada 5 Juni 2016
http://teknikelektronika.com/pengertian-seven-segment-display-layar-tujuh-segmen/,
diakses pada 5 Juni 2016
http://teknikelektronika.com/pengertian-mengenal-ic-555-ic-timer-konfigurasi-kaki-
ic555/, diakses pada 5 Juni 2016
36
LAMPIRAN
.list
.include "m16def.inc"
.nolist
.org 0x0000
main:
ldi r16, 0x00
out DDRA, r16
out DDRB, r16
ldi r16, 0xff
out DDRC, r16
out DDRD, r16
in r19, PINA
in r17, PINB
out PORTC, r19
out PORTD, r17
rjmp main
37
out DDRA, r16
out DDRC, r16
ldi r16, (1<<DDB0)|(1<<DDB1)
out DDRB, r16
ldi r16, (0<<PORTB0)
out PORTB, r16
ldi r17, 0x00
out DDRD, r17
in r17, PIND
ldi r16, 0b10100100
out PORTC, r16
ldi r16, 0b00100000
out PORTA, r16
cp r17, r16
breq minute
brne main
minute:
ldi r16, (1<<PORTB0)
out PORTB, r16
in r17, PIND
ldi r16, 0b10100100
cp r17, r16
breq equal
brne main
equal:
ldi r16, (1<<PORTB1)
out PORTB, r16
call delay
ldi r16, (0<<PORTB0)
out PORTB, r16
call delay
call delay
38
call delay
call delay
call delay
call delay
rjmp main
delay:
dec r20
brne delay
dec r19
brne delay
dec r18
brne delay
ret
.list
.include "m16def.inc"
.nolist
.org 0x0000
rjmp main
main:
ldi r18, 51
ldi r19, 187
ldi r20, 224
ldi r16, 0xff
out DDRA, r16
out DDRC, r16
ldi r16, (1<<DDB0)|(1<<DDB1)
out DDRB, r16
ldi r16, (0<<PORTB0)
out PORTB, r16
39
ldi r17, 0x00
out DDRD, r17
in r17, PIND
ldi r16, 0b10011100
out PORTC, r16
ldi r16, 0b10001000
out PORTA, r16
cp r17, r16
breq minute
brne main
minute:
ldi r16, (1<<PORTB0)
out PORTB, r16
in r17, PIND
ldi r16, 0b10011100
cp r17, r16
breq equal
brne main
equal:
ldi r16, (1<<PORTB1)
out PORTB, r16
call delay
ldi r16, (0<<PORTB0)
out PORTB, r16
call delay
call delay
call delay
call delay
call delay
call delay
rjmp main
delay:
40
dec r20
brne delay
dec r19
brne delay
dec r18
brne delay
ret
.list
.include "m16def.inc"
.nolist
.org 0x0000
rjmp main
main:
ldi r18, 51
ldi r19, 187
ldi r20, 224
ldi r16, 0xff
out DDRA, r16
out DDRC, r16
ldi r16, (1<<DDB0)|(1<<DDB1)
out DDRB, r16
ldi r16, (0<<PORTB0)
out PORTB, r16
ldi r17, 0x00
out DDRD, r17
in r17, PIND
ldi r16, 0b00000000
out PORTC, r16
ldi r16, 0b10101000
41
out PORTA, r16
cp r17, r16
breq minute
brne main
minute:
ldi r16, (1<<PORTB0)
out PORTB, r16
in r17, PIND
ldi r16, 0b00000000
cp r17, r16
breq equal
brne main
equal:
ldi r16, (1<<PORTB1)
out PORTB, r16
call delay
ldi r16, (0<<PORTB0)
out PORTB, r16
call delay
call delay
call delay
call delay
call delay
call delay
rjmp main
delay:
dec r20
brne delay
dec r19
brne delay
dec r18
brne delay
42
ret
.list
.include "m16def.inc"
.nolist
.org 0x0000
rjmp main
main:
ldi r18, 51
ldi r19, 187
ldi r20, 224
ldi r16, 0xff
out DDRA, r16
out DDRC, r16
ldi r16, (1<<DDB0)|(1<<DDB1)
out DDRB, r16
ldi r16, (0<<PORTB0)
out PORTB, r16
ldi r17, 0x00
out DDRD, r17
in r17, PIND
ldi r16, 0b00000000
out PORTC, r16
ldi r16, 0b10101000
out PORTA, r16
cp r17, r16
breq minute
brne main
minute:
ldi r16, (1<<PORTB0)
43
out PORTB, r16
in r17, PIND
ldi r16, 0b00000000
cp r17, r16
breq equal
brne main
equal:
ldi r16, (1<<PORTB1)
out PORTB, r16
call delay
ldi r16, (0<<PORTB0)
out PORTB, r16
call delay
call delay
call delay
call delay
call delay
call delay
rjmp main
delay:
dec r20
brne delay
dec r19
brne delay
dec r18
brne delay
ret
.list
.include "m16def.inc"
44
.nolist
.org 0x0000
rjmp main
main:
ldi r18, 51
ldi r19, 187
ldi r20, 224
ldi r16, 0xff
out DDRA, r16
out DDRC, r16
ldi r16, (1<<DDB0)|(1<<DDB1)
out DDRB, r16
ldi r16, (0<<PORTB0)
out PORTB, r16
ldi r17, 0x00
out DDRD, r17
in r17, PIND
ldi r16, 0b00100010
out PORTC, r16
ldi r16, 0b00011000
out PORTA, r16
cp r17, r16
breq minute
brne main
minute:
ldi r16, (1<<PORTB0)
out PORTB, r16
in r17, PIND
ldi r16, 0b00100010
cp r17, r16
breq equal
brne main
45
equal:
ldi r16, (1<<PORTB1)
out PORTB, r16
call delay
ldi r16, (0<<PORTB0)
out PORTB, r16
call delay
call delay
call delay
call delay
call delay
call delay
rjmp main
delay:
dec r20
brne delay
dec r19
brne delay
dec r18
brne delay
ret
46