Osilator Eksternal Mikrokontroler ATmega8535

Tabel 2.12. Register 1B [2] Bit 7 6 5 4 3 2 1 OCR 1 B[15:8] OCR 1 BH OCR 1 B[7:0] OCR 1 BL ReadWrite RW RW RW RW RW RW RW RW Initial Value Register ini bertugas sebagai register pembanding yang bisa kita tentukan besarnya sesuai dengan kebutuhan [2]. Dalam praktiknya pada saat TCNT 1 TCNT 1 H:TCNT 1 L mencacah maka otomatis oleh CPU akan dibandingkan dengan isi OCR 1 OCR 1 H:OCR 1 L secara kontinyu dan jika isi TCNT 1 sama dengan isi OCR 1 maka akan terjadi compare match yang dapat dimanfaatkan untuk mode CTC dan PWM. 5. Input Capture Register 1 –ICR 1 H and ICR 1 L Tabel 2.13. Register 1 [2] Bit 7 6 5 4 3 2 1 ICR 1 [15:8] ICR 1 H ICR 1 [7:0] ICR 1 L ReadWrite RW RW RW RW RW RW RW RW Initial Value Register ICR 1 ICR 1 H:ICR 1 L akan selau diperbarui dengan isi register pencacah TCNT 1 pada saat tersebut sewaktu terjadi triger capture event pada pin ICP 1 [2]. Register ICR 1 juga mempunyai fungsi lain untuk mendefinisikan TOP value pada mode tertentu lihat tabel mode operasi. 6. TimerCounter Interrupt Mask Register – TIMSK Tabel 2.14. Register TIMSK [2] Bit 7 6 5 4 3 2 1 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 - TOIE0 TIMSK ReadWrite RW RW RW RW RW RW R RW Initial Value Bit 5 – TICIE 1 : TC 1 , Input Capture Interrupt Enable Bit ini berguna untuk meng-aktif-kan interupsi input capture penangkap kejadian pada pin ICP 1 PB ketika bit di- set [2]. Bit 4 – OCIE 1 A: TC 1 , Output Compare A Match Interrupt Enable Bit ini berguna untuk meng-aktif-kan interupsi Output Compare A Match ketika bit ini di- set . Bit 3 – OCIE 1 B: TC 1 , Output Compare B Match Interrupt Enable Bit ini berguna untuk meng-aktif-kan interupsi Output Compare B Match ketika bit ini di- set . Bit 2 – TOIE 1 : TimerCounter 1 , Overflow Interrupt Enable Bit ini berguna untuk meng-aktifkan interupsi o verflow TCNT 1 ketika bit ini di- set . 6. TimerCounter Interrupt Flag Register – TIFR Tabel 2.15. Register TIFR [2] Bit 7 6 5 4 3 2 1 OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 - TOV0 TIFR ReadWrite RW RW RW RW RW RW R RW Initial Value Bit 5 – ICP 1 : TC 1 , Input Capture Flag Bit ini akan set secara otomatis ketika menagkap triger pada pin ICP [2]. Bit ini akan clear juga secara otomatis ketika mengeksekusi vektor interupsi input capture . Untuk meng- clear secara manual bit ini maka bit ini harus di- set . Bit 4 – OCF 1 A: TC 1 , Output Compare A Match Flag Bit ini akan set secara otomatis ketika terjadi compare match A. Bit ini akan clear juga secara otomatis ketika mengeksekusi vektor interupsi output compare A. Untuk meng- clear secara manual bit ini harus di- set . Bit 3 – OCF1B: TimerCounter 1, Output Compare B Match Flag Bit ini akan set secara otomatis ketika terjadi compare match B. Bit ini akan clear juga secara otomatis ketika mengeksekusi vektor interupsi output compare B. Untuk meng- clear secara manual bit ini maka bit ini harus di- set . Bit 2 – TOV 1 : TimerCounter 1, Overflow Flag Bit ini akan set secara otomatis ketika terjadi overflow pada register pencacah TCNT 1 . Bit ini akan clear juga secara otomatis ketika mengeksekusi vektor overflow timercounter 1. Untuk meng- clear secara manual bit ini maka bit ini harus di- set . 2.1.6. Mode Operasi 1. Mode Normal Normal Overflow : Dalam mode ini register pencacah TCNT 1 bekerja secara normal selalu mencacah menghitung ke atas atau counting-up hingga mencapai nilai maksimal 0xFFFF lalu 0x0000 lagi atau yang disebut overflow yang menyebabkan flag -TOV 1 secara otomatis set yang menandakan terjadinya interupsi jika interupsi timercounter 1 overflow diaktifkan [2]. Nilai TCNT 1 tidak harus selalu 0x0000 namun bisa ditentukan misalnya 0xF89 atau berapa pun sesuai kebutuhan. Normal compare match : Dalam mode ini register TCNT 1 bekerja seperti mode normal overflow , hanya jika isi register OCR 1 x x = A atau B, maka ketika TCNT 1 ==OCR 1 x, maka akan terjadi compare match yang menyebabkan flag OCF 1 x secara otomatis set yang menandakan terjadinya interupsi jika interupsi timer 1 compare match x diaktifkan [2]. Ketika compare match dalam mode ini TCNT 1 akan terus menghitung hingga overflow dan mulai dari nol lagi, maka dapat mengaktifkan ketiga interupsi ini secara bersamaan overflow , compare match A dan B. 2. CTC Clear Timer on Compare match Dalam mode ini register pencacah TCNT 1 mencacah naik counting-up hingga mencapai TOP nilai TCNT 1 sama dengan nilai OCR 1 yang telah ditentukan kemudian TCNT 1 nol lagi yang otomatis akan menge- set flag OCF 1 dan akan membangkitkan interupsi timercounter 1 compare match jika diaktifkan. Frekuensi CTC dapat dihitung dengan menggunakan persamaan: 2.2 dengan: adalah frekuensi clock chip N adalah prescaler sumber clock yang digunakan 1, 8, 64, 256, 1024 3. Fast PWM Pulse Width Modulation Timercounter 1 dalam mode fast PWM digunakan untuk mengendalikan lama t on dan t off melaui isi register pembanding OCR 1 A atau OCR 1 B yang akan berakibat kepada besar duty cycle yang dihasilkan. Untuk chanel saluran PWM timercounter 1 adalah pin OC 1 A atau OC 1 B sebagai keluaran saluran PWM. Dalam mode fast PWM sifat cacahan register pencacah TCNT 1 mencacah dari BOTTOM 0x0000 terus mencacah naik counting-up hingga mencapai TOP nilai maksimal yang ditentukan sesuai resolusi yang diinginkan, misalnya resolusinya 10 bit maka nilai TOP=0x01FF kemudian mulai dari BOTTOM lagi dan begitu seterusnya atau yang dinamakan single slope satu arah cacahan. Resolusi fast PWM dapat ditentukan dengan resolusi yang sudah tetap seperti 8, 9, 10 bit atau bisa ditentukan melalui register ICR 1 atau OCR 1 A. Resolusi minimal yang diizinkan adalah 2- bit ICR 1 atau OCR 1 A diisi 0x0003, dan resolusi maksimal yang diizinkan adalah 16- bit ICR 1 atau OCR 1 A diisi 0xFFFF. Resolusi dapat dihitung dengan menggunakan persamaan berikut: 2.3 Dalam mode non-inverting saluran keluaran PWM pin OC 1 x di- clear pada saat compare match TCNT 1 ==OCRx dan di- set ketika BOTTOM TCNT 1 =0x0000. Gambar 2.4. Pulsa fast PWM [2] Dalam mode inverting saluran keluaran PWM pin OC1x di- set pada saat compare match TCNT1==OCRx dan di- clear ketika BOTTOM TCNT1=0x0000. Secara kasar memberdakan non-inverting dengan inverting dalam mode fast PWM yaitu dilihat dari bentuk pulsanya. PWM non-inverting yang dikendalikan adalah lama t on – nya melalui isi OCR1x, sedangkan PWM inverting yang dikendalikan adalah lama t off – nya melalui isi OCR1x. Frekuensi fast PWM dihitung dengan menggunakan persamaan berikut: 2.4 dengan: adalah frekuensi clock chip N adalah prescaler sumber clock yang digunakan 1, 8, 64, 256, 1024 4. Phase Correct PWM Pada mode ini cara operasi cacahan register TCNT1 menggunakan dual slope dua arahbolak-balik di mana TCNT1 mencacah dari BOTTOM 0x0000 counting-up hingga mencapai TOP resolusi yang digunakan kemudian counting-down hingga BOTTOM 0x0000 dan begitu seterusnya. Resolusi mode phase correct PWM dapat kita tentukan secara tetap 8-, 9-, 10- bit atau kita tentukan menggunakan register ICR1 atau OCR1A dimana resolusi minimal yang diizinkan adalah 2- bit ICR1OCR1A diisi dengan 0x0003 dan maksimal 16- bit ICR1OCR1A diisi dengan 0xFFFF. Rumus untuk menentukan resolusi mode phase correct PWM. 2.5 Dalam mode non-inverting saluran keluaran PWM pin OC 1 x di- clear pada saat compare match TCNT 1 =OCRx ketika counting-up dan di- set pada saat compare match ketika counting down . Dalam mode inverting saluran keluaran PWM pin OC 1 x di- set pada saat compare match TCNT 1 =OCRx ketika counting-up dan di- clear pada saat compare match ketika counting-down . Gambar 2.5. Pulsa Phase Correct PWM [2] Frekuensi Phase Correct PWM dihitung dengan persamaan: 2.6 dengan: f clk_IO adalah frekuensi clock chip N adalah prescaler sumber clock yang digunakan 1, 8, 64, 256, 1024 2.2 Real Time Clock DS1307 Real Time Clock RTC merupakan suatu chip IC yang memiliki fungsi sebagai penyimpan waktu dan tanggal. Fitur utama DS1307 adalah mampu menghitung detik, menit, jam, tanggal, tahun dengan koreksi tahun kabisat hingga tahun 2100, data bisa disimpan dengan bantuan baterai cadangan, dan antarmuka I 2 C. IC yang mempunyai clock sumber sendiri dan internal batery untuk menyimpan data waktu dan tanggal. Sehingga jika sistem komputer mikrokontroler mati waktu dan tanggal di dalam memori RTC tetap up date . Gambar 2.6. menunjukkan diagram blok dari DS1307. Gambar 2.6. Diagram blok DS1307 [5] DS1307 yang digunakan memiliki paket DIL8 Dual In Line 8 seperti yang ditunjukkan Gambar 2.7. Gambar 2.7. Konfigurasi pin RTC DS1307 [5] Pin - pin RTC DS1307 beserta penjelasannya adalah sebagai berikut: 1. X1 dan X2 dihubungkan dengan kristal quartz 32,768 kHz. Rangkaian osilator internal ini didesain untuk beroperasi dengan sebuah kristal yang mempunyai kapasitansi beban tertentu C Load yakni 12,5 pF. 2. Vcc, GND sebagai power supply utama. Vcc merupakan tegangan input +5 volt sedangkan GND merupakan ground . 3. V bat merupakan tegangan input baterai lithium cell 3 volt. Tegangan baterai harus berada antara tegangan minimum dan tegangan maksimum yaitu 2,5 volt sampai 3,5 volt. Ketika tegangan 5 volt digunakan pada batas normal, RTC dapat diakses secara penuh dan data dapat ditulis dan dibaca. Ketika V CC kurang dari 1,25 x V bat , proses penulisan dan pembacaan menjadi terhalang. Namun demikian, proses penghitungan waktu tetap berjalan. Pada saat V CC kurang dari V bat , RAM dan penghitung waktu terhubung dengan baterai 3 volt. 4. SCL Serial Clock Input berfungsi sebagai clock untuk input ke I 2 C dan digunakan untuk menyinkronisasi pergerakan data dalam serial interface . 5. SDA Serial Data Input Output berfungsi sebagai masukan keluaran IO untuk I 2 C serial interface . Pin ini bersifat open drain sehingga membutuhkan eksternal pull-up resistor . 6. SQWOUT Square Wave Output Driver sebagai square wave output driver . Jika diaktifkan maka akan menjadi 4 frekuensi gelombang kotak yaitu 1 Hz, 4 kHz, 8 kHz, 32 kHz. Sifat dari pin ini sama dengan sifat pin SDA dan SCL sehingga membutuhkan eksternal pull-up resistor . Dapat dioperasikan dengan V CC maupun V bat .

2.3 Komunikasi I

2 C I 2 C-Bus atau Inter-Integrated Circuit Bus merupakan bus serial. I 2 C atau Inter Intergated Circuit dikembangkan Philips Semikonductor ® hampir 20 tahun silam untuk memudahkan komunikasi antar komponen dalam sebuah papan PCB. I 2 C-Bus digunakan untuk menghubungkan berbagai macam IC yang dikontrol oleh sistem mikroprosesor atau mikrokontroler intelleigent control aplication . Standar I 2 C-Bus telah banyak digunakan di berbagai macam bidang elektronik terutama kontrol dengan kecepatan low-to-medium [6]. Kelebihan dari I 2 C diantaranya adalah hanya membutuhkan dua jalur untuk komunikasi; komunikasi master-slave yang sederhana; tidak memerlukan baud-rate seperti halnya RS-232, master yang menghasilkan pulsa clock ; setiap perangkat memiliki penanda digital ID yang unik; serta mampu terdapat lebih dari satu master dalam jalur data. Dua jalur tersebut adalah SDA dan SCL. SCL merupakan jalur yang digunakan untuk menyinkronisasi transfer data pada jalur I 2 C, sedangkan SDA merupakan jalur untuk data. Beberapa perangkat dapat terhubung ke dalam jalur I 2 C yang sama dimana SCL dan SDA terhubung ke semua perangkat tersebut, hanya ada satu perangkat yang mengontrol SCL yaitu perangkat master . Jalur data I 2 C memiliki tipe open drain , artinya perangkat hanya bisa menarik jalur data menjadi low . Oleh karena itu, diperlukan pull-up resistor pada SDA dan SCL untuk menarik jalur data menjadi high ketika tidak ada perangkat yang berkomunikasi. Pull-up resistor adalah resistor yang dihubungkan antara jalur data dan V CC . Gambar 2.8. Konfigurasi umum DS1307 dengan mikrokontroler [5] Gambar 2.8. menunjukkan rangkaian yang umum untuk menghubungkan DS1307 dengan mikrokontroler. Pin SQWOUT sendiri bisa diatur untuk menghasilkan gelombang kotak. Apabila fitur tersebut tidak digunakan, maka tidak perlu dipasang resistor. DS1307 bisa beroperasi dalam 2 cara, yaitu Slave Receiver Mode Write Mode dan Slave Transmiter Mode Read Mode . Komunikasi serial I 2 C selalu diawali dengan kondisi START dan diakhiri STOP. Kondisi START adalah ketika terjadi perubahan kondisi dari high ke low pada SDA ketika SCL pada kondisi high . Sedangkan kondisi STOP adalah ketika terjadi perubahan kondisi dari low ke high pada SDA ketika SCL pada kondisi high . Write mode merupakan cara mikrokontroler menulis data ke dalam DS1307, misal ingin mengatur tanggal dan jam. Setelah dikirim kondisi START, mikrokontroler mengirim 7 bit alamat DS1307 yaitu “1101000” yang diikuti oleh direction bit RW, 0 untuk menulis dan 1 untuk membaca. Setelah menerima alamat DS1307 dan direction bit 0, DS1307 mengirim sinyal acknowledge pada SDA. Lalu mikrokontroler akan mengirimkan data yang akan ditulis. Setiap byte yang diterima akan diakhiri dengan sinyal acknowledge. Apabila mikrokontroler sudah selesai mengirim data, maka dikirim kondisi STOP. Gambar 2.9. merupakan urutan-urutan Slave Receiver Mode Write Mode . Gambar 2.9. Urutan-urutan Slave Receiver Mode Write Mode [5] Read Mode merupakan cara agar data yang terdapat di DS1307 dibaca oleh mikrokontroler, misal ingin membaca waktu dan tanggal. Caranya sama saja seperti pada write mode , hanya saja diikuti direction bit 1. Apabila “11010000” dikirim, maka DS1307 masuk write mode . Apabila “11010001” dikirim, DS1307 akan masuk read mode. Terdapat tambahan sinyal not acknowledge NACK yang dikirim oleh mikrokontroler apabila telah menerima semua data dari DS1307 sebelum kondisi STOP. Gambar 2.10. menunjukkan urutan-urutan Slave Transmiter Mode Read Mode . Informasi waktu dan tanggal bisa didapat dengan mengakses register yang tepat. Register - register ini bisa dibaca atau ditulis menggunakan mikrokontroler. Gambar 2.10. Urutan-urutan Slave Transmiter Mode Read Mode [5] Register DAY yang menunjukkan hari bertambah ketika tengah malam. Nilai yang diperoleh berupa nilai 01-07 dan tidak mengikat kepada hari sebenarnya. Pengguna yang harus menentukan nilai beserta definisinya, misal 1 adalah Minggu maka 2 adalah Senin dan seterusnya. Bit 6 dari register HOUR menentukan jam dalam tipe 12 jam atau 24 jam. Ketika bit 6 HIGH, maka akan masuk tipe 12 jam, sedang ketika LOW akan masuk tipe 24 jam. Waktu harus dimasukkan kembali ketika mengubah tipe jam yang digunakan. Register CH pada alamat 00H merupakan register enable oscillator yang akan menentukan jalannya waktu pada DS1307, sehingga ketika inisialisasi perlu diperiksa nilai dari register tersebut. Tabel 2.16. menunjukan register - register yang bisa diakses pada DS1307. Tabel 2.16. Register - register pada DS1307 [5] Ketika membaca maupun menulis register diatas diperlukan tempat penyimpanan sementara pada mikrokontroler untuk mencegah kesalahan register internal . Tempat penyimpanan atau secondary buffer ini berupa alokasi memori yang diletakkan di mikrokontroler. 2.4 Liquid Crystal Display LCD 2x16 Liquid Crystal Display LCD adalah komponen yang berfungsi untuk menampilkan suatu karakter pada suatu tampilan display dengan bahan utama yang digunakan berupa Liquid Crystal [7]. Apabila diberi arus listrik sesuai dengan jalur yang telah dirancang pada konstruksi LCD, Liquid Crystal akan menghasilkan suatu cahaya dan cahaya tersebut akan membentuk suatu karakter tertentu. Terdapat 2 jenis LCD yaitu LCD karakter dan LCD grafik. LCD karakter, adalah LCD yang tampilannya terbatas pada tampilan karakter, khususnya karakter ASCII seperti karakter-karakter yang tercetak pada keyboard komputer. Sedangkan LCD grafik, adalah LCD yang tampilannya tidak terbatas, bahkan dapat menampilkan foto. LCD grafik inilah yang terus berkembang seperti layar LCD yang biasa dilihat di notebook laptop [8]. Jenis LCD karakter yang beredar di pasaran biasa dituliskan dengan bilangan matriks dari jumlah karakter yang dapat dituliskan pada LCD tersebut, yaitu jumlah kolom karakter dikali jumlah baris karakter. Sebagai contoh, LCD1952, artinya terdapat 16 kolom dalam 2 baris ruang karakter seperti ditunjukan pada Gambar 2.11. yang berarti total karakter yang dapat dituliskan adalah 32 karakter [8]. Gambar 2.11. Baris dan Kolom Karakter pada LCD 1952 [8] LCD yang sering digunakan adalah jenis LCD M1632. M1632 merupakan modul LCD dengan tampilan 2x16 2 baris, 16 kolom dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki CGROM Character General Read Only Memory , CGRAM Character General Random Access Memory , dan DDRAM Display Data Random Access Memory . LCD bertipe ini memungkinkan pemrogram untuk mengoperasikan komunikasi data 8 bit atau 4 bit . Jika menggunakan jalur data 4 bit , maka akan ada 7 jalur data 3 untuk jalur kontrol 4 untuk jalur data. Jika menggunakan jalur data 8 bit , maka akan ada 11 jalur data 3 untuk jalur kontrol 8 untuk jalur data. Tiga jalur kontrol ke LCD ini adalah EN Enable , RS Register Select dan RW Read Write . Gambar 2.12. LCD 2x16 LCD jenis M1623 memiliki jumlah pin sebanyak 16 yang memiliki fungsi berbeda- beda. Fungsi pin LCD pada Tabel 2.17. adalah : 1. V LCD merupakan pin yang digunakan untuk mengatur tebal tipisnya karakter yang tertampil dengan cara mengatur tegangan masukan. 2. DB0 sd DB7 merupakan jalur data yang dipakai untuk menyalurkan kode ASCII maupun perintah pengatur LCD. 3. Register Select RS merupakan pin yang dipakai untuk membedakan jenis data yang dikirim ke LCD. Jika RS berlogika ‘0’, maka data yang dikirim adalah perin tah untuk mengatur kerja LCD. Jika RS berlogika ‘1’, maka data yang dikirimkan adalah kode ASCII yang ditampilkan. 4. ReadWrite RW merupakan pin yang digunakan untuk mengaktifkan pengiriman dan pengembalian data ke dan dari LCD. Jika RW berlogika ‘1’, maka akan diadakan pengambilan data dari LCD. Jika RW berlogika ‘0’, maka akan diadakan pengiriman data ke LCD. 5. Enable E merupakan sinyal sinkronisasi. Saat E berubah dari logika ‘1’ ke ‘0’, data di DB0 sd DB7 akan diterima atau diambil dari port mikrokontroler. 6. Anoda A dan Katoda K merupakan pin yang digunakan untuk menyalakan backlight dari layar LCD. Tabel 2.17. Fungsi Pin - pin LCD [7] Pin No Keterangan Konfigurasi 1 GND Ground 2 VCC Tegangan +5V DC 3 VEE Ground 4 RS Kendali Rs 5 RW Ground 6 E Kendali E Enable 7 D0 Bit 8 D1 Bit 1 9 D2 Bit 2 10 D3 Bit 3 11 D4 Bit 4 12 D5 Bit 5 13 D6 Bit 6 14 D7 Bit 7 15 A Anoda +5VDC 16 K Katoda Ground