• Tidak ada hasil yang ditemukan

Perancangan Hardware Jam Digital Dengan Sistem Kalender Berbasis Mikrokontroller DS1307

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Hardware Jam Digital Dengan Sistem Kalender Berbasis Mikrokontroller DS1307"

Copied!
85
0
0

Teks penuh

(1)

PERANCANGAN HARDWARE JAM DIGITAL

DENGAN SISTEM KALENDER BERBASIS

MIKROKONTROLLER DS1307

TUGAS AKHIR

DIAN SAIFUL RAMADHAN NUR TANJUNG

072408030

PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

PERANCANGAN HARDWARE JAM DIGITAL DENGAN SISTEM KALENDER BERBASIS

MIKROKONTROLLER DS1307

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh gelar Ahli Madya

DIAN SAIFUL RAMADHAN NUR TANJUNG 072408030

PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERNYATAAN

PERANCANGAN HARDWARE JAM DIGITAL DENGAN SISTEM KALENDER BERBASIS

MIKROKONTROLLER DS1307

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 7 Agustus 2010

(4)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa, dengan

limpahan berkatnya penyusunan tugas akhir ini dapat diselesaikan dalam waktu yang

ditetapkan.

Ucapan terima kasih penulis sampaikan kepada berbagai pihak yang telah

banyak membantu penulis dalam penyelesaian Tugas Akhir ini yaitu kepada:

1. Bapak Prof. Dr. Eddy Marlianto, M.Sc, selaku Dekan Fakultas Matematika

dan Ilmu Pengetahuan Alam.

2. Bapak Drs. Syahrul Humaidi, M.Sc, selaku Ketua Program Studi D-III Fisika

Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam.

3. Ibu Dra. Justinon, M.Si, selaku Sekretaris Program Studi D-III Fisika

Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam.

4. Bapak Drs. Kurnia Brahmana, M.Si, selaku Dosen Pembimbing Tugas Akhir

yang telah memberikan bimbingan dan kepercayaan penuh pada penulis untuk

menyempurnakan tugas akhir ini.

5. Dosen, staff dan pegawai di Program Studi D-III Fisika Instrumentasi Fakultas

Matematika dan Ilmu Pengetahuan Alam.

6. Teristimewa kedua orangtua penulis Ayahanda S.Tanjung dan Ibunda N.A.Zai

(5)

Kepada Kakak dan Adik (Kak Titin, Kak Aril, Dek Ricky, Dek Idul dan Dek

Intan) atas perhatian, motivasi dan doanya.

7. Lia Murti Tirtayasa yang telah banyak membantu dan memberi dukungan serta

pemikiran kepada penulis.

8. Teman-teman di Kos-kosan Gg.Sipirok , khususnya (Putta The Gil, Marvel

Margukguk, Nasrul, Isman) atas dukungan semangat dan doanya.

9. Teman-teman seperjuangan FIN’07 , khususnya “GORGOM 07” (Taufik

Pasaribu dan Yatim Ibrahimovic) yang telah banyak memberi dukungan

semangat dan kerja sama selama masa perkuliahan.

Akhir kata penulis ucapkan terima kasih kepada semua pihak yang telah

(6)

ABSTRAK

(7)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Daftar Isi vii

Daftar Gambar x

Daftar Tabel xii

BAB 1 PENDAHULUAN

1.1. Latar Belakang Masalah 1

1.2. Rumusan Masalah 2

1.3. Tujuan Penulisan 2

1.4. Batasan Masalah 3

1.5. Sistematika Penulisan 3

BAB 2 LANDASAN TEORI

(8)

2.1.1.1. Komunikasi Serial Antar IC (I2C/TWI) 7

2.1.2.1. Konstruksi ATMega8L 18

2.1.2.2. Pin-pin pada Mikrokontroller ATMega8L 20

2.1.3. Menentukan Lamanya Satu Detik 21

2.1.3.1. Menentukan Satu Detik Menggunakan Osilator

Kristal 22

2.1.3.2. Menentukan Satu Detik Pada Mikrokontroller 24

2.1.4. Mikrokontroller AT89C2051 27

2.1.4.1. Pin-Pin Pada Mikrokontroller AT89C2051 28

(9)

2.2.1.9. Pernyataan Switch 41

4.3. Pengujian Rangkaian Driver 58

4.4. Pengujian Rangkaian Display Seven Segment 58

BAB 5 KESIMPULAN DAN SARAN

5.1. Kesimpulan 60

5.2. Saran 61

DAFTAR PUSTAKA 62

(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Diagram pin RTC DS1307 6

Gambar 2.2 Block diagram DS1307 7

Gambar 2.3 Prinsip komunikasi serial bus I2C 8

Gambar 2.4 Proses transfer data pada I2C 11

Gambar 2.5 Data write-slave receiver mode 12

Gambar 2.6 Data read-slave transmitter mode 13

Gambar 2.7 IC mikrokontroller ATMega8L 20

Gambar 2.8 Skema penentuan detik, menit dan jam 22

Gambar 2.9 Rangkaian skematik untuk menentukan suatu detik menggunakan

kristal osilator 50 kHz 24

Gambar 2.10 Pembangkitan clock 1 MHz di port 1 pin 0 26

Gambar 2.11 Pembangkitan clock 500 kHz 26

Gambar 2.12 Pin IC Mikrokontroller AT89C2051 28

Gambar 2.13 Diagram fungsi register 31

Gambar 2.14 Diagram pin IC 4094 31

(11)

Gambar 2.16 Konfigurasi seven segment tipe common anoda 32

Gambar 2.17 Konfigurasi seven segment tipe common katoda 33

Gambar 2.18 Programmer setting 48

Gambar 2.19 Software 8051 editor, assembler, simulator 49

Gambar 2.20 ISP-Flash programmer 50

Gambar 3.1 Diagram blok rancangan jam digital dengan sistem kalender 51

Gambar 3.2 Rangkaian power supply 52

Gambar 3.3 Sistem minimum ATMega8L 53

Gambar 3.4 Rangkaian Driver 54

Gambar 3.5 Rangkaian skematik display seven segment 55

Gambar 3.6 Rangkaian Jam dan Menit 55

(12)

DAFTAR TABEL

Halaman

Tabel 2.1 Peta alamat RTC DS1307 15

Tabel 2.2 Register kontrol (control register) 16

Tabel 2.3 Rate select (RS1, RS0) 16

Tabel 2.4 Jumlah intruksi NOP yang di sisipkan dan frekuensi clock keluaran 27

Tabel 2.5 Fungsi masing-masing pin port 3 mikrokontroller AT89S2051 29

Tabel 2.6 Tipe data 36

Tabel 4.1 Konversi angka desimal ke heksadesimal 59

(13)

ABSTRAK

(14)

BAB 1

PENDAHULUAN

1.1.Latar Belakang Masalah

Seiring dengan kemajuan teknologi elektronika yang pesat saat ini sehingga dengan

kemajuan tersebut dapat membantu dan mempermudah pekerjaan yang dilakukan oleh

manusia menjadi lebih praktis, ekonomis dan efisien. Kemudian harga komponennya

yang relatif murah membuat elektronika menjadi sesuatu yang harus dipelajari karena

dalam dunia modern sekarang ini hampir seluruh aktivitas dalam kehidupan manusia

diliputi oleh perangkat elektronika.

Dalam kehidupan sehari-hari orang sangat butuh dengan alat penunjuk waktu

(15)

berapa, kita tahu berapa lama melakukan aktivitas dan dengan adanya jam kita dapat

mengatur jadwal.

Dengan adanya kebutuhan akan alat yang dapat mengetahui waktu dan

tanggal, penulis mencoba untuk membuat suatu alat dan Penulisan Tugas Akhir

dengan judul “PERANCANGAN HARDWARE JAM DIGITAL DENGAN

SISTEM KALENDER BERBASIS MIKROKONTROLLER DS1307”.

1.2.Rumusan Masalah

Berdasarkan uraian di atas, dapat dirumuskan beberapa masalah yang dibahas dalam

tugas akhir ini, yaitu :

1. RTC (Real Time Clock) DS 1307 sebagai penyimpan data-data jam dan

kalender.

2. IC 4094 merupakan IC shift register 8 tingkat yang berfungsi untuk

memindahkan data dari saluran serial ke saluran paralel.

3. Seven segment berfungsi sebagai display atau tampilan dari jam dan kalender.

1.3.Tujuan Penulisan

Adapun tujuan dari tugas akhir ini adalah :

1. Merancang jam digital yang dilengkapi dengan kalender.

2. Memanfaatkan DS 1307 sebagai mikrokontroller yang dapat diprogram sesuai

kebutuhan.

(16)

4. Sebagai salah satu syarat untuk dapat menyelesaikan Program Diploma Tiga

(D-III) Fisika Instrumentasi FMIPA Universitas Sumatera Utara.

1.4.Batasan Masalah

Dalam perencanaan penulisan ini terdapat beberapa batasan masalah sebagai berikut:

1. Cara kerja dari jam digital yang menggunakan mikrokontroller AT Mega8L.

2. RTC (Real Time Clock) yang digunakan adalah DS1307 yang menyimpan

data-data detik, menit, jam, tanggal, bulan, hari dalam seminggu, dan tahun

valid hingga 2100.

3. Untuk menampilkan angka waktu dan angka tanggal digunakan beberapa led

yang disusun menyerupai seven segment yang terdiri atas 12 digit yang

perinciannya adalah 2 digit untuk jam dan 2 digit untuk menit, serta 8 digit

untuk penunjukan kalender.

1.5.Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis melihat sistematika

pembahasan bagaimana sebenarnya prinsip kerja dari alat ini:

BAB 1 PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah,

tujuan penulisan, batasan masalah, serta sistematika penulisan.

(17)

Dalam bab ini dijelaskan tentang teori pendukung yang digunakan

untuk pembahasan dan cara kerja dari rangkaian. Teori pendukung itu

antara lain tentang DS 1307, bahasa program yang digunakan, dan

RTC (Real Time Clock), serta karakteristik dari komponen-komponen

pendukung.

BAB 3 PERANCANGAN ALAT DAN PROGRAM

Dalam bab ini penulis menyajikan perancangan alat, antara lain

diagram blok dari rangkaian, skematik dari masing-masing rangkaian.

BAB 4 PENGUJIAN ALAT DAN ANALISA

Dalam bab ini akan dibahas hasil analisa dari rangkaian dan sistem

kerja alat, penjelasan mengenai rangkaian-rangkaian yang digunakan.

BAB 5 PENUTUP

Dalam bab ini menjelaskan kesimpulan dan saran dari alat ataupun data

yang dihasilkan dari alat. Bab ini juga merupakan akhir dari penulisan

(18)

BAB 2

LANDASAN TEORI

2.1.Perangkat Keras

2.1.1.Real-Time Clock (RTC) DS1307

Real-time clock DS1307 adalah IC yang dibuat oleh perusahaan Dallas

Semiconductor. IC ini memiliki kristal yang dapat mempertahankan frekuensinya

dengan baik. Real-time clock DS1307 memiliki fitur sebagai berikut:

1. Real-time clock (RTC) menyimpan data-data detik, menit, jam, tanggal, bulan

dan hari dalam seminggu, dan tahun valid hingga 2100.

(19)

3. Antarmuka serial Two-wire (I2C).

4. Sinyal keluaran gelombang-kotak terprogram (Programmable squarewave).

5. Deteksi otomatis kegagalan-daya (power-fail) dan rangkaian switch.

6. Konsumsi daya kurang dari 500nA menggunakan mode baterei 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.

Sedangkan daftar pin RTC DS1307 adalah sebagai berikut:

1. VCC – Primary Power Supply.

2. X1, X2 – 32.768kHz Crystal Connection.

3. VBAT – +3V Battery Input.

4. GND – Ground.

5. SDA – Serial Data.

6. SCL – Serial Clock.

(20)

Gambar 2.1. Diagram pin RTC DS1307 (Data Sheet IC Real-Time Clock DS1307).

Gambar 2.2. Block Diagram DS1307

2.1.1.1.Komunikasi Serial antar IC (I²C/ TWI)

I2C singkatan dari Inter Integrated Circuit, adalah sebuah protokol untuk komunikasi

serial antar IC, dan sering disebut juga Two Wire Interface (TWI). Bus yang

digunakan untuk komunikasi antara mikrokontroller dan divais periferal seperti

memori, sensor temperatur dan I/O expander.

2.1.1.2.Prinsip Komunikasi I²C

Komunikasi dilakukan melalui dua jalur: SDA (serial data) dan SCL (serial clock).

Setiap divais I²C memiliki 7-bit alamat yang unik. MSB adalah fix dan ditujukan

(21)

Tiga bit berikutnya memungkinkan 8 kombinasi alamat I²C, yang berarti,

dimungkinkan 8 divais dengan tipe yang sama, beroperasi pada bus I²C yang sama.

Pengiriman data hanya dapat dimulai ketika saluran tidak sibuk, ditandai

dengan kondisi HIGH yang cukup lama pada pin SCL maupun SDA.

Selama pengiriman data, saluran data (SDA) harus dalam keadaan stabil ketika

saluran clock (SCL) dalam keadaan high. Perubahan kondisi SDA pada saat SCL high

akan dianggap sebagai sinyal-sinyal kendali, seperti: sinyal START (HIGH ke LOW)

atau sinyal STOP (LOW ke HIGH).

Gambar 2.3. Prinsip komunikasi serial bus I²C (Data Sheet RTC DS1307).

(22)

Byte pertama setelah sinyal START yang dikirim oleh master adalah alamat slave.

Pengalamatan 7-bit memungkinkan 128 divais pada bus yang sama. Alamat I²C

dikirim dalam byte pertama. LSB dari byte ini digunakan untuk menunjukkan bila

master akan melakukan penulisan (0) atau pembacaan (0) terhadap slave.

Divais yang mengirim data sepanjang bus disebut master, divais yang

menerima data disebut slave. Master memulai transmisi dengan sebuah sinyal start,

dan menghentikan transmisi dengan sebuah sinyal stop pada jalur SDA. Selama sinyal

start dan stop, jalur SCL harus dalam keadaan HIGH. Setelah master memulai

pengiriman data dengan sebuah sinyal start, master menulis satu byte alamat divais

kepada slave. Setiap byte data harus memiliki panjang 8-bit. Slave harus memberikan

konfirmasi dari byte data yang diterimanya dengan sebuah bit acknowledge (ACK).

(Data Sheet IC Real-Time Clock DS1307).

2.1.1.4.Defenisi-defenisi Kondisi Bus

Berikut ini adalah defenisi kondisi bus pada sistem komunikasi serial I²C/ TWI:

1. Bus tidak sibuk (bus not busy): menyatakan pada saat ini bus tidak sibuk

yaitu pada saat jalur clock (SCL) dan jalur data (SDA) dua-duanya dalam

keadaan HIGH.

2. Mulai transfer data (start data transfer): ditandai dengan perubahan kondisi

(23)

3. Stop transfer data (stop data transfer): ditandai dengan perubahan kondisi

SDA dari LOW ke HIGH ketika SCL dalam kondisi HIGH.

4. Data valid: data yang dikirim bit demi bit dianggap valid jika setelah START,

kondisi SDA tidak berubah selama SCL HIGH, baik SDA HIGH maupun SDA

LOW tergantung dari bit yang ingin ditransfer. Setiap siklus HIGH SCL baru

menandakan pengiriman bit baru. Duty cycle untuk SCL tidak mesti 50%,

tetapi frekuensi kemunculannya hanya ada dua macam, yaitu mode standar 100

kHz dan fast mode atau mode cepat 400 kHz. Setelah SCL mengirimkan sinyal

HIGH yang kedelapan, arah transfer SDA berubah, sinyal kesembilan pada

SDA ini dianggap sebagai acknowledge dari receiver ke transmitter. DS1307

hanya bisa melakukan transfer pada mode standar 100 kHz.

5. Pemberitahuan (Acknowledge): setiap receiver wajib mengirimkan sinyal acknowledge atau sinyal balasan setiap selesai pengiriman 1-byte (8-bit data).

Master harus memberikan ekstra clock atau clock tambahan pada SCL, yaitu

clock kesembilan untuk memberikan kesempatan receiver mengirimkan sinyal

acknowledge ke transmitter berupa keadaan LOW pada SDA selama SCL

HIGH. Meskipun master berperan sebagai receiver, ia tetap sebagai penentu

sinyal STOP. Pada bit akhir penerimaan byte terakhir, master tidak

mengirimkan sinyal acknowledge, SDA dibiarkan HIGH oleh receiver dalam

hal ini master, kemudian master mengubah SDA dari LOW menjadi HIGH

yang berarti sinyal STOP. (Data Sheet IC Real-Time Clock DS1307).

(24)

Mode pengoperasian transfer data berdasarkan kondisi bit R/W, ada dua jenis transfer

data yaitu: transfer data dari transmitter master ke receiver slave dan transfer data dari

transmitter slave ke receiver master.

A.Transfer Data dari Transmitter Master ke Receiver Slave

Byte pertama yang dikirimkan oleh master adalah alamat slave, setelah itu master

mengirimkan sejumlah byte data. Slave atau receiver mengirimkan sinyal

acknowledge setiap kali menerima 1-byte data. Pada tiap byte, bit pertama yang

dikirim adalah MSB dan bit yang terakhir adalah LSB.

B.Transfer Data dari Transmitter Slave ke Receiver Master

Meskipun master berperan sebagai receiver, byte pertama dikirimkan oleh master

berupa alamat slave. Setelah itu slave mengirimkan bit acknowledge, dilanjutkan

dengan pengiriman sejumlah byte dari slave ke master. Master mengirimkan bit

acknowledge untuk setiap byte yang diterimanya kecuali byte terakhir. Pada akhir

byte, master mengirimkan sinyal ‘not avknowledge’, setelah itu master mengirimkan

sinyal STOP.

(25)

2.1.1.6.Mode Operasi RTC DS1307 Melalui I²C/TWI

IC RTC DS1307 beroperasi dalam dua mode, yaitu Slave Receiver Mode (Write

Mode) dan Slave Transmitter Mode (Read Mode).

A.Slave Receiver Mode (Write Mode):

Mode penerima slave (write mode) dalam pengiriman sinyal memiliki urutan:

1. Setelah sinyal START, master mengirim byte pertama yang terdiri dari 7-bit

address IC DS1307, yaitu 1101000 dan 1-bit R/W, yaitu LOW, karena ini

adalah operasi WRITE.

2. Hardware pada DS1307 akan membaca address yang dikirimkan oleh master

tersebut, kemudian slave, dalam hal ini IC DS1307 akan bit-acknowledge pada

SDA.

3. Setelah itu master akan mengirimkan address tempat data pertama akan

diakses. Address ini berbeda dengan 7-bit address tadi, ini adalah address “isi”

IC DS1307, bukan address dari IC DS1307. Address ini akan disimpan dalam

register pointer oleh DS1307 yang juga mengirim sinyal acknowledge ke

master.

4. Setelah itu master dapat mengirimkan sejumlah byte ke slave, dimana setiap

byte dibalas dengan acknowledge oleh slave. Setiap menerima byte baru isi

(26)

berikutnya dari lokasi data pada DS1307. Setelah menerima acknowledge

terakhir, master akan mengirim sinyal STOP untuk mengakhiri transfer data.

Gambar 2.5. Data write – slave receiver mode (Data sheet RTC DS1307).

B.Slave Transmitter Mode (Read Mode):

Sama seperti mode write, setelah master memberikan sinyal START, ia mengirimkan

byte pertama yang terdiri dari 7-bit dalam IC DS1307, yaitu 1101000, diikuti 1-bit

R/W, yaitu HIGH. Setelah menerima byte pertama ini, slave, dalam hal ini DS1307

akan mengirimkan bit acknowledge pada SDA. Setelah itu slave mulai mengirimkan

sejumlah byte ke master. Setiap byte pengiriman dibalas dengan 1-bit acknowledge

oleh master. Byte pertama yang dikirimkan oleh slave atau DS1307 adalah data yang

alamatnya ditunjuk oleh register pointer pada DS1307. Setiap kali pengiriman byte ke

master, secara otomatis isi register pointer ditambah satu. DS1307 akan terus menerus

mengirimkan byte ke master sampai master mengirimkan bit ‘not acknowledge’

(27)

Gambar 2.6. Data read – slave transmitter mode (Data sheet RTC DS1307).

2.1.1.7.Peta Alamat (Address Map) RTC DS1307

Pemetaan alamat (address map) pada RTC dimana register-register RTC di tempatkan

pada lokasi pengalamatan 00h sampai 07h. sedangkan register-register RAM (Random

Access Memory) ditempatkan pada lokasi pengalamatan 08h sampai 3Fh.

Khusus alamat 02H, bit-6 LOW untuk siklus jam 00 – 24 dan HIGH untuk

siklus jam 00 – 12. Bit-5 HIGH pada saat PM dan LOW pada saat AM atau angka

puluhan jika bit-6 LOW.

2.1.1.8.Jam dan Kalender

Informasi waktu dan kalender diperoleh dengan membaca byte register yang

sesuai. Tabel 2.1 menunjukkan RTC register. Waktu dan kalender diatur atau diawali

dengan menuliskan byte register yang sesuai. Isi waktu dan register kalender dalam

format BCD. Pergantian hari dan minggu terjadi pada tengah malam. Nilai-nilai yang

sesuai dengan hari dan minggu yang digunakan harus sekuensial (yaitu, jika 1 sama

dengan hari Minggu, kemudian 2 sama dengan Senin, dan seterusnya). Ketidaklogisan

(28)

diatur ke 0, osilator ini diaktifkan. Pada penerapan listrik pertama ke perangkat,

register waktu dan tanggal biasanya diatur ulang ke 01/01/00 01 00:00:00 (MM / DD /

YY Dow HH: MM: SS). Register CH bit pada detik-detik akan ditetapkan ke 1. Jam

ini dapat dihentikan setiap kali fungsi ketepatan waktu tidak diperlukan, yang dapat

meminimalkan arus.

DS1307 dapat dijalankan baik dalam jam bermodus 12 maupun dengan jam

bermodus 24. Bit 6 dari jam didefinisikan sebagai register bit pada mode pilihan

12-jam atau 24-12-jam. Ketika tinggi, modus 12-12-jam dipilih. Pada modus 12-12-jam, bit 5

adalah bit AM / PM dengan logika tinggi menjadi PM. Pada modus 24-jam, bit 5

adalah 10-bit kedua jam ( 20-23 jam ). Nilai jam harus kembali setiap kali masuk

modus bit 12/24-jam berubah.

Ketika membaca atau menulis waktu dan tanggal register, penggunaan

penyangga digunakan untuk mencegah kesalahan ketika internal register diperbaharui.

Ketika membaca waktu dan register saat ini, penggunaan penyangga disinkronisasi ke

register internal pada setiap I²C START. Informasi waktu dibaca dari register

sekunder sementara jam terus berjalan. Hal ini menghilangkan kebutuhan untuk

membaca kembali register dalam kasus register internal update selama membaca.

Rantai pembagi diatur ulang setiap kali detik register tertulis. Transfer terjadi pada I²C

dari DS1307. Setelah rantai pembagi diatur ulang, untuk menghindari masalah

rollover, waktu yang tersisa dan tanggal register harus ditulis dalam satu detik.

(29)

.

2.1.1.9.Register Kontrol (Control Register)

Register kontrol pada RTC DS1307 digunakan untuk mengontrol operasi pada pin

SQW/OUT.

Tabel 2.2. Register kontrol (control register) (Data sheet RTC DS1307).

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 HIGH.

2. Bit-4: Square-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.

3. Bits 1, 0: Rate Select (RS1, RS0) untuk menentukan frekuensi yang keluar

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

gelombang kotak dengan nilai frekuensi masing-masing yang ditunjukkan oleh

(30)

Tabel 2.3. Rate select (RS1, RS0) (Data sheet RTC DS1307).

2.1.2.Mikrokontroller ATMega8L

Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroller dan

mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru.

Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor

yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi

secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah

(dibandingkan mikroprosessor). Sebagai kebutuhan pasar, mikrokontroller hadir untuk

memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat

bantu dan mainan yang lebih canggih serta dalam bidang pendidikan.

Tidak seperti sistem komputer, yang mampu menangani berbagai macam

program aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya),

Mikrokontroller hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan

lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer

perbandingan RAM dan ROM-nya besar, artinya program-program pengguna

disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antar muka

perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada

mikrokontroller, perbandingan ROM dan RAM-nya yang besar artinya program

(31)

digunakan sebagai tempat penyimpanan sederhana sementara, termasuk

register-register yang digunakan pada mikrokontroller yang bersangkutan.

Mikrokontroller ATmega8L merupakan salah satu keluarga dari MCS-51

keluaran Atmel. Jenis mikrokontroller ini pada prinsipnya dapat digunakan untuk

mengolah data per bit ataupun data 8 bit secara bersamaan. Pada prinsipnya program

pada mikrokontroller dijalankan bertahap, jadi pada program itu sendiri terdapat

beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan.

Beberapa fasilitas yang dimiliki oleh mikrokontroller ATmega8L adalah

sebagai berikut :

1. Saluran I/O sebanyak 23 buah terbagi menjadi 3 port.

2. ADC sebanyak 6 saluran dengan 4 saluran 10 bit dan 2 saluran 8 bit

3. Tiga buah timer counter, dua diantaranya memiliki fasilitas pembanding.

4. CPU dengan 32 buah register.

5. EEPROM sebesar 512 byte.

6. Empat buah programable port I/O yang masing-masing terdiri dari delapan

buah jalur I/O.

7. Memori flash sebesar 8K bytes sistem Self-progamable Flash.

8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika.

9. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada

(32)

2.1.2.1.Konstruksi ATMega8L

Mikrokontroller ATmega8L hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1

kristal serta catu daya 5 volt. Kapasitor 10 micro-fard dan resistor 10 kilo Ohm

dipakai untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini

ATmega8L otomatis diriset begitu rangkaian menerima catu daya. Kristal dengan

frekuensi maksimum 24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi

rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja

mikrokontroller.

Memori merupakan bagian yang sangat penting pada mikrokontroller.

Mikrokontroller memiliki dua macam memori yang sifatnya berbeda. Read Only

Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai

dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini

dinamakan sebagai memori program.

Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catu

daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai

untuk menyimpan data ini disebut sebagai memori data. Ada berbagai jenis ROM.

Untuk mikrokontroller dengan program yang sudah baku dan diproduksi secara

massal, program diisikan kedalam ROM pada saat IC mikrokontroller dicetak dipabrik

IC. Untuk keperluan tertentu mikrokontroller menggunakan ROM yang dapat diisi

ulang atau Programble-Eraseable ROM yang disingkat menjadi PROM (PEROM).

(33)

dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih

murah.

Jenis memori yang dipakai untuk memori program ATmega8L adalah flash

PEROM, program untuk mengendalikan mikrokontroller diisikan ke memori itu lewat

bantuan alat yang dinamakan sebagai ATmega8L flash PEROM Programmer.

ATmega8L dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang

biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri

(RXD dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2

dan 3, sehingga kalau sarana input/output bekerja menurut fungsi waktu. Clock

penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang

diumpan dari luar lewat T0 dan T1/T0 dan T1 berhimpitan dengan P3.4 dan P3.5,

sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/output paralel kalau T0

dan T1 dipakai.

ATmega8L mempunyai enam sumber pembangkit interupsi, dua diantaranya

adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini

berhimpitan dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input /

output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port1

dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik

merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR).

(34)

Deskripsi pin-pin pada mikrokontroller ATmega8L :

Gambar 2.7. IC Mikrokontroler ATmega8L

1. VCC - Merupakan pin yang berfungsi sebagai pin masukan catu daya.

2. GND – Merupakan pin ground.

3. Port B (PB0 – PB7) – Merupakan pin I/O dua arah dan pin fungsi khusus,

yaitu sebagai Timer/Counter, komperator analog dan SPI.

4. Port C (PC0 – PC7) – Merupakan pin I/O dua arah dan pin fungsi khusus,

yaitu TWI, komperator analog, input ADC dan Timer Osilator.

5. Port D (PD0 – PD7) – Merupakan pin I/O dua arah dan pin fungsi khusus,

yaitu komperator analog, interupsi eksternal dan komunikasi serial.

6. RESET – Merupakan pin yang digunakan untuk mereset mikrokontoler.

7. XTAL1 dan XTAL2 – Merupakan pin masukan clock eksternal.

(35)

9. AREF – Merupakan pin tegangan referensi ADC.

2.1.3.Menentukan lamanya satu detik

Baik jam digital maupun analog pada prinsipnya sama, yaitu frekuensi getaran.

Perbedaannya hanya terletak pada sumber getaran / frekuensinya. Kalau jam analog

menggunakan ayunan mekanik dan gear dengan kombinasi tertentu sehingga dia

mampu untuk menentukan lamanya 1 detik dan menghitung 1 menit = 60 detik.

Skema jam digital sumber frekuensinya dengan detak/ clock ditunjukkan pada gambar

2.8.

Gambar 2.8. Skema penentuan detik, menit dan jam

Sebuah pembangkit getaran sumber detak 1 Hz akan dicacah dengan

menggunakan MOD 60, artinya 1 Hz = 1 detik, setelah melewati MOD 60, maka 60

detik = 1 menit. Begitu pula dengan jam, 60 menit = 1 jam dan 24 jam = 1 hari (pukul

00 : 00 : 00)

(36)

Pembagian suatu sinyal osilator dengan menggunakan frekuensi kristal untuk

menghasilkan akurasi (0,01%) waktu 1 detik. Dua buah kounter 12 stage (CD4040)

membentuk sebuah kounter biner 24 stage dan bit-bit yang sesuai digerbangkan

bersama untuk memperoleh hasil yang diinginkan.

Menggunakan sebuah kristal 50 kHz, perhitungan 50000 diperoleh ketika

bit-bit yang sesuai dijumlahkan untuk menghasilkan nilai 50000 adalah berlogika high

(1). Bit-bit sesuai yang dijumlahkan adalah: bit 15 (= 32768) + bit 14 (= 16384) + bit

9 (= 512) + bit 8 (= 256) + bit 6 (= 64) + bit 4 (= 16). Bit 14 dan 15 adalah stage ke-3

dan ke-4 pada kounter kedua (Q3 – pin 6 dan Q4 – pin 5), bit 0 adalah stage pertama

pada kounter pertama (Q1 – pin 9). Untuk menggunakan kristal 100 kHz,

masing-masing bit digeser ke kanan sebanyak satu kali menjadi: 65536(bit 16) + 32768(bit

15) + 1024(bit 10) + 512(bit 9) + 128(bit 7) + 32(bit 5) = 100.000. Dan jika

menggunakan kristal 1MHz, bit-bit berikut ini akan diperlukan:

Bit 19 – Right counter Q8 – pin 1 Decimal value = 524288

18 Q7 – pin 4 262144

17 Q6 – pin 2 131072

16 Q5 – pin 3 65536

14 Q3 – pin 6 16384

Bit 9 – Left counter Q10 – pin 14 512

6 Q7 – pin 4 64

---

(37)

Pada 1 MHz, resistor 330K pada rangkaian osilator dibutuhkan untuk

peredaman yang setara dengan kira-kira 15K. Ketika hitungan terminal tercapai,

sebuah pulsa reset 7 uS dibangkitkan oleh inverter Schmitt Trigger yang mengikuti

gerbang NAND. Resistor 47K dan kapasitor 470 pF menopang output agar

kounter-kounternya menghasilkan reset ke nol. Ini kurang dari satu siklus klok pada 50kHz

dan tidak menghasilkan error akan menjadi sama dengan 7 siklus pada 1 MHz yang

akan menyebabkan kounter kehilangan 7 mikro sekon waktu dalam setiap detiknya.

Ini bukan error yang besar (7 bagian dari 1 juta). Lebar pulsa reset minimum untuk

kounter CMOS kira-kira 1.5 mikro sekon, jadi pulsa reset tidak dapat dibuat terlalu

singkat.

Gambar 2.9. Rangkaian skematik untuk menentukan satu detik menggunakan kristal

osilator 50 kHz

(38)

Sebuah mikrokontroller mempunyai beberapa port keluaran. Dari port tersebut dapat

dikeluarkan isyarat clock dengan frekuensi tertentu. Arus rendah clock dapat

dikeluarkan dengan memberikan logika rendah pada keluaran port tersebut; dan arus

tinggi clock dapat dikeluarkan dengan memberikan logika tinggi pada keluaran port

tersebut. Frekuensi tertinggi clock yang dapat dikeluarkan sebuah port tergantung

pada frekuensi clock yang diberikan kepada mikrokontroller tersebut dan pemilihan

instruksi yang tepat.

Pembangkit isyarat clock

Pembangkitan isyarat clock dapat dilakukan minimal dengan tiga cara. Pertama,

dengan mengeluarkan data logika tinggi diikuti dengan data logika rendah secara

periodis. Hal ini dapat dilakukan dengan instruksi pemindahan data seperti MOV.

Agar dapat diperoleh frekuensi clock cukup tinggi, maka dipilih instruksi yang

mempunyai waktu eksekusi paling kecil yaitu satu siklus. Contoh instruksi tersebut

adalah MOV P1, A (Atmel Corp., 1997). Jika suatu mikrokontroller dioperasikan

dengan clock 24 MHz, maka dengan instruksi tersebut perubahan logika keluaran port

1 dapat dilakukan setiap 0,5 mikrodetik sekali.

Cara kedua dengan mengeset dan mereset sebuah pin port keluaran. Hal ini

dapat dilakukan dengan instruksi SETB <pin_port> dan CLR <pin_port>. Cara kedua

ini mempunyai kelebihan tidak terlibatnya data di memori lain. Sedangkan cara ketiga

adalah dengan menegasikan logika port keluaran. Dengan menggunakan instruksi

CPL <pin_port>, maka logika keluaran di suatu pin pada port keluaran dapat

(39)

Pembangkit clock 1 MHz

Dengan mengoperasikan mikrokontroller pada frekuensi 24 MHz, maka satu siklus

bahasa mesin yang terdiri dari enam fase dapat dieksekusi dalam waktu 0,5

mikrodetik (Atmel Corp., 2007). Dengan menggunakan instruksi CPL P1.0

berturut-turut, maka di pin 0 port 1 akan diperoleh keluaran isyarat clock dengan periode 1

mikrodetik atau berfrekuensi 1 MHz.

Keluaran pin 0 port 1 diharapkan berbentuk gelombang kotak dengan

frekuensi 1 MHz. Namun dengan adanya efek kapasitif pada keluaran port tersebut,

bentuk gelombang berbentuk keluaran mungkin tidak kotak, tapi mendekati keluaran

gelombang kotak yang telah melalui untai integrator. Untuk mengembalikan bentuk

tersebut ke gelombang kotak dapat digunakan gerbang dengan pemicu Schmitt,

misalnya gerbang NOT dengan pemicu Schmitt 74LS14 (Tocci dan Widmer, 1998).

Gambar 2.10. Pembangkitan clock 1 MHz di port 1 pin 0

(Teknoin, Volume 13, Nomor 2, Desember 2008, 6-10. ISSN: 0853-8697).

Pembangkit clock kurang dari 1 MHz

Clock dengan frekuensi kurang dari 1 MHz dapat dibentuk dengan menunda

pelaksanaan instruksi CPL P1.0 berikutnya. Penundaan dapat dilakukan dengan

(40)

Instruksi tersebut membutuhkan waktu eksekusi satu siklus. Penyisipan satu instruksi

NOP di antara dua instruksi CPL P1.0 akan menunda eksekusi instruksi CPL P1.0

berikutnya selama satu siklus. Dengan mengoperasikan mikrokontroler ini pada clock

24 MHz, maka instruksi CPL berikutnya akan tertunda satu siklus atau 0,5 mikrodetik,

sehingga selang eksekusi dua instruksi CPL adalah 1 μs.

Gambar 2.11. Pembangkitan clock 500 kHz

(Teknoin, Volume 13, Nomor 2, Desember 2008, 6-10. ISSN: 0853-8697)

Penyisipan satu instruksi NOP akan membentuk clock dengan periode 2

mikrodetik atau berfrekuensi 500 kHz. Penyisipan dua instruksi NOP akan

membentuk clock dengan frekuensi 333.333 Hz. Jumlah instruksi NOP yang dapat

disisipkan dan frekuensi clock keluaran pada tabel 2.4.

Tabel 2.4. Jumlah instruksi NOP yang disisipkan dan frekuensi clock keluaran

(Teknoin, Volume 13, Nomor 2, Desember 2008, 6-10. ISSN: 0853-8697).

NOP yang disisipkan 1 2 3 4 5 6 7 8 9

(41)

2.1.4.Mikrokontroller AT89C2051

Mikrokontroller AT89C2051 merupakan salah satu keluarga dari MCS-51 keluaran

Atmel. Jenis Mikrokontroller ini pada prinsipnya dapat digunakan untuk mengolah

data per bit ataupun data 8 bit secara bersamaan.

Pada prinsipnya program pada mikrokontroller dijalankan bertahap, jadi pada

program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan

secara bertahap atau berurutan.

Beberapa fasilitas yang dimiliki oleh mikrokontroller AT89C2051 adalah

sebagai berikut:

1. Sebuah Central Processing Unit 8 bit.

2. Osilator internal dan rangkaian pewaktu.

3. RAM internal 128 byte.

4. Flash memori 2 Kbyte.

5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi

internal).

6. Empat buah programable port I/O yang masing-masing terdiri dari delapan buah

jalur I/O.

7. Sebuah port serial dengan kontrol serial full duplex UART.

8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika.

9. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12

(42)

AT89C2051

2.1.4.1.Pin-pin pada Mikrokontroller AT89C2051

Deskripsi pin-pin pada Mikrokontroller AT89C2051 adalah sebagai berikut:

Gambar 2.12. Pin IC Mikrokontroller AT89C2051

1. VCC (Pin 20) – Supply tegangan.

2. GND (Pin 10) – Ground.

3. Port 3 (Pin 2, 3, 6 – pin 9, 11) – Port 3 merupakan 7 bit port I/O dua arah dengan internal pullup. Port 3 mempunyai fungsi pin masing-masing yang ditunjukkan

pada tabel 2.5.

Tabel 2.5. Fungsi masing-masing pin port 3 mikrokontroler AT89S2051.

(43)

Port (pin)

Fungsi

P3.0 (pin 2) RXD (port serial penerima data).

P3.1 (pin 3) TXD (port serial pengirim data).

P3.2 (pin 6) INT0 (input interupsi eksternal 0, aktif low).

P3.3 (pin 7) INT1 (input interupsi ekstrernal 1, aktif low).

P3.4 (pin 8) T0 (eksternal input timer / counter 0).

P3.5 (pin 9) T1 (eksternal input timer / counter 1).

P3.7 (pin 11)

RD (Read, aktif low) Sinyal kontrol pembacaan memori data

input-output eksternal ke port 0.

4. RST (pin 1) – Reset akan aktif dengan memberikan input high selama 2 siklus.

5. XTAL1 (pin 4) – Input untuk clock internal.

(44)

2.1.5.IC 4094

IC 4094 adalah suatu IC shift register 8 tingkat yang memiliki register latch untuk

setiap bit untuk keperluan memindahkan data dari saluran serial kesaluran paralel

dengan 3 tingkatan pergeseren bit Q0 sampai bit Q7 menuju output. Output paralel

dapat dihubungkan langsung dengan jalur data umum. Data digeser pada perubahan

sinyal clock dari Low ke High, selanjutnya data digeser dari register geser keregister

penyimpanan, kemudian dengan memberikan logika high pada pin OE akan

menggeser data dari register penyimpangan menuju register output.

Gambar 2.13. Diagram fungsi register (Data Sheet IC 4094)

Ada dua serial yang keluar dari IC 4094 yaitu Qs dan Q’s yang disediakan

(45)

pergeseran sinyal clock dari logika low ke logika high untuk memungkinkan

pergeseran dengan kecepatan tinggi dalam keperluan penyambungan beberapa IC

secara serial. Output pada Q’s akan bergeser pada saat sinyal clock berubah dari

logika high ke logika low. Gambar 2.14 menunjukkan posisi dan penamaan pin untuk

IC 4094.

Gambar 2.14. Diagram Pin IC 4094 (Data sheet IC 4094).

Keterangan:

D = data input

CP = clock input

STR = strobe input

EO = ouput enable input

QS, Q’S = output serial

Q0 S/d Q7 = output parallel

2.1.6.Seven Segment

Seven segment merupakan LED yang disusun atas 7 segment yang dipergunakan

(46)

Gambar 2.15. Tampilan seven segmen

Seven segment terdiri dari dua konfigurasi, yaitu common anoda dan common katoda.

Pada seven segment tipe common anoda, anoda dari setiap LED dihubungkan menjadi

satu kemudian dihubungkan ke sumber tegangan positif dan katoda dari

masing-masing LED berfungsi sebagai input dari seven segment, seperti ditunjukkan pada

gambar 2.16.

Gambar 2.16. Konfigurasi seven segment tipe common anoda.

Sesuai dengan gambar 2.16, maka untuk menyalakan salah satu segmen, maka

katodanya harus diberi tegangan 0 volt atau logika low. Misalnya jika segmen a akan

dinyalakan, maka katoda pada segmen a harus diberi tegangan 0 volt atau logika low,

dengan demikian maka segmen a akan menyala. Demikian juga untuk segmen

lainnya.

Pada seven segment tipe common katoda, katoda dari setiap LED dihubungkan

menjadi satu kemudian dihubungkan ke ground dan anoda dari masing-masing LED

berfungsi sebagai input dari seven segment.

(47)

Sesuai dengan gambar 2.17, maka untuk menyalakan salah satu segmen, maka

anodanya harus diberi tegangan minimal 3 volt atau logika high. Misalnya jika

segmen a akan dinyalakan, maka anoda pada segmen a harus diberi tegangan minimal

3 volt atau logika high, dengan demikian maka segmen a akan menyala. Demikian

juga untuk segmen lainnya.

2.2.Perangkat Lunak

2.2.1.Pemrograman Bahasa C

Pencipta bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada sekitar

tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam

bentuk sejumlah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan

pengembangan program. Program yang ditulis dengan mengunakan C mudah sekali

untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya

standarisasi bahasa C yaitu berupa standar ANSI (American National Standards

Institute) yang dijadikan acuan oleh para pembuat kompiler C. (Agus Bejo, 2008).

(48)

Sebuah program dalam bahasa C setidaknya harus memiliki sebuah fungsi. Fungsi

dasar ini disebut dengan fungsi utama (fungsi main) dan memiliki kerangka program

sebagai berikut:

void main (void)

{

// pernyataan-pernyataan

}

Jika kita memiliki beberapa fungsi yang lain maka fungsi utama inilah yang

memiliki kedudukan paling tinggi dibandingkan fungsi-fungsi yang lain sehingga

setiap kali program dijalankan akan selalu dimulai dari memanggil fungsi utama

terlebih dahulu. Fungsi-fungsi yang lain dapat dipanggil setelah fungsi utama

dijalankan melalui pernyataan-pernyataan yang berada didalam fungsi utama. Contoh:

// prototype fungsi inisialisasi port

Void inisialisasi_port (char A, char B, char C, char D)

{

Inisialisasi_port (0xFF, 0xF0, 0x0F, 0x00) ;

(49)

Pengenal (identifier) merupakan sebuah nama yang diisikan oleh pemrogram untuk

menunjukkan identitas dari sebuah konstanta, variable, fungsi, label atau tipe data

khusus. Pemberian nama sebuah pengenal dapat ditentukan bebas sesuai keinginan

pemrogram tetapi harus memenuhi aturan berikut:

1. Karakter pertama tidak boleh menggunakan angka.

2. Karakter kedua dapat berupa huruf, angka, atau garis bawah.

3. Tidak boleh menggunakan spasi.

4. Case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda.

5. Tidak boleh menggunakan kata-kata yang merupakan sintaks maupun operator

dalam pemrograman C, misalnya: void, short, const, if, bit, long, case, do,

switch, char, float, for, else, break, int, double, include, while.

2.2.1.3.Tipe Data

Tipe data merupakan bagian program yang paling penting karena tipe data

mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja

5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5

dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe

float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan

membuat proses operasi data menjadi lebih efisien dan efektif.

(50)

Tipe data Ukuran Jangkauan nilai

Bit 1 bit 0 atau 1

Char 1 byte -128 s/d 127

Unsigned char 1 byte 0 s/d 255

Signed char 1byte -128 s/d 127

Int 2 byte -32.768 s/d 32.767

Short int 2 byte -32.768 s/d 32.767

Unsigned int 2 byte 0 s/d 65.535

Signed int 2 byte -32.768 s/d 32.767

(51)

Unsigned long int 4 byte 0 s/d 4.294.967.295

Signed long int 4 byte -2.147.483.648 s/d 2.147.483.647

Float 4 byte 1.2*10-38 s/d 3.4*10+38

Double 4 byte 1.2*10-38 s/d 3.4*10+38

2.2.1.4.Variabel Bertanda (Signed) dan Tak Bertanda (Unsigned)

Untuk pendeklarasian tipe data yang berupa bilangan bulat yaitu char, int, short dan

long dapat ditambahkan signed atau unsigned. Signed digunakan untuk

mendefenisikan bahwa data yang disimpan dalam variabel adalah bertanda sedangkan

unsigned untuk data yang tidak bertanda. Contoh:

Unsigned char data1;

Signed char data2;

Pada contoh diatas variabel data1 bertipe char (1 byte) dan tidak bertanda

(unsigned) sehingga dapat menyimpan data dari 0 sampai 255. Sedangkan variabel

data2 bertipe char (1 byte) dan bertanda (signed) sehingga dapat menyimpan data dari

-128 sampai 127. Nilai negatif pada bilangan bertanda disimpan dalam bentuk

(52)

2.2.1.5.Pengarah Preprosesor

Pengarah preprosesor digunakan untuk mendefenisikan prosesor yng digunakan,

dalam hal ini adalah untuk mendefenisikan jenis mikrokontroler yang digunakan.

Dengan pengarah preprosesor ini maka pendeklarasian register-register dan

penamaannya dilakukan pada file lain yang disisipkan dalam program utama dengan

sintaks sebagai berikut:

# include <nama_preprosesor>

Contoh:

# include <mega 8L.h>

2.2.1.6.Pernyataan

Pernyataan adalah satu buah instruksi lengkap yang berdiri sendiri. Berikut adalah

contoh sebuah pernyataan:

PORTC = 0x0F;

Pernyataan PORTC = 0x0F; merupakan sebuah instruksi untuk mengeluarkan

data 0x0F ke Port C. (Agus Bejo, 2008).

2.2.1.7.Fungsi Pustaka

Bahasa C memiliki sejumlah fungsi pustaka yang berada pada file-file tertentu dan

sengaja disediakan untuk menangani berbagai hal dengan cara memanggil

(53)

pustaka-pustaka yang tersedia tidak berbentuk kode sumber melainkan dalam bentuk yang

telah dikompilasi. Sintaks untuk menggunakan fungsi pustaka ini adalah sebagai

berikut:

# include <nama_file_pustaka>

Contoh:

# include <lcd.h>

Beberapa fungsi pustaka yang telah disediakan oleh CodeVisionAVR antara

lain adalah:

1. Fungsi Tipe Karakter (ctype.h).

2. Fungsi Standar I/O (stdio.h).

3. Fungsi matematika (math.h).

4. Fungsi String (string.h).

5. Fungsi Konversi BCD (bcd.h).

6. Fungsi Konversi Akses Memori (mem.h).

7. Fungsi Tunda (delay.h).

8. Fungsi LCD (lcd.h).

9. Fungsi I2C (i2c.h).Fungsi SPI (spi.h).

10. Fungsi Real Time Clock (RTC) (ds 1302.h, ds1307.h).

11. Fungsi Sensor Suhu LM75, DS1621 dll (lm75.h, ds1621.h).

12. Fungsi Sensor Suhu LM75, DS1621 dll (lm75.h, ds1621.h).

(54)

Pernyataan if digunakan untuk melakukan pengambilan keputusan terhadap dua buah

kemungkinan yaitu mengerjakan suatu blok pernyataan atau tidak. Bentuk pernyataan

if adalah sebagai berikut:

If (kondisi)

{

// blok pernyataan yang akan dikerjakan

// jika kondisi if terpenuhi

}

Pernyataan if diatas akan mengecek apakah data yang terbaca pada Port A

(PINA) nilainya lebih dari 0x80 atau tidak, jika ya maka variabel dataku diisi dengan

nilai PINA dan data 0xFF dikeluarkan ke port C.

Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka

tanda { dan } dapat dihilangkan seperti contoh berikut:

If (PINA>0x80)

PORTC = 0xFF

2.2.1.9.Pernyataan Switch

Pernyataan switch digunakan untuk melakukan pengambilan keputusan terhadap

banyak kemungkinan. Bentuk pernyataan switch adalah sebagai berikut:

(55)

{

case nilai_1 : pernyataan_1; break;

case nilai_2 : pernyataan_2; break;

case nilai_3 : pernyataan_3; break;

….

Default : pernyataan_default; break;

}

Pada pernyataan switch, masing-masing pernyataan (pernyataan_1 sampai

dngan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak perlu

berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama

dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan

nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3, dan

seterusnya. Pernyataan_default bersifat opsional, artinya boleh ada boleh tidak. Jika

ada maka pernyataan_default akan dikerjakan apabila nilai ekspresi tidak ada yang

sama satupun dengan salah satu nilai_1, nilai_2, nilai_3 dan seterusnya.

Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini digunakan

untuk keluar dari pernyataan switch. Contoh:

switch (PINA)

{

Case 0xFE : PORTC = 0x00; break;

Case 0xFD : PORTC = 0xFF; break;

Pernyataan di atas berarti membaca port A, kemudian datanya (PINA) akan

dicocokkan dengan nilai case. Jika PINA bernilai 0xFE maka data 0x00 akan

dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika

PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian program

(56)

2.2.1.10.Memanggil Assembler

Meskipun kita menggunakan bahasa C, kita masih tetap bisa menggunakan sintaks

pemrograman assembler. Caranya adalah sebagai berikut:

# asm

; instruksi-instruksi assembler

# endasm

Contoh:

# asm

Ldi r0, 100

mov r2, r3

# endasm

2.2.2.Bahasa Assembly MCS-51

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89C4051 adalah

bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa

ini hanya ada 51 instruksi, antara lain yaitu:

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register

tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian

nilai secara langsung:

MOV R0, #20h

(57)

Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.Contoh

pengisian nilai secara tidak langsung:

MOV 20h, #80h

...

...

MOV R0, 20h

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20

Heksadesimal ke register 0 (R0). Tanpa tanda # sebelum bilangan menunjukkan

bahwa bilangan tersebut adalah alamat.

2. Instruksi DJNZ

Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai

register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh:

MOV R0, #80h

Loop: ...

...

DJNZ R0, Loop

...

R0 = 1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan

meneruskan ke perintah pada baris berikutnya.

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh:

(58)

...

TUNDA:

...

4. Instruksi RET

Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil

setelah instruksi ACALL dilaksanakan. Contoh:

ACALL TUNDA

...

TUNDA:

...

RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh:

Loop:

...

...

JMP Loop

6. Instruksi JB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang

(59)

Loop:

JB P1.0, Loop

...

7. Instruksi JNB (Jump if Not bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang

dimaksud berlogika low (0). Contoh,

Loop:

JNB P1.0, Loop

...

8. Instruksi CJNZ (Compare Jump If Not Equal)

Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu

nilai tertentu. Contoh,

Loop:

...

CJNE R0, #20h, Loop

...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin

Loop. Jika nilai R0 sama dengan 20h, maka program akan melanjutkan instruksi

(60)

9. Instruksi DEC (Decreament)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud

dengan 1. Contoh:

MOV R0, #20h R0 = 20h

...

DEC R0 R0 = R0 – 1

...

10.Instruksi INC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud

dengan 1. Contoh,

MOV R0,#20h R0 = 20h

...

INC R0 R0 = R0 + 1

...

2.2.3.CodeVisionAVR

CodeVisionAVR merupakan salah satu software kompiler yang khusus digunakan

untuk mikrokontroler keluarga AVR. CodeVisionAVR merupakan yang terbaik bila

dibandingkan dengan kompiler-kompiler yang lain karena beberapa kelebihan yang

dimiliki oleh CodeVisionAVR antara lain:

(61)

2. Fasilitas yang disediakan lengkap (mengedit program, mengkompile program,

mendownload program) serta tampilannya terlihat menarik dan mudah

dimengerti. Kita dapat mengatur settingan editor sedemikian rupa sehingga

membantu memudahkan kita dalam penulisan program.

3. Mampu membangkitkan kode program secara otomatis dengan menggunakan

fasilitas CodeWizardAVR.

4. Memiliki fasilitas untuk mendownload program langsung dari

CodeVisionAVR dengan menggunakan hardware khusus seperti Atmel

STK500, Kanda System STK200+/300 dan beberapa hardware lain yang telah

didefenisikan oleh CodeVisionAVR.

5. Memiliki fasilitas debugger sehingga dapat menggunakan software compiler

lain untuk mengecek kode assembler nya, contohnya AVRStudio.

6. Memiliki terminal komunikasi serial yang terintegrasi dalam

CodeVisionAVR sehingga dapat digunakan untuk membantu pengecekan

program yang telah dibuat khususnya yang menggunakan fasililtas

komunikasi serial UART.

CodeVision chip programmer

Salah satu kelebihan dari CodeVisionAVR adalah tersedianya fasilitas untuk

mendownload program ke mikrokontroler yang telah terintegrasi sehingga demikian

CodeVisionAVR ini selain dapat berfungsi sebagai software kompiler juga dapat

berfungsi sebagai software programmer/ downloader. Jadi kita dapat melakukan

proses download program yang telah dikompile dengan menggunakan software

(62)

Gambar 2.18. Programmer Setting

2.2.4. Software 8051 Editor, Assembler, Simulator

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah

editor, yaitu 8051 Editor, Assembler, Simulator.

Gambar 2.19. Software 8051 Editor, Assembler, Simulator

Setelah program selesai ditulis, kemudian di-save dan kemudian di-assemble

(63)

masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan

perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu

sampai tidak ada pesan kesalahan lagi.

Software 8051 IDE ini berfungsi untuk merubah program yang kita tuliskan ke

dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an.

Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroler.

2.2.5.Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan

software ISP- Flash Programmer 3.0a yang dapat didownload dari internet.

Gambar 2.20. ISP- Flash Programmer

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil

file heksadesimal dari hasil kompilasi, kemudian klik Write untuk mengisikan hasil

(64)

BAB 3

PERANCANGAN ALAT

(65)

Gambar 3.1. Diagram blok rancangan jam digital dengan sistem kalender.

3.2.Sistem Kerja Rangkaian

Tegangan yang masuk ke rangkaian PSA akan mengaktifkan rangkaian

Mikrokontroller dan display seven segment. Data yang disimpan dalam Real Time

Clock (RTC) berupa data jam dan menit, serta kalender akan ditampilkan di display

seven segment. Dimana display pada jam dan kalender sudah ditetapkan.

3.3.Perancangan Power Supply (PSA)

Rangkaian ini berfungsi untuk mensupply tegangan ke seluruh rangkaian yang ada.

Rangkaian PSA yang dibuat dengan keluaran 5 volt digunakan untuk mensupply

tegangan ke rangkaian display dan rangkaian mikrokontroler. Rangkaian power

(66)

Gambar 3.2. Rangkaian Power Supply

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan

tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan

disearahkan dengan menggunakan dua buah dioda menjadi 12 volt DC, selanjutnya 12

volt DC akan diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt

(LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi

perubahan pada tegangan masukannya. LED1 sebagai indikator apabila PSA

dinyalakan, sedangkan LED2 sebagai indikator untuk 5 Volt dan 12 Volt. Transistor

PNP TIP 2955 disini berfungsi untuk mensupply arus apabila terjadi kekurangan arus

pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika

rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari

keluaran 2 buah dioda penyearah.

3.4.Rangkaian Mikrokontroller ATMega8L

Rangkaian ini berfungsi sebagai pusat kendali dari seluruh sistem yang ada.

Komponen utama dari rangkaian ini adalah Mikrokontroller ATMega8L. Pada

mikrokontroller inilah semua program diisikan, sehingga rangkaian dapat berjalan

(67)

dimana terdapat mikroprosesor dan memori program (ROM) serta memori serbaguna

(RAM), bahkan ada fasilitas ADC, PLL, EEPROM dalam satu kemasan.

Mikrokontroller ATMega8L mempunyai 28 pin dengan catu daya tunggal 5 volt.

Ke-28 pin dalam keluarga mikrokontroller ATMega8L ditunjukkan oleh gambar 3.3.

Gambar 3.3. Sistem minimum ATMega8L

3.5.Perancangan Driver

Rangkaian driver ini berfungsi sebagai penguat daya pada display seven segment yang

memiliki ukuran yang lebih besar. Pada alat, rangkaian driver ini digunakan pada

display jam dan menit saja karena memiliki ukuran yang lebih besar daripada display

(68)

Gambar 3.4. Rangkaian Driver

Rangkaian driver ini terdiri dari beberapa IC4094 sebagai pemindah data dari

saluran serial kesaluran paralel.

3.6.Perancangan Display Seven Segment

Rangkaian display seven segment ini berfungsi untuk menampilkan data jam, menit

dan detik. Rangkaian display seven segment ditunjukkan pada gambar 3.5.

(69)

Pada rangkaian display ini semua led disusun membentuk seven segment

menggunakan common anoda, dimana semua anoda led dihubungkan. Setiap segmen

akan menyala jika diberi logika high.

Gambar 3.6. Rangkaian Jam dan Menit

Display ini menggunakan 4 buah seven segment (sebagai penunjuk jam dan

menit) yang dihubungkan ke IC HCF 4094BE yang merupakan IC serial ke paralel. IC

ini akan merubah 8 bit data serial yang masuk menjadi keluaran 8 bit data paralel.

Rangkaian ini dihubungkan dengan PC.7, PC.6, PC.5 ATmega8L. PC.7 digunakan

sebagai port pengiriman data serial, PC.6 sebagai sinyal clock untuk pengiriman data

serial, PC.5 sebagai output enable pada IC HCF 4094BE. Pada rangkaian display ini

(70)

disupply langsung dari PSA, karena arus dari output 4094 tidak cukup untuk

mensupply LED yang banyak.

Gambar 3.7. Rangkaian Tanggal, Bulan dan Tahun.

Display ini menggunakan 8 buah seven segment (sebagai penunjuk tanggal,

bulan dan tahun).

BAB 4

(71)

4.1. Pengujian Rangkaian Power Supply (PSA)

Pengujian rangkaian power supply bertujuan untuk mengetahui apakah power supply

yang digunakan sebagai penyalur tegangan pada rangkaian telah berfungsi dengan

baik atau tidak. Pengujian pada bagian rangkaian power supply ini dapat dilakukan

dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan volt

meter digital. Pada power supply ini terdapat dua keluaran. Dari hasil pengujian

diperoleh tegangan keluaran pertama sebesar + 5,1 volt. Tegangan ini dipergunakan

untuk mensupply tegangan ke seluruh rangkaian. Mikrokontroler ATMega8L dapat

bekerja pada tegangan 4,0 sampai dengan 5,5 volt, sehingga tegangan 5,1 volt ini

cukup untuk mensupply tegangan ke mikrokontroler ATMega8L.

4.2.Pengujian Rangkaian Mikrokontroller ATMega8L

Untuk mengetahui apakah rangkaian mikrokontroller ATMega8L telah bekerja

dengan baik, maka dilakukan pengujian dengan mengisikan program pada

mikrokontroller ATMega8L. Jika program yang diisikan ke dalam mikrokontroller

ATMega8L dapat berjalan sesuai dengan program yang dibuat, maka rangkaian

mikrokontroller ATMega8L telah bekerja dengan baik.

(72)

Sesuai dengan fungsi rangkaian driver sebagai penguat daya pada display seven

segment yang memiliki ukuran yang lebih besar , dimana pada alat yang dibuat

rangkaian driver ini digunakan pada display jam dan menit saja karena memiliki

ukuran yang lebih besar daripada display kalender. Maka pengujian yang dilakukan

pada rangkaian driver ini adalah dengan melihat pada tampilan display jam dan menit.

Bila lampu led yang ditunjukkan pada display jam dan menit telah menyala dan

menunjukkan waktu yang sesuai, berarti rangkaian driver ini telah berfungsi dengan

baik.

4.4.Pengujian Rangkaian Display Seven Segment (Jam dan Kalender)

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini

dengan rangkaian mikrokontroller, kemudian memberikan data tertentu pada port

serial dari mikrokontroler. Seven segment yang digunakan adalah common anoda,

dimana segmen akan menyala jika diberi logika 1 dan sebaliknya segmen akan mati

jika diberi logika 0.

Pengujian pada display seven-segment yang diadakan di Laboratorium

Mikrokontroller FMIPA USU diperoleh data yang harus dikirimkan ke port serial

(73)

Tabel 4.1. Konversi angka desimal ke heksadesimal

Angka

Desimal

Data yang dikirim

( Hexadesimal )

1 0xF3H

2 0x22H

3 0x 97H

4 0xA7H

5 0x 66H

6 0xE5H

7 0xF5H

8 0xA2h

9 0xF7H

(74)

BAB 5

KESIMPULAN DAN SARAN

5.1.Kesimpulan

1. Panduan jam ini diambil dari waktu telkomsel dan setelah pengujian selama

beberapa hari, jam tersebut tidak mutlak sama tetapi memiliki toleransi waktu

± 1 menit.

2. Tampilan detik pada display jam digital hanya berfungsi sebagai visualisasi

saja, hitungan detiknya tidak sama dengan jam pada umumnya, dan hal

tersebut tidak mempengaruhi hitungan menit dan jam.

3. Alat ini telah bekerja dengan baik, dan dapat menampilkan menit, jam,

tanggal, bulan dan tahun.

5.2.Saran

1. Diharapkan untuk pembuatan selanjutnya tidak lagi menggunakan titik dua

yang berkedip-kedip diantara jam dan menit sebagai detik, tetapi dengan

(75)

dilihat dengan jelas pergantian detik demi detik dari angka 00 sampai dengan

angka 59.

2. Untuk lebih lanjut lagi, dalam pembuatan alat ini kedepannya diharapkan dapat

dimodifikasi dengan memakai sistem alarm atau pengingat, sehingga alat ini

(76)

DAFTAR PUSTAKA

Bejo, Agus. 2008. C DAN AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroller

ATMega8L. Edisi I. Yogyakarta: Graha Ilmu.

Ibrahim, KF. 1991. Teknik Digital. Edisi I. Terjemahan Ir. P. Insap Santoso. Yogyakarta:

Andi.

Pitowarno, Endra. 2005. Mikroprosesor dan Interfacing. Edisi I. Yogyakarta: Andi Offset.

Wardhana, Lingga. 2006. Belajar Sendiri Mikrokontroller AVR Seri ATMega8L Simulasi,

Hardware, dan Aplikasi. Yogyakarta: Penerbit Andi.

Woollard, Barry G. 2003. Elektronika Praktis. Jakarta: PT Pradnya Paramita.

(77)

PROGRAM KESELURUHAN SISTEM

unsigned char date,month,year;

// I2C Bus functions #asm

.equ __i2c_port=0x15 ;PORTC .equ __sda_bit=4

.equ __scl_bit=5 #endasm

#include <i2c.h>

// DS1307 Real Time Clock functions #include <ds1307.h>

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void) {

(78)

rtc_set_time(h,m,s); delay_ms(50); }

// External Interrupt 1 service routine

interrupt [EXT_INT1] void ext_int1_isr(void) {

// Place your code here h++;

if (h>23) h = 0; rtc_set_time(h,m,s); delay_ms(50); }

// Standard Input/Output functions #include <stdio.h>

// Declare your global variables here void clock (void)

(79)

break;

void display_tick (unsigned char xbil) : program untuk mengatur detik {

(80)

{

unsigned char jam_h,jam_l, menit_h, menit_l; jam_l = jam % 10;

void display_hms_tick (unsigned char jam, unsigned char menit) : program untuk

mengatur tampilan jam, menit dan detik

{

(81)

for (i=0x00; i<0x08; i++){

Gambar

Gambar 2.2. Block Diagram DS1307
Gambar 2.3. Prinsip komunikasi serial bus I²C (Data Sheet RTC DS1307).
Gambar 2.4. Proses transfer data pada I²C (data sheet RTC DS1307).
Gambar 2.5. Data write – slave receiver mode (Data sheet RTC DS1307).
+7

Referensi

Dokumen terkait

Hasil penelitian ini sejalan dengan penelitian Yuliana (2016) yang menunjukkan bahwa kualitas layanan secara parsial mempunyai pengaruh yang positif dan signifikan

Dalam bidang konstruksi yang terutama adalah melakukan planning , metode, analisa risiko yang akan digunakan selama proyek berlangsung (Wehbe &amp; Hamzeh, 2013),

Sesi Nomor Absen 14973 LILLIS

Sebab aku yakin, bahwa baik maut, maupun hidup, baik malaikat-malaikat, maupun pemerintah-pemerintah, baik yang ada sekarang, maupun yang akan datang, atau kuasa-kuasa,

Program-program resident tersebut memang termasuk jenis program resident yang boleh dikatakan unik, karena sekali program itu dijalankan, maka akan tetap tinggal didalam memori

Dari hasil penelitian yang dilaksanakan melalui workshop maka peneliti dapat menyimpulkan bahwa kemampuan guru SDN 1 Mantangai Tengah Kecamatan Mantangai Kabupaten

Tujuan penelitian ini adalah untuk mengetahui bagaimana tingkat stres kerja yang dialami oleh karyawan dan ada tidaknya hubungan antara tingkat stres kerja terhadap

Hasil penelitian ini diharapkan dapat menjadi pertimbangan dalam pengambilan kebijakan bagi Balai Pemantapan Kawasan Hutan Wilayah XI Jawa Madura, dalam upaya mewujudkan