bel sekolah terprogram berbasis mikrokontroler atmega32

120
LAPORAN PROYEK AKHIR BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32 Disusun Oleh : ALEXANDER DAVID SIHOTANG NIM. 10/298535/NT/13968 PROGRAM DIPLOMA TEKNIK ELEKTRO SEKOLAH VOKASI UNIVERSITAS GADJAH MADA YOGYAKARTA 2013

Upload: usman-abdul-rahman

Post on 31-Jan-2016

98 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

LAPORAN PROYEK AKHIR

BEL SEKOLAH TERPROGRAM BERBASIS

MIKROKONTROLER ATMega32

Disusun Oleh :

ALEXANDER DAVID SIHOTANG NIM. 10/298535/NT/13968

PROGRAM DIPLOMA TEKNIK ELEKTRO

SEKOLAH VOKASI

UNIVERSITAS GADJAH MADA

YOGYAKARTA

2013

Page 2: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

LAPORAN PROYEK AKHIR

BEL SEKOLAH TERPROGRAM BERBASIS

MIKROKONTROLER ATMega32

Laporan Proyek Akhir ini digunakan sebagai salah satu syarat

untuk memenuhi jenjang pendidikan diploma tiga

pada Program Diploma Teknik Elektro

Disusun Oleh :

ALEXANDER DAVID SIHOTANG NIM. 10/298535/NT/13968

PROGRAM DIPLOMA TEKNIK ELEKTRO

SEKOLAH VOKASI

UNIVERSITAS GADJAH MADA

YOGYAKARTA

2013

Page 3: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32
Page 4: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

PERNYATAAN

Dengan ini saya menyatakan bahwa proyek akhir ini tidak terdapat karya

yang pernah diajukan untuk memperoleh ahli madya di suatu perguruan tinggi,

dan sepanjang pengetahuan saya tidak terdapat karya atau pendapat yang pernah

ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam

naskah ini dan disebutkan dalam daftar pustaka.

Yogyakarta, 4 Oktober 2013

ALEXANDER DAVID SIHOTANG

Page 5: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

INTISARI

Perkembangan kemajuan teknologi merupakan hal yang sangat

diperhatikan dalam perkembangan zaman. Seiringnya dengan kemajuan zaman

sehingga hampir semua yang manual dibuat menjadi otomasi. Dengan adanya

sistem komputerisasi ini membuat pengguna lebih mudah dalam menyelesaikan

segala permasalahan. Dalam kegiatan belajar menganjar disekolah pihak penjaga

sekolah/guru piket disibukkan dengan aktifitas membuyikan bel sekolah saat jam

masuk sekolah, ganti jam masuk, pergantian jam belajar, istirahat, serta pulang

sekolah yang mungkin setiap hari lebih dari 5x.

Bel sekolah merupakan salah satu perangkat yang tidak dapat dipisahkan

dari sekolah. Bel sekolah pelajaran berfungsi untuk memberikan tanda pergantian

jam untuk setiap pergantian jam. Tetapi sayangnya petugas sering kali lupa

membuyikan bel sekolah pada saat yang tepat, sehingga pergantian pelajaran

menjadi kacau, pelajaran satu dengan yang lainya durasi belajar salah satu mata

pelajaran di kelas berbeda.

Page 6: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

ABSTRACT

Development of technology advances is very important these day as time

passes almost all of the manual are converted into automation. Computerized

system makes the user easier in solving all the problems. In the course of studying

the school caretaker / teacher picket busy with activity when the school bell

school hours, changing hours of admission, change of hours of study, rest, and

home schools may be every day more than fivetimes . School bell is a device that

can not be separated from the school . School bell lesson serves to give any sign

of daylight saving time change to daylight saving time change. But unfortunately

officers often forgotten in school bell at the right time, so that the lessons turn into

chaos.

Page 7: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

MOTTO

ORA ET LABORA ( Bekerja Sambil Berdoa )

Page 8: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

PERSEMBAHAN

Karya kecil ini saya persembahkan untuk :

Kedua orang tua Bapak dan Ibu yang sangat saya cintai dan selalu

menyayangi, membimbing, memberi semangat, dan mendoakan. Adik ku yang

selalu memberi semangat dan dorongannya agar dapat menyelesaikan proyek

akhir. Sahabat- sahabat, dan saudara-saudara ku semua yang tidak dapat

disebutkan satu- satu terimakasih atas dukungan dan doanya.

Page 9: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

PRAKATA

Puji syukur kepada Tuhan yang Maha ESA atsa karunianya, berkah, serta

anugerahnya-Nya sehingga saya sendiri dapat menyelesaikan dan menyusun

Laporan Tugas Akhir dengan baik dan lancar sehingga laporan ini dapat

terselesaikan.

Laporan ini disususn untuk menyelesaikan salah satu persyaratan dalam

menyelesaikan pendidikan di Program Diploma Teknik Elektro UGM. Dalam

laporan Tugas Akhir ini saya mengambil judul Bel Sekolah Terprogram Berbasis

Mikrokontroler dimana judul ini berfungsi untuk mempermudah pengaturan

waktu sekolah dan mengoptimalkan Kurikulum yang ada di sekolah.

Proyek Akhir ini dapat terselesaikan berkat bantuan dari berbagai pihak

yang terkait. Oleh karena itu pula, pada kesempatan ini tidak lupa pula saya

sampaikan penghargaan dan rasa terimakasih yang sebesar besarnya kepada :

1. Bapak Ir. Lukman Subekti.,MT selaku ketua dari Program Diploma

Teknik Elektro Universitas Gadjah Mada

2. Bapak Hidayat Nur Isnianto, ST.M.Eng selaku dosen pembimbing Tugas

Akhir di Program Diploma Teknik Elektro Universitas Gadjah Mada

3. Kepada Kedua Orang Tua yang telah memberikan dukungannya dan

doanya dalam menyelesaikan pendidikan di Program Diploma Teknik

Elektro Universitas Gadjah Mada

Page 10: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

4. Kepada Adik yang telah memberikan semangat dan keceriaan dalam

menyelesaikan pendidikan di Program Diploma Teknik Elektro

Universitas Gadjah Mada

5. Kepada sanak saudara yang selalu memberikan semangat dan mendoakan

agar dapat menyelesaikan pendidikan di Program Diploma Teknik Elektro

Universitas Gadjah Mada

6. Segenap teman-teman yang telah memberikan dukungan kepada saya

selama menyelesaikan pendidikan dan menyelesaikan tugas akhir.

Pada laporan tugas akhir ini saya menyadari bahwa masih jauh dari

kesempurnaan baik dari segi meteri dan penulisanya. Oleh karena itu kritik dan

saran yang membangun dari pembaca akan sangat dibutuhkan bagi kesempurnaan

penyusunan laporan. Saya berharap laporan tugas akhir ini dapat memberikan

manfat dan menanbah ilmu dan menanbah wawasan bagi pembaca pada umumnya

maupun mahasiswa Diploma Teknik Elektro pada khususnya.

Yogyakarta.

Penyusun

Page 11: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

DAFTAR ISI

HALAMAN JUDUL .................................................................................. i

LEMBAR PENGESAHAN ........................................................................ ii

PERYATAAN ............................................................................................. iii

INTISARI ................................................................................................... iv

ABSTRACT ............................................................................................... v

MOTTO ..................................................................................................... vi

PERSEMBAHAN ...................................................................................... vii

PRAKATA ................................................................................................. viii

DAFTAR ISI ............................................................................................... ix

DAFTAR GAMBAR ................................................................................... xiii

DAFTAR TABEL ....................................................................................... xv

BAB I PENDAHULUAN

1.1 Latar Belakang ................................................................................. 1

1.2 Fungsi kegunaan......................................................................... ........ 2

1.3 Maksud dan Tujuan……………….…………………........................ 2

Page 12: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

1.4 Batasan Masalah................……………………………….................. 3

1.5 Metode Pengumpulan Data………………………………………… . 4

1.6 Sistematika Penulisan Laporan…………………………………….. . 4

BAB II DASAR TEORI

2.1 Catu Daya. ........................................................................................ 6

2.1.1 Tranformator ............................................................................ 7

2.1.2 Rangkaian Penyearah ................................................................ 8

2.1.3 Regulator .................................................................................. 9

2.2 Komponen yang Dipergunakan ......................................................... 10

2.2.1 RTC DS1307 ............................................................................ 10

2.2.2 Konfigurasi Pin RTC DS1307 .................................................. 11

2.2.3 Register-register DS 1307…………………………… .............. 13

2.3 Mikrokontroler Atmega …………………………. ............................ 15

2.3.1 Penjelasan singkat tentang mikrokontroler...........……............... 15

2.3.2 Pengantar arsitektur ATMEGA32………………....................... 17

2.3.3 Konfigurasi pin ATMEGA32………………. ........................... 20

2.3.4 Arsitektur ATMEGA32 ............................................................ 21

Page 13: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2.3.5 Peta Memori ATMEGA32 ........................................................ 22

2.3.5.1 Memori ATMEGA32 ........................................................ 22

2.3.5.2 Memori Data (SRAM) ....................................................... 23

2.3.5.3 Memori EEPROM ............................................................. 24

2.3.5.4 Stack Pointer ..................................................................... 25

2.4 LCD 16x2 ......................................................................................... 26

2.5 IC UM3483 ....................................................................................... 28

2.5.1 Definisi IC UM3483 ................................................................. 28

BAB III PERANCANGAN ALAT

3.1 Perancangan Alat ............................................................................. 31

3.1.1 Blok Diagram ........................................................................... 31

3.1.2 Rangkaian Catu Daya ............................................................... 33

3.1.3 Desain Alat ............................................................................... 34

3.1.4 Perancangan Perangkat Keras ................................................... 35

3.1.4.1 Rangkaian Kontroler .................................................... 35

3.1.4.2 RTC DS1307 ................................................................ 37

3.1.4.3 Perancangan Rangkaian LCD 16x2 .............................. 38

Page 14: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

3.1.4.4 Rangkain Bel Dengan IC UM3483 ............................... 39

3.1.4.5 Perangcangan Tombol .................................................. 41

3.2 Perancangan Lunak .......................................................................... 42

3.2.1 Perancangan Perangkat Lunak ................................................ 42

3.2.2 Flowchart ................................................................................ 42

3.2.3 Pemrograman Bahasa C dengan Codevision AVR…………. 44

BAB IV PENGUJIAN DAN PEMBAHASAN

4.1 Pengujian Fungsional ....................................................................... 45

4.1.1 Pengujian Rangkaian Catu Daya ............................................ 46

4.1.2 Pengujian Unit Mikrokontroler .............................................. 48

4.1.3 Pengujian RTC ...................................................................... 49

4.1.4 Pengujian Tombol .................................................................. 50

4.1.4.1 Pengujian Tombol Menu ............................................ 51

4.1.4.2 Pengujian Tombol UP Dan Down ............................... 54

4.1.4.3 Pengujian Tombol OK ................................................. 54

4.1.5 Pengujian Indikaotor LED ..................................................... 55

4.1.6 Pengujian Battery atau Aki..................................................... 56

Page 15: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

4.2 Pengujian Keseluruhan Alat ............................................................. 56

4.2.1 Pengujian Dan Pengaturan Dalam Satu Hari ............................ 59

4.2.2 Pengujian Dan Pengaturan Alaram Dalam Satu Minggu .......... 59

4.2 Pengujian Program Sistem Minimum Mikrokontroler ....................... 61

4.3.1 Header ..................................................................................... 61

4.3.2 Deklarasi Variabel Global ........................................................ 62

4.3.3 Deklarasi Fungsi ...................................................................... 61

4.3.3.1 Fungsi Pembacaan ADC .............................................. 63

4.3.3.2 Fungsi Pembacaan LCD ............................................... 63

4.3.3.2 Fungsi Setting Nilai Alarm ........................................... 63

4.3.3.4 Fungsi Setting Menit .................................................... 64

4.3.3.5 Fungsi Setting Hari ...................................................... 65

4.3.3.6 Fungsi Setting Tanggal ................................................. 65

4.3.3.7 Fungsi Setting Bulan .................................................... 66

4.3.3.8 Fungsi Setting Tahun ................................................... 66

4.3.3.9 Fungsi Setting Alaram .................................................. 67

4.3.3.10 Fungsi RTC Main ....................................................... 69

Page 16: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

4.3.3.10 Fungsi RTC Main ....................................................... 69

4.3.3.10 Fungsi Tampil Menu .................................................. 76

4.3.3.10 Fungsi Inisialisasi ....................................................... 77

Page 17: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

DAFTAR GAMBAR

Gambar 2.1 Diagram Proses Catu Daya ....................................................... 6

Gambar 2.2 Simbol Trafo ............................................................................ 7

Gambar 2.3 Penyearah Dan Bentuk Gelombang .......................................... 8

Gambar 2.4 Bentuk Fisik Dari IC LM 78XX ............................................... 9

Gambar 2.5 Penerapan regulator dengan higt current LM 78XX .................. 10

Gambar 2.6 Pin-Pin RTC DC1307 .............................................................. 11

Gambar 2.7 Diangram blok IC RTC 1307 ................................................... 13

Gambar 2.8 Blok diagram ATMEGA32 ...................................................... 19

Gambar 2.9 Konfigurasi pin ATMEGA32 ................................................... 20

Gambar 2.10 Arsitektur ATMEGA32 ............................................................ 21

Gambar 2.11 Peta Memori Program ATMEGA32 ......................................... 23

Gambar 2.12 Alamat Register File dan Data Address...................................... 24

Gambar 2.13 Memori EEPROM......... ........................................................... 25

Gambar 2.14 Stack Pointer ............................................................................ 25

Gambar 2.15 Bentuk Fisik dari LCD 16x2 .................................................... 28

Page 18: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 2.16 Konfigurasi Pin IC UM 3483 ................................................... 29

Gambar 3.1 Perancangan Alat ..................................................................... 31

Gambar 3.2 Catu Daya Dengan IC Regulator LM 7805 ............................... 33

Gambar 3.3 Desain Box Hardware ............................................................. 34

Gambar 3.4 Sistem Minimum Mikrokontroler ATMega32 .......................... 36

Gambar 3.5 Pin Konfigurasi DS 1307 ......................................................... 37

Gambar 3.6 Skematik Rangkaian LCD 16x2 ............................................... 38

Gambar 3.7 Rangkaian Penampil LCD 16x2 ............................................... 39

Gambar 3.8 Rangkaian Bel IC UM3483 ...................................................... 40

Gambar 3.9 Tombol 4x1.............................................................................. 41

Gambar 4.1 Blok Pengujian Sistem Minimum ATMega32 .......................... 48

Gambar 4.2 Blok Pengujian RTC DS 1307 .................................................. 49

Gambar 4.3 Pengujian Dengan Stopwatch ................................................... 50

Gambar 4.4 Blok Diagram Pengujian Tombol ............................................. 50

Gambar 4.5 Tampilan LCD Awal ................................................................ 51

Gambar 4.6 Tampilan LCD Setelah Ditekan Tombol Menu......................... 52

Gambar 4.7 Menu Set Waktu ...................................................................... 52

Page 19: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 4.8 Menu Set Tanggal .................................................................... 52

Gambar 4.9 Menu Set Alarm ....................................................................... 52

Gambar 4.10 Set Waktu ................................................................................ 53

Gambar 4.11 Set Hari dan Tanggal ................................................................ 53

Gambar 4.12 Set Hari, Tanggal, Dan Jenis Lagu ........................................... 54

Gambar 4.13 Pengujian Indikator Pada Battery Full ...................................... 55

Gambar 4.14 Pengujian Battery dan Aki........................................................ 56

Gambar 4.15 Tampilan Pertama LCD ........................................................... 57

Gambar 4.16 Tampilan Utama Pada LCD ..................................................... 57

Gambar 4.17 Menu Set Waktu ...................................................................... 58

Gambar 4.18 Menu Set Tanggal .................................................................... 58

Gambar 4.19 Menu Set Alarm ....................................................................... 58

Page 20: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

DAFTAR TABEL

Tabel 2.1 Peta Alamat RTC DS1307 .......................................................... 14

Tabel 2.2 Register Control ......................................................................... 14

Tabel 2.3 Rate Select (RS1 dan RS0) ......................................................... 15

Tabel 2.4 Perbedaan Seri AVR Berdasarkan Jumlah Memori ..................... 16

Tabel 2.5 Konfigurasi Pin ATMEGA32 ..................................................... 20

Tabel 2.6 Fungsi Pin Pada LCD ................................................................. 28

Tabel 2.7 Fungsi Pin IC UM3483 ............................................................... 30

Tabel 3.1 Koneksi Antara LCD Dengan Mikrokontroler............................. 38

Tabel 4.1 Pengujian Rangkaian Catu Daya Dengan Osiloskop ................... 46

Tabel 4.2 Pengujian Rangkaian Catu Daya Dengan Multimeter .................. 47

Tabel 4.3 Hasil Pengujian Pengkalibrasian Keakuratan Data RTC .............. 49

Tabel 4.4 Tabel Pengujian Tombol ............................................................. 51

Tabel 4.5 Tabel Pengujian Pertama Mode Normal ...................................... 59

Tabel 4.6 Tabel Pengujian Hari Libur ......................................................... 60

Page 21: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

BAB I

PENDAHULUAN

1.1 Latar Belakang

Seiringnya dengan kemajuan zaman sehingga hampir semua yang manual

dibuat menjadi otomasi. Dengan adanya sistem komputerisasi ini membuat

pengguna lebih mudah dalam menyelesaikan segala permasalahan. Dalam

kegiatan belajar menganjar disekolah pihak penjaga sekolah/guru piket disibukkan

dengan aktifitas membuyikan bel sekolah saat jam masuk sekolah, ganti jam

masuk, pergantian jam belajar, istirahat, serta pulang sekolah yang mungkin setiap

hari lebih dari 5x.

Bel sekolah merupakan salah satu perangkat yang tidak dapat dipisahkan

dari sekolah. Bel sekolah pelajaran berfungsi untuk memberikan tanda pergantian

jam untuk setiap pergantian jam. Tetapi sayangnya petugas sering kali lupa

membuyikan bel sekolah pada saat yang tepat, sehingga pergantian pelajaran

menjadi kacau, pelajaran satu dengan yang lainya durasi belajar salah satu mata

pelajarab di kelas berbeda. Dengan kondisi demikian,maka di perangkat keras

berupa bel sekolah otomatis yang fleksibel.

Aplikasi ini diharapkan dapat membantu pihak sekolah. Dengan kelebihan,

yaitu bel dapat berbunyi secara otomatis sesuai waktu yang sudah di tentukan

sebelumnya dan untuk jenis suaranya dapat diatur sehingga dapat mempermudah

pekerjaan penjaga sekolah /guru piket. Untuk penentuan waktu cukup 1 kali saja

karena hasil input data bel sekolah otomatis akan tersimpan dalam program yang

Page 22: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

menggunakan sistem mikrokontroler keluarga AVR yang banyak dijual di

pasaran.

1.2 FUNGSI DAN KEGUNAAN

a. Menggantikan fungsi bel sekolah manual menjadi otomatis berbunyi

pada waktu yang telah ditentukan sesuia dengan jadwal pelajaran.

b. Menghidari kelalain petugas dalam penekan tombol bel karena sudah

tidak dibutuhkan lagi pekerjaan menekan bel.

c. Memberikan informasi yang lebih lengkap tentang tiap tiap waktu bel

berbunyi,misalnya diinformasikan pada jam 09.00 WIB saatnya siswa

beristirahat.

d. Dapat diset sebagai BEL HARIAN ataupun BEL khusus pada saat

pelaksanaan ujian/test atau waktu bulan ramadhan.

1.3 Maksud dan Tujuan

Adapun maksud dan tujuan pembuatan implementasi sistem mikrokontoler

sebagai pengendali bel sekolah otomastis di setiap sekolah yang menggunakan

aplikasi tersebut antara lain :

1. Sebagai salah satu syarat dalam menyelesaikan studi pada program

Diploma Teknik Elektro Sekolah Vokasi Universitas Gadjah Mada.

2. Mampu membuat dan merancang alat berbasis mikrokontroler

yang dapat diimplementasikan untuk mengatur bel sekolah

otomatis yang berkerja secara otomatis pada kondisi yang telah

diatur sebelumnya.

Page 23: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

3. Menerapkan ilmu ke elektroaan yang didapat pada masa kuliah dan

dapat pula di implementasikan di masyarakat.

4. Untuk menggurangi pekerjaan penjaga/guru piket disekolah dan

dapat mengurangi jam belajar pelajaran di setiap sekolah.

1.4 Batasan Masalah

Mengenai ruang lingkup batasan masalah yang akan digunakan dibatasi

antara lain sebagai berikut :

1. Penggunaan jam digital yang menggunakan Real Time Clock (RTC)

DS1307 sebagai pewaktu dalam penganturan waktu jam masuk

sekolah, istirahat, pergantian jam, dan pulang sekolah.

2. Menggunakan Mikrokontroler Atmega32 yang digunakan sebagai

program yang digunakan dalam pengaturan jam yang telah ditentukan.

3. Penggunaan tombol yang dipergunakan untuk mempermudah

pengaturan pengaturan yang terdapat dalam program yang telah dibuat.

4. Perangkat lunak yang mengendalikan kerja alat yang dibuat.

1.5 Metode Pengumpulan Data

Pembuatan piranti dan laporan tugas akhir ini menggunakan metode sebagai

berikut :

1. Metode pustaka, yaitu cara mempelajari beku buku literatur yang

berhubungan dangan masalah yang dihadapi dalam pembuatan alat,

baik karakteristik komponen, teknik pengunaanya, dan teknik

Page 24: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

merangkai komponen, serta teknik dasar yang digunakan dengan

maksud untuk memperoleh data yang tepat.

2. Metode perancangan, yaitu dengan memcoba membuat desain

rangkain yang dibuat secara afisien dan efektif.

3. Metode pengujian, yaitu dilakukan dengan menguji rangkaian yang

dibuat sesuai dengan yang diharapkan.

1.6 Sistematika Penulisan Laporan

Adapun sistematika yang digunakan dalam laporan tugas akhir sebagai

berikut :

BAB I PENDAHULUAN

Membahas tentang judul tugas akhir, latar belakang masalah, maksud dan

tujuan, batasan masalah, metode pengumpulan data, dan sistematika penulisan.

BAB II LANDASAN TEORI

Menbahas tentang dasar dasar teori yang digunakan dalam perancangan

alat yang dibuat.

BAB III PERANCANGAN ALAT

Membahas tentang prinsip dasar mekanisme cara kerja alat sehingga dapat

sesuai dengan yang di inginkan.

Page 25: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

BAB IV PENGUJIAN ALAT

Membahas tentang hasil pengujian dari alat yang telah dibuat, apakah

sesuai dengan yang diharapkan atau tidak dalam implementasiannya di sekolah.

BAB V PENUTUP

Membahas tentang kesimpulan dan saran sehingga tugas akhir ini dapat

dikembangkan lebih lanjut dalam masyarakat yang menggukan alat tersebut.

Page 26: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

BAB II

DASAR TEORI

2.1 Catu Daya

Perangka elektronika seharusnya dicatu oleh sumber listrik searah DC

(direct current) yang stabil agar dapat bekerja dengan baik sesuai dengan

kegunaan dan perancangannya. Baterai atau accu adalah sumber catu daya DC

yang paling baik. Namun apabila digunakan untuk apikasi yang membutuhkan

catu daya lebih besar, sumber dari baterai atau accu tidak akan cukup. Sumber

catu daya yang lain adalah sumber listrik bolak balik AC (altrnating carrent) dari

pembangkit tenaga listrik. Untuk mengubah menjadi tegangan DC yang baik dan

stabil diperlukan suatu tahapan proses yang secara umun diperhatikan pada

Gambar 2.1.

Gambar 2.1 Diangram Proses Catu Daya DC

Page 27: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Tranformator diperlukan sebagai komponen yang berfungsi untuk

menurunkan tegangan AC dari jala-jala lisrtik pada kumparan primernya menjadi

tegangan AC yang lebih kecil pada kumparan sekundernya. Keluaran

transformator yang masih AC kemudian disearahkan oleh untai peyearah

(rectifier).

2.1.1 Transformator

Transformator (trafo) adalah alat yang dapat menaikan dan menurunkan

tegangan sesuai dengan kebutuhan. Transformator ternuat dari suatu terah baja

lunak tertutup yang berlais – lapis dilengkapi dengan kumparan primer dan

sekunder. Apabila kemparan orimer P dihubungkan pada arus bolak – balik, maka

akan timbul arus gaya magnet yangakan menginduksi kumparan primer P juga

kumparan sekunder S. Besar tegangan kumparan sekunder S terinduksi tergantung

pada jumlah lilitan kumparan primer P dan sekunder S ditunjukan pada Gambar

2.2.

Gambar 2.2 Simbol Trafo

Semakin besar perbedaan jumlah lilitan kedua kumparan tersebut, maka

akan semakin besar perbedaan antara tegangan masukan dengan tegangan

Page 28: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

keluaranl. Apabila jumlah lilitan pada kumparan sekundernya lebih tinggi nilainya

dari pada tegangan yang masuk dan sebagainya.

Hubungan tersebut dinyatakan dengan persamaan :

U1 : U2 = N1 :N2

Dimana : U1 : tegangan primer U2 : teganan sekunder

N1 : jumlah lilitan primer N2 : jumlah lilitan sekunder

2.1.2 Rangkaian Peyearah

Untuk mendapatkan supply tegangan DC, dibutuhkan rangkaian penyearah

(rectifier) yang mempuyai fungsi untuk mengkonversi arus listrik AC menjadi

arus listrik DC sehingga pada hasil akhirnya akan mengahasilkan tegangan DC.

Untuk mendapatkan penyearah gelombang penuh (full wave) diperlukan

tranformator dengan center tap (CT), bentuk rangkain penyearah gelombang

penuh dengan menggunakan transformator CT ditunjukkan pada Gambar 2.3.

a. Peyearah Jembatan b. Bentuk Gelombang

Gambar 2.3 Peyearah dan bentuk gelombang

Page 29: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Tegangan positif phasa yang pertama diteruskan oleh D1 sedangkan phasa

yang berikutnya dilewatkan melalui D2 ke beban R1 dengan CT tranformator

sebagai commond ground. Dengan demikian beban R1 mendapat suplay tegangan

gelombang penuh seperti Gambar 2.3.

2.1.3 Regulator

Catu daya yang baik biasanya dilengkapi dengan regulator tegangan.

Tujuan pemasangan regulator tegangan pada catu daya adalah menstabilkan

tegangan keluaran apabila terjadi perubahan tegangan masukan pada catu daya.

Fungsi lain dari regulator tegangan adalah untuk perlindungan dari terjadinya

hubung singkat pada beban.

IC seri LM 78XX adalah regulator tegangan positif dengan tiga terminal.

Regulator ini mempunyai kemanpuan mengeluarkan arus yang besarnya

bervariasi sesuai dengan tipe yang diberikan pabrik hingga 1 Ampere terlihat pada

Gambar 2.4

Gambar 2.4 Bentuk Fisik Dari IC LM 78XX

Page 30: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Tipe regulator LM 78XX adalah salah satu regulator tegangan tetap

dengan tiga terminal, yaitu terminal Vin, GND dan Vout. Tegangan keluaran dari

regulator LM 78XX memungkinkan regulator untuk dipakai dalam sistem logika

dan sistem informasi. Regulator tegangan LM 78XX dirancang sebagai regulator

tegangan tetap, meskipun demikian dapat juga keluaran dari regulator ini diatur

tegangan dan arusnya melalui tambahan komponen eksternal. Cara pemasangan

dari penerapan regulator tegangan tetap LM 78XX peda catu daya dapat dilihat

pada Gambar 2.5

Gambar 2.5 Penerapan Regulator dengan Hight Current LM 78XX

Pada Gambar 2.5 dipergunakan transistor daya BD536 sebagai penguatan

arus dipergunakan untuk mencukupi arus untuk LCD 16 x 2 yang membutuhkan

arus minimal 1,2 A. Selain itu dari rangkaian tersebut uotput dariLM78XX

menjadi fixed output voltage sesuai lebel yang tertera pada IC LM78XX. Pada

rangkaian ini dipergunakan LM7805 yang dimana output tegangannya yaitu, 5

VDC.

Page 31: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2.2 Komponen Yang Dipergunakan

2.2.1 RTC DS1307

Real time clock (RTC) DS 1307 adalah sebuah IC yang mampu

menyimpan data detik, menit, jam, tanggal, bulan dan tahun yang sangat valid. IC

ini akan tetap bekerja walaupun power supply dimatikan, karena mempuyai

tambahan battery back up. Data-data waktu yang tersimpan dalam memory

bersifat non volatile pada IC tersebut.

RTC DS 1307 memiliki fitur sebagai berikut :

1. Real time clock (RTC) meyimpan data-data detik, menit, jam,

tanggal dan bulan dalam seminggu, dan tahun

2. 56-byte, battery-backup, RAM nonvolatile (NV) RAM untuk

menyimpan

3. Antarmuka intergradated inter connection (I2C)

4. Sinyal keluaran gelombang-kotak terprogram (programmable

squarewave)

5. Deteksi otomatis kegagalan-daya (power-fail) dan rangkain swtich

6. Konsumsi daya kurang dari 500nA menggunakan mode baterai

cadangan dengan operasional osilator

7. Tersedia fitur industri dengan ketahanan suhu : -40°C hingga

+85°C

8. Tersedia dalam kemasan 8-pin DIP atau SOIC

Page 32: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2.2.2 Konfigurasi Pin RTC DS1307

Susunan dan fungsi dari masing-masing pin (kaki) dapat dijelaskan lebih

lanjut pada Gambar 2.6.

Gambar 2.6 Pin-Pin RTC DC1307

Fungsi dari setiap pin RTC DS1307 adalah sebagai berikut :

1. X1

Merupakan pin yang digunakan untuk dihubungkan crystal dan

terhubung juga dengan X2

2. X2

Berfungsi sebagai port keluaran/output dari crystal yang digunakan.

Terhubung juga dengan X1

3.Vbat

Adalah battery backup supply untuk RTC besarnya adalah 3V.

Apabila tidak menggunakan battrey backup maka pin dihubungkan ke

ground.

Page 33: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2 GND

Berfungsi sebagai ground

3 SDA

Berfungsi sebagai masukan / keluaran (I/O) untuk 12C serial

interface. Pin ii bersifat open drain, sehingga membutuhkan resistor

pull up.

4 SCL

Berfungsi sebagai clock untuk input 12C dan digunakan untuk

mensingkronisasikan pergerakan data dalam serial interface.

Bersifatopen drain, sehingga membutuhkan resistor pull up.

5 SWQ/OUT

Sebagai square wafe/ Output Driver. Jika di aktifkan maka akan

menjadi 4 frekuensi gelombang kotak yaitu, 1 Hz, 4 Hz, 8 Hz dan 32

Hz. Sifat dari pin sama dengan sifat pin SDA dan UCL, sehingga

membutuhkan eksternal pull up resistor. Dapat dioperasikan dengan

VCC maupun dengan VBAT.

6 VCC

Merupakan sumber tegangan utama besarnya adalah 5volt.

Adapun diagram blok dari RTC DS 1307 ditunjukkan Gambar 2.7.

Page 34: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 2.7

2.2.3 Register-register DS 1307

RTC DS 1307 mempunyai 8 pemetaan alamat (

dimana register-register RTC di tempatkan pada lokasi pengalamatan 00h sampai

07h. Sedangkan register

pada lokasi pengalamatan 08h samapai 3Fh.

Gambar 2.7 Diangram Blok IC RTC 1307

register DS 1307

RTC DS 1307 mempunyai 8 pemetaan alamat (address map

register RTC di tempatkan pada lokasi pengalamatan 00h sampai

07h. Sedangkan register-register RAM (Ramdom Access Memory

pada lokasi pengalamatan 08h samapai 3Fh.

Tabel 2.1 Peta alamat RTC DS1307

address map) pada RTC

register RTC di tempatkan pada lokasi pengalamatan 00h sampai

Ramdom Access Memory) ditempatkan

Page 35: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Register kontrol pada RTC DS1307 digunkan untuk mengontrol operasi

pada pin SQW/OUT.

Tabel 2.2 Register kontrol (register control)

Keterangan bit-bit pada register kontrol :

1. Bit -7

Output Control (OUT) yaitu, jika pin SQW/OUT di-disable

sehingga tidak mengeluarkan clock, bit-7 ini menentukan level sinyal

yang keluar dari pin SQW/OUT. Jika bit-7 ini LOW, maka level pin

SQW/OUT ikut LOW dan jika bit-7 ini HIGH, maka level pin

SQW/OUT ikut HIGT

2. Bit-4

Squqre-wave Enable digunakan untuk enable/disable keluarnya clock

dari pin SQW/OUT. HIGH berarti enable dan LOW berarti disable.

Frekuensi sinyal clock yang keluar dari pin SQW/OUT ditentukan oleh

kondisi bit-1 dan bit-0

Page 36: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

3. Bit 1 dan 0

Rate Selectr (RS1,RS0) unutk menentukan frekuensi yang keluar dari

pin SQW/OUT. Kombinasi nilai RS0 dan RS1 menghasilkan output

gelombang kotak dengan nilai frekuensi masing-masing.

Tabel 2.3 Rate select (RS1 dan RS0)

2.3 Mikrokontroler Atmega

2.3.1 Penjelasan Singkat Tentang Mikrokontroler

Mikrokontroler merupakan perkembangan dari mikroprosesor. Dalam

sebuah chip mikrokontroler telah terintegrasi memori, CPU, dan I/O. Hal tersebut

membuat mikrokontroler dapat langsung dibuat sistem dengan menambahkan

sebuah peripheral lain. Sifat mikrokontroler yang mampu diprogram

menyebabkan mikrokontroler yang mempunyai kemanpuan aplikasi yang sangat

luas. Mikrokontroler dengan arsitektur RISC kini semakin berkembang pesat dan

semakin banyak diminati dalam aplikasi sistem kendali. Salah satu jenis

mikrokontroler AVR dari Atmel. Mikrokontroler AVR (Alf and Vegard’s RISC

processor), memiliki konsep yang hampir sama dengan PICmicro dari Microchip

Inc. Yang memiliki arsitektur RISC 8-bit.

Page 37: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Mikrokontroler AVR memiliki arsitektur RISC 8-bit yang memiliki

kemapuan tinggi dengan daya rendah sehingga besar intruksi dieksekusi hanya

dalam satu siklus detak. Secar umum AVR dapat dikelompokan menjadi empat

kelas, yaitu keluarga Attiny, keluarga AT90Sxx, keluarga Atmega dan

AT86RFxx. Pada dasrnya yang membedakan masing-masing kelas adalah

memori, peripheral dan fungsinya. Dari segi arsitektur dan intruksi hampir sama.

Tabel 2.4 Perbedaan seri AVR berdasarkan jumlah memori

Seperti terlihat pada Tabel 2.4 semua jenis AVR ini telah dilengkapi

dengan memory flash yang memiliki bervariasi dari 1KB – 128 KB. Secara teknis

memori jenis ini dapat diprogram melalui saluran antarmuka yang dikenal dengan

nama Serial Peripheral Interface (SPI) yang terdapat pada setiap seri AVR

tersebut. Dengan menggunakan perangkat lunak programmer yang tepat,

pengisian memori flash dengan menggunakan saluran SPI ini dapat dilakukan

bahkan chip AVR telah terpasang pada sistem akhir, sehingga pemrograman

sangat fleksibel dan tidak merepotkan pengguna dan metode ini secara praktis

dengan nama ISP (In System Programming).

Page 38: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2.3.2 Pengantar Arsitektur ATMEGA32

Untuk mempelajari arsitektur mikrokontroler AVR maka dipilih arsitektur

ATMEGA32 yang memiliki fitur cukup lengkap antara lain :

1. Performa tinggi dengan konsumsi daya rendah

2. Arsitektur RISC 8 bit dengan beberapa fitur antara lain :

a. 131 kode intruksi dalam bahasa assembly

b. Mempuyai 32 x 8 bit register kerja kegunaan umum

c. Pengoprasian full static

d. Kecepatan mengeksekusi samapai dengan 16 MHz

3. Flash EEPROM sebesar 32 kilobyte yang dapat diprogram ulang

dengan kemampuan Read While Write

4. Ketahanan hapus-tulis Flash ROM adalah 10.000 kali dengan

pengaaturan pilihan kode boot dan Look Bit independent

5. Memori SRAM sebesar 2 kilobyte yang dapat dihapus-ditulis 100.000

kali

6. Penguncian kode program untul keamanan perangkat lunak agar tidak

dapat dibaca

7. Memori yang non-volatile EEPROM sebesar 1024 byte

8. Memiliki 2 buah timer/couter 8 bit sebanyak 2 buah dan sebuah

timer/couter 16 bit dengan opsi PWM sebanyak 4 kanal

9. Memiliki 8 kanal Analog to Digital Converter 10 bit dengan jenis single

ended

Page 39: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

10. Untuk kemasan TQFP ADC dapat diatur 7 buah kanal jenis diferensial

dan khusus 2 kanal dengan penguatan yang dapat diatur melalui

register sebesar 1x, 10x atau 20x

11. Antarmuka kominikasi serial USART yang dapat diprogram dengan

kecepatan maksimal 2,5 Mbps

12. Antarmuka SPI master/slave

13. Watchdog timer dengan osilator di dalam chip yang dapat diprogram

14. Terdapat komprator analog didalam chip

15. Terdapat pendeksian tegangan gagal yang dapat diprogram (brownout

detection)

16. Osilator RC internal yang terkalibrasi

17. Sumber interupsi eksternal dan internal

18. Terdapat pilihan mode sleep : idle, pereduksian noise ADC,

penghematan daya konsumsi, penurunan daya,dan kondisi standby

19. Terdapat 32 pin masukan dan inputan yang terprogram

20. Tegangan pengoprasian

a. 2,7 – 5,5 Volt untuk ATMEGA32L

b. 4,5 – 5,5 Volt untuk ATMEGA32

21. Kecepatan

a. 0 – 8 MHz untuk ATMEGA32L

b. 0 – 16 MHz untuk ATMEGA32

22. Konsumsi daya pada 1 MHz, 3 Volt, suhu 25’C untul ATMEGA32L

a. Aktif : 1,1 mA

Page 40: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

b. Mode : 0,35 mA

c. Mode : kurang dari 1 uA

Gambar 2.8 Blok Diagram ATMEGA32

2.3.3 Konfigurasi Pin ATMEGA32

ATMEGA32 yang dapat dilihat pada Gambar 2.9. Mempunyai konfigurasi

sebagai berikut :

Page 41: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 2.9

Tabel 2.5

Nomor

Pin

10

11,31

30

32

1 -- 8

33 -- 40

14 -- 21

22 -- 29

9

12, 13

Gambar 2.9 Konfigurasi pin ATMEGA32

Tabel 2.5 Konfigurasi pin ATMEGA32

Nama Fungsi

VCC Catu daya positif

GND Catu daya negative

AVCC Catu daya positif untuk ADC

AREF Pin untuk tegangan refrensi ADC

PB0 -- PB7 Pin masukan dan keluaran PORTB

PA0 -- PA7 Pin masukan dan keluaran PORTBA

PD0 -- PD7 Pin masukan dan keluaran PORTD

PC0 -- PC7 Pin masukan dan keluaran PORTC

RESET Pin masukan untuk reset (active low)

XTAL 1

dan 2 Pin untuk masukan osilator eksternal

Pin untuk tegangan refrensi ADC

Pin masukan dan keluaran PORTB

PORTBA

Pin masukan dan keluaran PORTD

Pin masukan dan keluaran PORTC

Pin masukan untuk reset (active low)

Pin untuk masukan osilator eksternal

Page 42: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2.3.4 Arsitektur ATMEGA32

Berikut adalah blok diagram arsitektur dari ATMEGA32

Gambar 2.10 Arsitektur ATMEGA32

Mikrokontroler ATMEGA32 memiliki arsitektur Harvard yaitu,

memisahkan memori untuk kode program dan memori untuk data sehingga dapat

memaksimalkan kerja dan paralelisme. Instruksi – instruksi dalam memori

program dieksekusi dalam satu alur tunggal, dimana pada saat satu intruksi

dikerjakan instruksi berikutnya sudah diamabil (pre-fethed) dari memori program.

Konsep inilah yang memungkinkan instruksi – instruksi dieksekusi dalam setiap

satu siklus clock.

32 x 8 register serbaguna untuk mendukung operasi pada Artihmetic Logic

Unit (ALU) yang dapat dilakukan dalam satu siklus. 6 dari register ini dapat

digunakan sebagai 3 buah registerpointer 16-bit padamode pengalamatan tak

Page 43: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

langsung unutk mengambil data ruang memori data. Ketiga register pointer 18-bit

ini disebut dengan register X, register Y, dan register Z.

Hampir semua intruksi AVR memiliki format 16-bit (word). Setiap alamat

program terdiri dari instruksi 16-bit atau 32-bit. Selain itu register serbaguna

diatas, terdapat register lain yang terpetakan dengan teknik memori mapped I/O

selebar 64 Byte. Beberapa register control Timer/Counter, Interupsi, ADC,

USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini

menempati memori pada alamat 0x20 - 0x3fh.

2.3.5 Peta Memori ATMEGA32

2.3.5.1 Memori ATMEGA32

Arsitektur AVR mempuyai 2 memori utama yaitu, memori data dan

memori program. Selain itu ATMEGA32 memilik memori EEPROM untuk

menyimpan data. ATMEGA32 memiliki 32Kbyte On-chip In-system

Reprogramble Flash memori untuk menyimpan program. Karena semua instruksi

AVR memiliki format 16 atau 32 bit maka flash diatur dalam 16K x 16 bit. Untuk

keamanan program, memori flash dibagi menjadi 2 bagian yaitu, bagian

Bootloader dan aplikasi. Bootloader adalah program kecil yang bekerja pada saat

start up time yang dapat memasukan seluruh program aplikasi dalam memori

prosesor.

Page 44: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 2.11 Peta Memori Program ATMEGA32

2.3.5.2 Memori Data (SRAM)

Memori data ATMEGA32 terbagi menjadi 3 bagian yaitu, 32 buah register

umum, 64 buah register I/O dan 2Kbyte SRAM internal. General purpose register

menempati alamat data terbawah yaitu, $00 sampai $1F. Memori I/O merupakan

register yang khusus digunakan untuk mengatur fungsi terhadap berbagai

peripheral mikrokontroler seperti control register, timer/counter, fungsi – fungsi

I/O, dan sebagainya. 2084 alamat memori berikutnya mulai dari alamat $60

hingga $85F digunakan untuk SRAM internal. Fungsi SRAM yaitu, digunakan

untuk menyimpan data variabel yang dimungkingkan berubah setiap saatnya.

Page 45: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 2.12 Alamat Register File dan Data Address

2.3.5.3 Memori EEPROM

EEPROM (Electrically Eraseable Programmable Read Only Memory)

yang dimana mempuyai fungsi untuk menyimpan data – data yang bersifat

permanen. ATMEGA32 terdiri dari 1024 byte memori data EEPROM 8 bit dan

dapat tulis/baca dari memori ini, ketika catu daya dimatikan, data terakhir yang

ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan

kata lain memori EEPROM bersifat nonvolatile. EEPROM. Hanya dapat ditulis

dan dihapus sebanyak 10.000 kali. Aplikasi penggunaan EEPROM adalah untuk

Page 46: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

menyimpan data informasi yang tidak boleh hilang saat catu daya dimatikan tetapi

bisa diperbarui, misalnya untuk data ID, kata kunci (passowrd), dan lain – lain.

Gambar 2.13 Memori EEPROM

2.3.5.4 Stack Pointer

Stack pointer digunakan untuk menyimpan data sementara (data variabel)

atau untuk menyimpan alamat program yang sedang dikerjakan pada saat terjadi

instruksi percabangan atau interupsi. Stack pointer menempati alamat memori

RAM paling atas dan akan turun kebawah dengan bertambahnya data yang

disimpan. Instruksi PUSH digunakan untuk menyimpan data ke stack pointer

kemudian secara otomatis stack pointer berkuran menjadi 1. Sebaliknya instruksi

POP digunkan untuk mengambil data stack pointer kemudian secara otomatis

stack pointer bertambah 1.

Page 47: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

2.4 LCD 16×2

2.4.1 Pengertian LCD

Liquid Crystal Display

yang menghasilkan citra pada sebuah permukaan yang rata

memberikan sinar pada k

molekul polar diapit antara dua elektroda yang transparan. Apabila diberikan

medan listrik molekul akan menyesuaikan posisinya yang mempolarisasi cahaya

yang melaluinya. Teknologi yang ditemukan sejak

pengolahan kristal cair yang berupa cairan kimia, dimana molekul

dapat diatur sedemikian bila diberikan medan listrik. LCD adalah salah satu jenis

media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD

sudah digunakan di berbagai bidang misalnya dalam alat

televisi, kalkulator ataupun layar komputer. LCD sebagaimana outputnya yang

daoat menampilkan tulisan sehingga lebih mudah dimengerti, dibandingkan jika

menggunakan LED saja. T

panel LCD yang terdiri dari banyak titik. LCD dan sebuah mikrokontroler yang

menempel dipanel dan berfungsi untuk mengatur titik

Gambar 2.14 Stack Pointer

Pengertian LCD

Liquid Crystal Display (LCD) merupakan sebuah teknologi layar datar

yang menghasilkan citra pada sebuah permukaan yang rata

memberikan sinar pada kristal cair dan filter berwarna, yang memiliki sruktur

molekul polar diapit antara dua elektroda yang transparan. Apabila diberikan

medan listrik molekul akan menyesuaikan posisinya yang mempolarisasi cahaya

yang melaluinya. Teknologi yang ditemukan sejak tahun 1888 ini, merupakan

pengolahan kristal cair yang berupa cairan kimia, dimana molekul

dapat diatur sedemikian bila diberikan medan listrik. LCD adalah salah satu jenis

media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD

sudah digunakan di berbagai bidang misalnya dalam alat-alat elektronik seperti

televisi, kalkulator ataupun layar komputer. LCD sebagaimana outputnya yang

daoat menampilkan tulisan sehingga lebih mudah dimengerti, dibandingkan jika

menggunakan LED saja. Tampilan LCD terdiri dari dua bagian, yaitu bagian

panel LCD yang terdiri dari banyak titik. LCD dan sebuah mikrokontroler yang

menempel dipanel dan berfungsi untuk mengatur titik-titik LCD menjadi huruf

(LCD) merupakan sebuah teknologi layar datar

yang menghasilkan citra pada sebuah permukaan yang rata (flat) dengan

ristal cair dan filter berwarna, yang memiliki sruktur

molekul polar diapit antara dua elektroda yang transparan. Apabila diberikan

medan listrik molekul akan menyesuaikan posisinya yang mempolarisasi cahaya

tahun 1888 ini, merupakan

pengolahan kristal cair yang berupa cairan kimia, dimana molekul-molekulnya

dapat diatur sedemikian bila diberikan medan listrik. LCD adalah salah satu jenis

media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD

alat elektronik seperti

televisi, kalkulator ataupun layar komputer. LCD sebagaimana outputnya yang

daoat menampilkan tulisan sehingga lebih mudah dimengerti, dibandingkan jika

ampilan LCD terdiri dari dua bagian, yaitu bagian

panel LCD yang terdiri dari banyak titik. LCD dan sebuah mikrokontroler yang

titik LCD menjadi huruf

Page 48: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

atau angka yang terbaca. Huruf atau angka yang akan ditampilkan dikirim ke

LCD dalam bentuk kode ASCII, kode ASCII ini diterima dan diolah oleh

mikrokontroler didalam LCD menjadi titik-titik LCD yang terbaca sebagai huruf

atau angka. Dengan demikian tugas mikrokontroler pemakai tampilan LCD

hanyalah mengirimkan kode-kode ASCII untuk tampilan.

Berikut spesifikasi dari LCD secara umum :

1. Jumlah baris

2. Jumlah karakter perbaris

3. Tegangan kerja

Fungsi dari pin pada LCD karakter :

1. Pin 1 : Vss/GND : Tegangan 0 volt atau ground

2. Pin 2 : Vcc : Tegangan Vcc

3. Pin 3 : VEE/Vcontrast : Tegangan pengatur kontras pada LCD

4. Pin 4 : RS : “0” : Instruksi “1” : Data

5. Pin 5 : R/W : Signal yang masuk digunakan untuk memilih mode

membaca atau menulis “0” : menulis “1” : membaca

6. Pin 6 : E : Untuk mulai mengirim data atau intruksi

7. Pin 7 sampai dengan pin 14 : Untuk mengirimkan data kerakter

8. Pin 15 dan Pin 16 : Untuk mengatur cahaya pada background atau

insruksi.

LCD ini hanya memerlukan daya yang sangat kecil, tegangan yang

dibutuhkan juga sangat rendah yaitu 5V.

Page 49: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Tabel 2.6 Fungsi Pin Pada LCD

No. Symbol Level Keterangan

1 Vss - Dihubungkan ke 0 V (Ground)

2 Vcc - Dihubungkan dengan tegangan supply +5V dengan

toleransi ± 10%.

3 Vee - Digunakan untuk mengatur tingkat kontras LCD.

4 RS H/L Bernilai logika ‘0’ untuk input instruksi dan bernilai

logika ‘1’ untuk input data.

5 R/W H/L Bernilai logika ‘0’ untuk proses ‘write’ dan bernilai

logika ‘1’ untuk proses ‘read’.

6 E H Merupakan sinyal enable. Sinyal ini akan aktif pada

failing edge dari logika ‘1’ ke logika ‘0’.

7 DB0 H/L Pin data D0

8 DB1 H/L Pin data D1

9 DB2 H/L Pin data D2

10 DB3 H/L Pin data D3

11 DB4 H/L Pin data D4

12 DB5 H/L Pin data D5

13 DB6 H/L Pin data D6

14 DB7 H/L Pin data D7

15 V+BL - Back Light pada LCD ini dihubungkan dengan

tegangan sebesar 4 – 4,2 V dengan arus 50 – 200 mA

16 V-BL - Back Light pada LCD ini dihubungkan dengan

ground

Page 50: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 2.15 Bentuk Fisik dari LCD 16×2

2.5 IC UM3483

2.5.1 Definisi IC UM3483

Sebuah IC multi-instrument melodi generator, diimplementasikan dalam

teknologi CMOS. Perangkat ini diranacang untuk bermain melodi IC ini pula

diprogram dan mampu menghasilkan 16 lagu dengan 3 instrument suara, piano,

organ dan mandolin.

IC UM3483 memiliki beberpa fitur terdiri dari :

1. Power supply 3 Volt

2. Arus yang kecil pada mode standby

3. Hingga 16 lagu

4. 5 tempo tersedia melalui pengaturan 8 mode bermain oleh pengaturan

pengguna

5. Dapat memainkan 10 nada sesuai pilihan pengguna

6. saru built-in RC osilator

Page 51: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

7. On-chip modulator dan pre-amplifier

Berikut adalah gambar dari konfigurasi pin IC UM3483 :

Gambar 2.16 Konfigurasi Pin IC UM 3483

Fungsi masing-masing Pin IC UM3483 pada Tabel 2.7 :

Tabel 2.7 Fungsi Pin IC UM3483

No pin keterangan

1 TSP Untuk mode normal pin ini tidak dihubungkan

2 CE aktif jika terhubung VCC dan nonaktif jika terhubung ke

Ground

3 LP Hanya memainkan sebuah lagu jika terhubung ke VCC

dan memainkan semua lagu jika terhubung ke Ground

4 SL Trigger positif untuk memainkan lagu berikutnya

5 AS Lagu akan dimainkan ulang jika terhubung ke ground dan

akan berhenti otomatis jika terhubung ke VCC

6 NC Tidak dihubungkan

7 ENV Envelope

8 GND Ground

Page 52: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

9 MTO Modulasi nada sinyal output

10 OP1 Pre-amplifier output 1

11 OP2 Pre-amplifier output2

12 MT1 Memodulasi nada sinyal input ke pre-amplifier

13 NC Tidak dihubungkan

14 OSC2 Eksternal osilator pinl

15 OSC1 Eksternal osilator pin2

16 VCC Positif power supply

Page 53: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

BAB III

PERANCANGAN ALAT

Pada bab ini akan dibahas dalam mekanisme perancangan alat dari

perangkat keras (hardware) ataupun perangkat lunak (software). Tahap pertama

dimulai dari desain alat, perancangan blok diagram sistem perangcangan

perangkat keras (hardware), serta perancangan perangkat lunak (software).

3.1 Perancangan Alat

3.1.1 Blok Diagram

Berikut adalah blok diagram dari skema BEL SEKOLAH TERPROGRA

BERBASIS MIKROKONTROLER ATMega32 agar dapat dengan mudah

mengetahui sistem kerja pada alat tersebut.

Gambar 3.1 Block Diagram

Page 54: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Block diagram secara umum terdapat 4 bagian, yaitu :

a. Block input terdiri dari tanggal, hari, dan jam

b. Block output terdiri dari indikator LED, sound, dan penampil LCD 16×2

c. Block kontrol terdiri dari ATMEGA32

d. Block catudaya

Bagian-bagian tersebut terhubung menjadi satu agar alat dapat berjalan dengan

baik. Sedangkan block catu daya difungsikan sebagai catudaya bagian input,

uotput, dan kontroler.

Bagian-bagian tersebut terhubung menjadi satu agar alat dapat berjalan dengan

baik. Sedangkan block catu daya difungsikan sebagai catudaya bagian input,

uotput, dan kontroler. Cara kerja pada Gambar 3.1 dapat dijelaskan bahwa Bel

Sekolah Terprogram Berbasis Mikrokontroler ATMega32 terdiri dari tujuh bagian

block diagram bagian input terdiri dari push botton atau keypad yang berfungsi

sebagai pengatur settingan. RTC DS1307 berfungsi sebagai sumber data jam

maupun tanggal yang diakses oleh Mikrokontroler ATMega32. Sedangkan bagian

pemproses utama skaligus pengendali utama Bel Sekolah Terprogram Berbasis

Mikrokontroler ATMega32. Pada bagian output terdiri indikator LED sebagai

indikator dari level tegangan dari aki. LCD 16x2 sebagai display penanpil utama

yang menanpilkan data nilai jam, menit, detik, hari, tanggal, bulan, tahun dan data

ADC dari pembacaan tegangan aki. IC UM3483 berfungis sebagai nada lagu

utama pada saat pengaturan waktu alarm berbunyi. Sumber catu daya untuk

sistem rangkaian Bel Sekolah Terprogram Berbasis Mikrokontroler ATMega32

Page 55: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

bersumber dari tegangan 220 PLN yang diturunkan oleh transformator stepdown

dah disearahkan oleh penyearah gelombang penuh kemudian diregulasi oleh

regulator 7805 namu sisi kelebihan yang lain pada alat ketika listrik pada PLN

mati alat tetap menyala karena tegangan disimpan pada aki.

3.1.2 Rangkaian Catu Daya

Setiap rangkaian catu daya tentunya membutuhkan catu daya sehingga

perancangan catu daya menjadi sangat penting. Rangkaian catu daya dibuat terdiri

dari transformator, rangkaian penyearah transfer switch, filter dan regulator

.Catu daya digunakan pada rangkaian ada 2, yaitu catu daya tegangan 5V dan catu

daya 12. Catu daya dengan output tegangan 5V digunakan sebagai suplly sistem

tagangan ATMEGA32, LCD, dan RTC.

Gambar 3.2 Catu Daya Dengan IC Regulator LM 7805

Page 56: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

3.1.3 Desain Alat

Pertama kali yang dikerjakan yaitu perancangan untuk kotak (box) sebagai

tempat peletakan hardware yang dibuat. Desain box hardware sebagai berikut :

Keterangan posisi pada box :

1. LCD 16×4

2. Push Button

3. Power AC

4. Speaker

5. Tombol Push On

6. Kipas Pendingin

7. Fuse

8. LED Indikator

9. Output Speaker Gambar 3.3 Desain Box Hardware

Alat ini dibuat untuk tujuan mengkondisi suatu sekolah yang ingin memiliki

ketepatan waktu dan efisiensi waktu pada jam pelajaran disekolah agar dapat

memaksimalkan jam pelajaran. Dimana waktu ketika saat proses akademik di

kebanyakan sekolah dapat terbuang percuman karena kurangnya efisiensi waktu

ketika saat pergantian jam pelajaran, jam masuk sekolah, jam istirahat,dan jam

pulang sekolah.

Ketika menggunakan alat ini semua dapat diproses secara otomatis hanya

dengan memasukan jadwal ataupun waktu yang dipakai di setiap sekolah. Waktu

akan secara otomatis tersimpan di RTC (Real Time Clock) ketika sudah

Page 57: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

menginputkan data dan waktu yang dipergunakan di sekolah tersebut, secara

otomatis setiap pergantian jam pelajaran akan berbunyi bel yang menandakan

pergantian jam, untuk jam istirahat bel berbunyi akan berbeda dengan jam

pergantian pelajaran begitu pula saat jam masuk sekolah dan pulang sekolah akan

berbeda. Pengaturan bel dapat diatur pula sesuai dengan keingnanan.

Pada alat pula dilengkapi dengan penampil LCD 16×2 yang berfungsi

sebagai penampil. Berikut yang akan tertampil pada LCD antara lain :

1. Hari

2. Waktu yang meliputi jam, menit, detik, tanggal, bulan dan tahun

3. Alaram

Bagian-bagian tersebut terhubung menjadi satu agar alat dapat berjalan

dengan baik. Sedangkan block catu daya difungsikan sebagai catudaya bagian

input, uotput, dan kontroler.

3.1.4 Perancangan Perangkat Keras

3.1.4.1 Rangkaian Kontroler

Rangkaian pengendali yang paling utama pada sistem adalah sistem yang

menggunakan mikrokontroler ATMEGA32 yang merupakan IC yang dapat

menagani berbagai operasi aritmatika dan logika melalui port-port yang dimiliki

oleh IC tersebut. Mikrokontroler ini akan memproses program yang telah dibuat

dan akan di downloadkan ke dalam mikrokontroler ATMEGA32. Bagian- bagian

ini adalah fitur yang tersedia pada mikrokontroler yang akan digunakan antara lain

12C, TWI, interrupt external dan port-port yang akan digunakan sebagai inputan

Page 58: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

ataupun output. Berikut adalah rangkaian dari sistem ATMEGA32. Criystal yang

digunakan pada sistem ini adalah sebesar 12 MHz serta 2 buah kapasitor keramik

bernilai 22 pF.

Gambar 3.4 Sistem Minimum Mikrokontroler ATMEGA32

Adapun fungsi-fungsi dari port yang akan digunakan pada Gambar 3.3 diatas,

yaitu :

1 PORT A : Pada PORTA.0 sampai PORT.7 berfungsi sebagai indikator

pada batettry.

2 PORT B : Difungsikan sebagai penampil LCD 16×2

3. PORT C : Pada PORTC.6 dan PORTC.7 berfungsi sebagai komunikasi

dari RTC DS 1307 dan tombol ke microkontroler ATMEGA32

4 PORT D : Berfungsi sebagai komunikasi key pad ke mikrokontroler

ATMEGA32

Page 59: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

3.1.4.2 RTC DS1307

Pada bagian ini difungsikan sebagai pewaktu yang berisi data tentang hari,

tanggal, bulan, tahun, jam, menit dan detik. RTC merupakan IC 8 PIN yang

dimana fungsi kaki-kakinya yaitu :

a. Pin 1 dan Pin 2 digunakan untuk inputan Kristal 32.768 KHz

b. Pin 3 dan Pin 4 digunakan untuk baterai 3 V eksternal

c. Pin 5 untuk jalur Serial Data (SDA), pin 6 untuk jalur untuk jalur Serial

Clock (SCL)

d. Pin 7 digunakan untuk squre wave/driver output

e. Pin 8 digunakan untuk VCC 5 V

Gambar 3.5 Pin Konfigurasi DS 1307

Pada rangkaian sistem minimum RTC DS1307 digunakan 2 resistor

sebesar 10K yang berfungsi sebagai pull up, pada RTC DS1307 juga

menggunakan kristal sebesar 32,768 kHz dan baterai eksternal 3V digunakanan

untuk mencatu RTC agar pada saat adanya gangguan pada trafo atau mati listrik

maka data-data yang terdapat pada memori RTC DS1307 tidak hilang.

Page 60: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 3.6 Skematik RTC DS1307

3.1.4.3Perancangan Rangkaian LCD 16×2

LCD 16×2 dimanfaatkan sebagai penampil jam, tanggal, bulan, tahun dan

menu. Berikut adalah tabel konfigurasi koneksi antara modul LCD dengan

mikrokontroler.

Tabel 3.1 Koneksi Antara LCD Dengan Mikrokontroler

Pin LCD Keterangan LCD Port Mikrokontroler.

1 GND GND 2 VCC VCC 4 RS PortB.0 5 RW PortB.1 6 EN PortB.2

11 D4 PortB.3 12 D5 PortB.4 13 D6 PortB.5 14 D7 Port B.6 15 NC PortB.7 16 NC GND

Page 61: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 3.7 Rangkaian Penampil LCD 16×2

Pada rangkaian kontrol LCD 16×2 resistor 1K berfungsi untuk mengatur

kontras karakter yang ditampilkan oleh LCD 16×2.

3.1.4.4Rangkaian Bel Dengan IC UM3483

Pada bel ini terdapat sebuah IC yang dimana IC tersebut sudah tertanam 10

macam lagu, IC tersebut adalah IC UM3483. IC UM3483 merupakan salah satu

dari beberapa IC UM348X series. Seri UM348X adalah mask-Rom diprogram

multi-instrumentasi melodi generator, di implementasikan dalam teknologi

CMOS. Perangkat ini dirancang untuk bermain melodi menurut informasi

sebelumnya diprogram dan mampu menghasilkan 16 lagu dengan 3 instrumen

suara, piano, organ dan mandoli. Prangkat ini pula termasuk pra-penguat yang

menyediakan antarmuka yang sederhana ke sirkuit driver. Rangkaian Bel dengan

IC UM3483 seperti pada Gambar 3.8.

Page 62: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 3.8 Rangkaian Bel IC UM3483

Rangkaian bel ini terdiri dari beberapa daftar komponen yang digunakan

pada rangkaian. Daftar rangkaian sebagai berikut :

R1,2,3 = 100K

R2 = 56K

R5 = 330K

VR trimpot = 100K

C1 = 33pF

C2 = 20nF/10V

C3 = 20nf

C4 = 100nF/10V

C5 = 20uF/10V

C6 = 100uf

C7 = 4,7uF/10V

Page 63: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Q1 = 9012

Q2 = 9013

IC = UM 3483

SW = Push ON

LS = 8Ohm

Pada rangkaian Bel Musik ini diperlukan pengaturan kestabilan musik 10

lagunya, maka dibutuhkan Variabel Resistor. Pada rangkaian menggunakan VR

100K. Dengan VR ini maka frekuensi nada musik dapat diatur sedemikian, dan

bebes pengaturan.

3.1.4.5Perancangan Tombol

Tombol berfungsi untuk memilih dan mengatur waktu. Tombol terhubung

pada PORTC 0, PORTC 1, PORTC 2, PORTC 3. Pada perancangan tombol

menggunakan sistem aklif low. Pada saat terhubung dengan ground

mikrokontroler akan mengeksekusi perintah. Berikut adalah gambar tombol ke

port pada mikrokontroler.

Gambar 3.9 Tombol 4x1

Page 64: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Fungsi dari masing-masing tombol direncanakan sebagai berikut :

A. Tombol OK (1) masuk ke menu yang akan dipilih.

B. Tombol UP (2) untuk data display menjadi naik/ menambah data dan

untuk berpindah kepilihan menu berikutnya.

C. Tombol DOWN (3) untuk data display menjadi turun/mengurangi data

dan untuk berpindah ke pilihan menu selanjutnya.

D. Tombol CANCEL (4) untuk membatalkan dan kembali ke menu

selanjutnya.

3.2 Perangkat Lunak

3.2.1 Perancangan Perangkat Lunak

Pada pembuatan alat ini diprogram dengan menggunkan bahasa

pemograman C dengan file berekstensi *.c. Melalui perangkat lunak Codevision

AVR sebagai compiler-nya, file ini kemudian di-compile menjadi file

hexadesimal dengan ekstensi file *.hex. File .hex ini kemudian di-download

ke dalam mikrokontroler dengan menggunakan perangkat lunak AVR MKII

melalui perantara USB Downloader.

3.2.2 Flowchart

Flowchart digunakan sebagai dasar acuan dalam membuat program,

berikut ini adalah flowchart keseluruhan sistem

Page 65: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

tdk

tdk

tdk

Ya

Ya

ya

Ya

ya

ya

Baca data RTC

Ambil data Alarm pada EEPROM

Tombol ok Ditekan?

Atur Jam Set waktu

Set alaram

Set tanggal

Atur tanggal

Atur Alarm

Tampilkan Waktu,

Tanggal dan

Kondisi Batry

mulai

Inisialisai Port,

ADC, RTC

Data RTC=

Data

EEPROM?

Nyalakan Lagu Alarm

If

detik==18

Lagu Alarm Off

Tampilkan Menu

Page 66: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

3.2.3 Pemrograman Bahasa C dengan Codevision AVR

Dari flowchart dapat dibuat rancangan program yang sesuai. Struktur

penulisan bahasa C umumnya terdiri atas empat blok, yaitu:

a. Header

b. Deklarasi konstanta, variabel dan fungsi

c. Fungsi dan prosedur

d. Program utama

Page 67: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

BAB IV

PENGUJIAN DAN PEMBAHASAN

Pada bab ini membuat hasil dari pengujian dan pembahasan agar dapat

mengetahui sistem kerja rangkaian. Dari rangkaian tesebut kemudian dilakukan

pengujian agar dapat mengetahui dan mendapatkan data. Kemudian dari data

tersebut akan dibandingkan dengan penyesuaian dari teori-teori yang sudah

didapatkan. Tujuan utama dari pengujian ini adalah untuk membuktikan apakah

sistem yang dipergunakan pada alat telah memenuhi spesifikasi yang telah

direncanakan sebelumnya. Hasil pengujian akan dimanfaatkan untuk

menyempurnakan kinerja sistem dan sekaligus digunakan dalam pengembangan

lebih lanjut. Ada beberapa metode pengujian dapat dipilih berdasarkan fungsi

operasional dan beberapa parameter yang ingin dipilih dari sistem tersebut. Data

yang diperoleh dari metode pengujian yang dipilih tersebut dapat memberikan

informasi yang cukup unutk keperluan penyempurnaan.

4.1 Pengujian Fungisonal

Pengujian funsional bagian demi bagian dan sistem keseluruhan yang

terdapat pada rangkaian terdiri dari pengujian rangkaian catu daya, sistem

minimum mikrokontroler ATMega32, rangkaian bel, dan software.

Page 68: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

4.1.1 Pengujian Rangkain Catu Daya

Rangkaian catu daya adalah bagian yang sangat penting dalam suatu

rangkaian, yaitu sebagai sumber tengangan. Catu daya dibutuhkan pada sistem ini

adalah catu daya dengan output 2 buah tegangan +5V dan tegangan +12V. Catu

daya yang dipakai menggunakan trafo CT 2 A dengan 2 buah diode dan filter

kapasitor. Titik pengukuran pada keluaran IC 7805 dengan ground, yaitu Vcc

dengan Ground. Alat yang digunakan untuk pengujian yaitu voltmeter DC dan

osiloskop. Pengujian dilakukan dengan mengambil data pengukuran tegangan dari

rangkaian catu daya, yaitu pada Vcc dan Ground. Data hasil pengujian tegangan

catu daya adalah sebagai berikut :

Tabel 4.1 Pengujian Rangkaian Catu Daya Dengan Osiloskop

No Bagian Vin

Vout

Bentuk gelombang Tanpa

beban

Beban

penuh

1 Regulator

7805 5 V 5 V 4,95 V

2 Regulator

7812 12 V 12 V 11.8 V

Page 69: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

No Bagian Vin Tegangan Terukur

Bentuk Gelombang Tanpa Beban

Beban Penuh

3. Ground 0 V 0 V 0 V

Tabel 4.2 Pengujian Rangkaian Catu Daya Dengan Multimeter

No Bagian

Tegangan terukur

Bentuk gelombang Tanpa

beban

Beban

penuh

1 Regulator

7805 5 V 4.95 V

2 Regulator

7812 12 V 11.96 V

3 Ground 0 V 0 V

Dari hasil pengukuran tersebut dapat diketehui bahawa regulator 7805

bekerja dengan baik karena keluarannya ±5 V dan ±12 V. Untuk mengetahui

Page 70: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

output dari catu daya tersebut terdapat led indikator, apabila led menyala

menunjukan bahwa tegangan sudah mengalir pada rangkaian. Regulasi beban

biasanya dipengaruhi aleh faktor ripple (riak) dan koefisien suhu dari komponen

yang digunakan. Regulasi beban dapat dicari menggunakan rumus sebagai

berikut.

%Reg. Beban =���. ����� ����� − ���. ����� ����ℎ

���. ����� �����× 100%

Untuk tegangan keluaran 5 volt, %Reg.Beban =���.��

�× 100%=1%

Untuk tegangan keluaran 12 volt, %Reg. Beban =�����,��

��× 100% = 0,33%

Regulasi tegangan ini tidak terlalu berpengaruh terhadap rangkaian selama

masih dalam batas yang wajar dan masih memenuhi syarat untuk menyuplai

rangkaian.

4.1.2 Pengujian Unit Mikrokontroler

Mikrokontroler merupakan unit sebagai pengontrol utama dari

perancangan alat ini. Pengujian yang dilakukan bertujuan untuk menguji

mikrokontroler dapat bekerja dengan baik atau tidak bekerja dengan baik.

Pengujian dilakukan dengan menampilakan tulisan pada LCD. Sedangkan blog

diagram seperti gambar dibawah ini :

Gambar 4.1 Blok Pengujian Sistem Minimum ATMega32

4.1.3 Pengujian RTC

Mikrokontroler

ATMega32

LCD 16×2

Page 71: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

RTC DS1307 digunakan sebagai pewaktu jam digital dan kalender yang

merupakan tampilan utama sistem yang digunkan. Jam digital menunjukan data

waktu untuk jam, menit dan detiknya, terdapat pula tamabahan waktu untuk hari,

tanggal, bulan dan tahun. Fungsi utama dari rangkaian ini difungsikan sebagai

pewaktu untuk penanda bel sekolah otomatis. Contoh pada saat masuk sekolah

jam 07.15 WIB maka alat akan bekerja secara otomatis sesuai dengan pengaturan

waktu yang telah ditentukan oleh pihak sekolah. Blok diagaram perancangan

seperti gambar dibawah ini :

Gambar 4.2 Blok Pengujian RTC DS 1307

Pengujian dilakukan dengan membandingkan data waktu pada RTC

dengan data waktu yang sudah terkalibrasi. Pada pengujian RTC perbandingan

menggunakan Stopwatch sebagai acuan waktu. Berikut tabel pengamatan

perbandingan.

Tabel 4.3 Hasil Pengujain Pengkalibrasian Keakuratan Data RTC

Sistem RTC Stopwatch

00 : 10 : 00 00 : 10 : 00

00 : 45 : 00 00 : 45 : 00

01 : 00 : 00 01 : 00 : 00

02 : 00 : 00 02 : 00 : 00

RTC DS1307 LCD 16×2 Mikrokontroler

ATMega32

Page 72: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Terlihat dari data tabel pengujian keakuratan RTC dengan stopwach diatas

dapat diketahui bahwa waktu pada RTC sudah tepat waktu dan akurat. Berikut

adalah Gambar 4.3 pengujian dengan stopwatch.

Gambar 4.3 Pengujian Dengan stopwatch

4.1.4 Pengujian Tombol

Pada pengujain tombol untuk dapat mengetahui apakah tombol dapat

bekerja sesuai dengan perintah pada pengguna alat. Dalam tombol terdiri dari 4

buah tombol, yaitu OK, UP, Down, Cancel. Sedangkang dalam blok diagram

pengujian seperti gambar dibawah ini.

Gambar 4.4 Blok Diagram Pengujian Tombol

MENU

Mikrokontroler

ATMEGA32

LED & LCD DOWN

UP

OK

Page 73: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Tabel 4.4 Tabel Pengujian Tombol.

Tombol Keluaran Tombol (Volt)

MENU UP DOWN OK MENU UP DOWN OK

√ - - - 0 4,8 4,8 4,8

- √ - - 4,8 0 4,8 4,8

- - √ - 4,8 4,8 0 4,8

- - - √ 4,8 4,8 4,8 0

Keterangan pada tabel : (√) merupakan pada saat tombol ditekan.

4.1.4.1 Pengujian Tombol Menu

Sebelum melakukan pengujian akan tertampil awal pada LCD seperti

terlihat pada gambar 4.5

Gambar 4.5 Tampilan LCD Awal

Kemudain ketika tombol Menu ditekan maka akan tertampil pada LCD

seperti terlihat pada gambar 4.6

Page 74: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 4.6 Tampilan LCD Setelah Ditekan Tombol Menu

Setelah tombol menu ditekan tertapil pada LCD beberapa pilihan Menu

yang terdiri dari setting waktu, setting tanggal, dan setting alarm. Terlihat pada

gambar berikut ini.

Gambar 4.7 Menu Set Waktu Gambar 4.8 Menu Set Tanggal

Gambar 4.9 Menu Set Alarm

Page 75: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Menu setting waktu digunakan untuk mengatur dan menyesuaikan dengan

jam yang di inginkan. Berikut adalah gambar ketika melakukan pengaturan waktu.

Gambar 4.10 Set Waktu

Menu setting tanggal adalah menu yang digunakan untuk mengatur dan

menyesuaikan hari dan tanggal yang di inginkan. Berikut adalah gambar yang

ditunjukan ketika pengaturan hari dan tanggal.

Gambar 4.11 Set Hari dan Tanggal

Menu setting alarm berfungsi sebagai pengaturan waktu yang digunakan

untuk mengatur waktu, tanggal dan jenis lagu yang digunakan sebagai alarm.

Berikut adalah gambar yang ditunjukan pada gambar sebagai berikut.

Page 76: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 4.12 Set Hari, Tanggal dan Jenis Lagu

4.1.4.2 Pengujian Tombol UP dan DOWN

Pada pengujian tombol UP dan DOWN memiliki fungsi untuk melakukan

instruksi pemilihan pada menu yang tersedia seperti pada contoh ketika di

tampilan menu awal UP dan DOWN berfungsi untuk melakukan pemilihan

terhadap menu setting waktu, setting tanggal, dan setting alarm jika pada menu

setting waktu dilakukan untuk menambah dan mengurangi nilai jam, dan menit.

Pada menu setting tanggal dilakukan untuk menanbah dan mengurangi angka

yang menunjukan hari, tanggal, bulan, dan tahun.

4.1.4.3 Pengujian Tombol OK

Pada tombol Ok berfungsi sebagai mengeksekusi yang telah dipilih

sebagai setting waktu, setting tanggal, dan setting alarm yang telah ditentukan.

4.1.5 Pengujian Indikator LED

Pengujian ini dirancang untuk mengetahui apakah indikator pada led yang

digunakan berjalan dengan baik atau sebaliknya. Terdapat 4 indikator led yang

Page 77: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

bertugas sebagai penanda pada battery pada keadaan full, medium, low, dan very

low.

Keterangan LED :

1. Indikator LED menyala secara keseluruhan untuk battery full

2. Indikator LED menyala hanya tiga keadaan untuk battery medium

3. Indikator LED menyala hanya dua keadaaan untuk battery low

4. Indikator LED menyala hanya satu keadaan untuk battery very low

Berikut salah satu gambar pada saat percobaan keadaan battery full lampu

indikator LED akan menyala semua.

Gambar 4.13 Pengujian Indikator LED Pada Battery Ful

4.16 Pengujian Battery atau Aki

Pada pengujian aki atau battery digunakan sebagai listrik cadangan apabila

dalam keadaan listrik mati maka battery atau aki akan segera menggantikan peran

dari listrik menjadi penyuplai tegangan pada rangkaian agar tetep berjalan dengan

keinginan, dan pada saat listrik menyala battery akan terisi secara otomatis

sebagai tenaga cadangan pada rangkaian. Terlihat seperti gambar berikut ini.

Page 78: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 4.14 Pengujian Battery atau Aki

4.2 Pengujian Keseluruhan Alat

Setelah hardware dan softwarenya dapat teruji dengan baik, kemudian

melakukan pengujian keseluruhan sistem. Untuk langkah-langkahnya, yaitu

dengan menghubungkan keseluruhan rangkaian hardware dan software berupa

program yang telah di downloadkan ke mikrokontroler ATMEGA32 yang telah

diuji terlebih dahulu program yang akan di downloadkan ke mikrokontroler.

Tujuan yang paling utama dalam pengujian alat secara keseluruhan adalah untuk

mengetahui apakah alat dapat bekerja sesuai dengan keinginan yang telah

dirancang.

Sedangkan untuk tampilan pertama pada LCD setelah saklar utama di ON

kan akan tertampil tampilan seperti gambar dibawah ini.

Page 79: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 4.15 Tampilan Pertama Pada LCD

Gambar 4.16 Tampilan Utama Pada LCD

Untuk masuk ke menu utama maka dengan penekanan tombol Menu.

Terdapat 3 tampilan menu utama, yaitu “setting waktu”, “setting tanggal”, dan

“setting alarm”. Berikut ini merupakan gambar tampilan menu utama pada setiap

pengaturan.

Gambar 4.17 Menu Set Waktu Gambar 4.18 Menu Set Tanggal

Page 80: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Gambar 4.19 Menu Set Alarm

Dalam pengujian dilakukan dengan melakukan setting waktu, setting

tanggal, dan setting alarm dalam sehari. Kemudian melakukan pengamatan

apakah bel dapat berbunyi sesuai dengan pengaturan yang dilakukan.

Sedangkan lagu yang dikeluarkan menunjukan variasi bunyi, terdapat 10

lagu. Setiap lagu tersebut dapat dipilih sesuai dengan keinginan. Dalam percobaan

alat kali ini menggunakan beberapa urutan lagu. Lagu yang pertama untuk

pergatian jam pelajaran, lagu ke dua untuk pergatian untuk masuk, lagu ke tiga

untuk istirahat, dan lagu ke empat untuk waktu pulang sekolah.

4.2.1 Pengujian Dan Pengaturan Alarm Dalam Satu Hari

Pengujian ini bertujuan apakah akan bel berbunyi sesuai dengan setting

yang dilakukan. Pengujian ini dilakukan dengan menyalakan sistem tanpa

mematikan hingga bel berakhir.

Pengujian bel pada salah satu hari kamis biasa terlihat pada tabel berikut ini :

Page 81: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Tabel 4.5. Tabel Pengujian Pertama Mode Normal

NO

Pengujian Hasil Pengujian

Keterangan

Waktu Waktu Keterangan bel

1 6.30 6.30 Lagu 2 Masuk

2 7.15 7.15 lagu 1 Pelajaran ke-2

3 8.00 8.00 lagu 1 Pelajaran ke-3

4 8.45 8.45 lagu 1 Pelajaran ke-4

5 9.30 9.30 lagu 3 Istirahat-1

6 9.45 9.45 Lagu 2 Masuk

7 10.30 10.30 lagu 1 Pelajaran ke-6

8 11.15 11.15 lagu 1 Pelajaran ke-7

9 12.00 12.00 lagu 3 Istirahat-2

10 12.15 12.15 Lagu 2 Masuk

11 13.00 13.00 lagu 4 Pulang

Berdasarkan tabel hasil pengujian diatas dapat disimpulkan bahwa bel

berbunyi sesuai dengan waktu yang ditentukan dan suara bel sesuai dengan

pengaturan.

4.2.2 Pengujian Dan Pengaturan Alarm Dalam Satu Minggu

Pengujian ini bertujuan menguji pada hari minggu apakah berbunyi sesuai

dengan pengaturan. Pengujian ini dilakukan dengan menyalakan sistem selama 1

Page 82: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

minggu tanpa mematikan hingga berakhir. Pengujian hari libur tersaji pada Tabel

4.6.

Tabel 4.6 Tabel Pengujian Hari Libur

NO

Pengujian Hasil Pengujian

Keterangan

Hari & Tanggal Hari&Tanggal Ket. Bel

1 Senin, 7-10-2013 Senin, 7-10-2013 Nyala Hari Biasa

2 Selasa, 8-10-2013 Selasa, 8-10-2013 Nyala Hari Biasa

3 Rabu, 9-10-2013 Rabu, 9-10-2013 Nyala Hari Biasa

4 Kamis, 9-10-2013 Kamis, 10-10-

2013 Nyala Hari Biasa

5 Jumat, 11-10-

2013 Jumat, 11-10-2013 Nyala Hari Biasa

6 Sabtu, 12-10-

2013 Sabtu, 12-10-2013 Nyala Hari Biasa

7 Minggu, 13-10-

2013

Minggu, 13-10-

2013 Mati Minggu

berdasarkan tabel pengujian diatas dapat disimpulkan bahwa bel berbunyi

ketika pada hari biasa, ketika hari minggu maka bel akan mati. Hal ini

membuktikan bahwa bel mati sesuai dengan pengaturan hari libur.

4.3 Pengujian Program Sistem Minimum Mikrokontroler

Pengujian ini dilakukan untuk mengetahui program yang di download ke

mikrokontroler ATMega32 berjalan dengan baik dan sesuai alur kerja yang

diinginkan penulis.

Page 83: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

Pengujian ini meliputi analisa program dari bagian per bagian. Didalam

Pemograman bahasa C sendiri terdapat beberapa blok penulisan seperti header,

deklarasi konstanta, deklarasi variabel, deklarasi fungsi, program fungsi dan

program utama. Berikut ini akan dijelaskan beberapa blok atau bagian yang

digunakan didalam pemograman rangkaian dari segi sistem minimum

mikrokontroler ATMega32, antara lain :

4.3.1 Header

Bagian header meliputi :

#include <mega32.h> //header ATmega32 #include <delay.h> //header delay #include <i2c.h> //I2C Bus functions #include <ds1307.h> //DS1307 Real Time Clock functions #include <alcd.h> //Alphanumeric LCD functions #include <stdio.h> //standar Input/Output #include <stdarg.h> // #include <stdlib.h> //standar liburary #define ADC_VREF_TYPE 0x60 // definisi register referensi ADC #define RTC_ADDR 0xD0 // definisi register alamat I2C #define ok !PINC.4 //definsi tombol ok di PINC.4 #define down !PINC.3 //definsi tombol down di PINC.3 #define up !PINC.2 //definisi tombol up di PINC.2 #define cancel !PINC.1 //definisi cancel di PINC.1

(#Preprosessor) digunakan untuk memasukkan (include) text dari file lain,

misalnya untuk mendefinisikan mikrokontroller yang digunakan seperti #include

<mega32.h>, maupun untuk mendefinisikan fungsi pustaka seperti #include

<stdio.h> dan #include <delay.h>. #define digunakan untuk mendefinisikan

makro, dimana pada program ini program define digunakan untuk

Page 84: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

menginisialisasikan PINC.1 sampai PINC.4 untuk tombol PINC.1 CANCEL,

PINC.2 UP, PINC.3 DOWN, PINC.4 OK.

4.3.2 Deklarasi Variabel Global

Setiap konstanta dan variabel yang akan digunakan pada program harus

dideklarasikan agar konstanta dan variabel yang akan digunakan tersebut dapat

dikenali. Dalam rangkaian ini, hanya menggunakan satu konstanta dan variabel,

yaitu :

char *dday[]={"Senin ","Selasa","Rabu ","Kamis ","Jum'at","Sabtu ","minuteggu"," "}; unsigned char hour, minute, sec, week_day, day, month, year; signed char v_hour,v_minute,v_week_day,v_day=1, v_month=1, hari,cacah; int v_year; unsigned int pointer, alarm, j; unsigned char __ADC; signed char alarm_jam[60],alarm_menit[60],alarm_lagu[20];

4.3.3 Deklarasi Fungsi

Merupakan subprogram utama yang menjalankan suatu fungsi tertentu.

Program fungsi ini akan dijalankan apabila dipanggil, baik dipanggil dalam

program utama maupun program fungsi lainnya. Pada pemrograman rangkaian

ini menggunakan beberapa fungsi, antara lain :

4.3.3.1 Fungsi Pembacaan ADC

Pada program ini berisi perintah konversi data analog ke digital, berikut

list program read ADC. Listing program adalah sebagai berikut :

unsigned char read_adc(unsigned char adc_input){ ADMUX= adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion

Page 85: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; }

4.3.3.2 Fungsi Tampil LCD

Pada fungsi ini berisi tenteng pembacaan pada LCD. Yang akan tertampil

pada LCD. Listing program adalah sebagai berikut :

void tampil_lcd(unsigned char kolom,unsigned char baris,char flash*fmtstr,...){ char lcd[17]; va_list(ap); va_start(ap,fmtstr); vsprintf(lcd,fmtstr,ap); va_end(ap) lcd_gotoxy(kolom,baris); lcd_puts(lcd); }

4.3.3.3 Fungsi Setting Nilai Jam

Pada fungsi program ini berguna untuk menyeting nilai jam yang akan

tertampil pada LCD. Listing program adalah sebagai berikut :

void setting_jam(){ lcd_clear(); //menghapus lcd dari data sebelumnya while(1){ delay_ms(50); tampil_lcd(7,0,"%2i:%2i:00",v_hour,v_minute); //menampilkan nilai variable settingan jam, menit delay_ms(100); tampil_lcd(7,0," :%2i:00",v_minute); if(up){while(up);v_hour++;if(v_hour>23)v_hour=0;} //increment nilai variable jam if(down){while(up);v_hour--;if(v_hour<=0)v_hour=23;} //decrement nilai variable jam if(ok){while(ok);setting_menit();} //if ok pergi ke fungsi setting menit if(cancel){while(cancel);rtc_main();} //if cancel pergi ke fungsi rtc main }

Page 86: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

}

4.3.3.4 Fungsi Setting Menit

Fungsi setting menit adalah kelanjutan dari setting jam, setelah setting jam

akan menyeting menit. Listing program adalah sebagai berikut :

void setting_menit(){ lcd_clear(); //menghapus lcd dari data sebelumnya while(1){ delay_ms(50); tampil_lcd(7,0,"%2i:%2i:00",v_hour,v_minute);//menampilkan nilai variable settingan menit delay_ms(100); tampil_lcd(7,0,"%2i: :00",v_hour); if(up){while(up);v_minute++;if(v_minute>59)v_minute=0;}//increment nilai variable menit if(down){while(up);v_minute--;if(v_minute<=0)v_minute=59;} //decrement nilai variable menit if(ok){while(ok);rtc_set_time(v_hour,v_minute,0);rtc_main();} //if ok pergi ke rtc main if(cancel){while(cancel);rtc_main();} //if cancel pergi ke rtc main } }

4.3.3.5 Fungsi Setting Hari

Fungsi setting hari adalah kelanjutan dari setting hari, setelah setting menit

akan menyeting hari. Listing program adalah sebagai berikut :

void setting_hari(){ lcd_clear(); //menghapus lcd dari data sebelumnya while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year); //menampilkan nilai variable hari, tanggal, bulan dan tahun delay_ms(50); tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[7],v_day,v_month,v_year); delay_ms(50); if(up){while(up);v_week_day++;if(v_week_day>6)v_week_day=0;} //increment nilai variable hari

Page 87: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

if(down){while(up);v_week_day--;if(v_week_day<=0)v_week_day=6;} //decerement nilai variable hari if(ok){while(ok);setting_tanggal();} //if ok pergi ke fungsi setting tanggal if(cancel){while(cancel);rtc_main();} //if cancel pergi fungsi rtc main } }

4.3.3.6 Fungsi Setting Tanggal

Fungsi setting hari adalah kelanjutan dari setting tanggal, setelah setting

hari akan menyeting tanggal. Listing program adalah sebagai berikut :

void setting_tanggal(){ lcd_clear(); //menghapus tampilan lcd dari data sebelumnya while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year);//menampilkan nilai variable hari, tanggal bulan dan tahun delay_ms(50); tampil_lcd(0,1,"%s :%2i:%4i",dday[v_week_day],v_month,v_year); delay_ms(50); if(up){while(up);v_day++;if(v_day>31)v_day=1;} //increment nilai variable tanggal if(down){while(up);v_day--;if(v_day<=0)v_day=31;} //decrement nilai variable tanggal if(ok){while(ok);setting_bulan();} //if ok pergi ke setting bulan if(cancel){while(cancel);rtc_main();} // if cancel pergi ke rtc main } }

4.3.3.7 Fungsi Setting Bulan

Fungsi setting tanggal adalah kelanjutan dari setting bulan, setelah setting

tanggal akan menyeting bulan. Listing program adalah sebagai berikut :

void setting_bulan(){ lcd_clear(); while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year); delay_ms(50);

Page 88: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

tampil_lcd(0,1,"%s%2i: :%4i",dday[v_week_day],v_day,v_year); delay_ms(50); if(up){while(up);v_month++;if(v_month>12)v_month=1;} if(down){while(up);v_month--;if(v_month<=0)v_month=12;} if(ok){while(ok);setting_tahun();} if(cancel){while(cancel);rtc_main();} } }

4.3.3.8 Fungsi Setting Tahun

Fungsi setting bulan adalah kelanjutan dari setting tahun, setelah setting

bulan akan menyeting tahun. Listing program adalah sebagai berikut :

void setting_tahun(){ lcd_clear(); while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year); delay_ms(50); tampil_lcd(0,1,"%s%2i:%2i: ",dday[v_week_day],v_day,v_month); delay_ms(50); if(up){while(up);v_year++;if(v_year>2100)v_year=0;} if(down){while(up);v_year--;if(v_year<=0)v_year=2100;} if(ok){while(ok);rtc_set_date(v_week_day,v_day,v_month,v_year);rtc_main();} if(cancel){while(cancel);rtc_main();} } }

4.3.3.9 Fungsi Setting Alarm

Fungsi setting alarm adalah kelanjutan setelah setting waktu, tanggal,

bulan, dan tahun. Listing program adalah sebagai berikut :

void set_alarm(){ alarm=0; pointer=1; lcd_clear(); atas: while(1){

Page 89: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

tampil_lcd(3,0,"Pilih hari"); if(up){while(up);pointer++;if(pointer>6)pointer=1;} if(down){while(down);pointer--;if(pointer<1)pointer=6;} switch(pointer){ case 1 : hari=1;tampil_lcd(0,1,"senin ");break; case 2 : hari=2;tampil_lcd(0,1,"selasa");break; case 3 : hari=3;tampil_lcd(0,1,"rabu ");break; case 4 : hari=4;tampil_lcd(0,1,"kamis ");break; case 5 : hari=5;tampil_lcd(0,1,"jumat ");break; case 6 : hari=6;tampil_lcd(0,1,"sabtu ");break; } if(ok){while(ok);goto setwaktu;} if(cancel){while(cancel);rtc_main();} } setwaktu: lcd_clear(); while(1){ tampil_lcd(3,0,"Set Alarm[%2d]",cacah+1); delay_ms(50); tampil_lcd(3,0,"Set Alarm[ ]",cacah+1); delay_ms(50); if(up){while(up);cacah++;if(cacah>9)cacah=0;} if(down){while(down);cacah--;if(cacah<=0)cacah=9;} if(ok){while(ok);goto bawah;} if(cancel){while(cancel);rtc_main();} } bawah: lcd_clear(); if(hari==1)alarm=cacah; if(hari==2)alarm=cacah+10; if(hari==3)alarm=cacah+20; if(hari==4)alarm=cacah+30; if(hari==5)alarm=cacah+40; if(hari==6)alarm=cacah+50; while(1){ tampil_lcd(0,1,"%2d:%2d lagu:%2d ",alarm_jam[alarm],alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); tampil_lcd(0,1," :%2d lagu:%2d ",alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); if(up){while(up);alarm_jam[alarm]++;if(alarm_jam[alarm]>23)alarm_jam[alarm]=0;}

Page 90: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

if(down){while(down);alarm_jam[alarm]--;if(alarm_jam[alarm]<0)alarm_jam[alarm]=23;} if(ok){ while(ok); ee_jam[alarm]=alarm_jam[alarm]; goto set_menit; } } set_menit: delay_ms(500); lcd_clear(); while(1){ tampil_lcd(0,1,"%2d:%2d lagu:%2d ",alarm_jam[alarm],alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); tampil_lcd(0,1,"%2d: lagu:%2d ",alarm_jam[alarm],alarm_lagu[cacah]); delay_ms(50); if(up){while(up);alarm_menit[alarm]++;if(alarm_menit[alarm]>59)alarm_menit[alarm]=0;} if(down){while(down);alarm_menit[alarm]--;if(alarm_menit[alarm]<0)alarm_menit[alarm]=59;} if(ok){ while(ok); ee_menit[alarm]=alarm_menit[alarm]; goto set_lagu; } } set_lagu: delay_ms(500); lcd_clear(); while(1){ tampil_lcd(0,1,"%2d:%2d lagu:%2d ",alarm_jam[alarm],alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); tampil_lcd(0,1,"%2d:%2d lagu: ",alarm_jam[alarm],alarm_menit[alarm]); delay_ms(50); if(up){while(up);alarm_lagu[cacah]++;if(alarm_lagu[cacah]>9)alarm_lagu[cacah]=1;} if(down){while(down);alarm_lagu[cacah]--;if(alarm_lagu[cacah]<1)alarm_lagu[cacah]=9;} if(ok){ while(ok);

Page 91: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

ee_lagu[cacah]=alarm_lagu[cacah]; goto atas; } if(cancel){ while(cancel); ee_lagu[cacah]=alarm_lagu[cacah]; goto setwaktu; } } }

4.3.3.10 Fungsi RTC Main

Fungsi dari RTC main adalah fungsi dari pembacaan dari RTC DS1307.

Listing program adalah sebagai berikut :

void rtc_main(){ int x=0,putar=0; lcd_clear(); rtc_init(0,0,0); while(1){ mulai: PORTD.0=0; __ADC = read_adc(0); delay_ms(100); rtc_get_time(&hour,&minute,&sec); rtc_get_date(&week_day,&day,&month,&year); tampil_lcd(7,0,"%2d:%2d:%2d\n",hour,minute,sec); tampil_lcd(6,1,"%2d/%2d/%4d",day,month,2000+year); tampil_lcd(0,0,"%03d", __ADC); lcd_gotoxy(0,1); lcd_puts(dday[week_day]); if(week_day == 6) goto loncat; if(week_day == 0) for(j=0;j<10;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j]-=1; putar=alarm_lagu[j]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec);

Page 92: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 1) for(j=10;j<20;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-10]-=1; putar=alarm_lagu[j-10]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100);

Page 93: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 2) for(j=20;j<30;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-20]-=1; putar=alarm_lagu[j-20]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100);

Page 94: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 3) for(j=30;j<40;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-30]-=1; putar=alarm_lagu[j-30]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec);

Page 95: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 4) for(j=40;j<50;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-40]-=1; putar=alarm_lagu[j-40]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){

Page 96: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 5) for(j=50;j<60;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-50]-=1; putar=alarm_lagu[j-50]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x);

Page 97: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if ((__ADC >= 90) && (__ADC <= 95)){ tampil_lcd(0,0,"Vlow"); PORTD = 0b1000000; } if ((__ADC >= 96) && (__ADC <= 100)){ tampil_lcd(0,0,"Low "); PORTD = 0b1100000; } if ((__ADC >= 101) && (__ADC <= 105)){ tampil_lcd(0,0,"Med "); PORTD = 0b1110000; } if (__ADC >= 106){ tampil_lcd(0,0,"Full "); PORTD = 0b1111100; } loncat: if(cancel){while(cancel);menu();} }

Page 98: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

}

4.3.3.11 Fungsi Tampil Menu

Fungsi dari tampilan menu adalah untuk menanpilkan pilihan menu.

Listing program adalah sebagai berikut :

void menu(){ pointer=1; lcd_clear(); while(1){ tampil_lcd(3,0,"MENU"); if(up){while(up);delay_ms(200);pointer++;if(pointer>3)pointer=1;} if(down){while(down);delay_ms(200);pointer--;if(pointer<=0)pointer=3;} switch(pointer){ case 1 : tampil_lcd(0,1,"1.Set Waktu ");break; case 2 : tampil_lcd(0,1,"2.Set Tanggal ");break; case 3 : tampil_lcd(0,1,"3.Set Alarm ");break; } if(ok){while(ok); switch(pointer){ case 1 : setting_jam();break; case 2 : setting_hari();break; case 3 : set_alarm();break; } } if(cancel){while(cancel);rtc_main();} } } 4.3.3.12 Fungsi Inisialisai

Funsi inisialisasi adalah fungsi untuk mengatur port setiap port untuk

inputan atau outputan. Berikut adalah listing program :

void init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0xFF; PORTC = 0xFF; DDRC = 0x00; PORTD = 0b00000000; DDRD=0xFF; ADMUX=ADC_VREF_TYPE & 0xff;

Page 99: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

ADCSRA=0x86; SFIOR&=0xEF; lcd_init(16); tampil_lcd (0,0,"Bel Sekolah "); tampil_lcd (0,1,"Brbsis Mikro "); delay_ms(1500); lcd_clear(); }

4.3.3.13 Fungsi Main

Fungsi main adalah fungsi dari keseluruhan dari program utama pada

mikrokontroler. Beikut adalah listing program :

void main() { init(); i2c_init(); rtc_main(); }

Page 100: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

BAB V PENUTUP

5.1 Kesimpulan

Setelah melakukan berbagai percobaan dan analisis terhadap alat yang

telah dirancang dan dibuat, maka dapat disimpulkan sebagai berikut :

1. Alat sudah dapat bekerja dengan baik sesuai dengan yang diharapkan, hal

ini dapat dibuktikan dengan bel yang berbunyi secara otomatis sesuai

dengan jadwal yang ditentukan.

2. Apabila pada suatu waktu waktu jadwal dirubah dengan mudah.

3. Ketika di hari libur kalender dan hari libur minggu bel akan secara

otomatis dapat mati, selain itu saat listrik mati data-data yang telah

tersimpan tidak begitu saja hilang, sehingga tidak perlu melakukan

pengaturan ulang.

4. Dapat di atur dengan 10 jenis melodi

5.2 Saran

Apabila alat ini ingin dikembangkan terdapat beberapa kemungkinan yang

bisa dilakukan dalam peyempurnaan alat. Sebagai berikut :

1. Desain BOX yang lebih minimalis.

2. Suara lagu pada bel dapat menggunakan suara yang lebih menarik.

3. Menanbahkan fitur-fitur pada alat sehingga dapat mempermudah

penggunaan.

Page 101: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

4. Pada baterry cadangan yang digunakan 9V lebih baik dilengkapi

dengan charger pada saat baterry habis tidak perlu diganti.

Page 102: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

DAFTAR PUSTAKA

[1] Data sheet ATMega32, Regulator 7805,RTC DS1307, UM3483, LCD 16x2,

diakses di http://www.alldatasheet.com

[2] Bejo, Agus., “C & AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler

ATmega 8535”, Graha Ilmu, Yogyakarta, 2008.

[3] Eko putra, Agfianto, “Mikrokontroler AT89 dan AVR”, Gava Media;

Yogyakarta 2010.

[4] Wibawanto, Hari, “Elektronika Dasar”, Elex Media Komputindo, Yogykarta

2009.

Page 103: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

LAMPIRAN

Page 104: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32
Page 105: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

/***************************************************** This program was produced by the CodeWizardAVR V2.05.3 Standard Automatic Program Generator © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 29/9/2013 Author : Alexander David Sihotang Company : Diploma Teknik Elektro Comments: Chip type : ATmega32 Program type : Application AVR Core Clock frequency: 12.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 512 *****************************************************/ #include <mega32.h> //header ATmega32 #include <delay.h> //header delay #include <i2c.h> //I2C Bus functions #include <ds1307.h> //DS1307 Real Time Clock functions #include <alcd.h> //Alphanumeric LCD functions #include <stdio.h> //standar Input/Output #include <stdarg.h> // #include <stdlib.h> //standar liburary #define ADC_VREF_TYPE 0x60 // definisi register referensi ADC #define RTC_ADDR 0xD0 // definisi register alamat I2C #define ok !PINC.4 //definsi tombol ok di PINC.4 #define down !PINC.3 //definsi tombol down di PINC.3 #define up !PINC.2 //definisi tombol up di PINC.2 #define cancel !PINC.1 //definisi cancel di PINC.1 /*===============Deklarasi Variable GLobal==============*/ char *dday[]={"Senin ","Selasa","Rabu ","Kamis ","Jum'at","Sabtu ","minggu"," "}; unsigned char hour, minute, sec, week_day, day, month, year; signed char v_hour,v_minute,v_week_day,v_day=1, v_month=1, hari,cacah;

Page 106: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

int v_year; unsigned int pointer, alarm, j; unsigned char __ADC; signed char alarm_jam[60],alarm_menit[60],alarm_lagu[20]; /*===============Deklarasi Variable EEPROM==============*/ __eeprom int ee_jam[60]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, ee_menit[60]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, ee_lagu[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; /*==================Deklarasi Prototype FUngsi==============*/ void setting_jam(); void set_alarm(); void setting_menit(); void setting_hari(); void setting_tanggal(); void setting_bulan(); void setting_tahun(); void menu(); void rtc_main(); /*=======================Fungsi Read_ADC================*/ unsigned char read_adc(unsigned char adc_input){ ADMUX= adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; } /*================Fungsi Tampil LCD=========================*/ void tampil_lcd(unsigned char kolom,unsigned char baris,char flash*fmtstr,...){ char lcd[17]; va_list(ap); va_start(ap,fmtstr); vsprintf(lcd,fmtstr,ap); va_end(ap) lcd_gotoxy(kolom,baris); lcd_puts(lcd);

Page 107: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

} /*========================Fungsi Setting Nilai Jam==================*/ void setting_jam(){ lcd_clear(); //menghapus lcd dari data sebelumnya while(1){ delay_ms(50); tampil_lcd(7,0,"%2i:%2i:00",v_hour,v_minute); //menampilkan nilai variable settingan jam, menit delay_ms(100); tampil_lcd(7,0," :%2i:00",v_minute); if(up){while(up);v_hour++;if(v_hour>23)v_hour=0;} //increment nilai variable jam if(down){while(up);v_hour--;if(v_hour<=0)v_hour=23;} //decrement nilai variable jam if(ok){while(ok);setting_menit();} //if ok pergi ke fungsi setting menit if(cancel){while(cancel);rtc_main();} //if cancel pergi ke fungsi rtc main } } /*===================Fungsi Setting Menit====================*/ void setting_menit(){ lcd_clear(); //menghapus lcd dari data sebelumnya while(1){ delay_ms(50); tampil_lcd(7,0,"%2i:%2i:00",v_hour,v_minute);//menampilkan nilai variable settingan menit delay_ms(100); tampil_lcd(7,0,"%2i: :00",v_hour); if(up){while(up);v_minute++;if(v_minute>59)v_minute=0;}//increment nilai variable menit if(down){while(up);v_minute--;if(v_minute<=0)v_minute=59;} //decrement nilai variable menit if(ok){while(ok);rtc_set_time(v_hour,v_minute,0);rtc_main();} //if ok pergi ke rtc main if(cancel){while(cancel);rtc_main();} //if cancel pergi ke rtc main } } /*=====================Fungsi Setting Hari=========================*/ void setting_hari(){

Page 108: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

lcd_clear(); //menghapus lcd dari data sebelumnya while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year); //menampilkan nilai variable hari, tanggal, bulan dan tahun delay_ms(50); tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[7],v_day,v_month,v_year); delay_ms(50); if(up){while(up);v_week_day++;if(v_week_day>6)v_week_day=0;} //increment nilai variable hari if(down){while(up);v_week_day--;if(v_week_day<=0)v_week_day=6;} //decerement nilai variable hari if(ok){while(ok);setting_tanggal();} //if ok pergi ke fungsi setting tanggal if(cancel){while(cancel);rtc_main();} //if cancel pergi fungsi rtc main } } /*==============Fungsi Setting Tanggal====================*/ void setting_tanggal(){ lcd_clear(); //menghapus tampilan lcd dari data sebelumnya while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year);//menampilkan nilai variable hari, tanggal bulan dan tahun delay_ms(50); tampil_lcd(0,1,"%s :%2i:%4i",dday[v_week_day],v_month,v_year); delay_ms(50); if(up){while(up);v_day++;if(v_day>31)v_day=1;} //increment nilai variable tanggal if(down){while(up);v_day--;if(v_day<=0)v_day=31;} //decrement nilai variable tanggal if(ok){while(ok);setting_bulan();} //if ok pergi ke setting bulan if(cancel){while(cancel);rtc_main();} // if cancel pergi ke rtc main } } /*================Fungsi Setting Bulan=====================*/ void setting_bulan(){ lcd_clear(); while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year); delay_ms(50);

Page 109: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

tampil_lcd(0,1,"%s%2i: :%4i",dday[v_week_day],v_day,v_year); delay_ms(50); if(up){while(up);v_month++;if(v_month>12)v_month=1;} if(down){while(up);v_month--;if(v_month<=0)v_month=12;} if(ok){while(ok);setting_tahun();} if(cancel){while(cancel);rtc_main();} } } /*=============Fungsi Setting Tahun==================*/ void setting_tahun(){ lcd_clear(); while(1){ tampil_lcd(0,1,"%s%2i:%2i:%4i",dday[v_week_day],v_day,v_month,v_year); delay_ms(50); tampil_lcd(0,1,"%s%2i:%2i: ",dday[v_week_day],v_day,v_month); delay_ms(50); if(up){while(up);v_year++;if(v_year>2100)v_year=0;} if(down){while(up);v_year--;if(v_year<=0)v_year=2100;} if(ok){while(ok);rtc_set_date(v_week_day,v_day,v_month,v_year);rtc_main();} if(cancel){while(cancel);rtc_main();} } } /*=====================Fungsi Setting Alarm=====================*/ void set_alarm(){ alarm=0; pointer=1; lcd_clear(); atas: while(1){ tampil_lcd(3,0,"Pilih hari"); if(up){while(up);pointer++;if(pointer>6)pointer=1;} if(down){while(down);pointer--;if(pointer<1)pointer=6;} switch(pointer){ case 1 : hari=1;tampil_lcd(0,1,"senin ");break; case 2 : hari=2;tampil_lcd(0,1,"selasa");break; case 3 : hari=3;tampil_lcd(0,1,"rabu ");break;

Page 110: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

case 4 : hari=4;tampil_lcd(0,1,"kamis ");break; case 5 : hari=5;tampil_lcd(0,1,"jumat ");break; case 6 : hari=6;tampil_lcd(0,1,"sabtu ");break; } if(ok){while(ok);goto setwaktu;} if(cancel){while(cancel);rtc_main();} } setwaktu: lcd_clear(); while(1){ tampil_lcd(3,0,"Set Alarm[%2d]",cacah+1); delay_ms(50); tampil_lcd(3,0,"Set Alarm[ ]",cacah+1); delay_ms(50); if(up){while(up);cacah++;if(cacah>9)cacah=0;} if(down){while(down);cacah--;if(cacah<=0)cacah=9;} if(ok){while(ok);goto bawah;} if(cancel){while(cancel);rtc_main();} } bawah: lcd_clear(); if(hari==1)alarm=cacah; if(hari==2)alarm=cacah+10; if(hari==3)alarm=cacah+20; if(hari==4)alarm=cacah+30; if(hari==5)alarm=cacah+40; if(hari==6)alarm=cacah+50; while(1){ tampil_lcd(0,1,"%2d:%2d lagu:%2d ",alarm_jam[alarm],alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); tampil_lcd(0,1," :%2d lagu:%2d ",alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); if(up){while(up);alarm_jam[alarm]++;if(alarm_jam[alarm]>23)alarm_jam[alarm]=0;} if(down){while(down);alarm_jam[alarm]--;if(alarm_jam[alarm]<0)alarm_jam[alarm]=23;} if(ok){ while(ok); ee_jam[alarm]=alarm_jam[alarm]; goto set_menit; }

Page 111: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

} set_menit: delay_ms(500); lcd_clear(); while(1){ tampil_lcd(0,1,"%2d:%2d lagu:%2d ",alarm_jam[alarm],alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); tampil_lcd(0,1,"%2d: lagu:%2d ",alarm_jam[alarm],alarm_lagu[cacah]); delay_ms(50); if(up){while(up);alarm_menit[alarm]++;if(alarm_menit[alarm]>59)alarm_menit[alarm]=0;} if(down){while(down);alarm_menit[alarm]--;if(alarm_menit[alarm]<0)alarm_menit[alarm]=59;} if(ok){ while(ok); ee_menit[alarm]=alarm_menit[alarm]; goto set_lagu; } } set_lagu: delay_ms(500); lcd_clear(); while(1){ tampil_lcd(0,1,"%2d:%2d lagu:%2d ",alarm_jam[alarm],alarm_menit[alarm],alarm_lagu[cacah]); delay_ms(50); tampil_lcd(0,1,"%2d:%2d lagu: ",alarm_jam[alarm],alarm_menit[alarm]); delay_ms(50); if(up){while(up);alarm_lagu[cacah]++;if(alarm_lagu[cacah]>9)alarm_lagu[cacah]=1;} if(down){while(down);alarm_lagu[cacah]--;if(alarm_lagu[cacah]<1)alarm_lagu[cacah]=9;} if(ok){ while(ok); ee_lagu[cacah]=alarm_lagu[cacah]; goto atas; } if(cancel){ while(cancel); ee_lagu[cacah]=alarm_lagu[cacah]; goto setwaktu;

Page 112: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

} } } /*===============Fungsi RTC Main================*/ void rtc_main(){ int x=0,putar=0; lcd_clear(); rtc_init(0,0,0); while(1){ mulai: PORTD.0=0; __ADC = read_adc(0); delay_ms(100); rtc_get_time(&hour,&minute,&sec); rtc_get_date(&week_day,&day,&month,&year); tampil_lcd(7,0,"%2d:%2d:%2d\n",hour,minute,sec); tampil_lcd(6,1,"%2d/%2d/%4d",day,month,2000+year); tampil_lcd(0,0,"%03d", __ADC); lcd_gotoxy(0,1); lcd_puts(dday[week_day]); if(week_day == 6) ; if(week_day == 0) for(j=0;j<10;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j]-=1; putar=alarm_lagu[j]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); }

Page 113: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 1) for(j=10;j<20;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-10]-=1; putar=alarm_lagu[j-10]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break;

Page 114: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

} } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 2) for(j=20;j<30;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-20]-=1; putar=alarm_lagu[j-20]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; }

Page 115: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

} while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 3) for(j=30;j<40;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-30]-=1; putar=alarm_lagu[j-30]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } }

Page 116: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 4) for(j=40;j<50;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-40]-=1; putar=alarm_lagu[j-40]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec);

Page 117: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if(week_day == 5) for(j=50;j<60;j++){ if(hour==alarm_jam[j] && minute==alarm_menit[j] && sec==0 ){ alarm_lagu[j-50]-=1; putar=alarm_lagu[j-50]; PORTD.0=1; PORTD.1=0; lcd_clear(); while(1){ tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100); lcd_clear(); delay_ms(100); rtc_get_time(&hour,&minute,&sec); if(sec==4){ for(x=0;x<=putar;x++){ PORTD.0=1; delay_ms(40); tampil_lcd(0,0,"%d",x); PORTD.1=0; delay_ms(1900); } break; } } while(1){ rtc_get_time(&hour,&minute,&sec); tampil_lcd(5,0,"ALARM !!!"); tampil_lcd(5,1,"%2d:%2d:%2d\n",hour,minute,sec); delay_ms(100);

Page 118: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

lcd_clear(); delay_ms(100); if(sec>18){ PORTD.0=0; PORTD.1=0; goto mulai; } } } } if ((__ADC >= 90) && (__ADC <= 95)){ tampil_lcd(0,0,"Vlow"); PORTD = 0b1000000; } if ((__ADC >= 96) && (__ADC <= 100)){ tampil_lcd(0,0,"Low "); PORTD = 0b1100000; } if ((__ADC >= 101) && (__ADC <= 105)){ tampil_lcd(0,0,"Med "); PORTD = 0b1110000; } if (__ADC >= 106){ tampil_lcd(0,0,"Full "); PORTD = 0b1111100; } loncat: if(cancel){while(cancel);menu();} } } /*========================Fungsi Tampil Menu========================*/ void menu(){ pointer=1; lcd_clear(); while(1){ tampil_lcd(3,0,"MENU"); if(up){while(up);delay_ms(200);pointer++;if(pointer>3)pointer=1;} if(down){while(down);delay_ms(200);pointer--;if(pointer<=0)pointer=3;}

Page 119: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32

switch(pointer){ case 1 : tampil_lcd(0,1,"1.Set Waktu ");break; case 2 : tampil_lcd(0,1,"2.Set Tanggal ");break; case 3 : tampil_lcd(0,1,"3.Set Alarm ");break; } if(ok){while(ok); switch(pointer){ case 1 : setting_jam();break; case 2 : setting_hari();break; case 3 : set_alarm();break; } } if(cancel){while(cancel);rtc_main();} } } /*==========================Fungsi Inisialisai=======================*/ void init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0xFF; PORTC = 0xFF; DDRC = 0x00; PORTD = 0b00000000; DDRD=0xFF; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x86; SFIOR&=0xEF; lcd_init(16); tampil_lcd (0,0,"Bel Sekolah "); tampil_lcd (0,1,"Brbsis Mikro "); delay_ms(1500); lcd_clear(); } /*==========================Fungsi Main======================*/ void main() { init(); i2c_init(); rtc_main(); }

Page 120: BEL SEKOLAH TERPROGRAM BERBASIS MIKROKONTROLER ATMega32